Ejemplo n.º 1
0
 def test_diff_alpha_labyrinth(self):
     ways.evaluate_ways(self.lab)
     ways.find_exit(self.lab)
     self.lab.alpha = 1
     way = ways.way_to_exit(self.lab)[0]
     self.assertEqual(11, len(way))
     self.lab.alpha = 0
     way = ways.way_to_exit(self.lab)[0]
     self.assertEqual(3, len(way))
Ejemplo n.º 2
0
 def test_two_exits(self):
     lab = labth()
     lab.alpha = 1
     lab.bombs = 0
     with open(os.path.join("Tests", "two_exits_input.txt"), 'r') as lab_:
         lab = fileinput.process_file(lab, lab_)
     ways.evaluate_ways(lab)
     way = ways.way_to_exit(lab)[0]
     self.assertEqual((1, 5), (way[len(way) - 1].i, way[len(way) - 1].j))
Ejemplo n.º 3
0
 def test_impassable_labyrinth(self):
     lab = labth()
     lab.alpha = 1
     lab.bombs = 1
     with open(os.path.join("Tests", "impassable_lab_input.txt"),
               'r') as lab_:
         lab = fileinput.process_file(lab, lab_)
     ways.evaluate_ways(lab)
     self.assertEqual(-1, ways.way_to_exit(lab)[2])
Ejemplo n.º 4
0
 def test_dif_surfaces(self):
     lab = labth()
     lab.alpha = 1
     lab.bombs = 0
     lab.landtypes['c'] = 3
     lab.landtypes['b'] = 2
     with open(os.path.join("Tests", "dif_surf_input.txt"), 'r') as lab_:
         lab = fileinput.process_file(lab, lab_)
     ways.evaluate_ways(lab)
     time = ways.way_to_exit(lab)[2]
     self.assertEqual(11, time)
Ejemplo n.º 5
0
def main():
    try:
        labth = LabyrinthClass()
        labth = parsing.parse_input(labth)
        if not parsing.correct_input(labth):
            return
        labth = fileinput.input_file(labth)
        if not labth or not len(labth.finish):
            return
        ways.evaluate_ways(labth)
        way, bombs, time = ways.way_to_exit(labth)
        output.out(labth, way, bombs, labth.alpha, time)
    except (ValueError) as e:
        print(e)
Ejemplo n.º 6
0
 def test_output_WASD(self):
     ways.evaluate_ways(self.lab)
     ways.find_exit(self.lab)
     way = ways.way_to_exit(self.lab)[0]
     self.assertEqual(self.lab.start[0], way[0].i)
     self.assertEqual(self.lab.start[1], way[0].j)
     finish = False
     for exit in self.lab.finish:
         if exit[0] == \
                 way[len(way) - 1].i and exit[1] == way[len(way) - 1].j:
             finish = True
     self.assertTrue(finish)
     cur = 0
     first = True
     for next in way:
         if first:
             first = False
             cur = next
             continue
         dif = abs(cur.i - next.i) + abs(cur.j - next.j)
         self.assertLess(dif, 2)
         self.assertGreaterEqual(dif, 0)
         cur = next