Exemplo n.º 1
0
    def test_create_navigator(self):
        console_input = iter(["2 2 1", "x.", ".x"])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        nav = Navigator(gm)
        self.assertIsNotNone(nav)
Exemplo n.º 2
0
    def test_two_moves_on_a_square(self):
        console_input = iter(["2 2 1", "..", ".."])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()
        gm.start_coords()
        nav = Navigator(gm)

        for _ in range(2):
            nav.next_move()
Exemplo n.º 3
0
    def test_not_square(self):
        console_input = iter([
            "4 2 1",
            "x...",
            "...x"
        ])
        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        self.assertEqual(gm.height, 2)
        self.assertEqual(gm.width, 4)
Exemplo n.º 4
0
    def test_start_coords_sets_my_position(self):
        console_input = iter([
            "2 2 1",
            "xx",
            ".x"
        ])
        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        (x, y) = gm.start_coords()

        self.assertEqual(gm.player_pos, (x, y))
Exemplo n.º 5
0
    def test_spiral_outwards(self):
        console_input = iter(
            ["5 5 1", ".....", "xxxx.", "...x.", ".xxx.", "....."])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()
        gm.player_pos = (2, 2)  # Force player pos
        nav = Navigator(gm)

        route = nav.plan_route_to((0, 0))
        print(route)
        self.assertEqual(len(route), 16)
Exemplo n.º 6
0
    def test_avoid_obstacles(self):
        console_input = iter(
            ["5 5 1", ".....", ".....", ".....", ".xxxx", "....."])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()
        gm.player_pos = (0, 0)  # Force player pos
        nav = Navigator(gm)

        route = nav.plan_route_to((4, 4))
        print(route)
        self.assertListEqual(route, ['S', 'S', 'S', 'S', 'E', 'E', 'E', 'E'])
Exemplo n.º 7
0
    def test_impossible_route(self):
        console_input = iter(
            ["5 5 1", ".x...", ".x...", ".x...", ".x...", ".x..."])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()
        gm.player_pos = (0, 0)  # Force player pos
        nav = Navigator(gm)

        route = nav.plan_route_to((4, 4))
        print(route)
        self.assertIsNone(route)
Exemplo n.º 8
0
    def test_start_coords(self):
        console_input = iter([
            "2 2 1",
            "xx",
            ".x"
        ])
        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        (x, y) = gm.start_coords()

        self.assertEqual(x, 0)
        self.assertEqual(y, 1)
Exemplo n.º 9
0
    def test_map_sea(self):
        console_input = iter([
            "4 2 1",
            "x...",
            "...x"
        ])
        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        self.assertEqual(gm.is_sea(0, 0), False)
        self.assertEqual(gm.is_sea(1, 0), True)
        self.assertEqual(gm.is_sea(2, 1), True)
        self.assertEqual(gm.is_sea(3, 1), False)
Exemplo n.º 10
0
    def test_map_correct_size(self):
        console_input = iter([
            "2 2 1",
            "x.",
            ".x"
        ])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        self.assertEqual(gm.player_id, 1)
        self.assertEqual(gm.height, 2)
        self.assertEqual(gm.width, 2)
Exemplo n.º 11
0
    def test_map_land(self):
        console_input = iter([
            "2 2 1",
            "x.",
            ".x"
        ])

        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        self.assertEqual(gm.is_land(0, 0), True)
        self.assertEqual(gm.is_land(1, 0), False)
        self.assertEqual(gm.is_land(0, 1), False)
        self.assertEqual(gm.is_land(1, 1), True)
Exemplo n.º 12
0
    def test_valid_coords(self):
        console_input = iter([
            "2 2 1",
            "..",
            ".."
        ])
        mock.builtins.input = lambda: next(console_input)
        gm = build_map()

        self.assertEqual(gm.is_valid(0, 0), True)
        self.assertEqual(gm.is_valid(-1, 0), False)
        self.assertEqual(gm.is_valid(0, -1), False)
        self.assertEqual(gm.is_valid(1, 1), True)
        self.assertEqual(gm.is_valid(2, 0), False)
        self.assertEqual(gm.is_valid(0, 2), False)