[core] Fix the coordinate tests

Use symbols instead of magic numbers.
This commit is contained in:
Eryn Wells 2025-05-19 08:35:35 -07:00
parent b229049e27
commit cd3efa61c9

View file

@ -433,7 +433,7 @@ impl From<File> for char {
impl From<Rank> for char { impl From<Rank> for char {
fn from(value: Rank) -> Self { fn from(value: Rank) -> Self {
Self::from(value.0) Self::from(value.0 + b'1')
} }
} }
@ -473,41 +473,39 @@ mod tests {
#[test] #[test]
fn good_algebraic_input() -> Result<(), ParseSquareError> { fn good_algebraic_input() -> Result<(), ParseSquareError> {
let sq = Square::from_algebraic_str("a4")?; let sq = Square::from_algebraic_str("a4")?;
assert_eq!(sq.file(), File(0)); assert_eq!(sq.file(), File::A);
assert_eq!(sq.rank(), Rank(3)); assert_eq!(sq.rank(), Rank::FOUR);
let sq = Square::from_algebraic_str("B8")?; let sq = Square::from_algebraic_str("B8")?;
assert_eq!(sq.file(), File(1)); assert_eq!(sq.file(), File::B);
assert_eq!(sq.rank(), Rank(7)); assert_eq!(sq.rank(), Rank::EIGHT);
let sq = Square::from_algebraic_str("e4")?; let sq = Square::from_algebraic_str("e4")?;
assert_eq!(sq.file(), File(4)); assert_eq!(sq.file(), File::E);
assert_eq!(sq.rank(), Rank(3)); assert_eq!(sq.rank(), Rank::FOUR);
Ok(()) Ok(())
} }
#[test] #[test]
fn bad_algebraic_input() -> Result<(), ParseSquareError> { fn bad_algebraic_input() {
Square::from_algebraic_str("a0")?; assert!(Square::from_algebraic_str("a0").is_err());
Square::from_algebraic_str("j3")?; assert!(Square::from_algebraic_str("j3").is_err());
Square::from_algebraic_str("a11")?; assert!(Square::from_algebraic_str("a11").is_err());
Square::from_algebraic_str("b-1")?; assert!(Square::from_algebraic_str("b-1").is_err());
Square::from_algebraic_str("a 1")?; assert!(Square::from_algebraic_str("a 1").is_err());
Square::from_algebraic_str("")?; assert!(Square::from_algebraic_str("").is_err());
Ok(())
} }
#[test] #[test]
fn from_index() -> Result<(), ()> { fn from_index() -> Result<(), ()> {
let sq = Square::try_from(4u32)?; let sq = Square::try_from(4u32)?;
assert_eq!(sq.file(), File(4)); assert_eq!(sq.file(), File::E);
assert_eq!(sq.rank(), Rank(0)); assert_eq!(sq.rank(), Rank::ONE);
let sq = Square::try_from(28u32)?; let sq = Square::try_from(28u32)?;
assert_eq!(sq.file(), File(4)); assert_eq!(sq.file(), File::E);
assert_eq!(sq.rank(), Rank(3)); assert_eq!(sq.rank(), Rank::FOUR);
Ok(()) Ok(())
} }
@ -560,5 +558,13 @@ mod tests {
assert_eq!(format!("{}", Square::C5), "c5"); assert_eq!(format!("{}", Square::C5), "c5");
assert_eq!(format!("{}", Square::A1), "a1"); assert_eq!(format!("{}", Square::A1), "a1");
assert_eq!(format!("{}", Square::H8), "h8"); 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::<char>::into(Rank::ONE), '1');
assert_eq!(Into::<char>::into(File::B), 'b');
} }
} }