#------------------------------------------------------------------------------ # GraphTest.py # Test the Graph class. #------------------------------------------------------------------------------ from graphs import * def main(): V = [1,2,3,4,5,6] E = [(1,2),(1,4),(2,3),(2,4),(2,5),(3,5),(3,6),(4,5),(5,6)] G = Graph(V,E) print() print(G.vertices) print(G.edges) print() print(G) G.add_edge((7,8)) G.add_edge((7,9)) G.add_edge((8,9)) print(G.vertices) print(G.edges) print() print(G) # test reachable() print(G.reachable(1)) print(G.reachable(7)) print() H = Graph('abcdef', ['ab','ad','bc','bd','be','bf','cf','de','ef']) print(H.vertices) print(H.edges) print() print(H) print() print(H.reachable('d')) print() # test findComponents() and getComponent() print('component containing {}: {}'.format(2, G.getComponent(2))) print('component containing {}: {}'.format(8, G.getComponent(8))) # print(G.sameComponent(2, 8)) # raises ValueError print() G.findComponents() print('component containing {}: {}'.format(2, G.getComponent(2))) print('component containing {}: {}'.format(8, G.getComponent(8))) print('{} reachable from {} is {}'.format(2, 8, G.sameComponent(2, 8))) print() # test BFS() and getPath G.BFS(1) L = list() G.getPath(1, 6, L) for v in G.vertices: print(v, G.getDistance(v), G.getPredecessor(v)) # end print(L) G.getPath(1, 9, L) print(L) print() # end #------------------------------------------------------------------------------ if __name__=='__main__': main() # end