(self, points1, points2, exp_touching, exp_overlap, exp_mtv)
| 797 | self._contains_point_fuzzer(poly.points, vector2.Vector2(1, -3), False, True) |
| 798 | |
| 799 | def _find_intersection_fuzzer(self, points1, points2, exp_touching, exp_overlap, exp_mtv): |
| 800 | if type(points1) != list: |
| 801 | points1 = points1.points |
| 802 | if type(points2) != list: |
| 803 | points2 = points2.points |
| 804 | |
| 805 | for i in range(3): |
| 806 | offset1 = vector2.Vector2(random.uniform(-1000, 1000), random.uniform(-1000, 1000)) |
| 807 | offset2 = vector2.Vector2(random.uniform(-1000, 1000), random.uniform(-1000, 1000)) |
| 808 | |
| 809 | new_points1 = [] |
| 810 | for pt in points1: |
| 811 | new_points1.append(pt - offset1) |
| 812 | |
| 813 | new_points2 = [] |
| 814 | for pt in points2: |
| 815 | new_points2.append(pt - offset2) |
| 816 | |
| 817 | new_poly1 = polygon2.Polygon2(new_points1) |
| 818 | new_poly2 = polygon2.Polygon2(new_points2) |
| 819 | |
| 820 | touch, overlap, mtv = polygon2.Polygon2.find_intersection(new_poly1, new_poly2, offset1, offset2, True) |
| 821 | _invtouch, _invoverlap, _invmtv = polygon2.Polygon2.find_intersection(new_poly2, new_poly1, offset2, offset1, True) |
| 822 | |
| 823 | help_msg = "\n\npoints1={}, points2={}, offset1={}, offset2={}\n\nexp_touching={}, " \ |
| 824 | "exp_overlap={}, exp_mtv={}\n\ntouch={}, overlap={}, mtv={}\n\n" \ |
| 825 | "_invtouch={}, _invoverlap={}, _invmtv={}\n\n" \ |
| 826 | "orig_poly1={}\n\n" \ |
| 827 | "orig_poly2={}\n\n".format(points1, points2, offset1, |
| 828 | offset2, exp_touching, exp_overlap, exp_mtv, touch, overlap, mtv, |
| 829 | _invtouch, _invoverlap, _invmtv, polygon2.Polygon2(points1), |
| 830 | polygon2.Polygon2(points2)) |
| 831 | self.assertEqual(exp_touching, touch, msg=help_msg) |
| 832 | self.assertEqual(exp_overlap, overlap, msg=help_msg) |
| 833 | self.assertEqual(exp_touching, _invtouch, msg=help_msg) |
| 834 | self.assertEqual(exp_overlap, _invoverlap, msg=help_msg) |
| 835 | |
| 836 | if exp_mtv is not None: |
| 837 | self.assertIsNotNone(mtv, msg=help_msg) |
| 838 | exp_mult_x = exp_mtv[0] * exp_mtv[1].x |
| 839 | exp_mult_y = exp_mtv[0] * exp_mtv[1].y |
| 840 | mult_x = mtv[0] * mtv[1].x |
| 841 | mult_y = mtv[0] * mtv[1].y |
| 842 | self.assertAlmostEqual(exp_mult_x, mult_x, msg=help_msg) |
| 843 | self.assertAlmostEqual(exp_mult_y, mult_y, msg=help_msg) |
| 844 | |
| 845 | self.assertIsNotNone(_invmtv, msg=help_msg) |
| 846 | inv_mult_x = _invmtv[0] * _invmtv[1].x |
| 847 | inv_mult_y = _invmtv[0] * _invmtv[1].y |
| 848 | self.assertAlmostEqual(-exp_mult_x, inv_mult_x, msg=help_msg) |
| 849 | self.assertAlmostEqual(-exp_mult_y, inv_mult_y, msg=help_msg) |
| 850 | else: |
| 851 | self.assertIsNone(mtv, msg=help_msg) |
| 852 | self.assertIsNone(_invmtv, msg=help_msg) |
| 853 | |
| 854 | _touch, _overlap, _mtv = polygon2.Polygon2.find_intersection(new_poly1, new_poly2, offset1, offset2, False) |
| 855 | |
| 856 | self.assertEqual(exp_touching, _touch, msg=help_msg) |
no test coverage detected