From d98b28cb36b18638d8f844ec13192d60261d27f6 Mon Sep 17 00:00:00 2001 From: Patrick Gelvin Date: Sat, 23 Aug 2025 13:02:41 -0700 Subject: [PATCH] Cut triangle test --- src/card.rs | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/src/card.rs b/src/card.rs index 5694669..db78b16 100644 --- a/src/card.rs +++ b/src/card.rs @@ -616,7 +616,108 @@ mod test { #[test] fn cut_triangle() { - todo!(); + let tri = Card { + cells: NW_TRIANGLE, + ..Default::default() + }; + + // Pairs of each different slice option + let vert_left_pair = ( + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::NW, Cell::Empty, Cell::Empty, + ], + ..Default::default() + }, + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::NW, + Cell::Empty, Cell::NW, Cell::Filled, + Cell::Empty, Cell::Filled, Cell::Filled, + ], + ..Default::default() + }, + ); + + let vert_right_pair = ( + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::Empty, Cell::NW, Cell::Empty, + Cell::NW, Cell::Filled, Cell::Empty, + ], + ..Default::default() + }, + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::NW, + Cell::Empty, Cell::Empty, Cell::Filled, + Cell::Empty, Cell::Empty, Cell::Filled, + ], + ..Default::default() + }, + ); + + let horiz_top_pair = ( + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::NW, + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::Empty, Cell::Empty, Cell::Empty, + ], + ..Default::default() + }, + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::Empty, Cell::NW, Cell::Filled, + Cell::NW, Cell::Filled, Cell::Filled, + ], + ..Default::default() + }, + ); + + let horiz_bottom_pair = ( + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::NW, + Cell::Empty, Cell::NW, Cell::Filled, + Cell::Empty, Cell::Empty, Cell::Empty, + ], + ..Default::default() + }, + Card { + #[rustfmt::skip] + cells: [ + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::Empty, Cell::Empty, Cell::Empty, + Cell::NW, Cell::Filled, Cell::Filled, + ], + ..Default::default() + }, + ); + + // Run tests + let result_vleft = tri.clone().cut(CutLine::VertLeft); + assert_eq!(result_vleft, vert_left_pair); + + let result_vright = tri.clone().cut(CutLine::VertRight); + assert_eq!(result_vright, vert_right_pair); + + let result_hupper = tri.clone().cut(CutLine::HorizUpper); + assert_eq!(result_hupper, horiz_top_pair); + + let result_hlower = tri.cut(CutLine::HorizLower); + assert_eq!(result_hlower, horiz_bottom_pair); } #[test]