trackler 2.2.1.100 → 2.2.1.101

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/kindergarten-garden/canonical-data.json +37 -19
  4. data/problem-specifications/exercises/ocr-numbers/canonical-data.json +144 -110
  5. data/problem-specifications/exercises/palindrome-products/canonical-data.json +49 -25
  6. data/problem-specifications/exercises/poker/canonical-data.json +171 -115
  7. data/problem-specifications/exercises/prime-factors/canonical-data.json +22 -8
  8. data/problem-specifications/exercises/protein-translation/canonical-data.json +70 -24
  9. data/problem-specifications/exercises/proverb/canonical-data.json +24 -12
  10. data/problem-specifications/exercises/queen-attack/canonical-data.json +115 -91
  11. data/problem-specifications/exercises/rail-fence-cipher/canonical-data.json +25 -13
  12. data/problem-specifications/exercises/raindrops/canonical-data.json +55 -19
  13. data/problem-specifications/exercises/rational-numbers/canonical-data.json +374 -0
  14. data/problem-specifications/exercises/rational-numbers/description.md +27 -0
  15. data/problem-specifications/exercises/rational-numbers/metadata.yml +4 -0
  16. data/problem-specifications/exercises/rectangles/canonical-data.json +93 -67
  17. data/problem-specifications/exercises/reverse-string/canonical-data.json +16 -6
  18. data/problem-specifications/exercises/rna-transcription/metadata.yml +3 -3
  19. data/problem-specifications/exercises/roman-numerals/canonical-data.json +10 -2
  20. data/tracks/bash/config.json +11 -11
  21. data/tracks/c/exercises/roman-numerals/test/test_roman_numerals.c +7 -0
  22. data/tracks/clojure/exercises/armstrong-numbers/README.md +1 -1
  23. data/tracks/delphi/config.json +11 -0
  24. data/tracks/delphi/exercises/clock/uClockExample.pas +6 -1
  25. data/tracks/delphi/exercises/clock/uClockTest.pas +22 -19
  26. data/tracks/delphi/exercises/isbn-verifier/README.md +1 -1
  27. data/tracks/delphi/exercises/reverse-string/README.md +1 -1
  28. data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
  29. data/tracks/delphi/exercises/roman-numerals/uRomanNumeralsTest.pas +14 -0
  30. data/tracks/delphi/exercises/space-age/README.md +45 -0
  31. data/tracks/delphi/exercises/space-age/SpaceAge.dpr +60 -0
  32. data/tracks/delphi/exercises/space-age/uSpaceAgeExample.pas +120 -0
  33. data/tracks/delphi/exercises/space-age/uSpaceAgeTests.pas +135 -0
  34. data/tracks/delphi/exercises/two-fer/README.md +1 -1
  35. data/tracks/elixir/exercises/nth-prime/nth_prime.exs +0 -1
  36. data/tracks/fsharp/exercises/pov/PovTest.fs +66 -53
  37. data/tracks/fsharp/exercises/space-age/Example.fs +11 -11
  38. data/tracks/fsharp/exercises/space-age/SpaceAge.fs +1 -1
  39. data/tracks/fsharp/exercises/space-age/SpaceAgeTest.fs +21 -34
  40. data/tracks/fsharp/exercises/triangle/Example.fs +11 -16
  41. data/tracks/fsharp/exercises/triangle/Triangle.fs +4 -5
  42. data/tracks/fsharp/exercises/triangle/TriangleTest.fs +44 -31
  43. data/tracks/fsharp/generators/Generators.fs +121 -0
  44. data/tracks/go/config.json +12 -0
  45. data/tracks/go/exercises/clock/.meta/gen.go +37 -13
  46. data/tracks/go/exercises/clock/cases_test.go +10 -10
  47. data/tracks/go/exercises/clock/clock_test.go +16 -2
  48. data/tracks/go/exercises/clock/example.go +4 -0
  49. data/tracks/go/exercises/clock/example_clock_test.go +3 -3
  50. data/tracks/go/exercises/parallel-letter-frequency/.meta/hints.md +33 -0
  51. data/tracks/go/exercises/parallel-letter-frequency/README.md +35 -0
  52. data/tracks/go/exercises/raindrops/.meta/hints.md +7 -4
  53. data/tracks/go/exercises/raindrops/README.md +12 -0
  54. data/tracks/go/exercises/roman-numerals/.meta/gen.go +4 -2
  55. data/tracks/go/exercises/roman-numerals/cases_test.go +3 -2
  56. data/tracks/go/exercises/space-age/.meta/hints.md +10 -0
  57. data/tracks/go/exercises/space-age/README.md +14 -1
  58. data/tracks/go/exercises/twelve-days/README.md +2 -5
  59. data/tracks/go/exercises/two-bucket/.meta/gen.go +62 -0
  60. data/tracks/go/exercises/two-bucket/.meta/hints.md +16 -0
  61. data/tracks/go/exercises/two-bucket/README.md +72 -0
  62. data/tracks/go/exercises/two-bucket/cases_test.go +44 -0
  63. data/tracks/go/exercises/two-bucket/example.go +198 -0
  64. data/tracks/go/exercises/two-bucket/two_bucket_test.go +61 -0
  65. data/tracks/idris/.travis.yml +3 -2
  66. data/tracks/idris/bin/fetch-idris-testing.sh +11 -0
  67. data/tracks/idris/bin/solve_exercises.sh +2 -2
  68. data/tracks/idris/config.json +11 -0
  69. data/tracks/idris/config/exercise_readme.go.tmpl +0 -3
  70. data/tracks/idris/docs/INSTALLATION.md +22 -0
  71. data/tracks/idris/docs/TESTS.md +12 -4
  72. data/tracks/idris/exercises/accumulate/src/Accumulate.idr +5 -0
  73. data/tracks/idris/exercises/hamming/Hamming.ipkg +2 -0
  74. data/tracks/idris/exercises/hamming/src/{example.idr → Example.idr} +5 -1
  75. data/tracks/idris/exercises/hamming/src/Hamming.idr +13 -5
  76. data/tracks/idris/exercises/hamming/src/Test/Hamming.idr +31 -58
  77. data/tracks/idris/exercises/hello-world/HelloWorld.ipkg +2 -0
  78. data/tracks/idris/exercises/hello-world/src/Example.idr +9 -0
  79. data/tracks/idris/exercises/hello-world/src/HelloWorld.idr +6 -1
  80. data/tracks/idris/exercises/hello-world/src/Test/HelloWorld.idr +18 -18
  81. data/tracks/idris/exercises/leap/Leap.ipkg +2 -0
  82. data/tracks/idris/exercises/leap/src/{example.idr → Example.idr} +4 -0
  83. data/tracks/idris/exercises/leap/src/Leap.idr +5 -1
  84. data/tracks/idris/exercises/leap/src/Test/Leap.idr +21 -30
  85. data/tracks/idris/exercises/rna-transcription/Makefile +23 -0
  86. data/tracks/idris/exercises/rna-transcription/README.md +27 -0
  87. data/tracks/idris/exercises/rna-transcription/RnaTranscription.ipkg +5 -0
  88. data/tracks/idris/exercises/rna-transcription/src/RnaTranscription.idr +17 -0
  89. data/tracks/idris/exercises/rna-transcription/src/Test/RnaTranscription.idr +27 -0
  90. data/tracks/idris/exercises/rna-transcription/src/example.idr +35 -0
  91. data/tracks/java/exercises/etl/.meta/version +1 -0
  92. data/tracks/java/exercises/gigasecond/.meta/version +1 -0
  93. data/tracks/java/exercises/isbn-verifier/README.md +1 -1
  94. data/tracks/java/exercises/nucleotide-count/.meta/src/reference/java/NucleotideCounter.java +7 -1
  95. data/tracks/java/exercises/nucleotide-count/.meta/version +1 -0
  96. data/tracks/java/exercises/nucleotide-count/src/test/java/NucleotideCounterTest.java +19 -54
  97. data/tracks/java/exercises/proverb/.meta/version +1 -0
  98. data/tracks/java/exercises/reverse-string/README.md +1 -1
  99. data/tracks/java/exercises/rna-transcription/README.md +1 -1
  100. data/tracks/java/exercises/sum-of-multiples/.meta/version +1 -0
  101. data/tracks/java/exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java +13 -1
  102. data/tracks/kotlin/config/exercise_readme.go.tmpl +0 -3
  103. data/tracks/kotlin/docs/TESTS.md +1 -1
  104. data/tracks/objective-c/config.json +11 -0
  105. data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureExample.h +7 -0
  106. data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureExample.m +26 -0
  107. data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureTest.m +39 -0
  108. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +31 -1
  109. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/xcshareddata/xcschemes/OCLint.xcscheme +3 -1
  110. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/xcshareddata/xcschemes/xobjectivecTest.xcscheme +3 -1
  111. data/tracks/ocaml/exercises/forth/example.ml +9 -9
  112. data/tracks/ocaml/tools/test-generator/Makefile +3 -9
  113. data/tracks/ocaml/tools/test-generator/src/test_gen.ml +18 -16
  114. data/tracks/perl6/exercises/acronym/.meta/exercise-data.yaml +1 -1
  115. data/tracks/perl6/exercises/acronym/acronym.t +4 -14
  116. data/tracks/perl6/exercises/all-your-base/all-your-base.t +0 -2
  117. data/tracks/perl6/exercises/allergies/allergies.t +0 -2
  118. data/tracks/perl6/exercises/anagram/.meta/exercise-data.yaml +1 -1
  119. data/tracks/perl6/exercises/anagram/anagram.t +2 -40
  120. data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +0 -1
  121. data/tracks/perl6/exercises/bob/bob.t +0 -2
  122. data/tracks/perl6/exercises/clock/.meta/exercise-data.yaml +15 -11
  123. data/tracks/perl6/exercises/clock/.meta/solutions/Clock.pm6 +5 -1
  124. data/tracks/perl6/exercises/clock/Clock.pm6 +1 -1
  125. data/tracks/perl6/exercises/clock/clock.t +314 -217
  126. data/tracks/perl6/exercises/etl/etl.t +0 -2
  127. data/tracks/perl6/exercises/flatten-array/flatten-array.t +0 -2
  128. data/tracks/perl6/exercises/grains/grains.t +0 -2
  129. data/tracks/perl6/exercises/hamming/.meta/exercise-data.yaml +2 -2
  130. data/tracks/perl6/exercises/hamming/hamming.t +63 -35
  131. data/tracks/perl6/exercises/hello-world/hello-world.t +2 -3
  132. data/tracks/perl6/exercises/leap/.meta/exercise-data.yaml +1 -1
  133. data/tracks/perl6/exercises/leap/leap.t +14 -8
  134. data/tracks/perl6/exercises/luhn/luhn.t +0 -2
  135. data/tracks/perl6/exercises/nucleotide-count/.meta/exercise-data.yaml +2 -2
  136. data/tracks/perl6/exercises/nucleotide-count/nucleotide-count.t +18 -10
  137. data/tracks/perl6/exercises/pangram/.meta/exercise-data.yaml +1 -1
  138. data/tracks/perl6/exercises/pangram/pangram.t +32 -14
  139. data/tracks/perl6/exercises/phone-number/.meta/exercise-data.yaml +4 -4
  140. data/tracks/perl6/exercises/phone-number/.meta/solutions/Phone.pm6 +1 -1
  141. data/tracks/perl6/exercises/phone-number/Phone.pm6 +1 -1
  142. data/tracks/perl6/exercises/phone-number/phone-number.t +59 -21
  143. data/tracks/perl6/exercises/raindrops/raindrops.t +0 -2
  144. data/tracks/perl6/exercises/rna-transcription/.meta/exercise-data.yaml +1 -1
  145. data/tracks/perl6/exercises/rna-transcription/README.md +1 -1
  146. data/tracks/perl6/exercises/rna-transcription/rna-transcription.t +17 -9
  147. data/tracks/perl6/exercises/roman-numerals/.meta/exercise-data.yaml +3 -3
  148. data/tracks/perl6/exercises/roman-numerals/.meta/solutions/RomanNumerals.pm6 +1 -1
  149. data/tracks/perl6/exercises/roman-numerals/RomanNumerals.pm6 +1 -1
  150. data/tracks/perl6/exercises/roman-numerals/roman-numerals.t +66 -24
  151. data/tracks/perl6/exercises/scrabble-score/.meta/exercise-data.yaml +1 -1
  152. data/tracks/perl6/exercises/scrabble-score/scrabble-score.t +35 -15
  153. data/tracks/perl6/exercises/space-age/.meta/exercise-data.yaml +1 -1
  154. data/tracks/perl6/exercises/space-age/space-age.t +34 -20
  155. data/tracks/perl6/exercises/two-fer/.meta/exercise-data.yaml +2 -2
  156. data/tracks/perl6/exercises/two-fer/two-fer.t +15 -11
  157. data/tracks/perl6/exercises/word-count/.meta/exercise-data.yaml +1 -1
  158. data/tracks/perl6/exercises/word-count/word-count.t +46 -26
  159. data/tracks/perl6/exercises/wordy/.meta/exercise-data.yaml +2 -2
  160. data/tracks/perl6/exercises/wordy/wordy.t +51 -21
  161. data/tracks/perl6/lib/Exercism/Generator.pm6 +1 -1
  162. data/tracks/perl6/t/generated-tests.t +1 -1
  163. data/tracks/perl6/templates/test.mustache +0 -1
  164. data/tracks/python/config.json +12 -0
  165. data/tracks/python/exercises/forth/example.py +1 -1
  166. data/tracks/python/exercises/forth/forth_test.py +43 -38
  167. data/tracks/python/exercises/spiral-matrix/README.md +42 -0
  168. data/tracks/python/exercises/spiral-matrix/example.py +11 -0
  169. data/tracks/python/exercises/spiral-matrix/spiral_matrix.py +2 -0
  170. data/tracks/python/exercises/spiral-matrix/spiral_matrix_test.py +40 -0
  171. data/tracks/racket/config/exercise_readme.go.tmpl +24 -4
  172. data/tracks/racket/exercises/accumulate/README.md +3 -6
  173. data/tracks/racket/exercises/acronym/README.md +3 -4
  174. data/tracks/racket/exercises/allergies/README.md +3 -4
  175. data/tracks/racket/exercises/anagram/README.md +3 -3
  176. data/tracks/racket/exercises/bob/README.md +5 -3
  177. data/tracks/racket/exercises/collatz-conjecture/README.md +3 -3
  178. data/tracks/racket/exercises/difference-of-squares/README.md +3 -3
  179. data/tracks/racket/exercises/etl/README.md +6 -4
  180. data/tracks/racket/exercises/gigasecond/README.md +3 -3
  181. data/tracks/racket/exercises/grains/README.md +3 -4
  182. data/tracks/racket/exercises/grep/README.md +15 -15
  183. data/tracks/racket/exercises/hamming/README.md +3 -3
  184. data/tracks/racket/exercises/hello-world/README.md +1 -1
  185. data/tracks/racket/exercises/leap/README.md +4 -4
  186. data/tracks/racket/exercises/list-ops/README.md +3 -4
  187. data/tracks/racket/exercises/meetup/README.md +19 -15
  188. data/tracks/racket/exercises/nucleotide-count/README.md +11 -25
  189. data/tracks/racket/exercises/perfect-numbers/README.md +5 -5
  190. data/tracks/racket/exercises/phone-number/README.md +7 -6
  191. data/tracks/racket/exercises/raindrops/README.md +3 -3
  192. data/tracks/racket/exercises/rna-transcription/README.md +4 -4
  193. data/tracks/racket/exercises/roman-numerals/README.md +4 -4
  194. data/tracks/racket/exercises/say/README.md +3 -3
  195. data/tracks/racket/exercises/scrabble-score/README.md +6 -4
  196. data/tracks/racket/exercises/word-count/README.md +4 -5
  197. data/tracks/scheme/config/exercise_readme.go.tmpl +0 -3
  198. data/tracks/scheme/docs/INSTALLATION.md +23 -14
  199. metadata +40 -9
  200. data/tracks/idris/docs/EXERCISE_README_INSERT.md +0 -0
  201. data/tracks/idris/exercises/hello-world/src/example.idr +0 -5
  202. data/tracks/kotlin/config/exercise-readme-insert.md +0 -1
  203. data/tracks/racket/docs/EXERCISE_README_INSERT.md +0 -23
  204. data/tracks/scheme/docs/EXERCISE_README_INSERT.md +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "prime-factors",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "returns prime factors for the given input number",
@@ -8,43 +8,57 @@
8
8
  {
9
9
  "description": "no factors",
10
10
  "property": "factors",
11
- "input": 1,
11
+ "input": {
12
+ "value": 1
13
+ },
12
14
  "expected": []
13
15
  },
14
16
  {
15
17
  "description": "prime number",
16
18
  "property": "factors",
17
- "input": 2,
19
+ "input": {
20
+ "value": 2
21
+ },
18
22
  "expected": [2]
19
23
  },
20
24
  {
21
25
  "description": "square of a prime",
22
26
  "property": "factors",
23
- "input": 9,
27
+ "input": {
28
+ "value": 9
29
+ },
24
30
  "expected": [3, 3]
25
31
  },
26
32
  {
27
33
  "description": "cube of a prime",
28
34
  "property": "factors",
29
- "input": 8,
35
+ "input": {
36
+ "value": 8
37
+ },
30
38
  "expected": [2, 2, 2]
31
39
  },
32
40
  {
33
41
  "description": "product of primes and non-primes",
34
42
  "property": "factors",
35
- "input": 12,
43
+ "input": {
44
+ "value": 12
45
+ },
36
46
  "expected": [2, 2, 3]
37
47
  },
38
48
  {
39
49
  "description": "product of primes",
40
50
  "property": "factors",
41
- "input": 901255,
51
+ "input": {
52
+ "value": 901255
53
+ },
42
54
  "expected": [5, 17, 23, 461]
43
55
  },
44
56
  {
45
57
  "description": "factors include a large prime",
46
58
  "property": "factors",
47
- "input": 93819012551,
59
+ "input": {
60
+ "value": 93819012551
61
+ },
48
62
  "expected": [11, 9539, 894119]
49
63
  }
50
64
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "protein-translation",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "Translate input RNA sequences into proteins",
@@ -12,139 +12,185 @@
12
12
  {
13
13
  "description": "Methionine RNA sequence",
14
14
  "property": "proteins",
15
- "strand": "AUG",
15
+ "input": {
16
+ "strand": "AUG"
17
+ },
16
18
  "expected": ["Methionine"]
17
19
  },
18
20
  {
19
21
  "description": "Phenylalanine RNA sequence 1",
20
22
  "property": "proteins",
21
- "strand": "UUU",
23
+ "input": {
24
+ "strand": "UUU"
25
+ },
22
26
  "expected": ["Phenylalanine"]
23
27
  },
24
28
  {
25
29
  "description": "Phenylalanine RNA sequence 2",
26
30
  "property": "proteins",
27
- "strand": "UUC",
31
+ "input": {
32
+ "strand": "UUC"
33
+ },
28
34
  "expected": ["Phenylalanine"]
29
35
  },
30
36
  {
31
37
  "description": "Leucine RNA sequence 1",
32
38
  "property": "proteins",
33
- "strand": "UUA",
39
+ "input": {
40
+ "strand": "UUA"
41
+ },
34
42
  "expected": ["Leucine"]
35
43
  },
36
44
  {
37
45
  "description": "Leucine RNA sequence 2",
38
46
  "property": "proteins",
39
- "strand": "UUG",
47
+ "input": {
48
+ "strand": "UUG"
49
+ },
40
50
  "expected": ["Leucine"]
41
51
  },
42
52
  {
43
53
  "description": "Serine RNA sequence 1",
44
54
  "property": "proteins",
45
- "strand": "UCU",
55
+ "input": {
56
+ "strand": "UCU"
57
+ },
46
58
  "expected": ["Serine"]
47
59
  },
48
60
  {
49
61
  "description": "Serine RNA sequence 2",
50
62
  "property": "proteins",
51
- "strand": "UCC",
63
+ "input": {
64
+ "strand": "UCC"
65
+ },
52
66
  "expected": ["Serine"]
53
67
  },
54
68
  {
55
69
  "description": "Serine RNA sequence 3",
56
70
  "property": "proteins",
57
- "strand": "UCA",
71
+ "input": {
72
+ "strand": "UCA"
73
+ },
58
74
  "expected": ["Serine"]
59
75
  },
60
76
  {
61
77
  "description": "Serine RNA sequence 4",
62
78
  "property": "proteins",
63
- "strand": "UCG",
79
+ "input": {
80
+ "strand": "UCG"
81
+ },
64
82
  "expected": ["Serine"]
65
83
  },
66
84
  {
67
85
  "description": "Tyrosine RNA sequence 1",
68
86
  "property": "proteins",
69
- "strand": "UAU",
87
+ "input": {
88
+ "strand": "UAU"
89
+ },
70
90
  "expected": ["Tyrosine"]
71
91
  },
72
92
  {
73
93
  "description": "Tyrosine RNA sequence 2",
74
94
  "property": "proteins",
75
- "strand": "UAC",
95
+ "input": {
96
+ "strand": "UAC"
97
+ },
76
98
  "expected": ["Tyrosine"]
77
99
  },
78
100
  {
79
101
  "description": "Cysteine RNA sequence 1",
80
102
  "property": "proteins",
81
- "strand": "UGU",
103
+ "input": {
104
+ "strand": "UGU"
105
+ },
82
106
  "expected": ["Cysteine"]
83
107
  },
84
108
  {
85
109
  "description": "Cysteine RNA sequence 2",
86
110
  "property": "proteins",
87
- "strand": "UGC",
111
+ "input": {
112
+ "strand": "UGC"
113
+ },
88
114
  "expected": ["Cysteine"]
89
115
  },
90
116
  {
91
117
  "description": "Tryptophan RNA sequence",
92
118
  "property": "proteins",
93
- "strand": "UGG",
119
+ "input": {
120
+ "strand": "UGG"
121
+ },
94
122
  "expected": ["Tryptophan"]
95
123
  },
96
124
  {
97
125
  "description": "STOP codon RNA sequence 1",
98
126
  "property": "proteins",
99
- "strand": "UAA",
127
+ "input": {
128
+ "strand": "UAA"
129
+ },
100
130
  "expected": []
101
131
  },
102
132
  {
103
133
  "description": "STOP codon RNA sequence 2",
104
134
  "property": "proteins",
105
- "strand": "UAG",
135
+ "input": {
136
+ "strand": "UAG"
137
+ },
106
138
  "expected": []
107
139
  },
108
140
  {
109
141
  "description": "STOP codon RNA sequence 3",
110
142
  "property": "proteins",
111
- "strand": "UGA",
143
+ "input": {
144
+ "strand": "UGA"
145
+ },
112
146
  "expected": []
113
147
  },
114
148
  {
115
149
  "description": "Translate RNA strand into correct protein list",
116
150
  "property": "proteins",
117
- "strand": "AUGUUUUGG",
151
+ "input": {
152
+ "strand": "AUGUUUUGG"
153
+ },
118
154
  "expected": ["Methionine","Phenylalanine","Tryptophan"]
119
155
  },
120
156
  {
121
157
  "description": "Translation stops if STOP codon at beginning of sequence",
122
158
  "property": "proteins",
123
- "strand": "UAGUGG",
159
+ "input": {
160
+ "strand": "UAGUGG"
161
+ },
124
162
  "expected": []
125
163
  },
126
164
  {
127
165
  "description": "Translation stops if STOP codon at end of two-codon sequence",
128
166
  "property": "proteins",
129
- "strand": "UGGUAG",
167
+ "input": {
168
+ "strand": "UGGUAG"
169
+ },
130
170
  "expected": ["Tryptophan"]
131
171
  },
132
172
  {
133
173
  "description": "Translation stops if STOP codon at end of three-codon sequence",
134
174
  "property": "proteins",
135
- "strand": "AUGUUUUAA",
175
+ "input": {
176
+ "strand": "AUGUUUUAA"
177
+ },
136
178
  "expected": ["Methionine","Phenylalanine"]
137
179
  },
138
180
  {
139
181
  "description": "Translation stops if STOP codon in middle of three-codon sequence",
140
182
  "property": "proteins",
141
- "strand": "UGGUAGUGG",
183
+ "input": {
184
+ "strand": "UGGUAGUGG"
185
+ },
142
186
  "expected": ["Tryptophan"]
143
187
  },
144
188
  {
145
189
  "description": "Translation stops if STOP codon in middle of six-codon sequence",
146
190
  "property": "proteins",
147
- "strand": "UGGUGUUAUUAAUGGUUU",
191
+ "input": {
192
+ "strand": "UGGUGUUAUUAAUGGUUU"
193
+ },
148
194
  "expected": ["Tryptophan","Cysteine","Tyrosine"]
149
195
  }
150
196
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "proverb",
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 expected outputs are presented ",
6
6
  "here as arrays of strings. It's up to the test generator to join the ",
@@ -10,15 +10,19 @@
10
10
  {
11
11
  "description": "zero pieces",
12
12
  "property": "recite",
13
- "input": [],
13
+ "input": {
14
+ "strings": []
15
+ },
14
16
  "expected": []
15
17
  },
16
18
  {
17
19
  "description": "one piece",
18
20
  "property": "recite",
19
- "input": [
21
+ "input": {
22
+ "strings": [
20
23
  "nail"
21
- ],
24
+ ]
25
+ },
22
26
  "expected": [
23
27
  "And all for the want of a nail."
24
28
  ]
@@ -26,10 +30,12 @@
26
30
  {
27
31
  "description": "two pieces",
28
32
  "property": "recite",
29
- "input": [
33
+ "input": {
34
+ "strings": [
30
35
  "nail",
31
36
  "shoe"
32
- ],
37
+ ]
38
+ },
33
39
  "expected": [
34
40
  "For want of a nail the shoe was lost.",
35
41
  "And all for the want of a nail."
@@ -38,11 +44,13 @@
38
44
  {
39
45
  "description": "three pieces",
40
46
  "property": "recite",
41
- "input": [
47
+ "input": {
48
+ "strings": [
42
49
  "nail",
43
50
  "shoe",
44
51
  "horse"
45
- ],
52
+ ]
53
+ },
46
54
  "expected": [
47
55
  "For want of a nail the shoe was lost.",
48
56
  "For want of a shoe the horse was lost.",
@@ -52,7 +60,8 @@
52
60
  {
53
61
  "description": "full proverb",
54
62
  "property": "recite",
55
- "input": [
63
+ "input": {
64
+ "strings": [
56
65
  "nail",
57
66
  "shoe",
58
67
  "horse",
@@ -60,7 +69,8 @@
60
69
  "message",
61
70
  "battle",
62
71
  "kingdom"
63
- ],
72
+ ]
73
+ },
64
74
  "expected": [
65
75
  "For want of a nail the shoe was lost.",
66
76
  "For want of a shoe the horse was lost.",
@@ -74,12 +84,14 @@
74
84
  {
75
85
  "description": "four pieces modernized",
76
86
  "property": "recite",
77
- "input": [
87
+ "input": {
88
+ "strings": [
78
89
  "pin",
79
90
  "gun",
80
91
  "soldier",
81
92
  "battle"
82
- ],
93
+ ]
94
+ },
83
95
  "expected": [
84
96
  "For want of a pin the gun was lost.",
85
97
  "For want of a gun the soldier was lost.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "queen-attack",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "comments": [
5
5
  "Testing invalid positions will vary by language. The expected",
6
6
  "value of -1 is there to indicate some sort of failure should",
@@ -17,10 +17,12 @@
17
17
  {
18
18
  "description": "queen with a valid position",
19
19
  "property": "create",
20
- "queen": {
21
- "position": {
22
- "row": 2,
23
- "column": 2
20
+ "input": {
21
+ "queen": {
22
+ "position": {
23
+ "row": 2,
24
+ "column": 2
25
+ }
24
26
  }
25
27
  },
26
28
  "expected": 0
@@ -28,10 +30,12 @@
28
30
  {
29
31
  "description": "queen must have positive row",
30
32
  "property": "create",
31
- "queen": {
32
- "position": {
33
- "row": -2,
34
- "column": 2
33
+ "input": {
34
+ "queen": {
35
+ "position": {
36
+ "row": -2,
37
+ "column": 2
38
+ }
35
39
  }
36
40
  },
37
41
  "expected": -1
@@ -39,10 +43,12 @@
39
43
  {
40
44
  "description": "queen must have row on board",
41
45
  "property": "create",
42
- "queen": {
43
- "position": {
44
- "row": 8,
45
- "column": 4
46
+ "input": {
47
+ "queen": {
48
+ "position": {
49
+ "row": 8,
50
+ "column": 4
51
+ }
46
52
  }
47
53
  },
48
54
  "expected": -1
@@ -50,10 +56,12 @@
50
56
  {
51
57
  "description": "queen must have positive column",
52
58
  "property": "create",
53
- "queen": {
54
- "position": {
55
- "row": 2,
56
- "column": -2
59
+ "input": {
60
+ "queen": {
61
+ "position": {
62
+ "row": 2,
63
+ "column": -2
64
+ }
57
65
  }
58
66
  },
59
67
  "expected": -1
@@ -61,10 +69,12 @@
61
69
  {
62
70
  "description": "queen must have column on board",
63
71
  "property": "create",
64
- "queen": {
65
- "position": {
66
- "row": 4,
67
- "column": 8
72
+ "input": {
73
+ "queen": {
74
+ "position": {
75
+ "row": 4,
76
+ "column": 8
77
+ }
68
78
  }
69
79
  },
70
80
  "expected": -1
@@ -77,16 +87,18 @@
77
87
  {
78
88
  "description": "can not attack",
79
89
  "property": "canAttack",
80
- "white_queen": {
81
- "position": {
82
- "row": 2,
83
- "column": 4
84
- }
85
- },
86
- "black_queen": {
87
- "position": {
88
- "row": 6,
89
- "column": 6
90
+ "input": {
91
+ "white_queen": {
92
+ "position": {
93
+ "row": 2,
94
+ "column": 4
95
+ }
96
+ },
97
+ "black_queen": {
98
+ "position": {
99
+ "row": 6,
100
+ "column": 6
101
+ }
90
102
  }
91
103
  },
92
104
  "expected": false
@@ -94,16 +106,18 @@
94
106
  {
95
107
  "description": "can attack on same row",
96
108
  "property": "canAttack",
97
- "white_queen": {
98
- "position": {
99
- "row": 2,
100
- "column": 4
101
- }
102
- },
103
- "black_queen": {
104
- "position": {
105
- "row": 2,
106
- "column": 6
109
+ "input": {
110
+ "white_queen": {
111
+ "position": {
112
+ "row": 2,
113
+ "column": 4
114
+ }
115
+ },
116
+ "black_queen": {
117
+ "position": {
118
+ "row": 2,
119
+ "column": 6
120
+ }
107
121
  }
108
122
  },
109
123
  "expected": true
@@ -111,16 +125,18 @@
111
125
  {
112
126
  "description": "can attack on same column",
113
127
  "property": "canAttack",
114
- "white_queen": {
115
- "position": {
116
- "row": 4,
117
- "column": 5
118
- }
119
- },
120
- "black_queen": {
121
- "position": {
122
- "row": 2,
123
- "column": 5
128
+ "input": {
129
+ "white_queen": {
130
+ "position": {
131
+ "row": 4,
132
+ "column": 5
133
+ }
134
+ },
135
+ "black_queen": {
136
+ "position": {
137
+ "row": 2,
138
+ "column": 5
139
+ }
124
140
  }
125
141
  },
126
142
  "expected": true
@@ -128,16 +144,18 @@
128
144
  {
129
145
  "description": "can attack on first diagonal",
130
146
  "property": "canAttack",
131
- "white_queen": {
132
- "position": {
133
- "row": 2,
134
- "column": 2
135
- }
136
- },
137
- "black_queen": {
138
- "position": {
139
- "row": 0,
140
- "column": 4
147
+ "input": {
148
+ "white_queen": {
149
+ "position": {
150
+ "row": 2,
151
+ "column": 2
152
+ }
153
+ },
154
+ "black_queen": {
155
+ "position": {
156
+ "row": 0,
157
+ "column": 4
158
+ }
141
159
  }
142
160
  },
143
161
  "expected": true
@@ -145,16 +163,18 @@
145
163
  {
146
164
  "description": "can attack on second diagonal",
147
165
  "property": "canAttack",
148
- "white_queen": {
149
- "position": {
150
- "row": 2,
151
- "column": 2
152
- }
153
- },
154
- "black_queen": {
155
- "position": {
156
- "row": 3,
157
- "column": 1
166
+ "input": {
167
+ "white_queen": {
168
+ "position": {
169
+ "row": 2,
170
+ "column": 2
171
+ }
172
+ },
173
+ "black_queen": {
174
+ "position": {
175
+ "row": 3,
176
+ "column": 1
177
+ }
158
178
  }
159
179
  },
160
180
  "expected": true
@@ -162,16 +182,18 @@
162
182
  {
163
183
  "description": "can attack on third diagonal",
164
184
  "property": "canAttack",
165
- "white_queen": {
166
- "position": {
167
- "row": 2,
168
- "column": 2
169
- }
170
- },
171
- "black_queen": {
172
- "position": {
173
- "row": 1,
174
- "column": 1
185
+ "input": {
186
+ "white_queen": {
187
+ "position": {
188
+ "row": 2,
189
+ "column": 2
190
+ }
191
+ },
192
+ "black_queen": {
193
+ "position": {
194
+ "row": 1,
195
+ "column": 1
196
+ }
175
197
  }
176
198
  },
177
199
  "expected": true
@@ -179,16 +201,18 @@
179
201
  {
180
202
  "description": "can attack on fourth diagonal",
181
203
  "property": "canAttack",
182
- "white_queen": {
183
- "position": {
184
- "row": 2,
185
- "column": 2
186
- }
187
- },
188
- "black_queen": {
189
- "position": {
190
- "row": 5,
191
- "column": 5
204
+ "input": {
205
+ "white_queen": {
206
+ "position": {
207
+ "row": 2,
208
+ "column": 2
209
+ }
210
+ },
211
+ "black_queen": {
212
+ "position": {
213
+ "row": 5,
214
+ "column": 5
215
+ }
192
216
  }
193
217
  },
194
218
  "expected": true