Esempio n. 1
0
    def test_move_row_works(self):
        b = Board(seed=False)
        # Make the top row 2 1 0 1
        b._tiles[0, :] = [2, 1, 0, 1]
        # Move to the left, so look at row left-to-right
        row_1 = ((0, 0), (0, 1), (0, 2), (0, 3))
        b._move_tile_row(row_1)
        self.assertEqual(b._tiles.take(0), 2)
        self.assertEqual(b._tiles.take(1), 2)
        b._move_tile_row(row_1)
        self.assertEqual(b._tiles.take(0), 4)

        # Make the second row 1 1 0 2
        b._tiles[1, :] = [1, 1, 0, 2]
        row_2 = ((1, 0), (1, 1), (1, 2), (1, 3))
        b._move_tile_row(row_2)
        # Expect 2 2 0 0
        self.assertEqual(b._tiles.take(4), 2)
        self.assertEqual(b._tiles.take(5), 2)
        b._move_tile_row(row_2)
        self.assertEqual(b._tiles.take(4), 4)

        # First column is now 2 2 0 0
        # Move up to merge
        col_1 = ((0, 0), (1, 0), (2, 0), (3, 0))
        b._move_tile_row(col_1)
        self.assertEqual(b._tiles.take(0), 8)