CheckerChesser / tests /test_mirror.py
algorembrant's picture
Upload 18 files
57f1366 verified
import unittest
import chess
from src.mirror import MirrorHandler
class TestMirrorLogic(unittest.TestCase):
def setUp(self):
self.mirror = MirrorHandler()
self.region = {'left': 100, 'top': 100, 'width': 800, 'height': 800}
def test_coordinate_mapping_standard(self):
# Test a1 (start square)
# Standard: a1 is bottom-left (0,0) in cartesian, but for screen pixels:
# col 0, row 7 (since y increases downwards)
# region top=100. height=800. square height=100.
# row 7 y range: 100 + 700 = 800 to 900. Center = 850.
# col 0 x range: 100 + 0 = 100 to 200. Center = 150.
sq = chess.A1
x, y = self.mirror._get_square_center(sq, self.region, is_flipped=False)
self.assertEqual(x, 150)
self.assertEqual(y, 850)
# Test h8 (top-right)
# col 7, row 0
# x: 100 + 700 + 50 = 850
# y: 100 + 0 + 50 = 150
sq = chess.H8
x, y = self.mirror._get_square_center(sq, self.region, is_flipped=False)
self.assertEqual(x, 850)
self.assertEqual(y, 150)
def test_coordinate_mapping_flipped(self):
# Flipped: Black at bottom.
# a1 (0,0) becomes top-right?
# Let's re-verify logic:
# Flipped: col = 7 - file_idx, row = rank_idx
# a1: file 0, rank 0
# col = 7, row = 0
# x: 850, y: 150 (Top-Right) -> Correct for rotated 180.
sq = chess.A1
x, y = self.mirror._get_square_center(sq, self.region, is_flipped=True)
self.assertEqual(x, 850)
self.assertEqual(y, 150)
# h8: file 7, rank 7
# col = 0, row = 7
# x: 150, y: 850 (Bottom-Left)
sq = chess.H8
x, y = self.mirror._get_square_center(sq, self.region, is_flipped=True)
self.assertEqual(x, 150)
self.assertEqual(y, 850)
if __name__ == '__main__':
unittest.main()