Compare commits

2 Commits

Author SHA1 Message Date
031a487fb5 Add rotation unit tests 2025-08-23 13:33:44 -05:00
8d75a40475 Add unit tests for transposition 2025-08-23 13:27:39 -05:00

View File

@@ -619,23 +619,128 @@ mod test {
assert_eq!(result, expected);
}
/// Test transposition on column 1
#[test]
fn transpose_vertical() {
todo!();
let left_shape = Card {
cells: OCTAGON,
..Default::default()
};
// It's a small NW triangle.
let right_shape = Card {
#[rustfmt::skip]
cells: [
Cell::Filled, Cell::Empty, Cell::Empty,
Cell::SE, Cell::Empty, Cell::NW,
Cell::Empty, Cell::NW, Cell::Filled,
],
..Default::default()
};
let expected_left = Card {
#[rustfmt::skip]
cells: [
Cell::Filled, Cell::Filled, Cell::NE,
Cell::SE, Cell::Filled, Cell::Filled,
Cell::Empty, Cell::Filled, Cell::SE,
],
..Default::default()
};
let expected_right = Card {
#[rustfmt::skip]
cells: [
Cell::NW, Cell::Empty, Cell::Empty,
Cell::Filled, Cell::Empty, Cell::NW,
Cell::SW, Cell::NW, Cell::Filled,
],
..Default::default()
};
let (res_left, res_right) = left_shape.transpose(
right_shape,
TransposeSelection::Column(TransposeIndex::First),
);
assert_eq!(res_left, expected_left);
assert_eq!(res_right, expected_right);
}
/// Test transposition on row 3
#[test]
fn transpose_horizontal() {
todo!();
let left_shape = Card {
cells: OCTAGON,
..Default::default()
};
let right_shape = Card {
#[rustfmt::skip]
cells: [
Cell::Filled, Cell::Empty, Cell::Empty,
Cell::SE, Cell::Empty, Cell::NW,
Cell::Empty, Cell::NW, Cell::Filled,
],
..Default::default()
};
let expected_left = Card {
#[rustfmt::skip]
cells: [
Cell::NW, Cell::Filled, Cell::NE,
Cell::Filled, Cell::Filled, Cell::Filled,
Cell::Empty, Cell::NW, Cell::Filled,
],
..Default::default()
};
let expected_right = Card {
#[rustfmt::skip]
cells: [
Cell::Filled, Cell::Empty, Cell::Empty,
Cell::SE, Cell::Empty, Cell::NW,
Cell::SW, Cell::Filled, Cell::SE,
],
..Default::default()
};
let (res_left, res_right) = left_shape.transpose(
right_shape,
TransposeSelection::Row(TransposeIndex::Third),
);
assert_eq!(res_left, expected_left);
assert_eq!(res_right, expected_right);
}
#[test]
fn rotate_clockwise() {
todo!();
let shape = Card {
cells: NW_TRIANGLE,
..Default::default()
};
let expected = Card {
cells: NE_TRIANGLE,
..Default::default()
};
let result = shape.rotate(RotationDir::Clockwise);
assert_eq!(result, expected);
}
#[test]
fn rotate_counter_clockwise() {
todo!();
let shape = Card {
cells: NE_TRIANGLE,
..Default::default()
};
let expected = Card {
cells: NW_TRIANGLE,
..Default::default()
};
let result = shape.rotate(RotationDir::CounterClockwise);
assert_eq!(result, expected);
}
}