add-piece-move-cache (#1)
Reviewed-on: #1 Co-authored-by: Josh <josh@joshuaschuett.com> Co-committed-by: Josh <josh@joshuaschuett.com>
This commit is contained in:
83
test/test_piece_attack_cache.py
Normal file
83
test/test_piece_attack_cache.py
Normal file
@@ -0,0 +1,83 @@
|
||||
from test.base import ChessLibTestBase
|
||||
from test.base import bb_from
|
||||
from test.base import draw_bb
|
||||
from test.base import sq
|
||||
from test.base 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)
|
||||
Reference in New Issue
Block a user