[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 {
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::<char>::into(Rank::ONE), '1');
assert_eq!(Into::<char>::into(File::B), 'b');
}
}