trackler 2.2.1.171 → 2.2.1.172

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/go/exercises/dominoes/.meta/gen.go +1 -1
  4. data/tracks/go/exercises/dominoes/cases_test.go +11 -11
  5. data/tracks/ocaml/config.json +1 -1
  6. data/tracks/ocaml/docs/ABOUT.md +6 -4
  7. data/tracks/powershell/config.json +3 -2
  8. data/tracks/rust/bin/format_exercises +31 -0
  9. data/tracks/rust/config.json +10 -2
  10. data/tracks/rust/config/exercise_readme.go.tmpl +26 -5
  11. data/tracks/rust/exercises/accumulate/README.md +26 -5
  12. data/tracks/rust/exercises/accumulate/src/lib.rs +1 -0
  13. data/tracks/rust/exercises/accumulate/tests/accumulate.rs +7 -7
  14. data/tracks/rust/exercises/acronym/README.md +26 -5
  15. data/tracks/rust/exercises/acronym/src/lib.rs +1 -0
  16. data/tracks/rust/exercises/acronym/tests/acronym.rs +10 -5
  17. data/tracks/rust/exercises/all-your-base/README.md +26 -5
  18. data/tracks/rust/exercises/all-your-base/src/lib.rs +6 -1
  19. data/tracks/rust/exercises/all-your-base/tests/all-your-base.rs +68 -34
  20. data/tracks/rust/exercises/allergies/README.md +26 -5
  21. data/tracks/rust/exercises/allergies/src/lib.rs +1 -0
  22. data/tracks/rust/exercises/allergies/tests/allergies.rs +34 -26
  23. data/tracks/rust/exercises/alphametics/README.md +26 -5
  24. data/tracks/rust/exercises/alphametics/tests/alphametics.rs +44 -9
  25. data/tracks/rust/exercises/anagram/README.md +26 -5
  26. data/tracks/rust/exercises/anagram/src/lib.rs +1 -0
  27. data/tracks/rust/exercises/anagram/tests/anagram.rs +15 -4
  28. data/tracks/rust/exercises/armstrong-numbers/README.md +26 -5
  29. data/tracks/rust/exercises/atbash-cipher/README.md +26 -5
  30. data/tracks/rust/exercises/atbash-cipher/src/lib.rs +1 -1
  31. data/tracks/rust/exercises/atbash-cipher/tests/atbash-cipher.rs +16 -8
  32. data/tracks/rust/exercises/beer-song/README.md +26 -5
  33. data/tracks/rust/exercises/binary-search/README.md +26 -5
  34. data/tracks/rust/exercises/binary-search/src/lib.rs +1 -0
  35. data/tracks/rust/exercises/binary-search/tests/binary-search.rs +8 -4
  36. data/tracks/rust/exercises/bob/README.md +26 -5
  37. data/tracks/rust/exercises/bob/tests/bob.rs +32 -15
  38. data/tracks/rust/exercises/book-store/README.md +26 -5
  39. data/tracks/rust/exercises/book-store/src/lib.rs +4 -1
  40. data/tracks/rust/exercises/book-store/tests/book-store.rs +52 -24
  41. data/tracks/rust/exercises/bowling/README.md +26 -5
  42. data/tracks/rust/exercises/bowling/src/lib.rs +1 -2
  43. data/tracks/rust/exercises/bowling/tests/bowling.rs +2 -1
  44. data/tracks/rust/exercises/bracket-push/README.md +29 -7
  45. data/tracks/rust/exercises/bracket-push/src/lib.rs +1 -0
  46. data/tracks/rust/exercises/circular-buffer/README.md +26 -5
  47. data/tracks/rust/exercises/circular-buffer/src/lib.rs +1 -0
  48. data/tracks/rust/exercises/clock/README.md +26 -5
  49. data/tracks/rust/exercises/clock/src/lib.rs +1 -0
  50. data/tracks/rust/exercises/clock/tests/clock.rs +0 -1
  51. data/tracks/rust/exercises/collatz-conjecture/README.md +26 -5
  52. data/tracks/rust/exercises/crypto-square/README.md +53 -29
  53. data/tracks/rust/exercises/custom-set/README.md +26 -5
  54. data/tracks/rust/exercises/custom-set/src/lib.rs +1 -0
  55. data/tracks/rust/exercises/decimal/README.md +26 -5
  56. data/tracks/rust/exercises/decimal/tests/decimal.rs +4 -7
  57. data/tracks/rust/exercises/diamond/README.md +26 -5
  58. data/tracks/rust/exercises/difference-of-squares/README.md +26 -5
  59. data/tracks/rust/exercises/difference-of-squares/src/lib.rs +1 -1
  60. data/tracks/rust/exercises/diffie-hellman/README.md +26 -5
  61. data/tracks/rust/exercises/diffie-hellman/src/lib.rs +12 -2
  62. data/tracks/rust/exercises/diffie-hellman/tests/diffie-hellman.rs +3 -3
  63. data/tracks/rust/exercises/dominoes/README.md +26 -5
  64. data/tracks/rust/exercises/dominoes/src/lib.rs +1 -0
  65. data/tracks/rust/exercises/dominoes/tests/dominoes.rs +29 -13
  66. data/tracks/rust/exercises/etl/README.md +26 -5
  67. data/tracks/rust/exercises/etl/src/lib.rs +1 -0
  68. data/tracks/rust/exercises/etl/tests/etl.rs +39 -34
  69. data/tracks/rust/exercises/forth/README.md +26 -5
  70. data/tracks/rust/exercises/forth/tests/forth.rs +17 -65
  71. data/tracks/rust/exercises/gigasecond/README.md +26 -5
  72. data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +31 -10
  73. data/tracks/rust/exercises/grade-school/README.md +26 -5
  74. data/tracks/rust/exercises/grade-school/src/lib.rs +1 -2
  75. data/tracks/rust/exercises/grade-school/tests/grade-school.rs +5 -9
  76. data/tracks/rust/exercises/grains/README.md +26 -5
  77. data/tracks/rust/exercises/hamming/README.md +30 -8
  78. data/tracks/rust/exercises/hamming/src/lib.rs +1 -2
  79. data/tracks/rust/exercises/hello-world/README.md +26 -5
  80. data/tracks/rust/exercises/hexadecimal/README.md +26 -5
  81. data/tracks/rust/exercises/hexadecimal/src/lib.rs +1 -0
  82. data/tracks/rust/exercises/isbn-verifier/README.md +26 -5
  83. data/tracks/rust/exercises/isogram/README.md +26 -5
  84. data/tracks/rust/exercises/isogram/src/lib.rs +1 -1
  85. data/tracks/rust/exercises/isogram/tests/isogram.rs +36 -24
  86. data/tracks/rust/exercises/largest-series-product/README.md +26 -5
  87. data/tracks/rust/exercises/largest-series-product/src/lib.rs +5 -1
  88. data/tracks/rust/exercises/largest-series-product/tests/largest-series-product.rs +4 -2
  89. data/tracks/rust/exercises/leap/README.md +26 -5
  90. data/tracks/rust/exercises/luhn-from/README.md +26 -5
  91. data/tracks/rust/exercises/luhn-from/src/lib.rs +1 -0
  92. data/tracks/rust/exercises/luhn-trait/README.md +26 -5
  93. data/tracks/rust/exercises/luhn-trait/src/lib.rs +1 -0
  94. data/tracks/rust/exercises/luhn/README.md +26 -5
  95. data/tracks/rust/exercises/luhn/src/lib.rs +1 -1
  96. data/tracks/rust/exercises/macros/README.md +26 -5
  97. data/tracks/rust/exercises/minesweeper/README.md +26 -5
  98. data/tracks/rust/exercises/minesweeper/src/lib.rs +1 -0
  99. data/tracks/rust/exercises/nth-prime/README.md +26 -5
  100. data/tracks/rust/exercises/nucleotide-codons/README.md +26 -5
  101. data/tracks/rust/exercises/nucleotide-codons/src/lib.rs +1 -0
  102. data/tracks/rust/exercises/nucleotide-codons/tests/codons.rs +6 -5
  103. data/tracks/rust/exercises/nucleotide-count/README.md +26 -5
  104. data/tracks/rust/exercises/nucleotide-count/src/lib.rs +1 -0
  105. data/tracks/rust/exercises/nucleotide-count/tests/nucleotide-count.rs +5 -8
  106. data/tracks/rust/exercises/ocr-numbers/README.md +26 -5
  107. data/tracks/rust/exercises/ocr-numbers/tests/ocr-numbers.rs +0 -1
  108. data/tracks/rust/exercises/palindrome-products/README.md +26 -5
  109. data/tracks/rust/exercises/pangram/README.md +26 -5
  110. data/tracks/rust/exercises/pangram/src/lib.rs +1 -1
  111. data/tracks/rust/exercises/parallel-letter-frequency/README.md +26 -5
  112. data/tracks/rust/exercises/parallel-letter-frequency/benches/benchmark.rs +6 -3
  113. data/tracks/rust/exercises/parallel-letter-frequency/src/lib.rs +1 -0
  114. data/tracks/rust/exercises/parallel-letter-frequency/tests/parallel-letter-frequency.rs +6 -3
  115. data/tracks/rust/exercises/pascals-triangle/README.md +26 -5
  116. data/tracks/rust/exercises/pascals-triangle/tests/pascals-triangle.rs +36 -28
  117. data/tracks/rust/exercises/perfect-numbers/README.md +26 -5
  118. data/tracks/rust/exercises/perfect-numbers/src/lib.rs +1 -1
  119. data/tracks/rust/exercises/perfect-numbers/tests/perfect-numbers.rs +1 -2
  120. data/tracks/rust/exercises/phone-number/README.md +26 -5
  121. data/tracks/rust/exercises/phone-number/src/lib.rs +1 -0
  122. data/tracks/rust/exercises/pig-latin/README.md +26 -5
  123. data/tracks/rust/exercises/pig-latin/src/lib.rs +1 -0
  124. data/tracks/rust/exercises/poker/README.md +26 -5
  125. data/tracks/rust/exercises/poker/tests/poker.rs +27 -104
  126. data/tracks/rust/exercises/prime-factors/README.md +26 -5
  127. data/tracks/rust/exercises/protein-translation/README.md +26 -5
  128. data/tracks/rust/exercises/protein-translation/src/lib.rs +1 -0
  129. data/tracks/rust/exercises/protein-translation/tests/proteins.rs +16 -9
  130. data/tracks/rust/exercises/proverb/README.md +26 -5
  131. data/tracks/rust/exercises/proverb/tests/proverb.rs +1 -7
  132. data/tracks/rust/exercises/pythagorean-triplet/README.md +26 -5
  133. data/tracks/rust/exercises/queen-attack/README.md +26 -5
  134. data/tracks/rust/exercises/queen-attack/src/lib.rs +1 -0
  135. data/tracks/rust/exercises/raindrops/README.md +26 -5
  136. data/tracks/rust/exercises/raindrops/tests/raindrops.rs +57 -19
  137. data/tracks/rust/exercises/react/README.md +26 -5
  138. data/tracks/rust/exercises/react/src/lib.rs +16 -4
  139. data/tracks/rust/exercises/react/tests/react.rs +174 -43
  140. data/tracks/rust/exercises/rectangles/README.md +26 -5
  141. data/tracks/rust/exercises/rectangles/src/lib.rs +1 -0
  142. data/tracks/rust/exercises/reverse-string/README.md +26 -5
  143. data/tracks/rust/exercises/reverse-string/tests/reverse-string.rs +2 -11
  144. data/tracks/rust/exercises/rna-transcription/README.md +26 -5
  145. data/tracks/rust/exercises/rna-transcription/src/lib.rs +1 -0
  146. data/tracks/rust/exercises/robot-name/README.md +26 -5
  147. data/tracks/rust/exercises/robot-name/src/lib.rs +1 -0
  148. data/tracks/rust/exercises/robot-name/tests/robot-name.rs +8 -2
  149. data/tracks/rust/exercises/robot-simulator/README.md +26 -5
  150. data/tracks/rust/exercises/robot-simulator/src/lib.rs +5 -6
  151. data/tracks/rust/exercises/roman-numerals/README.md +26 -5
  152. data/tracks/rust/exercises/roman-numerals/src/lib.rs +1 -0
  153. data/tracks/rust/exercises/rotational-cipher/README.md +26 -5
  154. data/tracks/rust/exercises/rotational-cipher/src/lib.rs +1 -0
  155. data/tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs +12 -4
  156. data/tracks/rust/exercises/run-length-encoding/README.md +26 -5
  157. data/tracks/rust/exercises/run-length-encoding/src/lib.rs +1 -1
  158. data/tracks/rust/exercises/run-length-encoding/tests/run-length-encoding.rs +12 -5
  159. data/tracks/rust/exercises/saddle-points/README.md +26 -5
  160. data/tracks/rust/exercises/saddle-points/src/lib.rs +4 -1
  161. data/tracks/rust/exercises/say/README.md +27 -6
  162. data/tracks/rust/exercises/say/src/lib.rs +1 -1
  163. data/tracks/rust/exercises/say/tests/say.rs +30 -14
  164. data/tracks/rust/exercises/scrabble-score/README.md +26 -5
  165. data/tracks/rust/exercises/scrabble-score/src/lib.rs +1 -1
  166. data/tracks/rust/exercises/series/README.md +32 -11
  167. data/tracks/rust/exercises/series/src/lib.rs +5 -1
  168. data/tracks/rust/exercises/sieve/README.md +31 -8
  169. data/tracks/rust/exercises/sieve/src/lib.rs +1 -0
  170. data/tracks/rust/exercises/sieve/tests/sieve.rs +11 -12
  171. data/tracks/rust/exercises/simple-cipher/README.md +26 -5
  172. data/tracks/rust/exercises/simple-cipher/src/lib.rs +6 -3
  173. data/tracks/rust/exercises/simple-cipher/tests/simple-cipher.rs +0 -1
  174. data/tracks/rust/exercises/simple-linked-list/README.md +26 -5
  175. data/tracks/rust/exercises/simple-linked-list/src/lib.rs +0 -1
  176. data/tracks/rust/exercises/simple-linked-list/tests/simple-linked-list.rs +0 -1
  177. data/tracks/rust/exercises/space-age/README.md +26 -5
  178. data/tracks/rust/exercises/space-age/tests/space-age.rs +4 -4
  179. data/tracks/rust/exercises/spiral-matrix/README.md +26 -5
  180. data/tracks/rust/exercises/sublist/README.md +26 -5
  181. data/tracks/rust/exercises/sublist/src/lib.rs +1 -0
  182. data/tracks/rust/exercises/sublist/tests/sublist.rs +17 -68
  183. data/tracks/rust/exercises/sum-of-multiples/README.md +26 -5
  184. data/tracks/rust/exercises/sum-of-multiples/src/lib.rs +5 -1
  185. data/tracks/rust/exercises/tournament/README.md +26 -5
  186. data/tracks/rust/exercises/tournament/src/lib.rs +1 -0
  187. data/tracks/rust/exercises/tournament/tests/tournament.rs +60 -60
  188. data/tracks/rust/exercises/triangle/README.md +26 -5
  189. data/tracks/rust/exercises/triangle/src/lib.rs +1 -0
  190. data/tracks/rust/exercises/two-bucket/README.md +26 -5
  191. data/tracks/rust/exercises/two-bucket/src/lib.rs +2 -6
  192. data/tracks/rust/exercises/two-bucket/tests/two-bucket.rs +49 -37
  193. data/tracks/rust/exercises/twofer/README.md +33 -7
  194. data/tracks/rust/exercises/twofer/src/lib.rs +2 -2
  195. data/tracks/rust/exercises/twofer/tests/two-fer.rs +2 -2
  196. data/tracks/rust/exercises/variable-length-quantity/README.md +26 -5
  197. data/tracks/rust/exercises/variable-length-quantity/tests/variable-length-quantity.rs +60 -32
  198. data/tracks/rust/exercises/word-count/README.md +26 -5
  199. data/tracks/rust/exercises/word-count/src/lib.rs +1 -1
  200. data/tracks/rust/exercises/word-count/tests/word-count.rs +15 -23
  201. data/tracks/rust/exercises/wordy/README.md +26 -5
  202. data/tracks/rust/exercises/wordy/src/lib.rs +1 -0
  203. metadata +3 -2
@@ -37,5 +37,10 @@ pub enum Error {
37
37
  /// process input with leading 0 digits.
38
38
  ///
39
39
  pub fn convert(number: &[u32], from_base: u32, to_base: u32) -> Result<Vec<u32>, Error> {
40
- unimplemented!("Convert {:?} from base {} to base {}", number, from_base, to_base)
40
+ unimplemented!(
41
+ "Convert {:?} from base {} to base {}",
42
+ number,
43
+ from_base,
44
+ to_base
45
+ )
41
46
  }
@@ -6,8 +6,10 @@ fn single_bit_one_to_decimal() {
6
6
  let input_digits = &[1];
7
7
  let output_base = 10;
8
8
  let output_digits = vec![1];
9
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
10
- Ok(output_digits));
9
+ assert_eq!(
10
+ ayb::convert(input_digits, input_base, output_base),
11
+ Ok(output_digits)
12
+ );
11
13
  }
12
14
 
13
15
  #[test]
@@ -17,8 +19,10 @@ fn binary_to_single_decimal() {
17
19
  let input_digits = &[1, 0, 1];
18
20
  let output_base = 10;
19
21
  let output_digits = vec![5];
20
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
21
- Ok(output_digits));
22
+ assert_eq!(
23
+ ayb::convert(input_digits, input_base, output_base),
24
+ Ok(output_digits)
25
+ );
22
26
  }
23
27
 
24
28
  #[test]
@@ -28,8 +32,10 @@ fn single_decimal_to_binary() {
28
32
  let input_digits = &[5];
29
33
  let output_base = 2;
30
34
  let output_digits = vec![1, 0, 1];
31
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
32
- Ok(output_digits));
35
+ assert_eq!(
36
+ ayb::convert(input_digits, input_base, output_base),
37
+ Ok(output_digits)
38
+ );
33
39
  }
34
40
 
35
41
  #[test]
@@ -39,8 +45,10 @@ fn binary_to_multiple_decimal() {
39
45
  let input_digits = &[1, 0, 1, 0, 1, 0];
40
46
  let output_base = 10;
41
47
  let output_digits = vec![4, 2];
42
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
43
- Ok(output_digits));
48
+ assert_eq!(
49
+ ayb::convert(input_digits, input_base, output_base),
50
+ Ok(output_digits)
51
+ );
44
52
  }
45
53
 
46
54
  #[test]
@@ -50,8 +58,10 @@ fn decimal_to_binary() {
50
58
  let input_digits = &[4, 2];
51
59
  let output_base = 2;
52
60
  let output_digits = vec![1, 0, 1, 0, 1, 0];
53
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
54
- Ok(output_digits));
61
+ assert_eq!(
62
+ ayb::convert(input_digits, input_base, output_base),
63
+ Ok(output_digits)
64
+ );
55
65
  }
56
66
 
57
67
  #[test]
@@ -61,8 +71,10 @@ fn trinary_to_hexadecimal() {
61
71
  let input_digits = &[1, 1, 2, 0];
62
72
  let output_base = 16;
63
73
  let output_digits = vec![2, 10];
64
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
65
- Ok(output_digits));
74
+ assert_eq!(
75
+ ayb::convert(input_digits, input_base, output_base),
76
+ Ok(output_digits)
77
+ );
66
78
  }
67
79
 
68
80
  #[test]
@@ -72,8 +84,10 @@ fn hexadecimal_to_trinary() {
72
84
  let input_digits = &[2, 10];
73
85
  let output_base = 3;
74
86
  let output_digits = vec![1, 1, 2, 0];
75
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
76
- Ok(output_digits));
87
+ assert_eq!(
88
+ ayb::convert(input_digits, input_base, output_base),
89
+ Ok(output_digits)
90
+ );
77
91
  }
78
92
 
79
93
  #[test]
@@ -83,8 +97,10 @@ fn fifteen_bit_integer() {
83
97
  let input_digits = &[3, 46, 60];
84
98
  let output_base = 73;
85
99
  let output_digits = vec![6, 10, 45];
86
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
87
- Ok(output_digits));
100
+ assert_eq!(
101
+ ayb::convert(input_digits, input_base, output_base),
102
+ Ok(output_digits)
103
+ );
88
104
  }
89
105
 
90
106
  #[test]
@@ -94,8 +110,10 @@ fn empty_list() {
94
110
  let input_digits = &[];
95
111
  let output_base = 10;
96
112
  let output_digits = vec![];
97
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
98
- Ok(output_digits));
113
+ assert_eq!(
114
+ ayb::convert(input_digits, input_base, output_base),
115
+ Ok(output_digits)
116
+ );
99
117
  }
100
118
 
101
119
  #[test]
@@ -105,8 +123,10 @@ fn single_zero() {
105
123
  let input_digits = &[0];
106
124
  let output_base = 2;
107
125
  let output_digits = vec![];
108
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
109
- Ok(output_digits));
126
+ assert_eq!(
127
+ ayb::convert(input_digits, input_base, output_base),
128
+ Ok(output_digits)
129
+ );
110
130
  }
111
131
 
112
132
  #[test]
@@ -116,8 +136,10 @@ fn multiple_zeros() {
116
136
  let input_digits = &[0, 0, 0];
117
137
  let output_base = 2;
118
138
  let output_digits = vec![];
119
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
120
- Ok(output_digits));
139
+ assert_eq!(
140
+ ayb::convert(input_digits, input_base, output_base),
141
+ Ok(output_digits)
142
+ );
121
143
  }
122
144
 
123
145
  #[test]
@@ -127,8 +149,10 @@ fn leading_zeros() {
127
149
  let input_digits = &[0, 6, 0];
128
150
  let output_base = 10;
129
151
  let output_digits = vec![4, 2];
130
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
131
- Ok(output_digits));
152
+ assert_eq!(
153
+ ayb::convert(input_digits, input_base, output_base),
154
+ Ok(output_digits)
155
+ );
132
156
  }
133
157
 
134
158
  #[test]
@@ -137,8 +161,10 @@ fn invalid_positive_digit() {
137
161
  let input_base = 2;
138
162
  let input_digits = &[1, 2, 1, 0, 1, 0];
139
163
  let output_base = 10;
140
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
141
- Err(ayb::Error::InvalidDigit(2)));
164
+ assert_eq!(
165
+ ayb::convert(input_digits, input_base, output_base),
166
+ Err(ayb::Error::InvalidDigit(2))
167
+ );
142
168
  }
143
169
 
144
170
  #[test]
@@ -147,8 +173,10 @@ fn input_base_is_one() {
147
173
  let input_base = 1;
148
174
  let input_digits = &[];
149
175
  let output_base = 10;
150
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
151
- Err(ayb::Error::InvalidInputBase));
176
+ assert_eq!(
177
+ ayb::convert(input_digits, input_base, output_base),
178
+ Err(ayb::Error::InvalidInputBase)
179
+ );
152
180
  }
153
181
 
154
182
  #[test]
@@ -157,8 +185,10 @@ fn output_base_is_one() {
157
185
  let input_base = 2;
158
186
  let input_digits = &[1, 0, 1, 0, 1, 0];
159
187
  let output_base = 1;
160
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
161
- Err(ayb::Error::InvalidOutputBase));
188
+ assert_eq!(
189
+ ayb::convert(input_digits, input_base, output_base),
190
+ Err(ayb::Error::InvalidOutputBase)
191
+ );
162
192
  }
163
193
 
164
194
  #[test]
@@ -167,8 +197,10 @@ fn input_base_is_zero() {
167
197
  let input_base = 0;
168
198
  let input_digits = &[];
169
199
  let output_base = 10;
170
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
171
- Err(ayb::Error::InvalidInputBase));
200
+ assert_eq!(
201
+ ayb::convert(input_digits, input_base, output_base),
202
+ Err(ayb::Error::InvalidInputBase)
203
+ );
172
204
  }
173
205
 
174
206
  #[test]
@@ -177,6 +209,8 @@ fn output_base_is_zero() {
177
209
  let input_base = 10;
178
210
  let input_digits = &[7];
179
211
  let output_base = 0;
180
- assert_eq!(ayb::convert(input_digits, input_base, output_base),
181
- Err(ayb::Error::InvalidOutputBase));
212
+ assert_eq!(
213
+ ayb::convert(input_digits, input_base, output_base),
214
+ Err(ayb::Error::InvalidOutputBase)
215
+ );
182
216
  }
@@ -42,11 +42,31 @@ Execute the tests with:
42
42
  $ cargo test
43
43
  ```
44
44
 
45
- All but the first test have been ignored. After you get the first test to
46
- pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
47
- to pass again. The test file is located in the `tests` directory. You can
48
- also remove the ignore flag from all the tests to get them to run all at once
49
- if you wish.
45
+ All but the first test have been ignored. After you get the first test to
46
+ pass, open the tests source file wich is located in the `tests` directory
47
+ and remove the `#[ignore]` flag from the next test and get the tests to pass
48
+ again. Each separate test is a function with `#[test]` flag above it.
49
+ Continue, until you pass every test.
50
+
51
+ If you wish to run all tests without editing the tests source file, use:
52
+
53
+ ```bash
54
+ $ cargo test -- --ignored
55
+ ```
56
+
57
+ To run a specific test, for example `some_test`, you can use:
58
+
59
+ ```bash
60
+ $ cargo test some_test
61
+ ```
62
+
63
+ If the specfic test is ignored use:
64
+
65
+ ```bash
66
+ $ cargo test some_test -- --ignored
67
+ ```
68
+
69
+ To learn more about Rust tests refer to the [online test documentation][rust-tests]
50
70
 
51
71
  Make sure to read the [Modules](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html) chapter if you
52
72
  haven't already, it will help you with organizing your files.
@@ -60,6 +80,7 @@ If you want to know more about Exercism, take a look at the [contribution guide]
60
80
  [help-page]: http://exercism.io/languages/rust
61
81
  [modules]: https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html
62
82
  [cargo]: https://doc.rust-lang.org/book/second-edition/ch14-00-more-about-cargo.html
83
+ [rust-tests]: https://doc.rust-lang.org/book/second-edition/ch11-02-running-tests.html
63
84
 
64
85
  ## Source
65
86
 
@@ -5,16 +5,18 @@ use allergies::*;
5
5
  fn compare_allergy_vectors(expected: &[Allergen], actual: &[Allergen]) {
6
6
  for element in expected {
7
7
  if !actual.contains(element) {
8
- panic!("Allergen missing\n {:?} should be in {:?}",
9
- element,
10
- actual);
8
+ panic!(
9
+ "Allergen missing\n {:?} should be in {:?}",
10
+ element, actual
11
+ );
11
12
  }
12
13
  }
13
14
 
14
15
  if actual.len() != expected.len() {
15
- panic!("Allergy vectors are of different lengths\n expected {:?}\n got {:?}",
16
- expected,
17
- actual);
16
+ panic!(
17
+ "Allergy vectors are of different lengths\n expected {:?}\n got {:?}",
18
+ expected, actual
19
+ );
18
20
  }
19
21
  }
20
22
 
@@ -98,11 +100,13 @@ fn allergic_to_eggs_and_shellfish() {
98
100
  #[test]
99
101
  #[ignore]
100
102
  fn allergic_to_many_things() {
101
- let expected = &[Allergen::Strawberries,
102
- Allergen::Tomatoes,
103
- Allergen::Chocolate,
104
- Allergen::Pollen,
105
- Allergen::Cats];
103
+ let expected = &[
104
+ Allergen::Strawberries,
105
+ Allergen::Tomatoes,
106
+ Allergen::Chocolate,
107
+ Allergen::Pollen,
108
+ Allergen::Cats,
109
+ ];
106
110
  let allergies = Allergies::new(248).allergies();
107
111
 
108
112
  compare_allergy_vectors(expected, &allergies);
@@ -111,14 +115,16 @@ fn allergic_to_many_things() {
111
115
  #[test]
112
116
  #[ignore]
113
117
  fn allergic_to_everything() {
114
- let expected = &[Allergen::Eggs,
115
- Allergen::Peanuts,
116
- Allergen::Shellfish,
117
- Allergen::Strawberries,
118
- Allergen::Tomatoes,
119
- Allergen::Chocolate,
120
- Allergen::Pollen,
121
- Allergen::Cats];
118
+ let expected = &[
119
+ Allergen::Eggs,
120
+ Allergen::Peanuts,
121
+ Allergen::Shellfish,
122
+ Allergen::Strawberries,
123
+ Allergen::Tomatoes,
124
+ Allergen::Chocolate,
125
+ Allergen::Pollen,
126
+ Allergen::Cats,
127
+ ];
122
128
  let allergies = Allergies::new(255).allergies();
123
129
 
124
130
  compare_allergy_vectors(expected, &allergies);
@@ -127,13 +133,15 @@ fn allergic_to_everything() {
127
133
  #[test]
128
134
  #[ignore]
129
135
  fn scores_over_255_do_not_trigger_false_positives() {
130
- let expected = &[Allergen::Eggs,
131
- Allergen::Shellfish,
132
- Allergen::Strawberries,
133
- Allergen::Tomatoes,
134
- Allergen::Chocolate,
135
- Allergen::Pollen,
136
- Allergen::Cats];
136
+ let expected = &[
137
+ Allergen::Eggs,
138
+ Allergen::Shellfish,
139
+ Allergen::Strawberries,
140
+ Allergen::Tomatoes,
141
+ Allergen::Chocolate,
142
+ Allergen::Pollen,
143
+ Allergen::Cats,
144
+ ];
137
145
  let allergies = Allergies::new(509).allergies();
138
146
 
139
147
  compare_allergy_vectors(expected, &allergies);
@@ -44,11 +44,31 @@ Execute the tests with:
44
44
  $ cargo test
45
45
  ```
46
46
 
47
- All but the first test have been ignored. After you get the first test to
48
- pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
49
- to pass again. The test file is located in the `tests` directory. You can
50
- also remove the ignore flag from all the tests to get them to run all at once
51
- if you wish.
47
+ All but the first test have been ignored. After you get the first test to
48
+ pass, open the tests source file wich is located in the `tests` directory
49
+ and remove the `#[ignore]` flag from the next test and get the tests to pass
50
+ again. Each separate test is a function with `#[test]` flag above it.
51
+ Continue, until you pass every test.
52
+
53
+ If you wish to run all tests without editing the tests source file, use:
54
+
55
+ ```bash
56
+ $ cargo test -- --ignored
57
+ ```
58
+
59
+ To run a specific test, for example `some_test`, you can use:
60
+
61
+ ```bash
62
+ $ cargo test some_test
63
+ ```
64
+
65
+ If the specfic test is ignored use:
66
+
67
+ ```bash
68
+ $ cargo test some_test -- --ignored
69
+ ```
70
+
71
+ To learn more about Rust tests refer to the [online test documentation][rust-tests]
52
72
 
53
73
  Make sure to read the [Modules](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html) chapter if you
54
74
  haven't already, it will help you with organizing your files.
@@ -62,6 +82,7 @@ If you want to know more about Exercism, take a look at the [contribution guide]
62
82
  [help-page]: http://exercism.io/languages/rust
63
83
  [modules]: https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html
64
84
  [cargo]: https://doc.rust-lang.org/book/second-edition/ch14-00-more-about-cargo.html
85
+ [rust-tests]: https://doc.rust-lang.org/book/second-edition/ch11-02-running-tests.html
65
86
 
66
87
  ## Submitting Incomplete Solutions
67
88
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -35,28 +35,63 @@ fn test_puzzle_with_four_letters() {
35
35
  #[test]
36
36
  #[ignore]
37
37
  fn test_puzzle_with_six_letters() {
38
- assert_alphametic_solution_eq("NO + NO + TOO == LATE",
39
- &[('N', 7), ('O', 4), ('T', 9), ('L', 1), ('A', 0), ('E', 2)]);
38
+ assert_alphametic_solution_eq(
39
+ "NO + NO + TOO == LATE",
40
+ &[('N', 7), ('O', 4), ('T', 9), ('L', 1), ('A', 0), ('E', 2)],
41
+ );
40
42
  }
41
43
 
42
44
  #[test]
43
45
  #[ignore]
44
46
  fn test_puzzle_with_seven_letters() {
45
- assert_alphametic_solution_eq("HE + SEES + THE == LIGHT",
46
- &[('E', 4), ('G', 2), ('H', 5), ('I', 0), ('L', 1), ('S', 9), ('T', 7)]);
47
+ assert_alphametic_solution_eq(
48
+ "HE + SEES + THE == LIGHT",
49
+ &[
50
+ ('E', 4),
51
+ ('G', 2),
52
+ ('H', 5),
53
+ ('I', 0),
54
+ ('L', 1),
55
+ ('S', 9),
56
+ ('T', 7),
57
+ ],
58
+ );
47
59
  }
48
60
 
49
61
  #[test]
50
62
  #[ignore]
51
63
  fn test_puzzle_with_eight_letters() {
52
- assert_alphametic_solution_eq("SEND + MORE == MONEY",
53
- &[('S', 9), ('E', 5), ('N', 6), ('D', 7), ('M', 1), ('O', 0), ('R', 8), ('Y', 2)]);
64
+ assert_alphametic_solution_eq(
65
+ "SEND + MORE == MONEY",
66
+ &[
67
+ ('S', 9),
68
+ ('E', 5),
69
+ ('N', 6),
70
+ ('D', 7),
71
+ ('M', 1),
72
+ ('O', 0),
73
+ ('R', 8),
74
+ ('Y', 2),
75
+ ],
76
+ );
54
77
  }
55
78
 
56
79
  #[test]
57
80
  #[ignore]
58
81
  fn test_puzzle_with_ten_letters() {
59
- assert_alphametic_solution_eq("AND + A + STRONG + OFFENSE + AS + A + GOOD == DEFENSE",
60
- &[('A', 5), ('D', 3), ('E', 4), ('F', 7), ('G', 8), ('N', 0), ('O', 2), ('R', 1),
61
- ('S', 6), ('T', 9)]);
82
+ assert_alphametic_solution_eq(
83
+ "AND + A + STRONG + OFFENSE + AS + A + GOOD == DEFENSE",
84
+ &[
85
+ ('A', 5),
86
+ ('D', 3),
87
+ ('E', 4),
88
+ ('F', 7),
89
+ ('G', 8),
90
+ ('N', 0),
91
+ ('O', 2),
92
+ ('R', 1),
93
+ ('S', 6),
94
+ ('T', 9),
95
+ ],
96
+ );
62
97
  }