def test_blackpawn_valid_move_capture(self): pawn = pieces.Pawn(False, 3, 1) rival1 = pieces.Pawn(True, 4, 2) # down_right rival2 = pieces.Pawn(True, 4, 0) # down_left self.assertTrue(pawn.valid_move(rival1)) self.assertTrue(pawn.valid_move(rival2))
def test_whitepawn_valid_move_capture(self): pawn = pieces.Pawn(True, 12, 1) rival1 = pieces.Pawn(False, 11, 2) # up_right rival2 = pieces.Pawn(False, 11, 0) # up_left self.assertTrue(pawn.valid_move(rival1)) self.assertTrue(pawn.valid_move(rival2))
def test_whitehorse_valid_move_capture(self): horse = pieces.Horse(True, 8, 8) rival1 = pieces.Pawn(False, 6, 9) # L up_right rival2 = pieces.Pawn(False, 10, 9) # L down_right rival3 = pieces.Pawn(False, 10, 7) # L down_left rival4 = pieces.Pawn(False, 6, 7) # L up_left self.assertTrue(horse.valid_move(rival1)) self.assertTrue(horse.valid_move(rival2)) self.assertTrue(horse.valid_move(rival3)) self.assertTrue(horse.valid_move(rival4))
def test_whitebishop_invalid_move_capture(self): bishop = pieces.Bishop(True, 7, 7) rival1 = pieces.Pawn(False, 6, 7) # up rival2 = pieces.Pawn(False, 7, 9) # right rival3 = pieces.Pawn(False, 11, 7) # down rival4 = pieces.Pawn(False, 7, 1) # left self.assertFalse(bishop.valid_move(rival1)) self.assertFalse(bishop.valid_move(rival2)) self.assertFalse(bishop.valid_move(rival3)) self.assertFalse(bishop.valid_move(rival4))
def test_whiterook_valid_move_capture(self): rook = pieces.Rook(True, 7, 7) rival1 = pieces.Pawn(False, 0, 7) # up rival2 = pieces.Pawn(False, 7, 5) # right rival3 = pieces.Pawn(False, 12, 7) # down rival4 = pieces.Pawn(False, 7, 1) # left self.assertTrue(rook.valid_move(rival1)) self.assertTrue(rook.valid_move(rival2)) self.assertTrue(rook.valid_move(rival3)) self.assertTrue(rook.valid_move(rival4))
def test_whiterook_invalid_move_capture(self): rook = pieces.Rook(True, 7, 7) rival1 = pieces.Pawn(False, 5, 5) # up_rigth rival2 = pieces.Pawn(False, 9, 9) # down_right rival3 = pieces.Pawn(False, 9, 5) # down_left rival4 = pieces.Pawn(False, 3, 3) # up_left self.assertFalse(rook.valid_move(rival1)) self.assertFalse(rook.valid_move(rival2)) self.assertFalse(rook.valid_move(rival3)) self.assertFalse(rook.valid_move(rival4))
def test_whitequeen_invalid_move_capture(self): queen = pieces.Queen(True, 8, 8) rival1 = pieces.Pawn(False, 6, 9) rival2 = pieces.Pawn(False, 10, 9) rival3 = pieces.Pawn(False, 10, 7) rival4 = pieces.Pawn(False, 6, 7) self.assertFalse(queen.valid_move(rival1)) self.assertFalse(queen.valid_move(rival2)) self.assertFalse(queen.valid_move(rival3)) self.assertFalse(queen.valid_move(rival4))
def test_whitebishop_valid_move_capture(self): bishop = pieces.Bishop(True, 7, 7) rival1 = pieces.Pawn(False, 3, 3) # up_left rival2 = pieces.Pawn(False, 5, 9) # up_right rival3 = pieces.Pawn(False, 11, 11) # down_right rival4 = pieces.Pawn(False, 8, 6) # down_left self.assertTrue(bishop.valid_move(rival1)) self.assertTrue(bishop.valid_move(rival2)) self.assertTrue(bishop.valid_move(rival3)) self.assertTrue(bishop.valid_move(rival4))
def test_jump_rival_whitepawn(self): factor = -1 white_pawn1 = pieces.Pawn(True, 12, 6) # center-front white_pawn2 = pieces.Pawn(True, 13, 6) # center-back white_pawn3 = pieces.Pawn(True, 12, 2) # side-front white_pawn4 = pieces.Pawn(True, 12, 12) # side-front white_pawn5 = pieces.Pawn(True, 13, 2) # side-back white_pawn6 = pieces.Pawn(True, 13, 12) # side-back white_pawn7 = pieces.Pawn(True, 12, 9) # king-front white_pawn8 = pieces.Pawn(True, 13, 9) # king-back square1 = pieces.EmptySquare(11, 6) square2 = pieces.EmptySquare(12, 6) square3 = pieces.EmptySquare(11, 2) square4 = pieces.EmptySquare(11, 12) square5 = pieces.EmptySquare(12, 2) square6 = pieces.EmptySquare(12, 12) square7 = pieces.EmptySquare(11, 9) square8 = pieces.EmptySquare(12, 9) self.assertEqual(-62.29, score.jump_pawn(white_pawn1, square1, factor)) self.assertEqual(-61.22, score.jump_pawn(white_pawn2, square2, factor)) self.assertEqual(-60.29, score.jump_pawn(white_pawn3, square3, factor)) self.assertEqual(-60.29, score.jump_pawn(white_pawn4, square4, factor)) self.assertEqual(-60.22, score.jump_pawn(white_pawn5, square5, factor)) self.assertEqual(-60.22, score.jump_pawn(white_pawn6, square6, factor)) self.assertEqual(-62.29, score.jump_pawn(white_pawn7, square7, factor)) self.assertEqual(-62.22, score.jump_pawn(white_pawn8, square8, factor))
def test_jump_blackpawn(self): factor = 1 black_pawn1 = pieces.Pawn(False, 3, 6) # center-front black_pawn2 = pieces.Pawn(False, 2, 6) # center-back black_pawn3 = pieces.Pawn(False, 3, 2) # side-front black_pawn4 = pieces.Pawn(False, 3, 12) # side-front black_pawn5 = pieces.Pawn(False, 2, 2) # side-back black_pawn6 = pieces.Pawn(False, 2, 12) # side-back black_pawn7 = pieces.Pawn(False, 3, 9) # king-front black_pawn8 = pieces.Pawn(False, 2, 9) # king-back square1 = pieces.EmptySquare(4, 6) square2 = pieces.EmptySquare(3, 6) square3 = pieces.EmptySquare(4, 2) square4 = pieces.EmptySquare(4, 12) square5 = pieces.EmptySquare(3, 2) square6 = pieces.EmptySquare(3, 12) square7 = pieces.EmptySquare(4, 9) square8 = pieces.EmptySquare(3, 9) self.assertEqual(62.29, score.jump_pawn(black_pawn1, square1, factor)) self.assertEqual(61.22, score.jump_pawn(black_pawn2, square2, factor)) self.assertEqual(60.29, score.jump_pawn(black_pawn3, square3, factor)) self.assertEqual(60.29, score.jump_pawn(black_pawn4, square4, factor)) self.assertEqual(60.22, score.jump_pawn(black_pawn5, square5, factor)) self.assertEqual(60.22, score.jump_pawn(black_pawn6, square6, factor)) self.assertEqual(62.29, score.jump_pawn(black_pawn7, square7, factor)) self.assertEqual(62.22, score.jump_pawn(black_pawn8, square8, factor))
def complete_matrix_pieces(self): for row, pieces_row in enumerate(self.matrix): for col, piece in enumerate(pieces_row): # Creates a list with black pieces if piece == '♟': black_pawn = pieces.Pawn(False, row, col) self.matrix_pieces[row][col] = black_pawn elif piece == '♞': black_horse = pieces.Horse(False, row, col) self.matrix_pieces[row][col] = black_horse elif piece == '♝': black_bishop = pieces.Bishop(False, row, col) self.matrix_pieces[row][col] = black_bishop elif piece == '♜': black_rook = pieces.Rook(False, row, col) self.matrix_pieces[row][col] = black_rook elif piece == '♛': black_queen = pieces.Queen(False, row, col) self.matrix_pieces[row][col] = black_queen elif piece == '♚': black_king = pieces.King(False, row, col) self.matrix_pieces[row][col] = black_king # Creates a list with white pieces elif piece == '♙': white_pawn = pieces.Pawn(True, row, col) self.matrix_pieces[row][col] = white_pawn elif piece == '♘': white_horse = pieces.Horse(True, row, col) self.matrix_pieces[row][col] = white_horse elif piece == '♗': white_bishop = pieces.Bishop(True, row, col) self.matrix_pieces[row][col] = white_bishop elif piece == '♖': white_rook = pieces.Rook(True, row, col) self.matrix_pieces[row][col] = white_rook elif piece == '♕': white_queen = pieces.Queen(True, row, col) self.matrix_pieces[row][col] = white_queen elif piece == '♔': white_king = pieces.King(True, row, col) self.matrix_pieces[row][col] = white_king # Creates a list with empty squares else: empty_square = pieces.EmptySquare(row, col) self.matrix_pieces[row][col] = empty_square
def test_scan_Pawn(self): new_score = score.Score() pawn = pieces.Pawn(True, 2, 13) moves = [{'from_row': 2, 'from_col': 13, 'to_row': 1, 'to_col': 13, 'score': 60.15}, {'from_row': 2, 'from_col': 13, 'to_row': 1, 'to_col': 14, 'score': 43.0}] up = scans.scan_up(self.actual_board, pawn) up_right = scans.scan_up_right(self.actual_board, pawn) right = scans.scan_right(self.actual_board, pawn) down_right = scans.scan_down_right(self.actual_board, pawn) down = scans.scan_down(self.actual_board, pawn) down_left = scans.scan_down_left(self.actual_board, pawn) left = scans.scan_left(self.actual_board, pawn) up_left = scans.scan_up_left(self.actual_board, pawn) L = scans.scan_L(self.actual_board, pawn) player.scan(new_score, up, pawn, True) player.scan(new_score, up_right, pawn, True) player.scan(new_score, right, pawn, True) player.scan(new_score, down_right, pawn, True) player.scan(new_score, down, pawn, True) player.scan(new_score, down_left, pawn, True) player.scan(new_score, left, pawn, True) player.scan(new_score, up_left, pawn, True) player.scan(new_score, L, pawn, True) self.assertEqual(moves, new_score.play_moves)
def test_capture_piece_pawn_bad(self): factor = 1 black_queen = pieces.Queen(False, 8, 8) white_pawn = pieces.Pawn(True, 12, 8) self.assertEqual(11, score.capture_piece(black_queen, white_pawn, factor))
def test_whitepawn_valid_move_jump(self): pawn = pieces.Pawn(True, 12, 1) empty_square1 = pieces.EmptySquare(11, 1) # up empty_square2 = pieces.EmptySquare(10, 1) # up self.assertTrue(pawn.valid_move(empty_square1)) self.assertTrue(pawn.valid_move(empty_square2))
def test_blackpawn_valid_move_jump(self): pawn = pieces.Pawn(False, 3, 1) empty_square1 = pieces.EmptySquare(4, 1) # down empty_square2 = pieces.EmptySquare(5, 1) # down self.assertTrue(pawn.valid_move(empty_square1)) self.assertTrue(pawn.valid_move(empty_square2))
def test_scan_up(self): queen = pieces.Queen(False, 8, 8) pawn = pieces.Pawn(True, 5, 8) self.board_game.matrix_pieces[8][8] = queen self.board_game.matrix_pieces[5][8] = pawn up = scans.scan_up(self.board_game, queen) self.assertIsInstance(next(up), pieces.EmptySquare) self.assertIsInstance(next(up), pieces.EmptySquare) self.assertIsInstance(next(up), pieces.Pawn)
def test_scan_right(self): queen = pieces.Queen(False, 8, 8) pawn = pieces.Pawn(True, 8, 11) self.board_game.matrix_pieces[8][8] = queen self.board_game.matrix_pieces[8][11] = pawn right = scans.scan_right(self.board_game, queen) self.assertIsInstance(next(right), pieces.EmptySquare) self.assertIsInstance(next(right), pieces.EmptySquare) self.assertIsInstance(next(right), pieces.Pawn)
def test_scan_down_left(self): queen = pieces.Queen(False, 8, 8) pawn = pieces.Pawn(True, 11, 5) self.board_game.matrix_pieces[8][8] = queen self.board_game.matrix_pieces[11][5] = pawn down_left = scans.scan_down_left(self.board_game, queen) self.assertIsInstance(next(down_left), pieces.EmptySquare) self.assertIsInstance(next(down_left), pieces.EmptySquare) self.assertIsInstance(next(down_left), pieces.Pawn)
def test_blackpawn_invalid_move_capture(self): pawn = pieces.Pawn(False, 3, 1) rival1 = pieces.Pawn(True, 2, 1) # up rival2 = pieces.Pawn(True, 2, 2) # up_right rival3 = pieces.Pawn(True, 3, 2) # right rival4 = pieces.Pawn(True, 2, 1) # down rival5 = pieces.Pawn(True, 3, 0) # left rival6 = pieces.Pawn(True, 2, 0) # up_left self.assertFalse(pawn.valid_move(rival1)) self.assertFalse(pawn.valid_move(rival2)) self.assertFalse(pawn.valid_move(rival3)) self.assertFalse(pawn.valid_move(rival4)) self.assertFalse(pawn.valid_move(rival5)) self.assertFalse(pawn.valid_move(rival6))
def test_blackpawn_invalid_move_jump(self): pawn = pieces.Pawn(False, 3, 1) empty_square1 = pieces.EmptySquare(2, 1) # up empty_square2 = pieces.EmptySquare(2, 2) # up_right empty_square3 = pieces.EmptySquare(3, 2) # right empty_square4 = pieces.EmptySquare(4, 2) # down_right empty_square5 = pieces.EmptySquare(4, 0) # down_left empty_square6 = pieces.EmptySquare(3, 0) # left empty_square7 = pieces.EmptySquare(2, 0) # up_left self.assertFalse(pawn.valid_move(empty_square1)) self.assertFalse(pawn.valid_move(empty_square2)) self.assertFalse(pawn.valid_move(empty_square3)) self.assertFalse(pawn.valid_move(empty_square4)) self.assertFalse(pawn.valid_move(empty_square5)) self.assertFalse(pawn.valid_move(empty_square6)) self.assertFalse(pawn.valid_move(empty_square7))
def test_whitepawn_invalid_move_jump(self): pawn = pieces.Pawn(True, 12, 1) empty_square1 = pieces.EmptySquare(11, 2) # up_right empty_square2 = pieces.EmptySquare(12, 2) # rigth empty_square3 = pieces.EmptySquare(13, 2) # down_right empty_square4 = pieces.EmptySquare(13, 1) # down empty_square5 = pieces.EmptySquare(13, 0) # down_left empty_square6 = pieces.EmptySquare(12, 0) # left empty_square7 = pieces.EmptySquare(11, 0) # up_left self.assertFalse(pawn.valid_move(empty_square1)) self.assertFalse(pawn.valid_move(empty_square2)) self.assertFalse(pawn.valid_move(empty_square3)) self.assertFalse(pawn.valid_move(empty_square4)) self.assertFalse(pawn.valid_move(empty_square5)) self.assertFalse(pawn.valid_move(empty_square6)) self.assertFalse(pawn.valid_move(empty_square7))
def test_whitekking_invalid_move_capture(self): king = pieces.King(True, 8, 8) rival1 = pieces.Pawn(False, 5, 8) # up rival2 = pieces.Pawn(False, 6, 10) # up_right rival3 = pieces.Pawn(False, 8, 10) # right rival4 = pieces.Pawn(False, 11, 11) # down_right rival5 = pieces.Pawn(False, 12, 8) # down rival6 = pieces.Pawn(False, 11, 5) # down_left rival7 = pieces.Pawn(False, 8, 5) # left rival8 = pieces.Pawn(False, 6, 6) # up_left self.assertFalse(king.valid_move(rival1)) self.assertFalse(king.valid_move(rival2)) self.assertFalse(king.valid_move(rival3)) self.assertFalse(king.valid_move(rival4)) self.assertFalse(king.valid_move(rival5)) self.assertFalse(king.valid_move(rival6)) self.assertFalse(king.valid_move(rival7)) self.assertFalse(king.valid_move(rival8))
def test_whitekking_valid_move_capture(self): king = pieces.King(True, 8, 8) rival1 = pieces.Pawn(False, 7, 8) # up rival2 = pieces.Pawn(False, 7, 9) # up_right rival3 = pieces.Pawn(False, 8, 9) # right rival4 = pieces.Pawn(False, 9, 9) # down_right rival5 = pieces.Pawn(False, 9, 8) # down rival6 = pieces.Pawn(False, 9, 7) # down_left rival7 = pieces.Pawn(False, 8, 7) # left rival8 = pieces.Pawn(False, 7, 7) # up_left self.assertTrue(king.valid_move(rival1)) self.assertTrue(king.valid_move(rival2)) self.assertTrue(king.valid_move(rival3)) self.assertTrue(king.valid_move(rival4)) self.assertTrue(king.valid_move(rival5)) self.assertTrue(king.valid_move(rival6)) self.assertTrue(king.valid_move(rival7)) self.assertTrue(king.valid_move(rival8))
def test_whitehorse_invalid_move_capture(self): horse = pieces.Horse(True, 8, 8) rival1 = pieces.Pawn(False, 7, 8) # up rival2 = pieces.Pawn(False, 7, 9) # up_right rival3 = pieces.Pawn(False, 8, 9) # right rival4 = pieces.Pawn(False, 9, 9) # dow_right rival5 = pieces.Pawn(False, 9, 8) # down rival6 = pieces.Pawn(False, 9, 7) # down_left rival7 = pieces.Pawn(False, 8, 7) # left rival8 = pieces.Pawn(False, 6, 6) # up_left self.assertFalse(horse.valid_move(rival1)) self.assertFalse(horse.valid_move(rival2)) self.assertFalse(horse.valid_move(rival3)) self.assertFalse(horse.valid_move(rival4)) self.assertFalse(horse.valid_move(rival5)) self.assertFalse(horse.valid_move(rival6)) self.assertFalse(horse.valid_move(rival7)) self.assertFalse(horse.valid_move(rival8))
def test_whitekqueen_valid_move_capture(self): queen = pieces.Queen(True, 8, 8) rival1 = pieces.Pawn(False, 1, 8) # up rival2 = pieces.Pawn(False, 5, 11) # up_right rival3 = pieces.Pawn(False, 8, 15) # right rival4 = pieces.Pawn(False, 11, 11) # down_right rival5 = pieces.Pawn(False, 12, 8) # down rival6 = pieces.Pawn(False, 10, 6) # down_left rival7 = pieces.Pawn(False, 8, 3) # left rival8 = pieces.Pawn(False, 5, 5) # up_left self.assertTrue(queen.valid_move(rival1)) self.assertTrue(queen.valid_move(rival2)) self.assertTrue(queen.valid_move(rival3)) self.assertTrue(queen.valid_move(rival4)) self.assertTrue(queen.valid_move(rival5)) self.assertTrue(queen.valid_move(rival6)) self.assertTrue(queen.valid_move(rival7)) self.assertTrue(queen.valid_move(rival8))
def throw_exception_color(): pawn = pieces.Pawn('asdd', 0, 0)
def throw_exception_col_neg(): pawn = pieces.Pawn(True, -1, 0)
def throw_exception_col_higher(): pawn = pieces.Pawn(True, 50, 0)