trackler 2.2.1.91 → 2.2.1.92

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/diamond/metadata.yml +1 -1
  4. data/problem-specifications/exercises/food-chain/canonical-data.json +42 -22
  5. data/problem-specifications/exercises/hello-world/canonical-data.json +2 -1
  6. data/problem-specifications/exercises/isbn-verifier/metadata.yml +2 -1
  7. data/problem-specifications/exercises/largest-series-product/canonical-data.json +62 -33
  8. data/problem-specifications/exercises/leap/canonical-data.json +14 -6
  9. data/problem-specifications/exercises/list-ops/canonical-data.json +6 -6
  10. data/problem-specifications/exercises/markdown/canonical-data.json +29 -11
  11. data/problem-specifications/exercises/minesweeper/canonical-data.json +80 -56
  12. data/problem-specifications/exercises/minesweeper/metadata.yml +1 -1
  13. data/problem-specifications/exercises/nth-prime/canonical-data.json +20 -8
  14. data/problem-specifications/exercises/nucleotide-count/canonical-data.json +17 -7
  15. data/problem-specifications/exercises/pascals-triangle/canonical-data.json +28 -10
  16. data/problem-specifications/exercises/perfect-numbers/canonical-data.json +41 -15
  17. data/problem-specifications/exercises/phone-number/canonical-data.json +44 -16
  18. data/problem-specifications/exercises/pig-latin/canonical-data.json +68 -24
  19. data/problem-specifications/exercises/reverse-string/metadata.yml +1 -1
  20. data/problem-specifications/exercises/rna-transcription/canonical-data.json +17 -7
  21. data/problem-specifications/exercises/roman-numerals/canonical-data.json +56 -20
  22. data/problem-specifications/exercises/rotational-cipher/canonical-data.json +42 -22
  23. data/problem-specifications/exercises/saddle-points/canonical-data.json +34 -24
  24. data/problem-specifications/exercises/scrabble-score/canonical-data.json +35 -13
  25. data/problem-specifications/exercises/secret-handshake/canonical-data.json +34 -12
  26. data/problem-specifications/exercises/sieve/canonical-data.json +16 -6
  27. data/problem-specifications/exercises/space-age/canonical-data.json +34 -18
  28. data/problem-specifications/exercises/spiral-matrix/canonical-data.json +19 -7
  29. data/problem-specifications/exercises/sublist/canonical-data.json +69 -35
  30. data/problem-specifications/exercises/twelve-days/canonical-data.json +61 -31
  31. data/problem-specifications/exercises/variable-length-quantity/canonical-data.json +79 -27
  32. data/problem-specifications/exercises/zebra-puzzle/canonical-data.json +3 -1
  33. data/tracks/csharp/exercises/accumulate/{HINTS.md → .meta/hints.md} +0 -0
  34. data/tracks/csharp/exercises/allergies/{HINTS.md → .meta/hints.md} +0 -0
  35. data/tracks/csharp/exercises/alphametics/{HINTS.md → .meta/hints.md} +0 -0
  36. data/tracks/csharp/exercises/bank-account/{HINTS.md → .meta/hints.md} +0 -0
  37. data/tracks/csharp/exercises/beer-song/{HINTS.md → .meta/hints.md} +0 -0
  38. data/tracks/csharp/exercises/clock/{HINTS.md → .meta/hints.md} +0 -0
  39. data/tracks/csharp/exercises/custom-set/{HINTS.md → .meta/hints.md} +0 -0
  40. data/tracks/csharp/exercises/diamond/{HINTS.md → .meta/hints.md} +0 -0
  41. data/tracks/csharp/exercises/difference-of-squares/{HINTS.md → .meta/hints.md} +0 -0
  42. data/tracks/csharp/exercises/diffie-hellman/{HINTS.md → .meta/hints.md} +0 -0
  43. data/tracks/csharp/exercises/dot-dsl/{HINTS.md → .meta/hints.md} +0 -0
  44. data/tracks/csharp/exercises/food-chain/{HINTS.md → .meta/hints.md} +0 -0
  45. data/tracks/csharp/exercises/forth/{HINTS.md → .meta/hints.md} +0 -0
  46. data/tracks/csharp/exercises/hangman/{HINTS.md → .meta/hints.md} +0 -0
  47. data/tracks/csharp/exercises/house/{HINTS.md → .meta/hints.md} +0 -0
  48. data/tracks/csharp/exercises/list-ops/{HINTS.md → .meta/hints.md} +0 -0
  49. data/tracks/csharp/exercises/markdown/{HINTS.md → .meta/hints.md} +0 -0
  50. data/tracks/csharp/exercises/nth-prime/{HINTS.md → .meta/hints.md} +0 -0
  51. data/tracks/csharp/exercises/nucleotide-count/{HINTS.md → .meta/hints.md} +0 -0
  52. data/tracks/csharp/exercises/palindrome-products/{HINTS.md → .meta/hints.md} +0 -0
  53. data/tracks/csharp/exercises/proverb/{HINTS.md → .meta/hints.md} +0 -0
  54. data/tracks/csharp/exercises/react/{HINTS.md → .meta/hints.md} +0 -0
  55. data/tracks/csharp/exercises/roman-numerals/{HINTS.md → .meta/hints.md} +0 -0
  56. data/tracks/csharp/exercises/saddle-points/{HINTS.md → .meta/hints.md} +0 -0
  57. data/tracks/csharp/exercises/sgf-parsing/{HINTS.md → .meta/hints.md} +0 -0
  58. data/tracks/csharp/exercises/simple-linked-list/{HINTS.md → .meta/hints.md} +0 -0
  59. data/tracks/csharp/exercises/sublist/{HINTS.md → .meta/hints.md} +0 -0
  60. data/tracks/csharp/exercises/sum-of-multiples/{HINTS.md → .meta/hints.md} +0 -0
  61. data/tracks/csharp/exercises/twelve-days/{HINTS.md → .meta/hints.md} +0 -0
  62. data/tracks/csharp/exercises/variable-length-quantity/{HINTS.md → .meta/hints.md} +0 -0
  63. data/tracks/csharp/exercises/word-search/{HINTS.md → .meta/hints.md} +0 -0
  64. data/tracks/csharp/exercises/wordy/{HINTS.md → .meta/hints.md} +0 -0
  65. data/tracks/csharp/exercises/zebra-puzzle/{HINTS.md → .meta/hints.md} +0 -0
  66. data/tracks/csharp/exercises/zipper/{HINTS.md → .meta/hints.md} +0 -0
  67. data/tracks/delphi/exercises/secret-handshake/uTestSecretHandshake.pas +1 -1
  68. data/tracks/elixir/config/exercise_readme.go.tmpl +34 -4
  69. data/tracks/elixir/exercises/accumulate/README.md +1 -6
  70. data/tracks/elixir/exercises/acronym/README.md +1 -4
  71. data/tracks/elixir/exercises/all-your-base/README.md +2 -5
  72. data/tracks/elixir/exercises/allergies/README.md +1 -4
  73. data/tracks/elixir/exercises/anagram/README.md +1 -3
  74. data/tracks/elixir/exercises/atbash-cipher/README.md +3 -4
  75. data/tracks/elixir/exercises/bank-account/README.md +1 -4
  76. data/tracks/elixir/exercises/beer-song/README.md +3 -5
  77. data/tracks/elixir/exercises/binary-search-tree/README.md +43 -0
  78. data/tracks/elixir/exercises/binary-search/README.md +1 -3
  79. data/tracks/elixir/exercises/binary/README.md +3 -3
  80. data/tracks/elixir/exercises/bob/README.md +2 -2
  81. data/tracks/elixir/exercises/bowling/README.md +21 -9
  82. data/tracks/elixir/exercises/bracket-push/README.md +1 -3
  83. data/tracks/elixir/exercises/change/README.md +2 -4
  84. data/tracks/elixir/exercises/clock/README.md +1 -3
  85. data/tracks/elixir/exercises/collatz-conjecture/README.md +2 -4
  86. data/tracks/elixir/exercises/connect/README.md +2 -5
  87. data/tracks/elixir/exercises/crypto-square/README.md +11 -11
  88. data/tracks/elixir/exercises/custom-set/README.md +1 -4
  89. data/tracks/elixir/exercises/diamond/README.md +7 -9
  90. data/tracks/elixir/exercises/difference-of-squares/README.md +1 -3
  91. data/tracks/elixir/exercises/diffie-hellman/{HINTS.md → .meta/hints.md} +0 -0
  92. data/tracks/elixir/exercises/diffie-hellman/README.md +1 -3
  93. data/tracks/elixir/exercises/dominoes/README.md +4 -7
  94. data/tracks/elixir/exercises/dot-dsl/README.md +2 -5
  95. data/tracks/elixir/exercises/etl/README.md +4 -4
  96. data/tracks/elixir/exercises/flatten-array/README.md +2 -5
  97. data/tracks/elixir/exercises/forth/README.md +1 -4
  98. data/tracks/elixir/exercises/gigasecond/README.md +1 -3
  99. data/tracks/elixir/exercises/grade-school/README.md +1 -4
  100. data/tracks/elixir/exercises/grains/README.md +1 -4
  101. data/tracks/elixir/exercises/grep/README.md +13 -15
  102. data/tracks/elixir/exercises/hamming/README.md +1 -3
  103. data/tracks/elixir/exercises/hello-world/README.md +23 -0
  104. data/tracks/elixir/exercises/hexadecimal/README.md +1 -3
  105. data/tracks/elixir/exercises/isbn-verifier/README.md +26 -24
  106. data/tracks/elixir/exercises/isogram/README.md +3 -4
  107. data/tracks/elixir/exercises/kindergarten-garden/README.md +14 -16
  108. data/tracks/elixir/exercises/largest-series-product/README.md +1 -3
  109. data/tracks/elixir/exercises/leap/README.md +2 -4
  110. data/tracks/elixir/exercises/list-ops/README.md +1 -4
  111. data/tracks/elixir/exercises/luhn/README.md +8 -10
  112. data/tracks/elixir/exercises/markdown/README.md +1 -4
  113. data/tracks/elixir/exercises/matrix/README.md +7 -7
  114. data/tracks/elixir/exercises/meetup/README.md +17 -16
  115. data/tracks/elixir/exercises/minesweeper/README.md +1 -4
  116. data/tracks/elixir/exercises/nth-prime/README.md +1 -3
  117. data/tracks/elixir/exercises/nucleotide-count/README.md +9 -25
  118. data/tracks/elixir/exercises/ocr-numbers/README.md +7 -9
  119. data/tracks/elixir/exercises/palindrome-products/README.md +16 -19
  120. data/tracks/elixir/exercises/pangram/README.md +2 -4
  121. data/tracks/elixir/exercises/parallel-letter-frequency/README.md +1 -4
  122. data/tracks/elixir/exercises/pascals-triangle/README.md +3 -5
  123. data/tracks/elixir/exercises/perfect-numbers/README.md +3 -5
  124. data/tracks/elixir/exercises/phone-number/README.md +5 -6
  125. data/tracks/elixir/exercises/pig-latin/README.md +1 -3
  126. data/tracks/elixir/exercises/poker/README.md +1 -3
  127. data/tracks/elixir/exercises/prime-factors/README.md +1 -3
  128. data/tracks/elixir/exercises/protein-translation/README.md +3 -6
  129. data/tracks/elixir/exercises/pythagorean-triplet/README.md +4 -6
  130. data/tracks/elixir/exercises/queen-attack/README.md +2 -4
  131. data/tracks/elixir/exercises/rail-fence-cipher/README.md +13 -10
  132. data/tracks/elixir/exercises/raindrops/README.md +1 -3
  133. data/tracks/elixir/exercises/rna-transcription/README.md +2 -4
  134. data/tracks/elixir/exercises/robot-simulator/README.md +1 -3
  135. data/tracks/elixir/exercises/roman-numerals/README.md +2 -4
  136. data/tracks/elixir/exercises/rotational-cipher/README.md +3 -4
  137. data/tracks/elixir/exercises/run-length-encoding/README.md +5 -7
  138. data/tracks/elixir/exercises/saddle-points/README.md +3 -5
  139. data/tracks/elixir/exercises/say/README.md +1 -3
  140. data/tracks/elixir/exercises/scale-generator/README.md +1 -5
  141. data/tracks/elixir/exercises/scrabble-score/README.md +4 -4
  142. data/tracks/elixir/exercises/secret-handshake/{HINTS.md → .meta/hints.md} +0 -0
  143. data/tracks/elixir/exercises/secret-handshake/README.md +4 -4
  144. data/tracks/elixir/exercises/series/README.md +1 -3
  145. data/tracks/elixir/exercises/sieve/README.md +1 -3
  146. data/tracks/elixir/exercises/simple-cipher/README.md +6 -10
  147. data/tracks/elixir/exercises/simple-linked-list/README.md +1 -3
  148. data/tracks/elixir/exercises/space-age/README.md +2 -4
  149. data/tracks/elixir/exercises/spiral-matrix/README.md +5 -5
  150. data/tracks/elixir/exercises/strain/{HINTS.md → .meta/hints.md} +0 -0
  151. data/tracks/elixir/exercises/strain/README.md +1 -3
  152. data/tracks/elixir/exercises/sublist/README.md +1 -4
  153. data/tracks/elixir/exercises/sum-of-multiples/README.md +4 -9
  154. data/tracks/elixir/exercises/tournament/{HINTS.md → .meta/hints.md} +0 -0
  155. data/tracks/elixir/exercises/tournament/README.md +6 -9
  156. data/tracks/elixir/exercises/transpose/README.md +6 -7
  157. data/tracks/elixir/exercises/triangle/README.md +10 -9
  158. data/tracks/elixir/exercises/twelve-days/README.md +2 -4
  159. data/tracks/elixir/exercises/word-count/README.md +2 -5
  160. data/tracks/elixir/exercises/wordy/README.md +1 -8
  161. data/tracks/elixir/exercises/zipper/README.md +2 -5
  162. data/tracks/fortran/README.md +1 -1
  163. data/tracks/fsharp/config/exercise_readme.go.tmpl +0 -3
  164. data/tracks/fsharp/exercises/accumulate/{HINTS.md → .meta/hints.md} +0 -0
  165. data/tracks/fsharp/exercises/alphametics/{HINTS.md → .meta/hints.md} +0 -0
  166. data/tracks/fsharp/exercises/beer-song/{HINTS.md → .meta/hints.md} +0 -0
  167. data/tracks/fsharp/exercises/diamond/{HINTS.md → .meta/hints.md} +0 -0
  168. data/tracks/fsharp/exercises/difference-of-squares/{HINTS.md → .meta/hints.md} +0 -0
  169. data/tracks/fsharp/exercises/diffie-hellman/{HINTS.md → .meta/hints.md} +0 -0
  170. data/tracks/fsharp/exercises/food-chain/{HINTS.md → .meta/hints.md} +0 -0
  171. data/tracks/fsharp/exercises/gigasecond/{HINTS.md → .meta/hints.md} +0 -0
  172. data/tracks/fsharp/exercises/grade-school/{HINTS.md → .meta/hints.md} +0 -0
  173. data/tracks/fsharp/exercises/grains/{HINTS.md → .meta/hints.md} +0 -0
  174. data/tracks/fsharp/exercises/house/{HINTS.md → .meta/hints.md} +0 -0
  175. data/tracks/fsharp/exercises/lens-person/{HINTS.md → .meta/hints.md} +0 -0
  176. data/tracks/fsharp/exercises/linked-list/{HINTS.md → .meta/hints.md} +0 -0
  177. data/tracks/fsharp/exercises/nth-prime/{HINTS.md → .meta/hints.md} +0 -0
  178. data/tracks/fsharp/exercises/palindrome-products/{HINTS.md → .meta/hints.md} +0 -0
  179. data/tracks/fsharp/exercises/parallel-letter-frequency/{HINTS.md → .meta/hints.md} +0 -0
  180. data/tracks/fsharp/exercises/poker/{HINTS.md → .meta/hints.md} +0 -0
  181. data/tracks/fsharp/exercises/proverb/{HINTS.md → .meta/hints.md} +0 -0
  182. data/tracks/fsharp/exercises/raindrops/{HINTS.md → .meta/hints.md} +0 -0
  183. data/tracks/fsharp/exercises/rna-transcription/{HINTS.md → .meta/hints.md} +0 -0
  184. data/tracks/fsharp/exercises/space-age/{HINTS.md → .meta/hints.md} +0 -0
  185. data/tracks/fsharp/exercises/twelve-days/{HINTS.md → .meta/hints.md} +0 -0
  186. data/tracks/fsharp/exercises/wordy/{HINTS.md → .meta/hints.md} +0 -0
  187. data/tracks/java/exercises/acronym/.meta/version +1 -1
  188. data/tracks/java/exercises/acronym/src/test/java/AcronymTest.java +6 -6
  189. data/tracks/java/exercises/raindrops/.meta/version +1 -0
  190. data/tracks/java/exercises/raindrops/src/test/java/RaindropConverterTest.java +3 -1
  191. data/tracks/java/exercises/transpose/src/test/java/TransposeTest.java +5 -5
  192. data/tracks/java/exercises/word-count/.meta/src/reference/java/WordCount.java +1 -1
  193. data/tracks/java/exercises/word-count/.meta/version +1 -0
  194. data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +73 -3
  195. data/tracks/mips/config/exercise_readme.go.tmpl +0 -3
  196. data/tracks/perl5/config/exercise_readme.go.tmpl +0 -3
  197. data/tracks/php/exercises/bob/{HINTS.md → .meta/hints.md} +0 -0
  198. data/tracks/php/exercises/roman-numerals/roman-numerals_test.php +1 -1
  199. data/tracks/pony/config/exercise_readme.go.tmpl +0 -3
  200. data/tracks/python/config.json +14 -0
  201. data/tracks/python/exercises/isbn-verifier/README.md +43 -0
  202. data/tracks/python/exercises/isbn-verifier/example.py +8 -0
  203. data/tracks/python/exercises/isbn-verifier/isbn_verifier.py +2 -0
  204. data/tracks/python/exercises/isbn-verifier/isbn_verifier_test.py +54 -0
  205. data/tracks/rust/exercises/atbash-cipher/example.rs +0 -2
  206. data/tracks/rust/exercises/bracket-push/{HINTS.md → .meta/hints.md} +0 -0
  207. data/tracks/rust/exercises/crypto-square/example.rs +0 -2
  208. data/tracks/rust/exercises/etl/example.rs +0 -1
  209. data/tracks/rust/exercises/forth/example.rs +0 -1
  210. data/tracks/rust/exercises/largest-series-product/{HINTS.md → .meta/hints.md} +0 -0
  211. data/tracks/rust/exercises/pangram/example.rs +0 -1
  212. data/tracks/rust/exercises/parallel-letter-frequency/{HINTS.md → .meta/hints.md} +0 -0
  213. data/tracks/rust/exercises/scrabble-score/tests/scrabble-score.rs +9 -2
  214. data/tracks/rust/exercises/space-age/{HINTS.md → .meta/hints.md} +0 -0
  215. data/tracks/rust/exercises/triangle/{HINTS.md → .meta/hints.md} +0 -0
  216. data/tracks/scala/exercises/bank-account/{HINTS.md → .meta/hints.md} +0 -0
  217. data/tracks/scala/exercises/connect/{HINTS.md → .meta/hints.md} +0 -0
  218. data/tracks/scala/exercises/gigasecond/{HINTS.md → .meta/hints.md} +0 -0
  219. data/tracks/scala/exercises/hamming/{HINTS.md → .meta/hints.md} +0 -0
  220. data/tracks/scala/exercises/hello-world/{HINTS.md → .meta/hints.md} +0 -0
  221. data/tracks/scala/exercises/leap/{HINTS.md → .meta/hints.md} +0 -0
  222. data/tracks/scala/exercises/nucleotide-count/{HINTS.md → .meta/hints.md} +0 -0
  223. data/tracks/scala/exercises/parallel-letter-frequency/{HINTS.md → .meta/hints.md} +0 -0
  224. data/tracks/scala/exercises/phone-number/{HINTS.md → .meta/hints.md} +0 -0
  225. data/tracks/scala/exercises/robot-name/{HINTS.md → .meta/hints.md} +0 -0
  226. data/tracks/scala/exercises/roman-numerals/{HINTS.md → .meta/hints.md} +0 -0
  227. data/tracks/scala/exercises/variable-length-quantity/{HINTS.md → .meta/hints.md} +0 -0
  228. metadata +87 -86
  229. data/tracks/elixir/docs/EXERCISE_README_INSERT.md +0 -35
  230. data/tracks/fsharp/docs/EXERCISE_README_INSERT.md +0 -0
  231. data/tracks/mips/docs/EXERCISE_README_INSERT.md +0 -0
  232. data/tracks/perl5/docs/EXERCISE_README_INSERT.md +0 -0
  233. data/tracks/pony/docs/EXERCISE_README_INSERT.md +0 -0
@@ -1,72 +1,94 @@
1
1
  {
2
2
  "exercise": "scrabble-score",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "lowercase letter",
7
7
  "property": "score",
8
- "input": "a",
8
+ "input": {
9
+ "word": "a"
10
+ },
9
11
  "expected": 1
10
12
  },
11
13
  {
12
14
  "description": "uppercase letter",
13
15
  "property": "score",
14
- "input": "A",
16
+ "input": {
17
+ "word": "A"
18
+ },
15
19
  "expected": 1
16
20
  },
17
21
  {
18
22
  "description": "valuable letter",
19
23
  "property": "score",
20
- "input": "f",
24
+ "input": {
25
+ "word": "f"
26
+ },
21
27
  "expected": 4
22
28
  },
23
29
  {
24
30
  "description": "short word",
25
31
  "property": "score",
26
- "input": "at",
32
+ "input": {
33
+ "word": "at"
34
+ },
27
35
  "expected": 2
28
36
  },
29
37
  {
30
38
  "description": "short, valuable word",
31
39
  "property": "score",
32
- "input": "zoo",
40
+ "input": {
41
+ "word": "zoo"
42
+ },
33
43
  "expected": 12
34
44
  },
35
45
  {
36
46
  "description": "medium word",
37
47
  "property": "score",
38
- "input": "street",
48
+ "input": {
49
+ "word": "street"
50
+ },
39
51
  "expected": 6
40
52
  },
41
53
  {
42
54
  "description": "medium, valuable word",
43
55
  "property": "score",
44
- "input": "quirky",
56
+ "input": {
57
+ "word": "quirky"
58
+ },
45
59
  "expected": 22
46
60
  },
47
61
  {
48
62
  "description": "long, mixed-case word",
49
63
  "property": "score",
50
- "input": "OxyphenButazone",
64
+ "input": {
65
+ "word": "OxyphenButazone"
66
+ },
51
67
  "expected": 41
52
68
  },
53
69
  {
54
70
  "description": "english-like word",
55
71
  "property": "score",
56
- "input": "pinata",
72
+ "input": {
73
+ "word": "pinata"
74
+ },
57
75
  "expected": 8
58
76
  },
59
77
  {
60
78
  "description": "empty input",
61
79
  "property": "score",
62
- "input": "",
80
+ "input": {
81
+ "word": ""
82
+ },
63
83
  "expected": 0
64
84
  },
65
85
  {
66
86
  "description": "entire alphabet available",
67
87
  "property": "score",
68
- "input": "abcdefghijklmnopqrstuvwxyz",
88
+ "input": {
89
+ "word": "abcdefghijklmnopqrstuvwxyz"
90
+ },
69
91
  "expected": 87
70
92
  }
71
93
  ]
72
- }
94
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "secret-handshake",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "comments": [
5
5
  " In a discussion in https://github.com/exercism/problem-specifications/pull/794 and ",
6
6
  " https://github.com/exercism/problem-specifications/issues/335 it has been decided to ",
@@ -21,67 +21,89 @@
21
21
  {
22
22
  "description": "wink for 1",
23
23
  "property": "commands",
24
- "input": 1,
24
+ "input": {
25
+ "number": 1
26
+ },
25
27
  "expected": ["wink"]
26
28
  },
27
29
  {
28
30
  "description": "double blink for 10",
29
31
  "property": "commands",
30
- "input": 2,
32
+ "input": {
33
+ "number": 2
34
+ },
31
35
  "expected": ["double blink"]
32
36
  },
33
37
  {
34
38
  "description": "close your eyes for 100",
35
39
  "property": "commands",
36
- "input": 4,
40
+ "input": {
41
+ "number": 4
42
+ },
37
43
  "expected": ["close your eyes"]
38
44
  },
39
45
  {
40
46
  "description": "jump for 1000",
41
47
  "property": "commands",
42
- "input": 8,
48
+ "input": {
49
+ "number": 8
50
+ },
43
51
  "expected": ["jump"]
44
52
  },
45
53
  {
46
54
  "description": "combine two actions",
47
55
  "property": "commands",
48
- "input": 3,
56
+ "input": {
57
+ "number": 3
58
+ },
49
59
  "expected": ["wink", "double blink"]
50
60
  },
51
61
  {
52
62
  "description": "reverse two actions",
53
63
  "property": "commands",
54
- "input": 19,
64
+ "input": {
65
+ "number": 19
66
+ },
55
67
  "expected": ["double blink", "wink"]
56
68
  },
57
69
  {
58
70
  "description": "reversing one action gives the same action",
59
71
  "property": "commands",
60
- "input": 24,
72
+ "input": {
73
+ "number": 24
74
+ },
61
75
  "expected": ["jump"]
62
76
  },
63
77
  {
64
78
  "description": "reversing no actions still gives no actions",
65
79
  "property": "commands",
66
- "input": 16,
80
+ "input": {
81
+ "number": 16
82
+ },
67
83
  "expected": []
68
84
  },
69
85
  {
70
86
  "description": "all possible actions",
71
87
  "property": "commands",
72
- "input": 15,
88
+ "input": {
89
+ "number": 15
90
+ },
73
91
  "expected": ["wink", "double blink", "close your eyes", "jump"]
74
92
  },
75
93
  {
76
94
  "description": "reverse all possible actions",
77
95
  "property": "commands",
78
- "input": 31,
96
+ "input": {
97
+ "number": 31
98
+ },
79
99
  "expected": ["jump", "close your eyes", "double blink", "wink"]
80
100
  },
81
101
  {
82
102
  "description": "do nothing for zero",
83
103
  "property": "commands",
84
- "input": 0,
104
+ "input": {
105
+ "number": 0
106
+ },
85
107
  "expected": []
86
108
  }
87
109
  ]
@@ -1,35 +1,45 @@
1
1
  {
2
2
  "exercise": "sieve",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "no primes under two",
7
7
  "property": "primes",
8
- "limit": 1,
8
+ "input": {
9
+ "limit": 1
10
+ },
9
11
  "expected": []
10
12
  },
11
13
  {
12
14
  "description": "find first prime",
13
15
  "property": "primes",
14
- "limit": 2,
16
+ "input": {
17
+ "limit": 2
18
+ },
15
19
  "expected": [2]
16
20
  },
17
21
  {
18
22
  "description": "find primes up to 10",
19
23
  "property": "primes",
20
- "limit": 10,
24
+ "input": {
25
+ "limit": 10
26
+ },
21
27
  "expected": [2, 3, 5, 7]
22
28
  },
23
29
  {
24
30
  "description": "limit is prime",
25
31
  "property": "primes",
26
- "limit": 13,
32
+ "input": {
33
+ "limit": 13
34
+ },
27
35
  "expected": [2, 3, 5, 7, 11, 13]
28
36
  },
29
37
  {
30
38
  "description": "find primes up to 1000",
31
39
  "property": "primes",
32
- "limit": 1000,
40
+ "input": {
41
+ "limit": 1000
42
+ },
33
43
  "expected": [
34
44
  2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
35
45
  47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,
@@ -1,62 +1,78 @@
1
1
  {
2
2
  "exercise": "space-age",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "age on Earth",
7
7
  "property": "age",
8
- "planet": "Earth",
9
- "seconds": 1000000000,
8
+ "input": {
9
+ "planet": "Earth",
10
+ "seconds": 1000000000
11
+ },
10
12
  "expected": 31.69
11
13
  },
12
14
  {
13
15
  "description": "age on Mercury",
14
16
  "property": "age",
15
- "planet": "Mercury",
16
- "seconds": 2134835688,
17
+ "input": {
18
+ "planet": "Mercury",
19
+ "seconds": 2134835688
20
+ },
17
21
  "expected": 280.88
18
22
  },
19
23
  {
20
24
  "description": "age on Venus",
21
25
  "property": "age",
22
- "planet": "Venus",
23
- "seconds": 189839836,
26
+ "input": {
27
+ "planet": "Venus",
28
+ "seconds": 189839836
29
+ },
24
30
  "expected": 9.78
25
31
  },
26
32
  {
27
33
  "description": "age on Mars",
28
34
  "property": "age",
29
- "planet": "Mars",
30
- "seconds": 2329871239,
35
+ "input": {
36
+ "planet": "Mars",
37
+ "seconds": 2329871239
38
+ },
31
39
  "expected": 39.25
32
40
  },
33
41
  {
34
42
  "description": "age on Jupiter",
35
43
  "property": "age",
36
- "planet": "Jupiter",
37
- "seconds": 901876382,
44
+ "input": {
45
+ "planet": "Jupiter",
46
+ "seconds": 901876382
47
+ },
38
48
  "expected": 2.41
39
49
  },
40
50
  {
41
51
  "description": "age on Saturn",
42
52
  "property": "age",
43
- "planet": "Saturn",
44
- "seconds": 3000000000,
53
+ "input": {
54
+ "planet": "Saturn",
55
+ "seconds": 3000000000
56
+ },
45
57
  "expected": 3.23
46
58
  },
47
59
  {
48
60
  "description": "age on Uranus",
49
61
  "property": "age",
50
- "planet": "Uranus",
51
- "seconds": 3210123456,
62
+ "input": {
63
+ "planet": "Uranus",
64
+ "seconds": 3210123456
65
+ },
52
66
  "expected": 1.21
53
67
  },
54
68
  {
55
69
  "description": "age on Neptune",
56
70
  "property": "age",
57
- "planet": "Neptune",
58
- "seconds": 8210123456,
71
+ "input": {
72
+ "planet": "Neptune",
73
+ "seconds": 8210123456
74
+ },
59
75
  "expected": 1.58
60
76
  }
61
77
  ]
62
- }
78
+ }
@@ -1,30 +1,38 @@
1
1
  {
2
2
  "exercise": "spiral-matrix",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "empty spiral",
7
7
  "property": "spiralMatrix",
8
- "input": 0,
8
+ "input": {
9
+ "size": 0
10
+ },
9
11
  "expected": []
10
12
  },
11
13
  {
12
14
  "description": "trivial spiral",
13
15
  "property": "spiralMatrix",
14
- "input": 1,
16
+ "input": {
17
+ "size": 1
18
+ },
15
19
  "expected": [ [1] ]
16
20
  },
17
21
  {
18
22
  "description": "spiral of size 2",
19
23
  "property": "spiralMatrix",
20
- "input": 2,
24
+ "input": {
25
+ "size": 2
26
+ },
21
27
  "expected": [ [1, 2]
22
28
  , [4, 3] ]
23
29
  },
24
30
  {
25
31
  "description": "spiral of size 3",
26
32
  "property": "spiralMatrix",
27
- "input": 3,
33
+ "input": {
34
+ "size": 3
35
+ },
28
36
  "expected": [ [1, 2, 3]
29
37
  , [8, 9, 4]
30
38
  , [7, 6, 5] ]
@@ -32,7 +40,9 @@
32
40
  {
33
41
  "description": "spiral of size 4",
34
42
  "property": "spiralMatrix",
35
- "input": 4,
43
+ "input": {
44
+ "size": 4
45
+ },
36
46
  "expected": [ [ 1, 2, 3, 4]
37
47
  , [12, 13, 14, 5]
38
48
  , [11, 16, 15, 6]
@@ -41,7 +51,9 @@
41
51
  {
42
52
  "description": "spiral of size 5",
43
53
  "property": "spiralMatrix",
44
- "input": 5,
54
+ "input": {
55
+ "size": 5
56
+ },
45
57
  "expected": [ [ 1, 2, 3, 4, 5]
46
58
  , [16, 17, 18, 19, 6]
47
59
  , [15, 24, 25, 20, 7]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "sublist",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "Lists are ordered and sequential.",
6
6
  "https://en.wikipedia.org/wiki/List_%28abstract_data_type%29",
@@ -18,120 +18,154 @@
18
18
  {
19
19
  "description": "empty lists",
20
20
  "property": "sublist",
21
- "listOne": [],
22
- "listTwo": [],
21
+ "input": {
22
+ "listOne": [],
23
+ "listTwo": []
24
+ },
23
25
  "expected": "equal"
24
26
  },
25
27
  {
26
28
  "description": "empty list within non empty list",
27
29
  "property": "sublist",
28
- "listOne": [],
29
- "listTwo": [1, 2, 3],
30
+ "input": {
31
+ "listOne": [],
32
+ "listTwo": [1, 2, 3]
33
+ },
30
34
  "expected": "sublist"
31
35
  },
32
36
  {
33
37
  "description": "non empty list contains empty list",
34
38
  "property": "sublist",
35
- "listOne": [1, 2, 3],
36
- "listTwo": [],
39
+ "input": {
40
+ "listOne": [1, 2, 3],
41
+ "listTwo": []
42
+ },
37
43
  "expected": "superlist"
38
44
  },
39
45
  {
40
46
  "description": "list equals itself",
41
47
  "property": "sublist",
42
- "listOne": [1, 2, 3],
43
- "listTwo": [1, 2, 3],
48
+ "input": {
49
+ "listOne": [1, 2, 3],
50
+ "listTwo": [1, 2, 3]
51
+ },
44
52
  "expected": "equal"
45
53
  },
46
54
  {
47
55
  "description": "different lists",
48
56
  "property": "sublist",
49
- "listOne": [1, 2, 3],
50
- "listTwo": [2, 3, 4],
57
+ "input": {
58
+ "listOne": [1, 2, 3],
59
+ "listTwo": [2, 3, 4]
60
+ },
51
61
  "expected": "unequal"
52
62
  },
53
63
  {
54
64
  "description": "false start",
55
65
  "property": "sublist",
56
- "listOne": [1, 2, 5],
57
- "listTwo": [0, 1, 2, 3, 1, 2, 5, 6],
66
+ "input": {
67
+ "listOne": [1, 2, 5],
68
+ "listTwo": [0, 1, 2, 3, 1, 2, 5, 6]
69
+ },
58
70
  "expected": "sublist"
59
71
  },
60
72
  {
61
73
  "description": "consecutive",
62
74
  "property": "sublist",
63
- "listOne": [1, 1, 2],
64
- "listTwo": [0, 1, 1, 1, 2, 1, 2],
75
+ "input": {
76
+ "listOne": [1, 1, 2],
77
+ "listTwo": [0, 1, 1, 1, 2, 1, 2]
78
+ },
65
79
  "expected": "sublist"
66
80
  },
67
81
  {
68
82
  "description": "sublist at start",
69
83
  "property": "sublist",
70
- "listOne": [0, 1, 2],
71
- "listTwo": [0, 1, 2, 3, 4, 5],
84
+ "input": {
85
+ "listOne": [0, 1, 2],
86
+ "listTwo": [0, 1, 2, 3, 4, 5]
87
+ },
72
88
  "expected": "sublist"
73
89
  },
74
90
  {
75
91
  "description": "sublist in middle",
76
92
  "property": "sublist",
77
- "listOne": [2, 3, 4],
78
- "listTwo": [0, 1, 2, 3, 4, 5],
93
+ "input": {
94
+ "listOne": [2, 3, 4],
95
+ "listTwo": [0, 1, 2, 3, 4, 5]
96
+ },
79
97
  "expected": "sublist"
80
98
  },
81
99
  {
82
100
  "description": "sublist at end",
83
101
  "property": "sublist",
84
- "listOne": [3, 4, 5],
85
- "listTwo": [0, 1, 2, 3, 4, 5],
102
+ "input": {
103
+ "listOne": [3, 4, 5],
104
+ "listTwo": [0, 1, 2, 3, 4, 5]
105
+ },
86
106
  "expected": "sublist"
87
107
  },
88
108
  {
89
109
  "description": "at start of superlist",
90
110
  "property": "sublist",
91
- "listOne": [0, 1, 2, 3, 4, 5],
92
- "listTwo": [0, 1, 2],
111
+ "input": {
112
+ "listOne": [0, 1, 2, 3, 4, 5],
113
+ "listTwo": [0, 1, 2]
114
+ },
93
115
  "expected": "superlist"
94
116
  },
95
117
  {
96
118
  "description": "in middle of superlist",
97
119
  "property": "sublist",
98
- "listOne": [0, 1, 2, 3, 4, 5],
99
- "listTwo": [2, 3],
120
+ "input": {
121
+ "listOne": [0, 1, 2, 3, 4, 5],
122
+ "listTwo": [2, 3]
123
+ },
100
124
  "expected": "superlist"
101
125
  },
102
126
  {
103
127
  "description": "at end of superlist",
104
128
  "property": "sublist",
105
- "listOne": [0, 1, 2, 3, 4, 5],
106
- "listTwo": [3, 4, 5],
129
+ "input": {
130
+ "listOne": [0, 1, 2, 3, 4, 5],
131
+ "listTwo": [3, 4, 5]
132
+ },
107
133
  "expected": "superlist"
108
134
  },
109
135
  {
110
136
  "description": "first list missing element from second list",
111
137
  "property": "sublist",
112
- "listOne": [1, 3],
113
- "listTwo": [1, 2, 3],
138
+ "input": {
139
+ "listOne": [1, 3],
140
+ "listTwo": [1, 2, 3]
141
+ },
114
142
  "expected": "unequal"
115
143
  },
116
144
  {
117
145
  "description": "second list missing element from first list",
118
146
  "property": "sublist",
119
- "listOne": [1, 2, 3],
120
- "listTwo": [1, 3],
147
+ "input": {
148
+ "listOne": [1, 2, 3],
149
+ "listTwo": [1, 3]
150
+ },
121
151
  "expected": "unequal"
122
152
  },
123
153
  {
124
154
  "description": "order matters to a list",
125
155
  "property": "sublist",
126
- "listOne": [1, 2, 3],
127
- "listTwo": [3, 2, 1],
156
+ "input": {
157
+ "listOne": [1, 2, 3],
158
+ "listTwo": [3, 2, 1]
159
+ },
128
160
  "expected": "unequal"
129
161
  },
130
162
  {
131
163
  "description": "same digits but different numbers",
132
164
  "property": "sublist",
133
- "listOne": [1, 0, 1],
134
- "listTwo": [10, 1],
165
+ "input": {
166
+ "listOne": [1, 0, 1],
167
+ "listTwo": [10, 1]
168
+ },
135
169
  "expected": "unequal"
136
170
  }
137
171
  ]