Fixed #25932 -- Made predicates of OGRGeometry return bool instead of int.
This commit is contained in:
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)
|
||||
|
|
Loading…
Reference in New Issue