Ejemplo n.º 1
0
 def test_rect(self):
     screen = Screen(3, 7)
     screen.rect(3, 2)
     self.assertEqual(
         screen.data,
         [[True, True, True, False, False, False, False],
          [True, True, True, False, False, False, False], [False] * 7])
Ejemplo n.º 2
0
 def test_example_input(self):
     scr = Screen(7, 3)
     scr.decode('test_input.txt')
     pixels = np.array([[0, 1, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0],
                        [0, 1, 0, 0, 0, 0, 0]])
     assert (scr.pixels == pixels).all()
     assert scr.count_pixels() == 6
Ejemplo n.º 3
0
 def test_example_input(self):
     screen = Screen(3, 7)
     screen.rect(3, 2)
     screen.rotate_column(1, 1)
     screen.rotate_row(0, 4)
     screen.rotate_column(1, 1)
     self.assertEqual(screen.data,
                      [[False, True, False, False, True, False, True],
                       [True, False, True, False, False, False, False],
                       [False, True, False, False, False, False, False]])
Ejemplo n.º 4
0
class TestScreenMethods:
    scr = Screen(7, 3)

    def test_init(self):
        iscr = Screen(7, 3)
        result = np.zeros((3, 7))
        assert (iscr.pixels == result).all()

    def test_rect(self):
        self.scr.rect(3, 2)
        result = np.array([[1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0],
                           [0, 0, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_rotate_column(self):
        self.scr.rotate_column(1, 1)
        result = np.array([[1, 0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0],
                           [0, 1, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_rotate_row(self):
        self.scr.rotate_row(0, 4)
        result = np.array([[0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 0, 0, 0],
                           [0, 1, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_rotate_column_again(self):
        self.scr.rotate_column(1, 1)
        result = np.array([[0, 1, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0],
                           [0, 1, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_count_pixels(self):
        assert self.scr.count_pixels() == 6
Ejemplo n.º 5
0
 def test_rotate_column(self):
     screen = Screen(3, 7)
     screen.rect(3, 2)
     screen.rotate_column(1, 2)
     self.assertEqual(screen.data,
                      [[True, True, True, False, False, False, False],
                       [True, False, True, False, False, False, False],
                       [False, True, False, False, False, False, False]])
Ejemplo n.º 6
0
class TestScreenInterpreter:
    scr = Screen(7, 3)

    def test_interpret_rect(self):
        self.scr.interpret('rect 3x2')
        result = np.array([[1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0],
                           [0, 0, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_interpret_rotate_column(self):
        self.scr.interpret('rotate column x=1 by 1')
        result = np.array([[1, 0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0],
                           [0, 1, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()

    def test_interpret_rotate_row(self):
        self.scr.interpret('rotate row y=0 by 4')
        result = np.array([[0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 0, 0, 0],
                           [0, 1, 0, 0, 0, 0, 0]])
        assert (self.scr.pixels == result).all()
Ejemplo n.º 7
0
 def test_actual_input(self):
     scr = Screen(50, 6)
     scr.decode('input.txt')
     assert scr.count_pixels() == 123
Ejemplo n.º 8
0
 def test_init(self):
     iscr = Screen(7, 3)
     result = np.zeros((3, 7))
     assert (iscr.pixels == result).all()
Ejemplo n.º 9
0
 def test_counts_lit_pixels(self):
     for data, expected in self.cases:
         screen = Screen(3, 2)
         screen.data = data
         self.assertEqual(screen.count_lit_pixels(), expected)
Ejemplo n.º 10
0
 def test_inits_screen(self):
     screen = Screen(3, 5)
     self.assertEqual(len(screen.data), 3)
     self.assertEqual(len(screen.data[0]), 5)
Ejemplo n.º 11
0
 def test_parses_commands(self):
     screen = Screen(3, 5)
     for command, expected in self.cases:
         parsed = screen.parse_command(command)
         self.assertEqual(parsed[0].__name__, expected[0])
         self.assertEqual(parsed[1], expected[1])