All checks were successful
Python tests (make) / test (push) Successful in 14s
Reviewed-on: #29 Co-authored-by: Josh <josh@joshuaschuett.com> Co-committed-by: Josh <josh@joshuaschuett.com>
83 lines
2.5 KiB
Python
83 lines
2.5 KiB
Python
from test.base import ChessLibTestBase
|
|
from binding.python_c_ffi import bb_from
|
|
from binding.python_c_ffi import sq
|
|
from binding.python_c_ffi import BLACK
|
|
from binding.python_c_ffi import WHITE
|
|
|
|
|
|
class KnightFixedCases(ChessLibTestBase):
|
|
def test_knight_a1(self):
|
|
expected = bb_from("b3", "c2")
|
|
self.assertEqual(int(self.chess_ffi.KNIGHT_ATTACKS[sq("a1")]), expected)
|
|
|
|
|
|
def test_knight_d4(self):
|
|
expected = bb_from("b5","b3","c6","e6","f5","f3","c2","e2")
|
|
actual = int(self.chess_ffi.KNIGHT_ATTACKS[sq("d4")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_knight_h8(self):
|
|
expected = bb_from("f7","g6")
|
|
actual = int(self.chess_ffi.KNIGHT_ATTACKS[sq("h8")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
class PawnFixedCases(ChessLibTestBase):
|
|
def test_white_pawn_a2(self):
|
|
expected = bb_from("b3")
|
|
actual = int(self.chess_ffi.PAWN_ATTACKS[WHITE][sq("a2")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_white_pawn_b2(self):
|
|
expected = bb_from("a3", "c3")
|
|
actual = int(self.chess_ffi.PAWN_ATTACKS[WHITE][sq("b2")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_black_pawn_a2(self):
|
|
expected = bb_from("b6")
|
|
actual = int(self.chess_ffi.PAWN_ATTACKS[BLACK][sq("a7")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_black_pawn_b2(self):
|
|
expected = bb_from("a6", "c6")
|
|
actual = int(self.chess_ffi.PAWN_ATTACKS[BLACK][sq("b7")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
class KingFixedCases(ChessLibTestBase):
|
|
def test_king_a1(self):
|
|
expected = bb_from("a2", "b1", "b2")
|
|
actual = int(self.chess_ffi.KING_ATTACKS[sq("a1")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_king_a8(self):
|
|
expected = bb_from("a7", "b8", "b7")
|
|
actual = int(self.chess_ffi.KING_ATTACKS[sq("a8")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_king_h1(self):
|
|
expected = bb_from("h2", "g1", "g2")
|
|
actual = int(self.chess_ffi.KING_ATTACKS[sq("h1")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_king_h8(self):
|
|
expected = bb_from("h7", "g7", "g8")
|
|
actual = int(self.chess_ffi.KING_ATTACKS[sq("h8")])
|
|
self.assertEqual(actual, expected)
|
|
|
|
|
|
def test_king_d4(self):
|
|
expected = bb_from(
|
|
"c3", "d3", "e3",
|
|
"c4", "e4",
|
|
"c5", "d5", "e5",
|
|
)
|
|
actual = int(self.chess_ffi.KING_ATTACKS[sq("d4")])
|
|
self.assertEqual(actual, expected) |