def testset2_pathReversed(self):
     '''Symmetric graph'''
     search = Pathfinding(True, 'data/graph2.txt')
     path1 = search.shortestPath('A', 'E')
     path2 = search.shortestPath('E', 'A')
     path2.reverse()
     self. assertEqual(path1, path2, 'Incorrect path when start/goal reversed\
                                      in symmetric graph')
 def testset1_pathAE(self):
     '''Graph1 find path from A to E'''
     search = Pathfinding(True, 'data/graph1.txt')
     path = search.shortestPath('A', 'E')
     
     self.assertTrue(len(path) <= len(['A','B','C','D','E']), 'Path too long')
     for element in path:
         self.assertTrue(element in ['A','B','C','D','E'], 'Node not in list')
 def testset2_alternative(self):
     '''Graph2 find alternative paths'''
     search = Pathfinding(True, 'data/graph2.txt')
     path = search.shortestPath('A', 'E')
     
     alt = search.alternateRoute(3, path)
     self.assertTrue(alt[0] == min(alt))
     for route in alt:
         self.assertTrue(route[1] != path) # alternative != optimal path
 def testset4_linear(self):
     '''Linear graph'''
     f = open('data/graph4.txt', 'w')
     for i in range(0, 25):
         f.write("%s, %s, %d\n" % (chr(65 + i), chr(65 + i + 1), 1))
         f.write("%s, %s, %d\n" % (chr(65 + i + 1), chr(65 + i), 1))
     f.close()
     
     search = Pathfinding(True, 'data/graph4.txt')
     path = search.shortestPath('A', 'Z')
     
     self.assertTrue(len(path) == 26, 'Incorrect path on linear graph')
     cost = search.pathCost(path)
     self.assertTrue(cost == 25, 'Incorrect cost of shortest path')
     count = 0
     for element in path:
         self.assertEqual(element, chr(65 + count), 'Node not in list')
         count += 1
 def testset1_path2self(self):
     '''Start and Goal the same'''
     search = Pathfinding(True, 'data/graph1.txt')
     path = search.shortestPath('A', 'A')
     self.assertEqual(path, ['A'], 'Incorrect path when start and goal are \
                                     the same')
 def testset3_pathAE(self):
     '''Graph3 find path from A to E'''
     search = Pathfinding(True, 'data/graph3.txt')
     path = search.shortestPath('A', 'E')
     self.assertEqual(path, ['A', 'C', 'F', 'E'], 'Incorrect path from A to E')
 def testset1_noPath(self):
     '''Graph1 find path from A to E'''
     search = Pathfinding(True, 'data/graph1.txt')
     path = search.shortestPath('A', 'F')
     self.assertIsNone(path)
 def testset1_pathAB(self):
     '''Graph1 find path from A to B'''
     search = Pathfinding(True, 'data/graph1.txt')
     path = search.shortestPath('A', 'B')
     print path
     self.assertEqual(path, ['A', 'C', 'B'], 'Incorrect path from A to B')