From 5aa53286758fbb1fb864a5efda38718a2ca96759 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 28 Jan 2016 07:44:55 -0500 Subject: [PATCH] Fixed #26147 -- Relaxed expected values in GIS tests to account for database/library differences. --- tests/gis_tests/distapp/tests.py | 4 ++-- tests/gis_tests/geogapp/tests.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/gis_tests/distapp/tests.py b/tests/gis_tests/distapp/tests.py index 9dbc4d3c11..d31a019e11 100644 --- a/tests/gis_tests/distapp/tests.py +++ b/tests/gis_tests/distapp/tests.py @@ -149,7 +149,7 @@ class DistanceTest(TestCase): """ Test the `distance` GeoQuerySet method on geodetic coordinate systems. """ - tol = 2 if oracle else 5 + tol = 2 if oracle else 4 # Testing geodetic distance calculation with a non-point geometry # (a LineString of Wollongong and Shellharbour coords). @@ -560,7 +560,7 @@ class DistanceFunctionsTests(TestCase): @skipUnlessDBFeature("has_Distance_function", "supports_distance_geodetic") def test_distance_geodetic_spheroid(self): - tol = 2 if oracle else 5 + tol = 2 if oracle else 4 # Got the reference distances using the raw SQL statements: # SELECT ST_distance_spheroid(point, ST_GeomFromText('POINT(151.231341 -33.952685)', 4326), diff --git a/tests/gis_tests/geogapp/tests.py b/tests/gis_tests/geogapp/tests.py index 80afbd63c7..b99203afea 100644 --- a/tests/gis_tests/geogapp/tests.py +++ b/tests/gis_tests/geogapp/tests.py @@ -98,10 +98,12 @@ class GeographyTest(TestCase): def test06_geography_area(self): "Testing that Area calculations work on geography columns." # SELECT ST_Area(poly) FROM geogapp_zipcode WHERE code='77002'; - ref_area = 5439100.13586914 if oracle else 5439084.70637573 - tol = 5 z = Zipcode.objects.area().get(code='77002') - self.assertAlmostEqual(z.area.sq_m, ref_area, tol) + # Round to the nearest thousand as possible values (depending on + # the database and geolib) include 5439084, 5439100, 5439101. + rounded_value = z.area.sq_m + rounded_value -= z.area.sq_m % 1000 + self.assertEqual(rounded_value, 5439000) @skipUnlessDBFeature("gis_enabled") @@ -128,7 +130,9 @@ class GeographyFunctionTests(TestCase): Testing that Area calculations work on geography columns. """ # SELECT ST_Area(poly) FROM geogapp_zipcode WHERE code='77002'; - ref_area = 5439100.13587 if oracle else 5439084.70637573 - tol = 5 z = Zipcode.objects.annotate(area=Area('poly')).get(code='77002') - self.assertAlmostEqual(z.area.sq_m, ref_area, tol) + # Round to the nearest thousand as possible values (depending on + # the database and geolib) include 5439084, 5439100, 5439101. + rounded_value = z.area.sq_m + rounded_value -= z.area.sq_m % 1000 + self.assertEqual(rounded_value, 5439000)