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,6 +1,6 @@
1
1
  {
2
2
  "exercise": "markdown",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "comments": [
5
5
  "Markdown is a shorthand for creating HTML from text strings."
6
6
  ],
@@ -8,56 +8,74 @@
8
8
  {
9
9
  "description": "parses normal text as a paragraph",
10
10
  "property": "parse",
11
- "input": "This will be a paragraph",
11
+ "input": {
12
+ "markdown": "This will be a paragraph"
13
+ },
12
14
  "expected": "<p>This will be a paragraph</p>"
13
15
  },
14
16
  {
15
17
  "description": "parsing italics",
16
18
  "property": "parse",
17
- "input": "_This will be italic_",
19
+ "input": {
20
+ "markdown": "_This will be italic_"
21
+ },
18
22
  "expected": "<p><em>This will be italic</em></p>"
19
23
  },
20
24
  {
21
25
  "description": "parsing bold text",
22
26
  "property": "parse",
23
- "input": "__This will be bold__",
27
+ "input": {
28
+ "markdown": "__This will be bold__"
29
+ },
24
30
  "expected": "<p><strong>This will be bold</strong></p>"
25
31
  },
26
32
  {
27
33
  "description": "mixed normal, italics and bold text",
28
34
  "property": "parse",
29
- "input": "This will _be_ __mixed__",
35
+ "input": {
36
+ "markdown": "This will _be_ __mixed__"
37
+ },
30
38
  "expected": "<p>This will <em>be</em> <strong>mixed</strong></p>"
31
39
  },
32
40
  {
33
41
  "description": "with h1 header level",
34
42
  "property": "parse",
35
- "input": "# This will be an h1",
43
+ "input": {
44
+ "markdown": "# This will be an h1"
45
+ },
36
46
  "expected": "<h1>This will be an h1</h1>"
37
47
  },
38
48
  {
39
49
  "description": "with h2 header level",
40
50
  "property": "parse",
41
- "input": "## This will be an h2",
51
+ "input": {
52
+ "markdown": "## This will be an h2"
53
+ },
42
54
  "expected": "<h2>This will be an h2</h2>"
43
55
  },
44
56
  {
45
57
  "description": "with h6 header level",
46
58
  "property": "parse",
47
- "input": "###### This will be an h6",
59
+ "input": {
60
+ "markdown": "###### This will be an h6"
61
+ },
48
62
  "expected": "<h6>This will be an h6</h6>"
49
63
  },
50
64
  {
51
65
  "description": "unordered lists",
52
66
  "property": "parse",
53
- "input": "* Item 1\n* Item 2",
67
+ "input": {
68
+ "markdown": "* Item 1\n* Item 2"
69
+ },
54
70
  "expected": "<ul><li>Item 1</li><li>Item 2</li></ul>"
55
71
  },
56
72
  {
57
73
  "description": "With a little bit of everything",
58
74
  "property": "parse",
59
- "input": "# Header!\n* __Bold Item__\n* _Italic Item_",
75
+ "input": {
76
+ "markdown": "# Header!\n* __Bold Item__\n* _Italic Item_"
77
+ },
60
78
  "expected": "<h1>Header!</h1><ul><li><strong>Bold Item</strong></li><li><em>Italic Item</em></li></ul>"
61
79
  }
62
80
  ]
63
- }
81
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "minesweeper",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  " The expected outputs are represented as arrays of strings to ",
6
6
  " improve readability in this JSON file. ",
@@ -11,23 +11,29 @@
11
11
  {
12
12
  "description": "no rows",
13
13
  "property": "annotate",
14
- "input": [],
14
+ "input": {
15
+ "minefield": []
16
+ },
15
17
  "expected": []
16
18
  },
17
19
  {
18
20
  "description": "no columns",
19
21
  "property": "annotate",
20
- "input": [""],
22
+ "input": {
23
+ "minefield": [""]
24
+ },
21
25
  "expected": [""]
22
26
  },
23
27
  {
24
28
  "description": "no mines",
25
29
  "property": "annotate",
26
- "input": [
27
- " ",
28
- " ",
29
- " "
30
- ],
30
+ "input": {
31
+ "minefield": [
32
+ " ",
33
+ " ",
34
+ " "
35
+ ]
36
+ },
31
37
  "expected": [
32
38
  " ",
33
39
  " ",
@@ -35,13 +41,15 @@
35
41
  ]
36
42
  },
37
43
  {
38
- "description": "board with only mines",
44
+ "description": "minefield with only mines",
39
45
  "property": "annotate",
40
- "input": [
41
- "***",
42
- "***",
43
- "***"
44
- ],
46
+ "input": {
47
+ "minefield": [
48
+ "***",
49
+ "***",
50
+ "***"
51
+ ]
52
+ },
45
53
  "expected": [
46
54
  "***",
47
55
  "***",
@@ -51,11 +59,13 @@
51
59
  {
52
60
  "description": "mine surrounded by spaces",
53
61
  "property": "annotate",
54
- "input": [
55
- " ",
56
- " * ",
57
- " "
58
- ],
62
+ "input": {
63
+ "minefield": [
64
+ " ",
65
+ " * ",
66
+ " "
67
+ ]
68
+ },
59
69
  "expected": [
60
70
  "111",
61
71
  "1*1",
@@ -65,11 +75,13 @@
65
75
  {
66
76
  "description": "space surrounded by mines",
67
77
  "property": "annotate",
68
- "input": [
69
- "***",
70
- "* *",
71
- "***"
72
- ],
78
+ "input": {
79
+ "minefield": [
80
+ "***",
81
+ "* *",
82
+ "***"
83
+ ]
84
+ },
73
85
  "expected": [
74
86
  "***",
75
87
  "*8*",
@@ -79,25 +91,31 @@
79
91
  {
80
92
  "description": "horizontal line",
81
93
  "property": "annotate",
82
- "input": [" * * "],
94
+ "input": {
95
+ "minefield": [" * * "]
96
+ },
83
97
  "expected": ["1*2*1"]
84
98
  },
85
99
  {
86
100
  "description": "horizontal line, mines at edges",
87
101
  "property": "annotate",
88
- "input": ["* *"],
102
+ "input": {
103
+ "minefield": ["* *"]
104
+ },
89
105
  "expected": ["*1 1*"]
90
106
  },
91
107
  {
92
108
  "description": "vertical line",
93
109
  "property": "annotate",
94
- "input": [
95
- " ",
96
- "*",
97
- " ",
98
- "*",
99
- " "
100
- ],
110
+ "input": {
111
+ "minefield": [
112
+ " ",
113
+ "*",
114
+ " ",
115
+ "*",
116
+ " "
117
+ ]
118
+ },
101
119
  "expected": [
102
120
  "1",
103
121
  "*",
@@ -109,13 +127,15 @@
109
127
  {
110
128
  "description": "vertical line, mines at edges",
111
129
  "property": "annotate",
112
- "input": [
113
- "*",
114
- " ",
115
- " ",
116
- " ",
117
- "*"
118
- ],
130
+ "input": {
131
+ "minefield": [
132
+ "*",
133
+ " ",
134
+ " ",
135
+ " ",
136
+ "*"
137
+ ]
138
+ },
119
139
  "expected": [
120
140
  "*",
121
141
  "1",
@@ -127,13 +147,15 @@
127
147
  {
128
148
  "description": "cross",
129
149
  "property": "annotate",
130
- "input": [
131
- " * ",
132
- " * ",
133
- "*****",
134
- " * ",
135
- " * "
136
- ],
150
+ "input": {
151
+ "minefield": [
152
+ " * ",
153
+ " * ",
154
+ "*****",
155
+ " * ",
156
+ " * "
157
+ ]
158
+ },
137
159
  "expected": [
138
160
  " 2*2 ",
139
161
  "25*52",
@@ -143,16 +165,18 @@
143
165
  ]
144
166
  },
145
167
  {
146
- "description": "large board",
168
+ "description": "large minefield",
147
169
  "property": "annotate",
148
- "input": [
149
- " * * ",
150
- " * ",
151
- " * ",
152
- " * *",
153
- " * * ",
154
- " "
155
- ],
170
+ "input": {
171
+ "minefield": [
172
+ " * * ",
173
+ " * ",
174
+ " * ",
175
+ " * *",
176
+ " * * ",
177
+ " "
178
+ ]
179
+ },
156
180
  "expected": [
157
181
  "1*22*1",
158
182
  "12*322",
@@ -1,2 +1,2 @@
1
1
  ---
2
- blurb: "Add the numbers to a minesweeper board"
2
+ blurb: "Add the numbers to a minesweeper board"
@@ -1,36 +1,48 @@
1
1
  {
2
2
  "exercise": "nth-prime",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "first prime",
7
7
  "property": "prime",
8
- "input": 1,
8
+ "input": {
9
+ "number": 1
10
+ },
9
11
  "expected": 2
10
12
  },
11
13
  {
12
14
  "description": "second prime",
13
15
  "property": "prime",
14
- "input": 2,
16
+ "input": {
17
+ "number": 2
18
+ },
15
19
  "expected": 3
16
20
  },
17
21
  {
18
22
  "description": "sixth prime",
19
23
  "property": "prime",
20
- "input": 6,
24
+ "input": {
25
+ "number": 6
26
+ },
21
27
  "expected": 13
22
28
  },
23
29
  {
24
30
  "description": "big prime",
25
31
  "property": "prime",
26
- "input": 10001,
32
+ "input": {
33
+ "number": 10001
34
+ },
27
35
  "expected": 104743
28
36
  },
29
37
  {
30
38
  "description": "there is no zeroth prime",
31
39
  "property": "prime",
32
- "input": 0,
33
- "expected": { "error": "there is no zeroth prime" }
40
+ "input": {
41
+ "number": 0
42
+ },
43
+ "expected": {
44
+ "error": "there is no zeroth prime"
45
+ }
34
46
  }
35
47
  ]
36
- }
48
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "nucleotide-count",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "count all nucleotides in a strand",
@@ -8,7 +8,9 @@
8
8
  {
9
9
  "description": "empty strand",
10
10
  "property": "nucleotideCounts",
11
- "strand": "",
11
+ "input": {
12
+ "strand": ""
13
+ },
12
14
  "expected": {
13
15
  "A": 0,
14
16
  "C": 0,
@@ -19,7 +21,9 @@
19
21
  {
20
22
  "description": "can count one nucleotide in single-character input",
21
23
  "property": "nucleotideCounts",
22
- "strand": "G",
24
+ "input": {
25
+ "strand": "G"
26
+ },
23
27
  "expected": {
24
28
  "A": 0,
25
29
  "C": 0,
@@ -30,7 +34,9 @@
30
34
  {
31
35
  "description": "strand with repeated nucleotide",
32
36
  "property": "nucleotideCounts",
33
- "strand": "GGGGGGG",
37
+ "input": {
38
+ "strand": "GGGGGGG"
39
+ },
34
40
  "expected": {
35
41
  "A": 0,
36
42
  "C": 0,
@@ -41,7 +47,9 @@
41
47
  {
42
48
  "description": "strand with multiple nucleotides",
43
49
  "property": "nucleotideCounts",
44
- "strand": "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC",
50
+ "input": {
51
+ "strand": "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
52
+ },
45
53
  "expected": {
46
54
  "A": 20,
47
55
  "C": 12,
@@ -52,7 +60,9 @@
52
60
  {
53
61
  "description": "strand with invalid nucleotides",
54
62
  "property": "nucleotideCounts",
55
- "strand": "AGXXACT",
63
+ "input": {
64
+ "strand": "AGXXACT"
65
+ },
56
66
  "expected": {
57
67
  "error": "Invalid nucleotide in strand"
58
68
  }
@@ -60,4 +70,4 @@
60
70
  ]
61
71
  }
62
72
  ]
63
- }
73
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "pascals-triangle",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "comments": [
5
5
  "Expectations are represented here as an array of arrays.",
6
6
  "How you represent this idiomatically in your language is up to you.",
@@ -13,55 +13,73 @@
13
13
  {
14
14
  "description": "zero rows",
15
15
  "property": "rows",
16
- "count": 0,
16
+ "input": {
17
+ "count": 0
18
+ },
17
19
  "expected": []
18
20
  },
19
21
  {
20
22
  "description": "single row",
21
23
  "property": "rows",
22
- "count": 1,
24
+ "input": {
25
+ "count": 1
26
+ },
23
27
  "expected": [[1]]
24
28
  },
25
29
  {
26
30
  "description": "two rows",
27
31
  "property": "rows",
28
- "count": 2,
32
+ "input": {
33
+ "count": 2
34
+ },
29
35
  "expected": [[1], [1, 1]]
30
36
  },
31
37
  {
32
38
  "description": "three rows",
33
39
  "property": "rows",
34
- "count": 3,
40
+ "input": {
41
+ "count": 3
42
+ },
35
43
  "expected": [[1], [1, 1], [1, 2, 1]]
36
44
  },
37
45
  {
38
46
  "description": "four rows",
39
47
  "property": "rows",
40
- "count": 4,
48
+ "input": {
49
+ "count": 4
50
+ },
41
51
  "expected": [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]]
42
52
  },
43
53
  {
44
54
  "description": "five rows",
45
55
  "property": "rows",
46
- "count": 5,
56
+ "input": {
57
+ "count": 5
58
+ },
47
59
  "expected": [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
48
60
  },
49
61
  {
50
62
  "description": "six rows",
51
63
  "property": "rows",
52
- "count": 6,
64
+ "input": {
65
+ "count": 6
66
+ },
53
67
  "expected": [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]
54
68
  },
55
69
  {
56
70
  "description": "ten rows",
57
71
  "property": "rows",
58
- "count": 10,
72
+ "input": {
73
+ "count": 10
74
+ },
59
75
  "expected": [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]]
60
76
  },
61
77
  {
62
78
  "description": "negative rows",
63
79
  "property": "rows",
64
- "count": -1,
80
+ "input": {
81
+ "count": -1
82
+ },
65
83
  "expected": -1
66
84
  }
67
85
  ]