summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2016-12-14 15:44:23 +0500
committerTim Graham <timograham@gmail.com>2016-12-15 14:16:09 -0500
commit38a6df555f285cc4f1732467c4cf0617a2050124 (patch)
treeac8351bf7c2a57d51688140fea5e14cc3ba596a2 /tests
parent5a23cc00f535a045db6d9c04c3c14594ee23fbec (diff)
Fixed #27602 -- Added Oracle support for BoundingCircle GIS function.
Diffstat (limited to 'tests')
-rw-r--r--tests/gis_tests/geoapp/test_functions.py30
1 files changed, 17 insertions, 13 deletions
diff --git a/tests/gis_tests/geoapp/test_functions.py b/tests/gis_tests/geoapp/test_functions.py
index 7b6281a4b9..023a6a087f 100644
--- a/tests/gis_tests/geoapp/test_functions.py
+++ b/tests/gis_tests/geoapp/test_functions.py
@@ -11,7 +11,7 @@ from django.db.models import Sum
from django.test import TestCase, skipUnlessDBFeature
from django.utils import six
-from ..utils import mysql, oracle, spatialite
+from ..utils import mysql, oracle, postgis, spatialite
from .models import City, Country, CountryWebMercator, State, Track
@@ -148,21 +148,25 @@ class GISFunctionsTests(TestCase):
# num_seg is the number of segments per quarter circle.
return (4 * num_seg) + 1
- # The weak precision in the assertions is because the BoundingCircle
- # calculation changed on PostGIS 2.3.
+ expected_areas = (169, 136) if postgis else (171, 126)
qs = Country.objects.annotate(circle=functions.BoundingCircle('mpoly')).order_by('name')
- self.assertAlmostEqual(qs[0].circle.area, 169, 0)
- self.assertAlmostEqual(qs[1].circle.area, 136, 0)
- # By default num_seg=48.
- self.assertEqual(qs[0].circle.num_points, circle_num_points(48))
- self.assertEqual(qs[1].circle.num_points, circle_num_points(48))
+ self.assertAlmostEqual(qs[0].circle.area, expected_areas[0], 0)
+ self.assertAlmostEqual(qs[1].circle.area, expected_areas[1], 0)
+ if postgis:
+ # By default num_seg=48.
+ self.assertEqual(qs[0].circle.num_points, circle_num_points(48))
+ self.assertEqual(qs[1].circle.num_points, circle_num_points(48))
qs = Country.objects.annotate(circle=functions.BoundingCircle('mpoly', num_seg=12)).order_by('name')
- self.assertGreater(qs[0].circle.area, 168.4, 0)
- self.assertLess(qs[0].circle.area, 169.5, 0)
- self.assertAlmostEqual(qs[1].circle.area, 136, 0)
- self.assertEqual(qs[0].circle.num_points, circle_num_points(12))
- self.assertEqual(qs[1].circle.num_points, circle_num_points(12))
+ if postgis:
+ self.assertGreater(qs[0].circle.area, 168.4, 0)
+ self.assertLess(qs[0].circle.area, 169.5, 0)
+ self.assertAlmostEqual(qs[1].circle.area, 136, 0)
+ self.assertEqual(qs[0].circle.num_points, circle_num_points(12))
+ self.assertEqual(qs[1].circle.num_points, circle_num_points(12))
+ else:
+ self.assertAlmostEqual(qs[0].circle.area, expected_areas[0], 0)
+ self.assertAlmostEqual(qs[1].circle.area, expected_areas[1], 0)
@skipUnlessDBFeature("has_Centroid_function")
def test_centroid(self):