mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #25932 -- Made predicates of OGRGeometry return bool instead of int.
This commit is contained in:
		
				
					committed by
					
						 Tim Graham
						Tim Graham
					
				
			
			
				
	
			
			
			
						parent
						
							cd0ba8053d
						
					
				
				
					commit
					a6c803a2e3
				
			| @@ -26,7 +26,7 @@ def pnt_func(f): | ||||
| def topology_func(f): | ||||
|     f.argtypes = [c_void_p, c_void_p] | ||||
|     f.restype = c_int | ||||
|     f.errchck = bool | ||||
|     f.errcheck = lambda result, func, cargs: bool(result) | ||||
|     return f | ||||
|  | ||||
| # ### OGR_G ctypes function prototypes ### | ||||
|   | ||||
| @@ -489,7 +489,49 @@ class OGRGeomTest(unittest.TestCase, TestDataMixin): | ||||
|         self.assertEqual(3, geom[0].coord_dim) | ||||
|         self.assertEqual(wkt_3d, geom.wkt) | ||||
|  | ||||
|     # Testing binary predicates, `assertIs` is used to check that bool is returned. | ||||
|  | ||||
|     def test_equivalence_regression(self): | ||||
|         "Testing equivalence methods with non-OGRGeometry instances." | ||||
|         self.assertIsNotNone(OGRGeometry('POINT(0 0)')) | ||||
|         self.assertNotEqual(OGRGeometry('LINESTRING(0 0, 1 1)'), 3) | ||||
|  | ||||
|     def test_contains(self): | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').contains(OGRGeometry('POINT(0 0)')), True) | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').contains(OGRGeometry('POINT(0 1)')), False) | ||||
|  | ||||
|     def test_crosses(self): | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 1 1)').crosses(OGRGeometry('LINESTRING(0 1, 1 0)')), True) | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 0 1)').crosses(OGRGeometry('LINESTRING(1 0, 1 1)')), False) | ||||
|  | ||||
|     def test_disjoint(self): | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 1 1)').disjoint(OGRGeometry('LINESTRING(0 1, 1 0)')), False) | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 0 1)').disjoint(OGRGeometry('LINESTRING(1 0, 1 1)')), True) | ||||
|  | ||||
|     def test_equals(self): | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').contains(OGRGeometry('POINT(0 0)')), True) | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').contains(OGRGeometry('POINT(0 1)')), False) | ||||
|  | ||||
|     def test_intersects(self): | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 1 1)').intersects(OGRGeometry('LINESTRING(0 1, 1 0)')), True) | ||||
|         self.assertIs(OGRGeometry('LINESTRING(0 0, 0 1)').intersects(OGRGeometry('LINESTRING(1 0, 1 1)')), False) | ||||
|  | ||||
|     def test_overlaps(self): | ||||
|         self.assertIs( | ||||
|             OGRGeometry('POLYGON ((0 0, 0 2, 2 2, 2 0, 0 0))').overlaps( | ||||
|                 OGRGeometry('POLYGON ((1 1, 1 5, 5 5, 5 1, 1 1))') | ||||
|             ), True | ||||
|         ) | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').overlaps(OGRGeometry('POINT(0 1)')), False) | ||||
|  | ||||
|     def test_touches(self): | ||||
|         self.assertIs( | ||||
|             OGRGeometry('POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))').touches(OGRGeometry('LINESTRING(0 2, 2 0)')), True | ||||
|         ) | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').touches(OGRGeometry('POINT(0 1)')), False) | ||||
|  | ||||
|     def test_within(self): | ||||
|         self.assertIs( | ||||
|             OGRGeometry('POINT(0.5 0.5)').within(OGRGeometry('POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))')), True | ||||
|         ) | ||||
|         self.assertIs(OGRGeometry('POINT(0 0)').within(OGRGeometry('POINT(0 1)')), False) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user