def test_contains_point_regressions(self):
# the fuzzer actually caught an error. put them in here to ensure they don't
# come back. The first issue was math.isclose without abs_tol on values close
# to 0 is too strict
poly = polygon2.Polygon2([ (2, 3), (3, 5), (5, 4), (3, 2) ])
regression_tests = [ (poly.points, vector2.Vector2(4, 3), True, False, vector2.Vector2(-509.47088031477625, 57.99699262312129)) ]
for regression in regression_tests:
points = regression[0]
point = regression[1]
expected_edge = regression[2]
expected_contains = regression[3]
offset = regression[4]
new_points = []
for pt in points:
new_points.append(pt - offset)
new_poly = polygon2.Polygon2(new_points)
edge, cont = polygon2.Polygon2.contains_point(new_poly, offset, point)
help_msg = "regression failed.\n\npoints={}, point={}, offset={}, expected_edge={}, expected_contains={}, edge={}, contains={}".format(points, point, offset, expected_edge, expected_contains, edge, cont)
self.assertEqual(expected_edge, edge, msg=help_msg)
self.assertEqual(expected_contains, cont, msg=help_msg)
评论列表
文章目录