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": "twelve-days",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "JSON doesn't allow for multi-line strings, so all verses are presented ",
6
6
  "here as arrays of strings. It's up to the test generator to join the ",
@@ -13,8 +13,10 @@
13
13
  {
14
14
  "description": "first day a partridge in a pear tree",
15
15
  "property": "recite",
16
- "startVerse": 1,
17
- "endVerse": 1,
16
+ "input": {
17
+ "startVerse": 1,
18
+ "endVerse": 1
19
+ },
18
20
  "expected": [
19
21
  "On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree."
20
22
  ]
@@ -22,8 +24,10 @@
22
24
  {
23
25
  "description": "second day two turtle doves",
24
26
  "property": "recite",
25
- "startVerse": 2,
26
- "endVerse": 2,
27
+ "input": {
28
+ "startVerse": 2,
29
+ "endVerse": 2
30
+ },
27
31
  "expected": [
28
32
  "On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree."
29
33
  ]
@@ -31,8 +35,10 @@
31
35
  {
32
36
  "description": "third day three french hens",
33
37
  "property": "recite",
34
- "startVerse": 3,
35
- "endVerse": 3,
38
+ "input": {
39
+ "startVerse": 3,
40
+ "endVerse": 3
41
+ },
36
42
  "expected": [
37
43
  "On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
38
44
  ]
@@ -40,8 +46,10 @@
40
46
  {
41
47
  "description": "fourth day four calling birds",
42
48
  "property": "recite",
43
- "startVerse": 4,
44
- "endVerse": 4,
49
+ "input": {
50
+ "startVerse": 4,
51
+ "endVerse": 4
52
+ },
45
53
  "expected": [
46
54
  "On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
47
55
  ]
@@ -49,8 +57,10 @@
49
57
  {
50
58
  "description": "fifth day five gold rings",
51
59
  "property": "recite",
52
- "startVerse": 5,
53
- "endVerse": 5,
60
+ "input": {
61
+ "startVerse": 5,
62
+ "endVerse": 5
63
+ },
54
64
  "expected": [
55
65
  "On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
56
66
  ]
@@ -58,8 +68,10 @@
58
68
  {
59
69
  "description": "sixth day six geese-a-laying",
60
70
  "property": "recite",
61
- "startVerse": 6,
62
- "endVerse": 6,
71
+ "input": {
72
+ "startVerse": 6,
73
+ "endVerse": 6
74
+ },
63
75
  "expected": [
64
76
  "On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
65
77
  ]
@@ -67,8 +79,10 @@
67
79
  {
68
80
  "description": "seventh day seven swans-a-swimming",
69
81
  "property": "recite",
70
- "startVerse": 7,
71
- "endVerse": 7,
82
+ "input": {
83
+ "startVerse": 7,
84
+ "endVerse": 7
85
+ },
72
86
  "expected": [
73
87
  "On the seventh day of Christmas my true love gave to me, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
74
88
  ]
@@ -76,8 +90,10 @@
76
90
  {
77
91
  "description": "eighth day eight maids-a-milking",
78
92
  "property": "recite",
79
- "startVerse": 8,
80
- "endVerse": 8,
93
+ "input": {
94
+ "startVerse": 8,
95
+ "endVerse": 8
96
+ },
81
97
  "expected": [
82
98
  "On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
83
99
  ]
@@ -85,8 +101,10 @@
85
101
  {
86
102
  "description": "ninth day nine ladies dancing",
87
103
  "property": "recite",
88
- "startVerse": 9,
89
- "endVerse": 9,
104
+ "input": {
105
+ "startVerse": 9,
106
+ "endVerse": 9
107
+ },
90
108
  "expected": [
91
109
  "On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
92
110
  ]
@@ -94,8 +112,10 @@
94
112
  {
95
113
  "description": "tenth day ten lords-a-leaping",
96
114
  "property": "recite",
97
- "startVerse": 10,
98
- "endVerse": 10,
115
+ "input": {
116
+ "startVerse": 10,
117
+ "endVerse": 10
118
+ },
99
119
  "expected": [
100
120
  "On the tenth day of Christmas my true love gave to me, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
101
121
  ]
@@ -103,8 +123,10 @@
103
123
  {
104
124
  "description": "eleventh day eleven pipers piping",
105
125
  "property": "recite",
106
- "startVerse": 11,
107
- "endVerse": 11,
126
+ "input": {
127
+ "startVerse": 11,
128
+ "endVerse": 11
129
+ },
108
130
  "expected": [
109
131
  "On the eleventh day of Christmas my true love gave to me, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
110
132
  ]
@@ -112,8 +134,10 @@
112
134
  {
113
135
  "description": "twelfth day twelve drummers drumming",
114
136
  "property": "recite",
115
- "startVerse": 12,
116
- "endVerse": 12,
137
+ "input": {
138
+ "startVerse": 12,
139
+ "endVerse": 12
140
+ },
117
141
  "expected": [
118
142
  "On the twelfth day of Christmas my true love gave to me, twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree."
119
143
  ]
@@ -126,8 +150,10 @@
126
150
  {
127
151
  "description": "recites first three verses of the song",
128
152
  "property": "recite",
129
- "startVerse": 1,
130
- "endVerse": 3,
153
+ "input": {
154
+ "startVerse": 1,
155
+ "endVerse": 3
156
+ },
131
157
  "expected": [
132
158
  "On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.",
133
159
  "On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.",
@@ -137,8 +163,10 @@
137
163
  {
138
164
  "description": "recites three verses from the middle of the song",
139
165
  "property": "recite",
140
- "startVerse": 4,
141
- "endVerse": 6,
166
+ "input": {
167
+ "startVerse": 4,
168
+ "endVerse": 6
169
+ },
142
170
  "expected": [
143
171
  "On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.",
144
172
  "On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.",
@@ -148,8 +176,10 @@
148
176
  {
149
177
  "description": "recites the whole song",
150
178
  "property": "recite",
151
- "startVerse": 1,
152
- "endVerse": 12,
179
+ "input": {
180
+ "startVerse": 1,
181
+ "endVerse": 12
182
+ },
153
183
  "expected": [
154
184
  "On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.",
155
185
  "On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "variable-length-quantity",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "JSON doesn't allow hexadecimal literals.",
6
6
  "All numbers are given as decimal literals instead.",
@@ -13,109 +13,145 @@
13
13
  {
14
14
  "description": "zero",
15
15
  "property": "encode",
16
- "input": [0],
16
+ "input": {
17
+ "integers": [0]
18
+ },
17
19
  "expected": [0]
18
20
  },
19
21
  {
20
22
  "description": "arbitrary single byte",
21
23
  "property": "encode",
22
- "input": [64],
24
+ "input": {
25
+ "integers": [64]
26
+ },
23
27
  "expected": [64]
24
28
  },
25
29
  {
26
30
  "description": "largest single byte",
27
31
  "property": "encode",
28
- "input": [127],
32
+ "input": {
33
+ "integers": [127]
34
+ },
29
35
  "expected": [127]
30
36
  },
31
37
  {
32
38
  "description": "smallest double byte",
33
39
  "property": "encode",
34
- "input": [128],
40
+ "input": {
41
+ "integers": [128]
42
+ },
35
43
  "expected": [129,0]
36
44
  },
37
45
  {
38
46
  "description": "arbitrary double byte",
39
47
  "property": "encode",
40
- "input": [8192],
48
+ "input": {
49
+ "integers": [8192]
50
+ },
41
51
  "expected": [192, 0]
42
52
  },
43
53
  {
44
54
  "description": "largest double byte",
45
55
  "property": "encode",
46
- "input": [16383],
56
+ "input": {
57
+ "integers": [16383]
58
+ },
47
59
  "expected": [255, 127]
48
60
  },
49
61
  {
50
62
  "description": "smallest triple byte",
51
63
  "property": "encode",
52
- "input": [16384],
64
+ "input": {
65
+ "integers": [16384]
66
+ },
53
67
  "expected": [129, 128, 0]
54
68
  },
55
69
  {
56
70
  "description": "arbitrary triple byte",
57
71
  "property": "encode",
58
- "input": [1048576],
72
+ "input": {
73
+ "integers": [1048576]
74
+ },
59
75
  "expected": [192, 128, 0]
60
76
  },
61
77
  {
62
78
  "description": "largest triple byte",
63
79
  "property": "encode",
64
- "input": [2097151],
80
+ "input": {
81
+ "integers": [2097151]
82
+ },
65
83
  "expected": [255, 255, 127]
66
84
  },
67
85
  {
68
86
  "description": "smallest quadruple byte",
69
87
  "property": "encode",
70
- "input": [2097152],
88
+ "input": {
89
+ "integers": [2097152]
90
+ },
71
91
  "expected": [129, 128, 128, 0]
72
92
  },
73
93
  {
74
94
  "description": "arbitrary quadruple byte",
75
95
  "property": "encode",
76
- "input": [134217728],
96
+ "input": {
97
+ "integers": [134217728]
98
+ },
77
99
  "expected": [192, 128, 128, 0]
78
100
  },
79
101
  {
80
102
  "description": "largest quadruple byte",
81
103
  "property": "encode",
82
- "input": [268435455],
104
+ "input": {
105
+ "integers": [268435455]
106
+ },
83
107
  "expected": [255, 255, 255, 127]
84
108
  },
85
109
  {
86
110
  "description": "smallest quintuple byte",
87
111
  "property": "encode",
88
- "input": [268435456],
112
+ "input": {
113
+ "integers": [268435456]
114
+ },
89
115
  "expected": [129, 128, 128, 128, 0]
90
116
  },
91
117
  {
92
118
  "description": "arbitrary quintuple byte",
93
119
  "property": "encode",
94
- "input": [4278190080],
120
+ "input": {
121
+ "integers": [4278190080]
122
+ },
95
123
  "expected": [143, 248, 128, 128, 0]
96
124
  },
97
125
  {
98
126
  "description": "maximum 32-bit integer input",
99
127
  "property": "encode",
100
- "input": [4294967295],
128
+ "input": {
129
+ "integers": [4294967295]
130
+ },
101
131
  "expected": [143, 255, 255, 255, 127]
102
132
  },
103
133
  {
104
134
  "description": "two single-byte values",
105
135
  "property": "encode",
106
- "input": [64, 127],
136
+ "input": {
137
+ "integers": [64, 127]
138
+ },
107
139
  "expected": [64, 127]
108
140
  },
109
141
  {
110
142
  "description": "two multi-byte values",
111
143
  "property": "encode",
112
- "input": [16384, 1193046],
144
+ "input": {
145
+ "integers": [16384, 1193046]
146
+ },
113
147
  "expected": [129, 128, 0, 200, 232, 86]
114
148
  },
115
149
  {
116
150
  "description": "many multi-byte values",
117
151
  "property": "encode",
118
- "input": [8192, 1193046, 268435455, 0, 16383, 16384],
152
+ "input": {
153
+ "integers": [8192, 1193046, 268435455, 0, 16383, 16384]
154
+ },
119
155
  "expected": [192, 0, 200, 232, 86, 255, 255, 255, 127, 0, 255, 127, 129, 128, 0]
120
156
  }
121
157
  ]
@@ -126,49 +162,65 @@
126
162
  {
127
163
  "description": "one byte",
128
164
  "property": "decode",
129
- "input": [127],
165
+ "input": {
166
+ "integers": [127]
167
+ },
130
168
  "expected": [127]
131
169
  },
132
170
  {
133
171
  "description": "two bytes",
134
172
  "property": "decode",
135
- "input": [192, 0],
173
+ "input": {
174
+ "integers": [192, 0]
175
+ },
136
176
  "expected": [8192]
137
177
  },
138
178
  {
139
179
  "description": "three bytes",
140
180
  "property": "decode",
141
- "input": [255, 255, 127],
181
+ "input": {
182
+ "integers": [255, 255, 127]
183
+ },
142
184
  "expected": [2097151]
143
185
  },
144
186
  {
145
187
  "description": "four bytes",
146
188
  "property": "decode",
147
- "input": [129, 128, 128, 0],
189
+ "input": {
190
+ "integers": [129, 128, 128, 0]
191
+ },
148
192
  "expected": [2097152]
149
193
  },
150
194
  {
151
195
  "description": "maximum 32-bit integer",
152
196
  "property": "decode",
153
- "input": [143, 255, 255, 255, 127],
197
+ "input": {
198
+ "integers": [143, 255, 255, 255, 127]
199
+ },
154
200
  "expected": [4294967295]
155
201
  },
156
202
  {
157
203
  "description": "incomplete sequence causes error",
158
204
  "property": "decode",
159
- "input": [255],
205
+ "input": {
206
+ "integers": [255]
207
+ },
160
208
  "expected": null
161
209
  },
162
210
  {
163
211
  "description": "incomplete sequence causes error, even if value is zero",
164
212
  "property": "decode",
165
- "input": [128],
213
+ "input": {
214
+ "integers": [128]
215
+ },
166
216
  "expected": null
167
217
  },
168
218
  {
169
219
  "description": "multiple values",
170
220
  "property": "decode",
171
- "input": [192, 0, 200, 232, 86, 255, 255, 255, 127, 0, 255, 127, 129, 128, 0],
221
+ "input": {
222
+ "integers": [192, 0, 200, 232, 86, 255, 255, 255, 127, 0, 255, 127, 129, 128, 0]
223
+ },
172
224
  "expected": [8192, 1193046, 268435455, 0, 16383, 16384]
173
225
  }
174
226
  ]
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "exercise": "zebra-puzzle",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "resident who drinks water",
7
7
  "property": "drinksWater",
8
+ "input": {},
8
9
  "expected": "Norwegian"
9
10
  },
10
11
  {
11
12
  "description": "resident who owns zebra",
12
13
  "property": "ownsZebra",
14
+ "input": {},
13
15
  "expected": "Japanese"
14
16
  }
15
17
  ]