------------------------------------------------------------------------------
MC logo
Graph Tester
[^] Python Assignment 5
------------------------------------------------------------------------------
[Python Assignment 1] [Python Assignment 2] [Python Assignment 3] [Python Assignment 4] [Python Assignment 5]
[Graph Tester] [Correct Output For Graph Tester] [Graph Search] [Graph Search Test Input] [Graph Search Test Output]
grtest.py
# This program creates a graph and runs some tests on the graph methods.
from graph import Graph
#from graphsimp import Graph

g = Graph()

# See if an empty graph is really empty.
print("empty:", g.nnodes(), g.narcs(), g.weight("fred", "barney"),end=' ')
print(g.successors("bill"), g.predecessors("frank"))
print()

# How about a single link?
g.link("dust", "mop", 34)

print("unit:", g.nnodes(), g.narcs(), g.weight("dust", "mop"),end=' ')
print(g.weight("dust", "rag"), g.weight("dry","mop"))
print("   ", g.successors("dust"), g.predecessors("dust"),end=' ')
print(g.successors("mop"), g.predecessors("mop"),end=' ')
print(g.successors("bogus"), g.predecessors("bogus"))
print()

# Test with a larger graph.
cost = 3
for src in [ "trucks", "cars", "horses" ]:
    for snk in [ "red", "blue", "green", "orange" ]:
        if src == "cars" and snk == "green": continue;
        g.link(src, snk, cost)
        cost = 3*cost - 5
g.link("red", "cars", 44)
g.link("green", "red", 21)
g.link("green", "trucks", 60)
g.link("green", "emerald", 33)
g.link("emerald", "city", 85)
g.link("trucks", "trucks", 2)

print("several:", g.nnodes(), g.narcs(),end=' ')
print(g.weight("trucks", "green"), g.weight("trucks", "trucks"))
for n in [ "cars", "green", "emerald", "horses", "orange", "mop", "bogus" ]:
    print("   ", g.weight(n, "blue"), sorted(g.successors(n)), sorted(g.predecessors(n)))
print()

# See if the delink call works by trying it a couple of times and looking at the
# changes.
g.delink("red", "cars")
g.delink("trucks", "orange")
print("delinked:", g.nnodes(), g.narcs(),end=' ')
print(g.weight("trucks", "green"), g.weight("trucks", "trucks"),end=' ')
print(g.weight("red", "cars"), g.weight("trucks", "orange"))
for n in [ "red", "orange", "cars" ]:
    print("   ", sorted(g.successors(n)), sorted(g.predecessors(n)))
print()

g.clear()
print("cleared:", g.nnodes(), g.narcs(), g.weight("emerald", "city"))