From cd3efa61c942ee37906c126f449fd2502e5c0c1b Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Mon, 19 May 2025 08:35:35 -0700 Subject: [PATCH] [core] Fix the coordinate tests Use symbols instead of magic numbers. --- core/src/coordinates.rs | 46 +++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/core/src/coordinates.rs b/core/src/coordinates.rs index 89dfde9..0a01ba4 100644 --- a/core/src/coordinates.rs +++ b/core/src/coordinates.rs @@ -433,7 +433,7 @@ impl From for char { impl From for char { fn from(value: Rank) -> Self { - Self::from(value.0) + Self::from(value.0 + b'1') } } @@ -473,41 +473,39 @@ mod tests { #[test] fn good_algebraic_input() -> Result<(), ParseSquareError> { let sq = Square::from_algebraic_str("a4")?; - assert_eq!(sq.file(), File(0)); - assert_eq!(sq.rank(), Rank(3)); + assert_eq!(sq.file(), File::A); + assert_eq!(sq.rank(), Rank::FOUR); let sq = Square::from_algebraic_str("B8")?; - assert_eq!(sq.file(), File(1)); - assert_eq!(sq.rank(), Rank(7)); + assert_eq!(sq.file(), File::B); + assert_eq!(sq.rank(), Rank::EIGHT); let sq = Square::from_algebraic_str("e4")?; - assert_eq!(sq.file(), File(4)); - assert_eq!(sq.rank(), Rank(3)); + assert_eq!(sq.file(), File::E); + assert_eq!(sq.rank(), Rank::FOUR); Ok(()) } #[test] - fn bad_algebraic_input() -> Result<(), ParseSquareError> { - Square::from_algebraic_str("a0")?; - Square::from_algebraic_str("j3")?; - Square::from_algebraic_str("a11")?; - Square::from_algebraic_str("b-1")?; - Square::from_algebraic_str("a 1")?; - Square::from_algebraic_str("")?; - - Ok(()) + fn bad_algebraic_input() { + assert!(Square::from_algebraic_str("a0").is_err()); + assert!(Square::from_algebraic_str("j3").is_err()); + assert!(Square::from_algebraic_str("a11").is_err()); + assert!(Square::from_algebraic_str("b-1").is_err()); + assert!(Square::from_algebraic_str("a 1").is_err()); + assert!(Square::from_algebraic_str("").is_err()); } #[test] fn from_index() -> Result<(), ()> { let sq = Square::try_from(4u32)?; - assert_eq!(sq.file(), File(4)); - assert_eq!(sq.rank(), Rank(0)); + assert_eq!(sq.file(), File::E); + assert_eq!(sq.rank(), Rank::ONE); let sq = Square::try_from(28u32)?; - assert_eq!(sq.file(), File(4)); - assert_eq!(sq.rank(), Rank(3)); + assert_eq!(sq.file(), File::E); + assert_eq!(sq.rank(), Rank::FOUR); Ok(()) } @@ -560,5 +558,13 @@ mod tests { assert_eq!(format!("{}", Square::C5), "c5"); assert_eq!(format!("{}", Square::A1), "a1"); assert_eq!(format!("{}", Square::H8), "h8"); + assert_eq!(format!("{}", Rank::FIVE), "5"); + assert_eq!(format!("{}", File::H), "h"); + } + + #[test] + fn into_char() { + assert_eq!(Into::::into(Rank::ONE), '1'); + assert_eq!(Into::::into(File::B), 'b'); } }