def test_move_left(self): config = Configuration().create(["0 0 0 0 0 0", "1 0 0 1 0 0", "1 0 0 0 0 0"]) display = BoardDisplay(None, config) completion = MoveCompletion(config) old_points = [Point(1, 3)] new_points = completion.move(LEFT, old_points) completion.move_tiles(old_points, new_points, T_TILE) self.assertEqual([Point(1, 2)], new_points) self.assertEqual("0 0 0 0 0 0 \n" + "1 0 1 0 0 0 \n" + "1 0 0 0 0 0 \n", display.get_pieces_string())
def test_shift_all_rows_given_start_row(self): config = Configuration().create(["0 0 1 0 0", "0 0 1 1 0", "0 0 0 0 0", "1 1 1 1 1"]) pieces = RowShift(config).down(2) display = BoardDisplay(None, pieces) self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 0 1 1 0 \n"\ +"1 1 1 1 1 \n", display.get_pieces_string())
def test_shift_all_rows_down_with_things_on_top_row(self): config = Configuration().create(["0 0 1 0 0", "0 0 1 1 0", "1 1 1 1 1", "0 0 0 0 0"]) pieces = RowShift(config).down(3) display = BoardDisplay(None, pieces) self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 0 1 1 0 \n"\ +"1 1 1 1 1 \n", display.get_pieces_string())
def test_step_until_settled_and_game_over(self): config = Configuration().create(["0 0 0 0 0", "0 0 0 0 0", "0 0 0 0 0", "0 0 0 0 0"]) board = Board(config, OneShapeSpawn(T_TILE)) display = BoardDisplay(board) self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 0 1 0 0 \n"\ +"0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) board.step() self.assertEqual( "0 0 1 0 0 \n"\ +"0 1 1 1 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) self.assertFalse(board.is_game_over()) board.step() self.assertEqual( "0 0 1 0 0 \n"\ +"0 1 1 1 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) self.assertTrue(board.is_game_over())
def test_clear_all_full_rows_and_return_rows_cleared(self): config = Configuration().create( ["0 0 0 0 0", "0 0 0 0 0", "1 0 1 0 1", "1 1 1 1 1", "1 0 1 0 1", "1 1 1 1 1",]) rows = RowClearing(config).clear_and_get_rows() display = BoardDisplay(None, config) self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"1 0 1 0 1 \n"\ +"0 0 0 0 0 \n"\ +"1 0 1 0 1 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) self.assertEqual([3, 5], rows)
def setUp(self): config = main.config.Configuration().create(["0 0 0 0 0 0", "1 0 0 0 0 0", "1 0 0 0 0 0"]) self.board = Board(config, OneShapeSpawn(T_TILE)) self.display = BoardDisplay(self.board) self.board.step() self.assertEqual( "0 0 1 1 1 0 \n"\ +"1 0 0 0 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string())
def test_step_when_row_full_clears_all_full_rows(self): config = main.config.Configuration().create(["0 0 0 0 0 0", "1 0 0 0 0 0", "1 1 1 1 1 1"]) self.board = Board(config, OneShapeSpawn(T_TILE)) self.board.step() self.display = BoardDisplay(self.board) self.assertEqual( "0 0 1 1 1 0 \n"\ +"0 0 0 0 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) self.assertEqual(1, self.board.get_rows_cleared())
class Test(unittest.TestCase): def setUp(self): config = main.config.Configuration().create(["0 0 0 0 0 0", "1 0 0 0 0 0", "1 0 0 0 0 0"]) self.board = Board(config, OneShapeSpawn(T_TILE)) self.display = BoardDisplay(self.board) self.board.step() self.assertEqual( "0 0 1 1 1 0 \n"\ +"1 0 0 0 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) def test_move_in_dir(self): self.board.move(LEFT) self.assertEqual( "0 1 1 1 0 0 \n"\ +"1 0 0 0 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) self.board.step() self.assertEqual( "0 0 1 0 0 0 \n"\ +"1 1 1 1 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) self.board.move(LEFT) self.assertEqual( "0 0 1 0 0 0 \n"\ +"1 1 1 1 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) def test_rotate(self): self.board.step() self.board.rotate() self.assertEqual( "0 0 0 1 0 0 \n"\ +"1 0 0 1 1 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string()) self.board.rotate() self.assertEqual( "0 0 0 0 0 0 \n"\ +"1 0 1 1 1 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string()) self.board.rotate() self.assertEqual( "0 0 0 1 0 0 \n"\ +"1 0 1 1 0 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string()) self.board.step() self.assertEqual( "0 0 0 1 0 0 \n"\ +"1 0 1 1 0 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string()) self.assertTrue(self.board.is_game_over()) def test_step_when_row_full_clears_all_full_rows(self): config = main.config.Configuration().create(["0 0 0 0 0 0", "1 0 0 0 0 0", "1 1 1 1 1 1"]) self.board = Board(config, OneShapeSpawn(T_TILE)) self.board.step() self.display = BoardDisplay(self.board) self.assertEqual( "0 0 1 1 1 0 \n"\ +"0 0 0 0 0 0 \n"\ +"1 0 0 0 0 0 \n", self.display.get_pieces_string()) self.assertEqual(1, self.board.get_rows_cleared()) def test_drop_shape(self): config = main.config.Configuration().create(["0 0 0 0 0 0", "1 0 0 0 0 0", "1 1 0 0 0 1"]) self.board = Board(config, OneShapeSpawn(T_TILE)) self.board.step() self.display = BoardDisplay(self.board) self.board.drop_shape() self.assertEqual( "0 0 0 0 0 0 \n"\ +"1 0 0 1 0 0 \n"\ +"1 1 1 1 1 1 \n", self.display.get_pieces_string()) self.board.step() self.assertEqual( "0 0 1 1 1 0 \n"\ +"0 0 0 0 0 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string()) self.board.step() self.assertEqual( "0 0 0 1 0 0 \n"\ +"0 0 1 1 1 0 \n"\ +"1 0 0 1 0 0 \n", self.display.get_pieces_string())
def test_game_scores_for_rows_cleared(self): config = Configuration().create(["0 0 0 0 0", "0 0 0 0 0", "0 0 0 0 0", "0 0 0 0 0", "0 0 0 0 0"]) board = Board(config, OneShapeSpawn(T_TILE)) display = BoardDisplay(board) game = Game(board) game.step() self.assertEqual( "0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n", display.get_pieces_string()) game.step() game.step() game.step() game.step() self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) game.step() self.assertEqual( "0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) game.step() game.rotate() self.assertEqual( "0 0 1 0 0 \n"\ +"0 0 1 1 0 \n"\ +"0 0 1 0 0 \n"\ +"0 0 1 0 0 \n"\ +"0 1 1 1 0 \n", display.get_pieces_string()) game.move(LEFT) game.move(LEFT) game.drop() self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"1 0 0 0 0 \n"\ +"1 1 1 0 0 \n"\ +"1 1 1 1 0 \n", display.get_pieces_string()) game.step() game.step() game.rotate() game.rotate() game.rotate() game.move(RIGHT) game.move(RIGHT) game.drop() self.assertEqual( "0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"1 0 0 0 1 \n"\ +"1 1 1 1 1 \n"\ +"1 1 1 1 1 \n", display.get_pieces_string()) game.step() self.assertEqual( "0 1 1 1 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"0 0 0 0 0 \n"\ +"1 0 0 0 1 \n", display.get_pieces_string()) self.assertEqual(200, game.get_score()) self.assertEqual(48, game.get_speed())