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]