def test_validation_bad_triangulation(self): """Test the validation method by taking a correct triangulation, flip a pair of triangles, verify the new triangulation is bad, restore the triangulation, and move to a new pair of triangles. Only triangle pairs that have a convex hull containing their four unique points are included in the flipping.""" n = 25 d = Delaunay(n=n, seed=50) d.compute_triangulation() self.assertTrue(d.validate_triangulation()) self.assertTrue(self.validate_through_flip_check(d)) # Now break the triangulation. for emap in d.edge_mapping.values(): if len(emap) == 2 and self.shared_edge_angles_not_oblique(d, emap): id1, id2 = emap d.flip(id1, id2) self.assertFalse(d.validate_triangulation()) self.assertFalse(self.validate_through_flip_check(d)) d.flip(id1, id2) self.assertTrue(d.validate_triangulation()) self.assertTrue(self.validate_through_flip_check(d))
def correctness_tests(self, n, reps): for i in range(reps): d = Delaunay(n=n, seed=i) d.compute_triangulation() self.assertTrue(d.validate_triangulation()) self.assertTrue(self.validate_through_flip_check(d))
def test_validate(self): for i in range(100): d = Delaunay(n=15, seed=i) d.compute_triangulation() self.assertTrue(d.validate_triangulation()) self.assertTrue(self.validate_through_flip_check(d))