Files
chess/test/test_piece_attack_cache.py
Josh 5b4dc74681
All checks were successful
Python tests (make) / test (push) Successful in 10s
Update test suite
Put all ffi code into its own module for clarity.
2025-08-17 17:23:42 -04:00

83 lines
2.4 KiB
Python

from test.base import ChessLibTestBase
from test.chess_ffi import bb_from
from test.chess_ffi import draw_bb
from test.chess_ffi import sq
from test.chess_ffi import BLACK, WHITE
class KnightFixedCases(ChessLibTestBase):
def test_knight_a1(self):
expected = bb_from("b3", "c2")
self.assertEqual(int(self.KNIGHT_ATTACKS[sq("a1")]), expected)
def test_knight_d4(self):
expected = bb_from("b5","b3","c6","e6","f5","f3","c2","e2")
actual = int(self.KNIGHT_ATTACKS[sq("d4")])
self.assertEqual(actual, expected)
def test_knight_h8(self):
expected = bb_from("f7","g6")
actual = int(self.KNIGHT_ATTACKS[sq("h8")])
self.assertEqual(actual, expected)
class PawnFixedCases(ChessLibTestBase):
def test_white_pawn_a2(self):
expected = bb_from("b3")
actual = int(self.PAWN_ATTACKS[WHITE][sq("a2")])
self.assertEqual(actual, expected)
def test_white_pawn_b2(self):
expected = bb_from("a3", "c3")
actual = int(self.PAWN_ATTACKS[WHITE][sq("b2")])
self.assertEqual(actual, expected)
def test_black_pawn_a2(self):
expected = bb_from("b6")
actual = int(self.PAWN_ATTACKS[BLACK][sq("a7")])
self.assertEqual(actual, expected)
def test_black_pawn_b2(self):
expected = bb_from("a6", "c6")
actual = int(self.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.KING_ATTACKS[sq("a1")])
self.assertEqual(actual, expected)
def test_king_a8(self):
expected = bb_from("a7", "b8", "b7")
actual = int(self.KING_ATTACKS[sq("a8")])
self.assertEqual(actual, expected)
def test_king_h1(self):
expected = bb_from("h2", "g1", "g2")
actual = int(self.KING_ATTACKS[sq("h1")])
self.assertEqual(actual, expected)
def test_king_h8(self):
expected = bb_from("h7", "g7", "g8")
actual = int(self.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.KING_ATTACKS[sq("d4")])
self.assertEqual(actual, expected)