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,4 +1,4 @@
1
1
  ---
2
2
  blurb: "Reverse a string"
3
3
  source: "Introductory challenge to reverse an input string"
4
- source_url: "https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb"
4
+ source_url: "https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb"
@@ -1,36 +1,46 @@
1
1
  {
2
2
  "exercise": "rna-transcription",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "RNA complement of cytosine is guanine",
7
7
  "property": "toRna",
8
- "dna": "C",
8
+ "input": {
9
+ "dna": "C"
10
+ },
9
11
  "expected": "G"
10
12
  },
11
13
  {
12
14
  "description": "RNA complement of guanine is cytosine",
13
15
  "property": "toRna",
14
- "dna": "G",
16
+ "input": {
17
+ "dna": "G"
18
+ },
15
19
  "expected": "C"
16
20
  },
17
21
  {
18
22
  "description": "RNA complement of thymine is adenine",
19
23
  "property": "toRna",
20
- "dna": "T",
24
+ "input": {
25
+ "dna": "T"
26
+ },
21
27
  "expected": "A"
22
28
  },
23
29
  {
24
30
  "description": "RNA complement of adenine is uracil",
25
31
  "property": "toRna",
26
- "dna": "A",
32
+ "input": {
33
+ "dna": "A"
34
+ },
27
35
  "expected": "U"
28
36
  },
29
37
  {
30
38
  "description": "RNA complement",
31
39
  "property": "toRna",
32
- "dna": "ACGTGGTCTTAA",
40
+ "input": {
41
+ "dna": "ACGTGGTCTTAA"
42
+ },
33
43
  "expected": "UGCACCAGAAUU"
34
44
  }
35
45
  ]
36
- }
46
+ }
@@ -1,114 +1,150 @@
1
1
  {
2
2
  "exercise": "roman-numerals",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "1 is a single I",
7
7
  "property": "roman",
8
- "number": 1,
8
+ "input": {
9
+ "number": 1
10
+ },
9
11
  "expected": "I"
10
12
  },
11
13
  {
12
14
  "description": "2 is two I's",
13
15
  "property": "roman",
14
- "number": 2,
16
+ "input": {
17
+ "number": 2
18
+ },
15
19
  "expected": "II"
16
20
  },
17
21
  {
18
22
  "description": "3 is three I's",
19
23
  "property": "roman",
20
- "number": 3,
24
+ "input": {
25
+ "number": 3
26
+ },
21
27
  "expected": "III"
22
28
  },
23
29
  {
24
30
  "description": "4, being 5 - 1, is IV",
25
31
  "property": "roman",
26
- "number": 4,
32
+ "input": {
33
+ "number": 4
34
+ },
27
35
  "expected": "IV"
28
36
  },
29
37
  {
30
38
  "description": "5 is a single V",
31
39
  "property": "roman",
32
- "number": 5,
40
+ "input": {
41
+ "number": 5
42
+ },
33
43
  "expected": "V"
34
44
  },
35
45
  {
36
46
  "description": "6, being 5 + 1, is VI",
37
47
  "property": "roman",
38
- "number": 6,
48
+ "input": {
49
+ "number": 6
50
+ },
39
51
  "expected": "VI"
40
52
  },
41
53
  {
42
54
  "description": "9, being 10 - 1, is IX",
43
55
  "property": "roman",
44
- "number": 9,
56
+ "input": {
57
+ "number": 9
58
+ },
45
59
  "expected": "IX"
46
60
  },
47
61
  {
48
62
  "description": "20 is two X's",
49
63
  "property": "roman",
50
- "number": 27,
64
+ "input": {
65
+ "number": 27
66
+ },
51
67
  "expected": "XXVII"
52
68
  },
53
69
  {
54
70
  "description": "48 is not 50 - 2 but rather 40 + 8",
55
71
  "property": "roman",
56
- "number": 48,
72
+ "input": {
73
+ "number": 48
74
+ },
57
75
  "expected": "XLVIII"
58
76
  },
59
77
  {
60
78
  "description": "50 is a single L",
61
79
  "property": "roman",
62
- "number": 59,
80
+ "input": {
81
+ "number": 59
82
+ },
63
83
  "expected": "LIX"
64
84
  },
65
85
  {
66
86
  "description": "90, being 100 - 10, is XC",
67
87
  "property": "roman",
68
- "number": 93,
88
+ "input": {
89
+ "number": 93
90
+ },
69
91
  "expected": "XCIII"
70
92
  },
71
93
  {
72
94
  "description": "100 is a single C",
73
95
  "property": "roman",
74
- "number": 141,
96
+ "input": {
97
+ "number": 141
98
+ },
75
99
  "expected": "CXLI"
76
100
  },
77
101
  {
78
102
  "description": "60, being 50 + 10, is LX",
79
103
  "property": "roman",
80
- "number": 163,
104
+ "input": {
105
+ "number": 163
106
+ },
81
107
  "expected": "CLXIII"
82
108
  },
83
109
  {
84
110
  "description": "400, being 500 - 100, is CD",
85
111
  "property": "roman",
86
- "number": 402,
112
+ "input": {
113
+ "number": 402
114
+ },
87
115
  "expected": "CDII"
88
116
  },
89
117
  {
90
118
  "description": "500 is a single D",
91
119
  "property": "roman",
92
- "number": 575,
120
+ "input": {
121
+ "number": 575
122
+ },
93
123
  "expected": "DLXXV"
94
124
  },
95
125
  {
96
126
  "description": "900, being 1000 - 100, is CM",
97
127
  "property": "roman",
98
- "number": 911,
128
+ "input": {
129
+ "number": 911
130
+ },
99
131
  "expected": "CMXI"
100
132
  },
101
133
  {
102
134
  "description": "1000 is a single M",
103
135
  "property": "roman",
104
- "number": 1024,
136
+ "input": {
137
+ "number": 1024
138
+ },
105
139
  "expected": "MXXIV"
106
140
  },
107
141
  {
108
142
  "description": "3000 is three M's",
109
143
  "property": "roman",
110
- "number": 3000,
144
+ "input": {
145
+ "number": 3000
146
+ },
111
147
  "expected": "MMM"
112
148
  }
113
149
  ]
114
- }
150
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "rotational-cipher",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "comments": [
5
5
  "The tests are a series of rotation tests: "
6
6
  ],
@@ -11,74 +11,94 @@
11
11
  {
12
12
  "description": "rotate a by 0, same output as input",
13
13
  "property": "rotate",
14
- "text": "a",
15
- "shiftKey": 0,
14
+ "input": {
15
+ "text": "a",
16
+ "shiftKey": 0
17
+ },
16
18
  "expected": "a"
17
19
  },
18
20
  {
19
21
  "description": "rotate a by 1",
20
22
  "property": "rotate",
21
- "text": "a",
22
- "shiftKey": 1,
23
+ "input": {
24
+ "text": "a",
25
+ "shiftKey": 1
26
+ },
23
27
  "expected": "b"
24
28
  },
25
29
  {
26
30
  "description": "rotate a by 26, same output as input",
27
31
  "property": "rotate",
28
- "text": "a",
29
- "shiftKey": 26,
32
+ "input": {
33
+ "text": "a",
34
+ "shiftKey": 26
35
+ },
30
36
  "expected": "a"
31
37
  },
32
38
  {
33
39
  "description": "rotate m by 13",
34
40
  "property": "rotate",
35
- "text": "m",
36
- "shiftKey": 13,
41
+ "input": {
42
+ "text": "m",
43
+ "shiftKey": 13
44
+ },
37
45
  "expected": "z"
38
46
  },
39
47
  {
40
48
  "description": "rotate n by 13 with wrap around alphabet",
41
49
  "property": "rotate",
42
- "text": "n",
43
- "shiftKey": 13,
50
+ "input": {
51
+ "text": "n",
52
+ "shiftKey": 13
53
+ },
44
54
  "expected": "a"
45
55
  },
46
56
  {
47
57
  "description": "rotate capital letters",
48
58
  "property": "rotate",
49
- "text": "OMG",
50
- "shiftKey": 5,
59
+ "input": {
60
+ "text": "OMG",
61
+ "shiftKey": 5
62
+ },
51
63
  "expected": "TRL"
52
64
  },
53
65
  {
54
66
  "description": "rotate spaces",
55
67
  "property": "rotate",
56
- "text": "O M G",
57
- "shiftKey": 5,
68
+ "input": {
69
+ "text": "O M G",
70
+ "shiftKey": 5
71
+ },
58
72
  "expected": "T R L"
59
73
  },
60
74
  {
61
75
  "description": "rotate numbers",
62
76
  "property": "rotate",
63
- "text": "Testing 1 2 3 testing",
64
- "shiftKey": 4,
77
+ "input": {
78
+ "text": "Testing 1 2 3 testing",
79
+ "shiftKey": 4
80
+ },
65
81
  "expected": "Xiwxmrk 1 2 3 xiwxmrk"
66
82
  },
67
83
  {
68
84
  "description": "rotate punctuation",
69
85
  "property": "rotate",
70
- "text": "Let's eat, Grandma!",
71
- "shiftKey": 21,
86
+ "input": {
87
+ "text": "Let's eat, Grandma!",
88
+ "shiftKey": 21
89
+ },
72
90
  "expected": "Gzo'n zvo, Bmviyhv!"
73
91
  },
74
92
  {
75
93
  "description": "rotate all letters",
76
94
  "property": "rotate",
77
- "text": "The quick brown fox jumps over the lazy dog.",
78
- "shiftKey": 13,
95
+ "input": {
96
+ "text": "The quick brown fox jumps over the lazy dog.",
97
+ "shiftKey": 13
98
+ },
79
99
  "expected": "Gur dhvpx oebja sbk whzcf bire gur ynml qbt."
80
100
  }
81
101
  ]
82
102
  }
83
103
  ]
84
- }
104
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "saddle-points",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "Matrix rows and columns are 0-indexed."
6
6
  ],
@@ -11,11 +11,13 @@
11
11
  "This is the README example."
12
12
  ],
13
13
  "property": "saddlePoints",
14
- "input": [
15
- [9, 8, 7],
16
- [5, 3, 2],
17
- [6, 6, 7]
18
- ],
14
+ "input": {
15
+ "matrix": [
16
+ [9, 8, 7],
17
+ [5, 3, 2],
18
+ [6, 6, 7]
19
+ ]
20
+ },
19
21
  "expected": [
20
22
  {
21
23
  "row": 1,
@@ -26,29 +28,35 @@
26
28
  {
27
29
  "description": "Can identify that empty matrix has no saddle points",
28
30
  "property": "saddlePoints",
29
- "input": [
30
- []
31
- ],
31
+ "input": {
32
+ "matrix": [
33
+ []
34
+ ]
35
+ },
32
36
  "expected": []
33
37
  },
34
38
  {
35
39
  "description": "Can identify lack of saddle points when there are none",
36
40
  "property": "saddlePoints",
37
- "input": [
38
- [1, 2, 3],
39
- [3, 1, 2],
40
- [2, 3, 1]
41
- ],
41
+ "input": {
42
+ "matrix": [
43
+ [1, 2, 3],
44
+ [3, 1, 2],
45
+ [2, 3, 1]
46
+ ]
47
+ },
42
48
  "expected": []
43
49
  },
44
50
  {
45
51
  "description": "Can identify multiple saddle points",
46
52
  "property": "saddlePoints",
47
- "input": [
48
- [4, 5, 4],
49
- [3, 5, 5],
50
- [1, 5, 4]
51
- ],
53
+ "input": {
54
+ "matrix": [
55
+ [4, 5, 4],
56
+ [3, 5, 5],
57
+ [1, 5, 4]
58
+ ]
59
+ },
52
60
  "expected": [
53
61
  {
54
62
  "row": 0,
@@ -71,11 +79,13 @@
71
79
  "off-by-one errors."
72
80
  ],
73
81
  "property": "saddlePoints",
74
- "input": [
75
- [8, 7, 9],
76
- [6, 7, 6],
77
- [3, 2, 5]
78
- ],
82
+ "input": {
83
+ "matrix": [
84
+ [8, 7, 9],
85
+ [6, 7, 6],
86
+ [3, 2, 5]
87
+ ]
88
+ },
79
89
  "expected": [
80
90
  {
81
91
  "row": 2,