Beispiel #1
0
    def test_create_from_invalid(self):
        v = vehicle.Vehicle('X', 0, 0, 'H')
        with self.assertRaises(TypeError):
            r = rushhour.RushHour(v)

        with self.assertRaises(TypeError):
            r = rushhour.RushHour([v])

        with self.assertRaises(TypeError):
            r = rushhour.RushHour(tuple([v]))
Beispiel #2
0
 def test_moves_one_car_middle_vertical(self):
     v = vehicle.Vehicle('X', 0, 1, 'V')
     expected_v1 = vehicle.Vehicle('X', 0, 0, 'V')
     expected_v2 = vehicle.Vehicle('X', 0, 2, 'V')
     r = rushhour.RushHour(set([v]))
     expected_r1 = rushhour.RushHour(set([expected_v1]))
     expected_r2 = rushhour.RushHour(set([expected_v2]))
     next_moves = set([move for move in r.moves()])
     self.assertEqual(2, len(next_moves))
     self.assertIn(expected_r1, next_moves)
     self.assertIn(expected_r2, next_moves)
Beispiel #3
0
 def test_get_board_vertical_bottom_left(self):
     v = vehicle.Vehicle('X', 0, 4, 'V')
     r = rushhour.RushHour(set([v]))
     expected_board = [[' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       ['X', ' ', ' ', ' ', ' ', ' '],
                       ['X', ' ', ' ', ' ', ' ', ' ']]
     for line, expected_line in zip(r.get_board(), expected_board):
         self.assertEqual(line, expected_line)
Beispiel #4
0
 def test_get_board_horizontal_top_right(self):
     v = vehicle.Vehicle('X', 4, 0, 'H')
     r = rushhour.RushHour(set([v]))
     expected_board = [[' ', ' ', ' ', ' ', 'X', 'X'],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' ']]
     for line, expected_line in zip(r.get_board(), expected_board):
         self.assertEqual(line, expected_line)
Beispiel #5
0
 def test_get_board_alternative_truck(self):
     v = vehicle.Vehicle('O', 0, 0, 'H')
     r = rushhour.RushHour(set([v]))
     expected_board = [['O', 'O', 'O', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' '],
                       [' ', ' ', ' ', ' ', ' ', ' ']]
     for line, expected_line in zip(r.get_board(), expected_board):
         self.assertEqual(line, expected_line)
Beispiel #6
0
 def test_create_from_set(self):
     v = vehicle.Vehicle('X', 0, 0, 'H')
     r = rushhour.RushHour(set([v]))
     self.assertEqual(r.vehicles, set([v]))
Beispiel #7
0
 def test_duplicate_vehicle_id(self):
     v1 = vehicle.Vehicle('X', 0, 0, 'H')
     v2 = vehicle.Vehicle('X', 1, 1, 'V')
     with self.assertRaises(ValueError):
         r = rushhour.RushHour(set([v1,v2]))
Beispiel #8
0
 def test_not_solved(self):
     v = vehicle.Vehicle('X', 0, 0, 'H')
     r = rushhour.RushHour(set([v]))
     self.assertFalse(r.solved())
Beispiel #9
0
 def test_solved(self):
     v = vehicle.Vehicle('X', 4, 2, 'H')
     r = rushhour.RushHour(set([v]))
     self.assertTrue(r.solved())