1
exercism fetch rust pascals-triangle

tests/pascals-triangle.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
extern crate pascals_triangle;

use pascals_triangle::*;

#[test]
fn no_rows() {
    let pt = PascalsTriangle::new(0);
    let expected: Vec<Vec<u32>> = Vec::new();
    assert_eq!(expected, pt.rows());
}

#[test]
#[ignore]
fn one_row() {
    let pt = PascalsTriangle::new(1);
    let expected: Vec<Vec<u32>> = vec![vec![1]];
    assert_eq!(expected, pt.rows());
}

#[test]
#[ignore]
fn two_rows() {
    let pt = PascalsTriangle::new(2);
    let expected: Vec<Vec<u32>> = vec![vec![1], vec![1, 1]];
    assert_eq!(expected, pt.rows());
}

#[test]
#[ignore]
fn three_rows() {
    let pt = PascalsTriangle::new(3);
    let expected: Vec<Vec<u32>> = vec![vec![1], vec![1, 1], vec![1, 2, 1]];
    assert_eq!(expected, pt.rows());
}

#[test]
#[ignore]
fn last_of_four_rows() {
    let pt = PascalsTriangle::new(4);
    let expected: Vec<u32> = vec![1, 3, 3, 1];
    assert_eq!(Some(expected), pt.rows().pop());
}

#[test]
#[ignore]
fn five_rows() {
    let pt = PascalsTriangle::new(5);
    let expected: Vec<Vec<u32>> = 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]
#[ignore]
fn six_rows() {
    let pt = PascalsTriangle::new(6);
    let expected: Vec<Vec<u32>> = 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]
#[ignore]
fn seven_rows() {
    let pt = PascalsTriangle::new(7);
    let expected: Vec<Vec<u32>> = 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]
#[ignore]
fn ten_rows() {
    let pt = PascalsTriangle::new(10);
    let expected: Vec<Vec<u32>> = 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());
}