From 2a100c8b50294e1e167e251cd7dec1a8eddffeb0 Mon Sep 17 00:00:00 2001 From: Moritz Date: Fri, 14 Nov 2025 11:20:44 +0100 Subject: [PATCH] completed is_square_attacked testing --- src/display.rs | 72 ++++--------------------------------- tests/is_square_attacked.rs | 29 +++++++++++++-- 2 files changed, 33 insertions(+), 68 deletions(-) diff --git a/src/display.rs b/src/display.rs index f8a9a29..38cebda 100644 --- a/src/display.rs +++ b/src/display.rs @@ -205,71 +205,11 @@ impl fmt::Display for MoveList { impl fmt::Display for Square { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Square::A1 => write!(f, "A1"), - Square::B1 => write!(f, "B1"), - Square::C1 => write!(f, "C1"), - Square::D1 => write!(f, "D1"), - Square::E1 => write!(f, "E1"), - Square::F1 => write!(f, "F1"), - Square::G1 => write!(f, "G1"), - Square::H1 => write!(f, "H1"), - Square::A2 => write!(f, "A2"), - Square::B2 => write!(f, "B2"), - Square::C2 => write!(f, "C2"), - Square::D2 => write!(f, "D2"), - Square::E2 => write!(f, "E2"), - Square::F2 => write!(f, "F2"), - Square::G2 => write!(f, "G2"), - Square::H2 => write!(f, "H2"), - Square::A3 => write!(f, "A3"), - Square::B3 => write!(f, "B3"), - Square::C3 => write!(f, "C3"), - Square::D3 => write!(f, "D3"), - Square::E3 => write!(f, "E3"), - Square::F3 => write!(f, "F3"), - Square::G3 => write!(f, "G3"), - Square::H3 => write!(f, "H3"), - Square::A4 => write!(f, "A4"), - Square::B4 => write!(f, "B4"), - Square::C4 => write!(f, "C4"), - Square::D4 => write!(f, "D4"), - Square::E4 => write!(f, "E4"), - Square::F4 => write!(f, "F4"), - Square::G4 => write!(f, "G4"), - Square::H4 => write!(f, "H4"), - Square::A5 => write!(f, "A5"), - Square::B5 => write!(f, "B5"), - Square::C5 => write!(f, "C5"), - Square::D5 => write!(f, "D5"), - Square::E5 => write!(f, "E5"), - Square::F5 => write!(f, "F5"), - Square::G5 => write!(f, "G5"), - Square::H5 => write!(f, "H5"), - Square::A6 => write!(f, "A6"), - Square::B6 => write!(f, "B6"), - Square::C6 => write!(f, "C6"), - Square::D6 => write!(f, "D6"), - Square::E6 => write!(f, "E6"), - Square::F6 => write!(f, "F6"), - Square::G6 => write!(f, "G6"), - Square::H6 => write!(f, "H6"), - Square::A7 => write!(f, "A7"), - Square::B7 => write!(f, "B7"), - Square::C7 => write!(f, "C7"), - Square::D7 => write!(f, "D7"), - Square::E7 => write!(f, "E7"), - Square::F7 => write!(f, "F7"), - Square::G7 => write!(f, "G7"), - Square::H7 => write!(f, "H7"), - Square::A8 => write!(f, "A8"), - Square::B8 => write!(f, "B8"), - Square::C8 => write!(f, "C8"), - Square::D8 => write!(f, "D8"), - Square::E8 => write!(f, "E8"), - Square::F8 => write!(f, "F8"), - Square::G8 => write!(f, "G8"), - Square::H8 => write!(f, "H8") - } + let files = ["A", "B", "C", "D", "E", "F", "G", "H"]; + let ranks = ["1", "2", "3", "4", "5", "6", "7", "8"]; + let square_index = *self as usize; + let file = files[square_index % 8]; + let rank = ranks[square_index / 8]; + write!(f, "{}{}", file, rank) } } diff --git a/tests/is_square_attacked.rs b/tests/is_square_attacked.rs index b56494f..a028028 100644 --- a/tests/is_square_attacked.rs +++ b/tests/is_square_attacked.rs @@ -22,6 +22,31 @@ fn test_is_attacked_kiwipete() { assert_square_attacked(&mut board, Square::D3, true, true); assert_square_attacked(&mut board, Square::E3, true, false); assert_square_attacked(&mut board, Square::G3, true, false); - - // TODO keep going with the rest + + assert_square_attacked(&mut board, Square::A4, true, true); + assert_square_attacked(&mut board, Square::C4, true, true); + assert_square_attacked(&mut board, Square::D4, false, false); + assert_square_attacked(&mut board, Square::F4, true, false); + assert_square_attacked(&mut board, Square::G4, true, true); + assert_square_attacked(&mut board, Square::H4, false, true); + + assert_square_attacked(&mut board, Square::A5, false, false); + assert_square_attacked(&mut board, Square::B5, true, true); + assert_square_attacked(&mut board, Square::C5, false, true); + assert_square_attacked(&mut board, Square::F5, true, true); + assert_square_attacked(&mut board, Square::G5, true, false); + assert_square_attacked(&mut board, Square::H5, true, true); + + assert_square_attacked(&mut board, Square::C6, true, true); + assert_square_attacked(&mut board, Square::D6, false, true); + assert_square_attacked(&mut board, Square::H6, true, true); + + assert_square_attacked(&mut board, Square::B7, false, true); + assert_square_attacked(&mut board, Square::H7, false, true); + + assert_square_attacked(&mut board, Square::B8, false, true); + assert_square_attacked(&mut board, Square::C8, false, true); + assert_square_attacked(&mut board, Square::D8, false, true); + assert_square_attacked(&mut board, Square::F8, false, true); + assert_square_attacked(&mut board, Square::G8, false, true); } \ No newline at end of file