From 02481656966b0a8dfc95cf3c22bcc049660ff7d4 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 26 Dec 2020 17:48:38 +0000 Subject: Move Rust exercises in a subdirectory --- rust/pascals-triangle/tests/pascals-triangle.rs | 96 +++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 rust/pascals-triangle/tests/pascals-triangle.rs (limited to 'rust/pascals-triangle/tests') diff --git a/rust/pascals-triangle/tests/pascals-triangle.rs b/rust/pascals-triangle/tests/pascals-triangle.rs new file mode 100644 index 0000000..64d2c2e --- /dev/null +++ b/rust/pascals-triangle/tests/pascals-triangle.rs @@ -0,0 +1,96 @@ +use pascals_triangle::*; + +#[test] +fn no_rows() { + let pt = PascalsTriangle::new(0); + let expected: Vec> = Vec::new(); + assert_eq!(expected, pt.rows()); +} + +#[test] +fn one_row() { + let pt = PascalsTriangle::new(1); + let expected: Vec> = vec![vec![1]]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn two_rows() { + let pt = PascalsTriangle::new(2); + let expected: Vec> = vec![vec![1], vec![1, 1]]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn three_rows() { + let pt = PascalsTriangle::new(3); + let expected: Vec> = vec![vec![1], vec![1, 1], vec![1, 2, 1]]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn last_of_four_rows() { + let pt = PascalsTriangle::new(4); + let expected: Vec = vec![1, 3, 3, 1]; + assert_eq!(Some(expected), pt.rows().pop()); +} + +#[test] +fn five_rows() { + let pt = PascalsTriangle::new(5); + let expected: Vec> = vec![ + vec![1], + vec![1, 1], + vec![1, 2, 1], + vec![1, 3, 3, 1], + vec![1, 4, 6, 4, 1], + ]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn six_rows() { + let pt = PascalsTriangle::new(6); + let expected: Vec> = vec![ + vec![1], + vec![1, 1], + vec![1, 2, 1], + vec![1, 3, 3, 1], + vec![1, 4, 6, 4, 1], + vec![1, 5, 10, 10, 5, 1], + ]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn seven_rows() { + let pt = PascalsTriangle::new(7); + let expected: Vec> = vec![ + vec![1], + vec![1, 1], + vec![1, 2, 1], + vec![1, 3, 3, 1], + vec![1, 4, 6, 4, 1], + vec![1, 5, 10, 10, 5, 1], + vec![1, 6, 15, 20, 15, 6, 1], + ]; + assert_eq!(expected, pt.rows()); +} + +#[test] +fn ten_rows() { + let pt = PascalsTriangle::new(10); + let expected: Vec> = vec![ + vec![1], + vec![1, 1], + vec![1, 2, 1], + vec![1, 3, 3, 1], + vec![1, 4, 6, 4, 1], + vec![1, 5, 10, 10, 5, 1], + vec![1, 6, 15, 20, 15, 6, 1], + vec![1, 7, 21, 35, 35, 21, 7, 1], + vec![1, 8, 28, 56, 70, 56, 28, 8, 1], + vec![1, 9, 36, 84, 126, 126, 84, 36, 9, 1], + ]; + assert_eq!(expected, pt.rows()); +} -- cgit v1.2.3