def test_non_consecutive_adding(self): """Test adding vertices non-consecutively.""" # Create []. a_graph = DirectedGraph() # Add 1 to [], which becomes [set(), set()]. # Here 0 is added implicitly. a_graph.add(1) self.assertEqual(a_graph.n_vertices(), 2) self.assertEqual(a_graph.connected(0, 0), True) self.assertEqual(a_graph.connected(0, 1), False) self.assertEqual(a_graph.connected(1, 1), True)
def test_initialization(self): """Test public methods on an empty union.""" # Create []. an_empty_graph = DirectedGraph() self.assertEqual(an_empty_graph.n_vertices(), 0) self.assertEqual(an_empty_graph.connected(0, 0), False) self.assertEqual(an_empty_graph.connected(0, 1), False) self.assertEqual(an_empty_graph.neighbors(0), set())
def test_implicit_adding_by_connecting(self): """Test connect(), which implicitly calls add().""" # Create []. a_graph = DirectedGraph() # Implicitly add 0, 1, 2 to [], then connect 1 with 2, # which makes [set(), {2}, set()]. a_graph.connect(1, 2) self.assertEqual(a_graph.n_vertices(), 3) # Trivially connected vertices. self.assertEqual(a_graph.connected(0, 0), True) self.assertEqual(a_graph.connected(1, 1), True) self.assertEqual(a_graph.connected(2, 2), True) # Uni-directional connection created by connect(). self.assertEqual(a_graph.connected(1, 2), True) self.assertEqual(a_graph.connected(2, 1), False) # Disconnected vertices. self.assertEqual(a_graph.connected(0, 1), False) self.assertEqual(a_graph.connected(1, 0), False) self.assertEqual(a_graph.connected(0, 2), False) self.assertEqual(a_graph.connected(2, 0), False)
def test_consecutive_adding(self): """Test adding vertices consecutively.""" # Create []. a_graph = DirectedGraph() # Add 0 to [], which becomes [set()]. a_graph.add(0) self.assertEqual(a_graph.n_vertices(), 1) self.assertEqual(a_graph.connected(0, 0), True) self.assertEqual(a_graph.connected(0, 1), False) self.assertEqual(a_graph.connected(1, 1), False) # Add 0 to [set()], nothing changes. a_graph.add(0) self.assertEqual(a_graph.n_vertices(), 1) self.assertEqual(a_graph.connected(0, 0), True) self.assertEqual(a_graph.connected(0, 1), False) self.assertEqual(a_graph.connected(1, 1), False) # Add 1 to [set()], which becomes [set(), set()]. a_graph.add(1) self.assertEqual(a_graph.n_vertices(), 2) self.assertEqual(a_graph.connected(0, 0), True) self.assertEqual(a_graph.connected(0, 1), False) self.assertEqual(a_graph.connected(1, 1), True)