Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.69 KB | None | 0 0
  1. class TestGraph(unittest.TestCase):
  2.     def test_add_node(self):
  3.         # given
  4.         graph = Graph()
  5.         graph2 = Graph()
  6.         graph3 = Graph()
  7.  
  8.         # when
  9.         graph.add_node('A')
  10.         graph.add_node('B')
  11.         graph.add_node('C')
  12.         graph.add_node('D')
  13.        
  14.         graph2.add_node(1)
  15.         graph2.add_node(2)
  16.         graph2.add_node(3)
  17.         graph2.add_node(4)
  18.  
  19.         # then
  20.         self.assertEqual('A' in graph.nodes, True)
  21.         self.assertEqual('B' in graph.nodes, True)
  22.         self.assertEqual('C' in graph.nodes, True)
  23.         self.assertEqual('D' in graph.nodes, True)
  24.         self.assertEqual(1 in graph2.nodes, True)
  25.         self.assertEqual(2 in graph2.nodes, True)
  26.         self.assertEqual(3 in graph2.nodes, True)
  27.         self.assertEqual(4 in graph2.nodes, True)
  28.  
  29.     def test_add_edges(self):
  30.         # given
  31.         graph = Graph()
  32.  
  33.         # when
  34.         graph.add_edge('A', 'B', 20)
  35.         graph.add_edge('A', 'C', 10)
  36.         graph.add_edge('B', 'D', 15)
  37.         graph.add_edge('C', 'D', 10)
  38.         graph.add_edge('B', 'E', 50)
  39.         graph.add_edge('D', 'E', 30)
  40.         graph.add_edge('E', 'F', 5)
  41.         graph.add_edge('F', 'G', 2)
  42.  
  43.         # then
  44.         self.assertEqual(graph.edges['A'], ['B', 'C'])
  45.         self.assertEqual(graph.edges['B'], ['A', 'D', 'E'])
  46.         self.assertEqual(graph.edges['C'], ['A', 'D'])
  47.         self.assertEqual(graph.edges['D'], ['B', 'C', 'E'])
  48.         self.assertEqual(graph.edges['E'], ['B', 'D', 'F'])
  49.         self.assertEqual(graph.edges['F'], ['E', 'G'])
  50.         self.assertEqual(graph.edges['G'], ['F'])
  51.  
  52.         self.assertEqual(graph.distances[('A', 'B')], 20)
  53.         self.assertEqual(graph.distances[('A', 'C')], 10)
  54.         self.assertEqual(graph.distances[('B', 'D')], 15)
  55.         self.assertEqual(graph.distances[('C', 'D')], 10)
  56.         self.assertEqual(graph.distances[('B', 'E')], 50)
  57.         self.assertEqual(graph.distances[('D', 'E')], 30)
  58.         self.assertEqual(graph.distances[('E', 'F')], 5)
  59.         self.assertEqual(graph.distances[('F', 'G')], 2)
  60.         self.assertEqual(graph.distances[('B', 'A')], 20)
  61.         self.assertEqual(graph.distances[('C', 'A')], 10)
  62.         self.assertEqual(graph.distances[('D', 'B')], 15)
  63.         self.assertEqual(graph.distances[('D', 'C')], 10)
  64.         self.assertEqual(graph.distances[('E', 'B')], 50)
  65.         self.assertEqual(graph.distances[('E', 'D')], 30)
  66.         self.assertEqual(graph.distances[('F', 'E')], 5)
  67.         self.assertEqual(graph.distances[('G', 'F')], 2)
  68.  
  69.     def test_shortest_path(self):
  70.         # given
  71.         graph = Graph()
  72.  
  73.         # when
  74.         graph.add_edge('A', 'B', 20)
  75.         graph.add_edge('A', 'C', 10)
  76.         graph.add_edge('B', 'D', 15)
  77.         graph.add_edge('C', 'D', 10)
  78.         graph.add_edge('B', 'E', 50)
  79.         graph.add_edge('D', 'E', 30)
  80.         graph.add_edge('E', 'F', 5)
  81.         graph.add_edge('F', 'G', 2)
  82.  
  83.         #then
  84.         self.assertEqual(shortest_path(graph, 'A', 'D'), (20, ['A', 'C', 'D']))
  85.         self.assertEqual(shortest_path(graph, 'D', 'A'), (20, ['D', 'C', 'A']))
  86.         self.assertEqual(shortest_path(graph, 'A', 'G'), (57, ['A', 'C', 'D', 'E', 'F', 'G']))
  87.         self.assertEqual(shortest_path(graph, 'G', 'A'), (57, ['G', 'F', 'E', 'D', 'C', 'A']))
  88.         self.assertEqual(shortest_path(graph, 'C', 'G'), (47, ['C', 'D', 'E', 'F', 'G']))
  89.         self.assertEqual(shortest_path(graph, 'G', 'C'), (47, ['G', 'F', 'E', 'D', 'C']))
  90.         self.assertEqual(shortest_path(graph, 'E', 'B'), (45, ['E', 'D', 'B']))
  91.         self.assertEqual(shortest_path(graph, 'B', 'E'), (45, ['B', 'D', 'E']))
  92.  
  93.  
  94. if __name__ == '__main__':
  95.    unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement