def test_BoundaryTracker_validate_all_regions_closed_3_chord(self): "Verify regression on diagram: [(1, 2), (3, 6), (4, 5)]" diag = Diagram([(1, 2), (3, 6), (4, 5)]) bounds = BoundaryTracker() region_factory = RegionFactory() outside = region_factory.get_next_region_id() regionA = region_factory.get_next_region_id() regionB = region_factory.get_next_region_id() regionC = region_factory.get_next_region_id() bounds.add(Span(1, 6), outside, outside) bounds.add(Span(1, 2), outside, regionA) bounds.add(Span(4, 5), outside, regionB) bounds.add(Span(3, 4), outside, regionC) bounds.add(Span(5, 6), outside, regionC) self.assertTrue(bounds.validate_all_regions_closed(diag))
def test_BoundaryTracker_validate_all_regions_closed(self): # Validate regions after adding boundaries for each chord diag = Diagram([(1, 4), (2, 5), (3, 8), (6, 7)]) bounds = BoundaryTracker() region_factory = RegionFactory() outside = region_factory.get_next_region_id() bounds.add(Span(1, 8), outside, outside) # Initially all nodes outside self.assertTrue(bounds.validate_all_regions_closed(diag)) # Add chord (1,4) regionA = region_factory.get_next_region_id() bounds.add(Span(1, 4), outside, regionA) self.assertTrue(bounds.validate_all_regions_closed(diag)) # Add chord (2,5) - segment (4,5) regionB = region_factory.get_next_region_id() bounds.add(Span(4, 5), outside, regionB) bounds.add(Span(1, 2), regionA, regionB) self.assertTrue(bounds.validate_all_regions_closed(diag)) # Add chord (6, 7) (next in numeric order) span(6,7) # It's a 1-move loop, region is already closed regionC = region_factory.get_next_region_id() bounds.add(Span(6, 7), regionA, regionC) bounds.add(Span(5, 6), regionA, regionA) self.assertTrue(bounds.validate_all_regions_closed(diag)) # Add chord(3, 8), span(7, 8) regionD = region_factory.get_next_region_id() bounds.add(Span(7, 8), regionA, regionD) self.assertFalse(bounds.validate_all_regions_closed(diag)) bounds.add(Span(5, 6), regionA, regionD) self.assertFalse(bounds.validate_all_regions_closed(diag)) bounds.add(Span(2, 3), outside, regionD) self.assertTrue(bounds.validate_all_regions_closed(diag))