Exemplo n.º 1
0
class TiledMapTests(TestCase):

    def setUp(self):
        frame = Frame(TEST_GAME_CONTEXT.screen, Rect(90, 50, 128, 128))
        self.tm = TiledMap(frame, TEST_GAME_CONTEXT.tile_factory)

    def test_fill_map(self):
        self.tm.set_map(TEST_MAP)

    def test_caching(self):
        bigmap = ["." * 50 for i in range(50)]
        self.tm.set_map('\n'.join(bigmap))
        for i in range(10):
            self.tm.cache_map()

    def test_win_size(self):
        self.tm.set_map(TEST_MAP)
        self.assertEqual(self.tm.win_size.x, 4)
        self.assertEqual(self.tm.win_size.y, 4)

    def test_is_visible(self):
        self.tm.set_map(TEST_MAP)
        self.assertTrue(self.tm.is_visible(Vector(0, 0)))
        self.assertTrue(self.tm.is_visible(Vector(1, 1)))
        self.assertFalse(self.tm.is_visible(Vector(5, 1)))
        self.assertFalse(self.tm.is_visible(Vector(1, 5)))
        self.assertFalse(self.tm.is_visible(Vector(-5, -1)))

    def test_check_position(self):
        self.tm.set_map(TEST_MAP)
        self.assertFalse(self.tm.check_position(Vector(-1, -1)))
        self.assertFalse(self.tm.check_position(Vector(5, 1)))
        self.assertFalse(self.tm.check_position(Vector(1, 5)))
        self.assertTrue(self.tm.check_position(Vector(0, 0)))
        self.assertTrue(self.tm.check_position(Vector(1, 1)))
        self.assertTrue(self.tm.check_position(Vector(4, 4)))

    def test_check_move(self):
        self.tm.set_map(TEST_MAP)
        self.assertFalse(self.tm.check_move(Vector(-1, -1)))
        self.assertTrue(self.tm.check_move(Vector(1, 1)))
        self.tm.zoom_to(Vector(1, 1))
        self.assertFalse(self.tm.check_move(Vector(1, 1)))
        self.assertTrue(self.tm.check_move(Vector(-1, -1)))

    def test_zoom_to(self):
        self.tm.set_map(TEST_MAP)
        self.tm.zoom_to(Vector(1, 1))
        self.assertEqual(self.tm.map_pos.x, 1)
        self.assertEqual(self.tm.map_pos.y, 1)

    # def test_load_map(self):
    #     self.tm.load_map(SAMPLE_MAP_FILE)
    #     self.assertEqual(len(self.tm.map), 10)
    #     self.assertEqual(len(self.tm.map[0]), 10)

    @showdoc
    def test_draw(self):
        """Draws two 5x5 locations of a map with boxes."""
        self.tm.set_map(open(SAMPLE_MAP_FILE).read())
        self.tm.draw()
        pygame.display.update()
        time.sleep(DELAY)
        self.tm.zoom_to(Vector(4, 4))
        self.tm.draw()
        pygame.display.update()