aboutsummaryrefslogtreecommitdiff
path: root/rust/pascals-triangle/tests/pascals-triangle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/pascals-triangle/tests/pascals-triangle.rs')
-rw-r--r--rust/pascals-triangle/tests/pascals-triangle.rs96
1 files changed, 96 insertions, 0 deletions
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 @@
1use pascals_triangle::*;
2
3#[test]
4fn no_rows() {
5 let pt = PascalsTriangle::new(0);
6 let expected: Vec<Vec<u32>> = Vec::new();
7 assert_eq!(expected, pt.rows());
8}
9
10#[test]
11fn one_row() {
12 let pt = PascalsTriangle::new(1);
13 let expected: Vec<Vec<u32>> = vec![vec![1]];
14 assert_eq!(expected, pt.rows());
15}
16
17#[test]
18fn two_rows() {
19 let pt = PascalsTriangle::new(2);
20 let expected: Vec<Vec<u32>> = vec![vec![1], vec![1, 1]];
21 assert_eq!(expected, pt.rows());
22}
23
24#[test]
25fn three_rows() {
26 let pt = PascalsTriangle::new(3);
27 let expected: Vec<Vec<u32>> = vec![vec![1], vec![1, 1], vec![1, 2, 1]];
28 assert_eq!(expected, pt.rows());
29}
30
31#[test]
32fn last_of_four_rows() {
33 let pt = PascalsTriangle::new(4);
34 let expected: Vec<u32> = vec![1, 3, 3, 1];
35 assert_eq!(Some(expected), pt.rows().pop());
36}
37
38#[test]
39fn five_rows() {
40 let pt = PascalsTriangle::new(5);
41 let expected: Vec<Vec<u32>> = vec![
42 vec![1],
43 vec![1, 1],
44 vec![1, 2, 1],
45 vec![1, 3, 3, 1],
46 vec![1, 4, 6, 4, 1],
47 ];
48 assert_eq!(expected, pt.rows());
49}
50
51#[test]
52fn six_rows() {
53 let pt = PascalsTriangle::new(6);
54 let expected: Vec<Vec<u32>> = vec![
55 vec![1],
56 vec![1, 1],
57 vec![1, 2, 1],
58 vec![1, 3, 3, 1],
59 vec![1, 4, 6, 4, 1],
60 vec![1, 5, 10, 10, 5, 1],
61 ];
62 assert_eq!(expected, pt.rows());
63}
64
65#[test]
66fn seven_rows() {
67 let pt = PascalsTriangle::new(7);
68 let expected: Vec<Vec<u32>> = vec![
69 vec![1],
70 vec![1, 1],
71 vec![1, 2, 1],
72 vec![1, 3, 3, 1],
73 vec![1, 4, 6, 4, 1],
74 vec![1, 5, 10, 10, 5, 1],
75 vec![1, 6, 15, 20, 15, 6, 1],
76 ];
77 assert_eq!(expected, pt.rows());
78}
79
80#[test]
81fn ten_rows() {
82 let pt = PascalsTriangle::new(10);
83 let expected: Vec<Vec<u32>> = vec![
84 vec![1],
85 vec![1, 1],
86 vec![1, 2, 1],
87 vec![1, 3, 3, 1],
88 vec![1, 4, 6, 4, 1],
89 vec![1, 5, 10, 10, 5, 1],
90 vec![1, 6, 15, 20, 15, 6, 1],
91 vec![1, 7, 21, 35, 35, 21, 7, 1],
92 vec![1, 8, 28, 56, 70, 56, 28, 8, 1],
93 vec![1, 9, 36, 84, 126, 126, 84, 36, 9, 1],
94 ];
95 assert_eq!(expected, pt.rows());
96}