def test_add_contains(): ''' Adding a node should cause contains to return true, adding a duplicate should return False, and contains should still report True for that node ''' g = UndirectedGraph() assert g.add_node('a') assert g.contains('a') assert g.add_node('a') == False assert g.contains('a')
def test_add_edge_contains(): ''' Adding an edge between non-existant edges should cause contains to report they exist. ''' g = UndirectedGraph() assert g.add_edge('a', 'b', 42) assert g.contains('a') assert g.contains('b')
def test_simple_integration(): ''' test a simple use case, retesting assumptions at each step. ''' g = UndirectedGraph() assert g.add_node('a') assert g.contains('a') assert len(list(g.nodes())) == 1 assert 'a' in g.nodes() assert len(list(g.neighbors('a'))) == 0 assert g.add_node('b') assert g.contains('b') assert len(list(g.nodes())) == 2 assert 'a' in g.nodes() assert 'b' in g.nodes() assert len(list(g.neighbors('a'))) == 0 assert len(list(g.neighbors('b'))) == 0 assert g.add_node('c') assert g.contains('c') assert len(list(g.nodes())) == 3 assert 'a' in g.nodes() assert 'b' in g.nodes() assert 'c' in g.nodes() assert len(list(g.neighbors('a'))) == 0 assert len(list(g.neighbors('b'))) == 0 assert len(list(g.neighbors('c'))) == 0 g.add_edge('a', 'b') edges = list(g.edges()) assert len(edges) == 2 assert ('a', 'b', 1) in edges assert ('b', 'a', 1) in edges assert g.contains('a') assert g.contains('b') assert g.contains('c') assert len(list(g.nodes())) == 3 assert 'a' in g.nodes() assert 'b' in g.nodes() assert 'c' in g.nodes() assert len(list(g.neighbors('a'))) == 1 assert ('b', 1) in g.neighbors('a') assert len(list(g.neighbors('b'))) == 1 assert ('a', 1) in g.neighbors('b') assert len(list(g.neighbors('c'))) == 0 g.add_edge('a', 'c') edges = list(g.edges()) assert len(edges) == 4 assert ('a', 'b', 1) in edges assert ('b', 'a', 1) in edges assert ('a', 'c', 1) in edges assert ('c', 'a', 1) in edges assert g.contains('a') assert g.contains('b') assert g.contains('c') assert len(list(g.nodes())) == 3 assert 'a' in g.nodes() assert 'b' in g.nodes() assert 'c' in g.nodes() assert len(list(g.neighbors('a'))) == 2 assert ('b', 1) in g.neighbors('a') assert ('c', 1) in g.neighbors('a') assert len(list(g.neighbors('b'))) == 1 assert ('a', 1) in g.neighbors('b') assert len(list(g.neighbors('c'))) == 1 assert ('a', 1) in g.neighbors('c') edges = list(g.edges()) assert ('a', 'b', 1) in edges assert ('b', 'a', 1) in edges assert ('a', 'c', 1) in edges assert ('c', 'a', 1) in edges