aboutsummaryrefslogtreecommitdiff
path: root/sum-of-multiples/tests/sum-of-multiples.rs
diff options
context:
space:
mode:
authorFederico I <git@federicoigne.com>2020-03-17 20:34:57 +0000
committerFederico Igne <git@federicoigne.com>2021-11-03 18:54:52 +0000
commit581450f9b2bfba9d9ff9efdab6776b0d4fdbae14 (patch)
tree217c4f0866ed7eac9b582152d269fd3ccd21b37d /sum-of-multiples/tests/sum-of-multiples.rs
parent9975f9635cd1c2c58b6c1dbe47585859b0b1d573 (diff)
downloadexercism-581450f9b2bfba9d9ff9efdab6776b0d4fdbae14.tar.gz
exercism-581450f9b2bfba9d9ff9efdab6776b0d4fdbae14.zip
[rust] Sum of Multiples
Diffstat (limited to 'sum-of-multiples/tests/sum-of-multiples.rs')
-rw-r--r--sum-of-multiples/tests/sum-of-multiples.rs81
1 files changed, 81 insertions, 0 deletions
diff --git a/sum-of-multiples/tests/sum-of-multiples.rs b/sum-of-multiples/tests/sum-of-multiples.rs
new file mode 100644
index 0000000..369289c
--- /dev/null
+++ b/sum-of-multiples/tests/sum-of-multiples.rs
@@ -0,0 +1,81 @@
1use sum_of_multiples::*;
2
3#[test]
4fn no_multiples_within_limit() {
5 assert_eq!(0, sum_of_multiples(1, &[3, 5]))
6}
7
8#[test]
9fn one_factor_has_multiples_within_limit() {
10 assert_eq!(3, sum_of_multiples(4, &[3, 5]))
11}
12
13#[test]
14fn more_than_one_multiple_within_limit() {
15 assert_eq!(9, sum_of_multiples(7, &[3]))
16}
17
18#[test]
19fn more_than_one_factor_with_multiples_within_limit() {
20 assert_eq!(23, sum_of_multiples(10, &[3, 5]))
21}
22
23#[test]
24fn each_multiple_is_only_counted_once() {
25 assert_eq!(2318, sum_of_multiples(100, &[3, 5]))
26}
27
28#[test]
29fn a_much_larger_limit() {
30 assert_eq!(233_168, sum_of_multiples(1000, &[3, 5]))
31}
32
33#[test]
34fn three_factors() {
35 assert_eq!(51, sum_of_multiples(20, &[7, 13, 17]))
36}
37
38#[test]
39fn factors_not_relatively_prime() {
40 assert_eq!(30, sum_of_multiples(15, &[4, 6]))
41}
42
43#[test]
44fn some_pairs_of_factors_relatively_prime_and_some_not() {
45 assert_eq!(4419, sum_of_multiples(150, &[5, 6, 8]))
46}
47
48#[test]
49fn one_factor_is_a_multiple_of_another() {
50 assert_eq!(275, sum_of_multiples(51, &[5, 25]))
51}
52
53#[test]
54fn much_larger_factors() {
55 assert_eq!(2_203_160, sum_of_multiples(10_000, &[43, 47]))
56}
57
58#[test]
59fn all_numbers_are_multiples_of_1() {
60 assert_eq!(4950, sum_of_multiples(100, &[1]))
61}
62
63#[test]
64fn no_factors_means_an_empty_sum() {
65 assert_eq!(0, sum_of_multiples(10_000, &[]))
66}
67
68#[test]
69fn the_only_multiple_of_0_is_0() {
70 assert_eq!(0, sum_of_multiples(1, &[0]))
71}
72
73#[test]
74fn the_factor_0_does_not_affect_the_sum_of_multiples_of_other_factors() {
75 assert_eq!(3, sum_of_multiples(4, &[3, 0]))
76}
77
78#[test]
79fn solutions_using_include_exclude_must_extend_to_cardinality_greater_than_3() {
80 assert_eq!(39_614_537, sum_of_multiples(10_000, &[2, 3, 5, 7, 11]))
81}