Testing the Extent3D aggregate for 3D models.
(self)
| 232 | |
| 233 | @skipUnlessDBFeature("supports_3d_functions") |
| 234 | def test_extent(self): |
| 235 | """ |
| 236 | Testing the Extent3D aggregate for 3D models. |
| 237 | """ |
| 238 | self._load_city_data() |
| 239 | # `SELECT ST_Extent3D(point) FROM geo3d_city3d;` |
| 240 | ref_extent3d = (-123.305196, -41.315268, 14, 174.783117, 48.462611, 1433) |
| 241 | extent = City3D.objects.aggregate(Extent3D("point"))["point__extent3d"] |
| 242 | |
| 243 | def check_extent3d(extent3d, tol=6): |
| 244 | for ref_val, ext_val in zip(ref_extent3d, extent3d): |
| 245 | self.assertAlmostEqual(ref_val, ext_val, tol) |
| 246 | |
| 247 | check_extent3d(extent) |
| 248 | self.assertIsNone( |
| 249 | City3D.objects.none().aggregate(Extent3D("point"))["point__extent3d"] |
| 250 | ) |
| 251 | |
| 252 | @skipUnlessDBFeature("supports_3d_functions") |
| 253 | def test_extent3d_filter(self): |
nothing calls this directly
no test coverage detected