Exemple #1
0
    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))
Exemple #2
0
 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))
Exemple #3
0
 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))