Exemple #1
0
    def test_invert(self):
        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        s = Sprite(5, 5)
        # key the sprite so that looks like this:
        # 1 1 0 1 1
        # 1 1 0 1 1
        # 1 1 1 1 0
        # 1 1 1 1 1
        # 1 1 1 1 1
        fill_sprite(s)
        s.set_pixel(2, 4, 0)
        s.set_pixel(2, 3, 0)
        s.set_pixel(4, 2, 0)
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0],
                    [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s.pixel_state, expected)

        s2 = s.clone()
        s2.invert_vertical()
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [0, 0, 1, 1, 1],
                    [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        s2 = s.clone()
        s2.invert_horizontal()
        expected = [[1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0],
                    [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)
Exemple #2
0
    def test_invert(self):
        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        s = Sprite(5, 5)
        # key the sprite so that looks like this:
        # 1 1 0 1 1
        # 1 1 0 1 1
        # 1 1 1 1 0
        # 1 1 1 1 1
        # 1 1 1 1 1
        fill_sprite(s)
        s.set_pixel(2, 4, 0)
        s.set_pixel(2, 3, 0)
        s.set_pixel(4, 2, 0)
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s.pixel_state, expected)

        s2 = s.clone()
        s2.invert_vertical()
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        s2 = s.clone()
        s2.invert_horizontal()
        expected = [[1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)
    def test_rotate90(self):

        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        s = Sprite(5, 5)
        # key the sprite so that looks like this:
        # 1 1 0 1 1
        # 1 1 0 1 1
        # 1 1 1 1 0
        # 1 1 1 1 1
        # 1 1 1 1 1
        fill_sprite(s)
        s.set_pixel(2, 4, 0)
        s.set_pixel(2, 3, 0)
        s.set_pixel(4, 2, 0)
        expected = [[1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1],
                    [1, 1, 1, 0, 0],
                    [1, 1, 1, 1, 1],
                    [1, 1, 0, 1, 1]]
        self.assertEqual(s.pixel_state, expected)

        # rotate 90deg
        s2 = s.clone()
        s2.rotate90(1)
        expected = [[1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1],
                    [0, 1, 1, 1, 1],
                    [1, 1, 0, 1, 1],
                    [1, 1, 0, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        # rotate 180deg
        s2 = s.clone()
        s2.rotate90(2)
        expected = [[1, 1, 0, 1, 1],
                    [1, 1, 1, 1, 1],
                    [0, 0, 1, 1, 1],
                    [1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        # rotate 270deg
        s2 = s.clone()
        s2.rotate90(3)
        expected = [[1, 1, 0, 1, 1],
                    [1, 1, 0, 1, 1],
                    [1, 1, 1, 1, 0],
                    [1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)
Exemple #4
0
    def test_rotate90(self):
        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        s = Sprite(5, 5)
        # key the sprite so that looks like this:
        # 1 1 0 1 1
        # 1 1 0 1 1
        # 1 1 1 1 0
        # 1 1 1 1 1
        # 1 1 1 1 1
        fill_sprite(s)
        s.set_pixel(2, 4, 0)
        s.set_pixel(2, 3, 0)
        s.set_pixel(4, 2, 0)
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 0],
                    [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s.pixel_state, expected)

        # rotate 90deg
        s2 = s.clone()
        s2.rotate90(1)
        expected = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1],
                    [1, 1, 0, 1, 1], [1, 1, 0, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        # rotate 180deg
        s2 = s.clone()
        s2.rotate90(2)
        expected = [[1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 0, 1, 1, 1],
                    [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)

        # rotate 270deg
        s2 = s.clone()
        s2.rotate90(3)
        expected = [[1, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 0],
                    [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
        self.assertEqual(s2.pixel_state, expected)
Exemple #5
0
def build_sprite(rows):
    s = Sprite(5, 5)
    for i in range(5):
        s.set_row(i, rows[i])
    return s
Exemple #6
0
    def test_draw_sprite(self):
        self.codebug.clear()

        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        sprite = Sprite(4, 4)
        fill_sprite(sprite)

        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x1E)
        self.assertEqual(self.codebug.get_row(2), 0x1E)
        self.assertEqual(self.codebug.get_row(1), 0x1E)
        self.assertEqual(self.codebug.get_row(0), 0x1E)

        self.codebug.draw_sprite(1, 1, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x0F)
        self.assertEqual(self.codebug.get_row(3), 0x0F)
        self.assertEqual(self.codebug.get_row(2), 0x0F)
        self.assertEqual(self.codebug.get_row(1), 0x0F)
        self.assertEqual(self.codebug.get_row(0), 0x00)

        sprite = Sprite(2, 3)
        fill_sprite(sprite)
        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x00)
        self.assertEqual(self.codebug.get_row(2), 0x18)
        self.assertEqual(self.codebug.get_row(1), 0x18)
        self.assertEqual(self.codebug.get_row(0), 0x18)

        sprite = Sprite(3, 3)
        fill_sprite(sprite)
        sprite.set_pixel(1, 2, 0)  # key the sprite

        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x00)
        self.assertEqual(self.codebug.get_row(2), 0x14)
        self.assertEqual(self.codebug.get_row(1), 0x1C)
        self.assertEqual(self.codebug.get_row(0), 0x1C)

        self.codebug.draw_sprite(2, 2, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x05)
        self.assertEqual(self.codebug.get_row(3), 0x07)
        self.assertEqual(self.codebug.get_row(2), 0x07)
        self.assertEqual(self.codebug.get_row(1), 0x00)
        self.assertEqual(self.codebug.get_row(0), 0x00)

        hello_str = StringSprite('Hello!')
        self.codebug.draw_sprite(0, 0, hello_str)
        self.assertEqual(self.codebug.get_row(4), 0x12)
        self.assertEqual(self.codebug.get_row(3), 0x12)
        self.assertEqual(self.codebug.get_row(2), 0x1E)
        self.assertEqual(self.codebug.get_row(1), 0x12)
        self.assertEqual(self.codebug.get_row(0), 0x12)
        self.codebug.draw_sprite(-7, 0, hello_str)
        self.assertEqual(self.codebug.get_row(4), 0x03)
        self.assertEqual(self.codebug.get_row(3), 0x11)
        self.assertEqual(self.codebug.get_row(2), 0x19)
        self.assertEqual(self.codebug.get_row(1), 0x01)
        self.assertEqual(self.codebug.get_row(0), 0x1B)
    def test_draw_sprite(self):
        self.codebug.clear()

        def fill_sprite(s):
            for x in range(s.width):
                for y in range(s.height):
                    s.set_pixel(x, y, 1)

        sprite = Sprite(4, 4)
        fill_sprite(sprite)

        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x1E)
        self.assertEqual(self.codebug.get_row(2), 0x1E)
        self.assertEqual(self.codebug.get_row(1), 0x1E)
        self.assertEqual(self.codebug.get_row(0), 0x1E)

        self.codebug.draw_sprite(1, 1, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x0F)
        self.assertEqual(self.codebug.get_row(3), 0x0F)
        self.assertEqual(self.codebug.get_row(2), 0x0F)
        self.assertEqual(self.codebug.get_row(1), 0x0F)
        self.assertEqual(self.codebug.get_row(0), 0x00)

        sprite = Sprite(2, 3)
        fill_sprite(sprite)
        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x00)
        self.assertEqual(self.codebug.get_row(2), 0x18)
        self.assertEqual(self.codebug.get_row(1), 0x18)
        self.assertEqual(self.codebug.get_row(0), 0x18)

        sprite = Sprite(3, 3)
        fill_sprite(sprite)
        sprite.set_pixel(1, 2, 0) # key the sprite

        self.codebug.draw_sprite(0, 0, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x00)
        self.assertEqual(self.codebug.get_row(3), 0x00)
        self.assertEqual(self.codebug.get_row(2), 0x14)
        self.assertEqual(self.codebug.get_row(1), 0x1C)
        self.assertEqual(self.codebug.get_row(0), 0x1C)

        self.codebug.draw_sprite(2, 2, sprite)
        self.assertEqual(self.codebug.get_row(4), 0x05)
        self.assertEqual(self.codebug.get_row(3), 0x07)
        self.assertEqual(self.codebug.get_row(2), 0x07)
        self.assertEqual(self.codebug.get_row(1), 0x00)
        self.assertEqual(self.codebug.get_row(0), 0x00)

        hello_str = StringSprite('Hello!')
        self.codebug.draw_sprite(0, 0, hello_str)
        self.assertEqual(self.codebug.get_row(4), 0x12)
        self.assertEqual(self.codebug.get_row(3), 0x12)
        self.assertEqual(self.codebug.get_row(2), 0x1E)
        self.assertEqual(self.codebug.get_row(1), 0x12)
        self.assertEqual(self.codebug.get_row(0), 0x12)
        self.codebug.draw_sprite(-7, 0, hello_str)
        self.assertEqual(self.codebug.get_row(4), 0x03)
        self.assertEqual(self.codebug.get_row(3), 0x11)
        self.assertEqual(self.codebug.get_row(2), 0x19)
        self.assertEqual(self.codebug.get_row(1), 0x01)
        self.assertEqual(self.codebug.get_row(0), 0x1B)