trackler 2.2.1.98 → 2.2.1.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +47 -47
- data/problem-specifications/exercises/custom-set/canonical-data.json +13 -7
- data/tracks/delphi/exercises/phone-number/uPhoneNumberTests.pas +1 -1
- data/tracks/elixir/exercises/protein-translation/protein_translation_test.exs +5 -0
- data/tracks/fsharp/config.json +10 -0
- data/tracks/fsharp/exercises/Exercises.sln +6 -0
- data/tracks/fsharp/exercises/accumulate/AccumulateTest.fs +2 -0
- data/tracks/fsharp/exercises/bank-account/BankAccountTest.fs +2 -0
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTreeTest.fs +2 -0
- data/tracks/fsharp/exercises/binary/BinaryTest.fs +2 -0
- data/tracks/fsharp/exercises/circular-buffer/CircularBufferTest.fs +121 -117
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fs +21 -0
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fsproj +23 -0
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbersTest.fs +168 -0
- data/tracks/fsharp/exercises/complex-numbers/Example.fs +27 -0
- data/tracks/fsharp/exercises/complex-numbers/Program.fs +1 -0
- data/tracks/fsharp/exercises/complex-numbers/README.md +35 -0
- data/tracks/fsharp/exercises/diamond/DiamondTest.fs +2 -0
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellmanTest.fs +2 -0
- data/tracks/fsharp/exercises/dot-dsl/DotDslTest.fs +2 -0
- data/tracks/fsharp/exercises/error-handling/ErrorHandlingTest.fs +2 -0
- data/tracks/fsharp/exercises/go-counting/GoCountingTest.fs +2 -0
- data/tracks/fsharp/exercises/grade-school/GradeSchoolTest.fs +2 -0
- data/tracks/fsharp/exercises/hangman/HangmanTest.fs +2 -0
- data/tracks/fsharp/exercises/hexadecimal/HexadecimalTest.fs +2 -0
- data/tracks/fsharp/exercises/ledger/LedgerTest.fs +2 -0
- data/tracks/fsharp/exercises/lens-person/LensPersonTest.fs +2 -0
- data/tracks/fsharp/exercises/linked-list/LinkedListTest.fs +2 -0
- data/tracks/fsharp/exercises/matrix/MatrixTest.fs +2 -0
- data/tracks/fsharp/exercises/octal/OctalTest.fs +2 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.fs +2 -0
- data/tracks/fsharp/exercises/pov/PovTest.fs +2 -0
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslationTest.fs +2 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTripletTest.fs +2 -0
- data/tracks/fsharp/exercises/robot-name/RobotNameTest.fs +2 -0
- data/tracks/fsharp/exercises/saddle-points/SaddlePointsTest.fs +2 -0
- data/tracks/fsharp/exercises/say/SayTest.fs +2 -0
- data/tracks/fsharp/exercises/scale-generator/ScaleGeneratorTest.fs +2 -0
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshakeTest.fs +2 -0
- data/tracks/fsharp/exercises/series/SeriesTest.fs +2 -0
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsingTest.fs +2 -0
- data/tracks/fsharp/exercises/sieve/SieveTest.fs +2 -0
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipherTest.fs +2 -0
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedListTest.fs +2 -0
- data/tracks/fsharp/exercises/space-age/SpaceAgeTest.fs +2 -0
- data/tracks/fsharp/exercises/strain/StrainTest.fs +2 -0
- data/tracks/fsharp/exercises/sublist/SublistTest.fs +2 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +2 -0
- data/tracks/fsharp/exercises/tournament/TournamentTest.fs +2 -0
- data/tracks/fsharp/exercises/transpose/TransposeTest.fs +2 -0
- data/tracks/fsharp/exercises/transpose/TrinaryTest.fs +3 -1
- data/tracks/fsharp/exercises/tree-building/TreeBuildingTest.fs +2 -0
- data/tracks/fsharp/exercises/triangle/TriangleTest.fs +2 -0
- data/tracks/fsharp/exercises/trinary/TrinaryTest.fs +2 -0
- data/tracks/fsharp/exercises/two-bucket/TwoBucketTest.fs +2 -0
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantityTest.fs +2 -0
- data/tracks/fsharp/exercises/word-count/WordCountTest.fs +2 -0
- data/tracks/fsharp/exercises/word-search/WordSearchTest.fs +2 -0
- data/tracks/fsharp/exercises/wordy/WordyTest.fs +2 -0
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzleTest.fs +2 -0
- data/tracks/fsharp/exercises/zipper/ZipperTest.fs +2 -0
- data/tracks/fsharp/generators/CanonicalData.fs +1 -1
- data/tracks/fsharp/generators/Generators.fs +89 -0
- data/tracks/go/config.json +16 -0
- data/tracks/go/exercises/rail-fence-cipher/.meta/gen.go +82 -0
- data/tracks/go/exercises/rail-fence-cipher/README.md +83 -0
- data/tracks/go/exercises/rail-fence-cipher/cases_test.go +50 -0
- data/tracks/go/exercises/rail-fence-cipher/example.go +58 -0
- data/tracks/go/exercises/rail-fence-cipher/rail_fence_cipher_test.go +15 -0
- data/tracks/go/exercises/say/.meta/gen.go +5 -3
- data/tracks/go/exercises/say/cases_test.go +2 -2
- data/tracks/go/exercises/scrabble-score/.meta/gen.go +5 -3
- data/tracks/go/exercises/scrabble-score/cases_test.go +2 -2
- data/tracks/go/exercises/secret-handshake/.meta/gen.go +5 -3
- data/tracks/go/exercises/secret-handshake/cases_test.go +2 -2
- data/tracks/go/exercises/transpose/.meta/gen.go +5 -3
- data/tracks/go/exercises/transpose/cases_test.go +30 -76
- data/tracks/go/exercises/word-count/.meta/gen.go +5 -3
- data/tracks/go/exercises/word-count/cases_test.go +2 -2
- data/tracks/go/exercises/wordy/.meta/gen.go +5 -3
- data/tracks/go/exercises/wordy/cases_test.go +2 -2
- data/tracks/java/exercises/largest-series-product/.meta/src/reference/java/LargestSeriesProductCalculator.java +1 -3
- data/tracks/java/exercises/largest-series-product/.meta/version +1 -0
- data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +9 -44
- data/tracks/ocaml/exercises/grade-school/.meta/description.md +21 -0
- data/tracks/ocaml/exercises/palindrome-products/.meta/description.md +35 -0
- data/tracks/ocaml/exercises/palindrome-products/README.md +13 -9
- metadata +16 -2
@@ -0,0 +1,50 @@
|
|
1
|
+
package railfence
|
2
|
+
|
3
|
+
// Source: exercism/problem-specifications
|
4
|
+
// Commit: c01f9ca rail-fence-cipher 1.0.1: Remove "test to" from all descriptions
|
5
|
+
// Problem Specifications Version: 1.0.1
|
6
|
+
|
7
|
+
type testCase struct {
|
8
|
+
description string
|
9
|
+
message string
|
10
|
+
rails int
|
11
|
+
expected string
|
12
|
+
}
|
13
|
+
|
14
|
+
// encode
|
15
|
+
var encodeTests = []testCase{
|
16
|
+
|
17
|
+
{"encode with two rails",
|
18
|
+
"XOXOXOXOXOXOXOXOXO",
|
19
|
+
2,
|
20
|
+
"XXXXXXXXXOOOOOOOOO"},
|
21
|
+
|
22
|
+
{"encode with three rails",
|
23
|
+
"WEAREDISCOVEREDFLEEATONCE",
|
24
|
+
3,
|
25
|
+
"WECRLTEERDSOEEFEAOCAIVDEN"},
|
26
|
+
|
27
|
+
{"encode with ending in the middle",
|
28
|
+
"EXERCISES",
|
29
|
+
4,
|
30
|
+
"ESXIEECSR"},
|
31
|
+
}
|
32
|
+
|
33
|
+
// decode
|
34
|
+
var decodeTests = []testCase{
|
35
|
+
|
36
|
+
{"decode with three rails",
|
37
|
+
"TEITELHDVLSNHDTISEIIEA",
|
38
|
+
3,
|
39
|
+
"THEDEVILISINTHEDETAILS"},
|
40
|
+
|
41
|
+
{"decode with five rails",
|
42
|
+
"EIEXMSMESAORIWSCE",
|
43
|
+
5,
|
44
|
+
"EXERCISMISAWESOME"},
|
45
|
+
|
46
|
+
{"decode with six rails",
|
47
|
+
"133714114238148966225439541018335470986172518171757571896261",
|
48
|
+
6,
|
49
|
+
"112358132134558914423337761098715972584418167651094617711286"},
|
50
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
package railfence
|
2
|
+
|
3
|
+
import (
|
4
|
+
"sort"
|
5
|
+
)
|
6
|
+
|
7
|
+
type pair struct {
|
8
|
+
index, value int
|
9
|
+
letter byte
|
10
|
+
}
|
11
|
+
|
12
|
+
func pattern(rails, size int) []pair {
|
13
|
+
var pairs []pair
|
14
|
+
var v, direction = 0, 1
|
15
|
+
for i := 0; i < size; i++ {
|
16
|
+
pairs = append(pairs, pair{index: i, value: v})
|
17
|
+
v += direction
|
18
|
+
if v == 0 {
|
19
|
+
direction = 1
|
20
|
+
} else if v == rails-1 {
|
21
|
+
direction = -1
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return pairs
|
25
|
+
}
|
26
|
+
|
27
|
+
func sortedPattern(rails, size int) []pair {
|
28
|
+
fence := pattern(rails, size)
|
29
|
+
sort.Slice(fence, func(i, j int) bool {
|
30
|
+
f1, f2 := fence[i], fence[j]
|
31
|
+
return f1.value < f2.value || (f1.value == f2.value && f1.index < f2.index)
|
32
|
+
})
|
33
|
+
return fence
|
34
|
+
}
|
35
|
+
|
36
|
+
// Encode encodes given message with given rails
|
37
|
+
func Encode(msg string, rails int) string {
|
38
|
+
fence := sortedPattern(rails, len(msg))
|
39
|
+
var encoded []byte
|
40
|
+
for _, p := range fence {
|
41
|
+
encoded = append(encoded, msg[p.index])
|
42
|
+
}
|
43
|
+
return string(encoded)
|
44
|
+
}
|
45
|
+
|
46
|
+
// Decode decodes given message with given rails
|
47
|
+
func Decode(msg string, rails int) string {
|
48
|
+
fence := sortedPattern(rails, len(msg))
|
49
|
+
for i := range msg {
|
50
|
+
fence[i].letter = msg[i]
|
51
|
+
}
|
52
|
+
sort.Slice(fence, func(i, j int) bool { return fence[i].index < fence[j].index })
|
53
|
+
var decoded []byte
|
54
|
+
for _, p := range fence {
|
55
|
+
decoded = append(decoded, p.letter)
|
56
|
+
}
|
57
|
+
return string(decoded)
|
58
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
package railfence
|
2
|
+
|
3
|
+
import "testing"
|
4
|
+
|
5
|
+
func testCases(op func(string, int) string, cases []testCase, t *testing.T) {
|
6
|
+
for _, tc := range cases {
|
7
|
+
if actual := op(tc.message, tc.rails); actual != tc.expected {
|
8
|
+
t.Fatalf("FAIL: %s\nExpected: %q\nActual: %q", tc.description, tc.expected, actual)
|
9
|
+
}
|
10
|
+
t.Logf("PASS: %s", tc.description)
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
func TestEncode(t *testing.T) { testCases(Encode, encodeTests, t) }
|
15
|
+
func TestDecode(t *testing.T) { testCases(Decode, decodeTests, t) }
|
@@ -31,8 +31,10 @@ type js struct {
|
|
31
31
|
type OneCase struct {
|
32
32
|
Description string
|
33
33
|
Property string
|
34
|
-
Input
|
35
|
-
|
34
|
+
Input struct {
|
35
|
+
Number int64
|
36
|
+
}
|
37
|
+
Expected interface{}
|
36
38
|
}
|
37
39
|
|
38
40
|
func (c OneCase) ErrorExpected() bool {
|
@@ -61,7 +63,7 @@ var testCases = []struct {
|
|
61
63
|
}{ {{range .J.Cases}}
|
62
64
|
{
|
63
65
|
description: {{printf "%q" .Description}},
|
64
|
-
input: {{printf "%v" .Input}},
|
66
|
+
input: {{printf "%v" .Input.Number}},
|
65
67
|
{{if .ErrorExpected}}expectError: true,
|
66
68
|
{{else}}expected: {{printf "%q" .Expected}},
|
67
69
|
{{- end}}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package say
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: c1467a0 say: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -22,8 +22,10 @@ func main() {
|
|
22
22
|
type js struct {
|
23
23
|
Cases []struct {
|
24
24
|
Description string
|
25
|
-
Input
|
26
|
-
|
25
|
+
Input struct {
|
26
|
+
Word string
|
27
|
+
}
|
28
|
+
Expected int
|
27
29
|
}
|
28
30
|
}
|
29
31
|
|
@@ -38,6 +40,6 @@ type scrabbleTest struct {
|
|
38
40
|
}
|
39
41
|
|
40
42
|
var scrabbleScoreTests = []scrabbleTest {
|
41
|
-
{{range .J.Cases}}{ "{{.Input}}", {{.Expected}}}, // {{.Description}}
|
43
|
+
{{range .J.Cases}}{ "{{.Input.Word}}", {{.Expected}}}, // {{.Description}}
|
42
44
|
{{end}}}
|
43
45
|
`
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package scrabble
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 0d882ed scrabble-score: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
type scrabbleTest struct {
|
8
8
|
input string
|
@@ -25,8 +25,10 @@ type js struct {
|
|
25
25
|
Cases []struct {
|
26
26
|
Description string
|
27
27
|
Property string
|
28
|
-
Input
|
29
|
-
|
28
|
+
Input struct {
|
29
|
+
Number uint
|
30
|
+
}
|
31
|
+
Expected []string
|
30
32
|
}
|
31
33
|
}
|
32
34
|
}
|
@@ -42,7 +44,7 @@ type secretHandshakeTest struct {
|
|
42
44
|
}
|
43
45
|
|
44
46
|
var tests = []secretHandshakeTest {
|
45
|
-
{{range .J.Cases}} {{range .Cases}}{ {{ .Input }}, {{printf "%#v" .Expected }},
|
47
|
+
{{range .J.Cases}} {{range .Cases}}{ {{ .Input.Number }}, {{printf "%#v" .Expected }},
|
46
48
|
},
|
47
49
|
{{end}}{{end}}
|
48
50
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package secret
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: a9e4df8 secret-handshake: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.2.0
|
6
6
|
|
7
7
|
type secretHandshakeTest struct {
|
8
8
|
code uint
|
@@ -22,8 +22,10 @@ func main() {
|
|
22
22
|
type js struct {
|
23
23
|
Cases []struct {
|
24
24
|
Description string
|
25
|
-
Input
|
26
|
-
|
25
|
+
Input struct {
|
26
|
+
Lines []string
|
27
|
+
}
|
28
|
+
Expected []string
|
27
29
|
}
|
28
30
|
}
|
29
31
|
|
@@ -40,7 +42,7 @@ var testCases = []struct {
|
|
40
42
|
{{range .J.Cases}}{
|
41
43
|
{{printf "%q" .Description}},
|
42
44
|
[]string{
|
43
|
-
{{range .Input}} {{printf "%q" .}},
|
45
|
+
{{range .Input.Lines}} {{printf "%q" .}},
|
44
46
|
{{end}}},
|
45
47
|
[]string{
|
46
48
|
{{range .Expected}} {{printf "%q" .}},
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package transpose
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 92bc877 switch to new json-schema
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -116,6 +116,34 @@ var testCases = []struct {
|
|
116
116
|
" .",
|
117
117
|
},
|
118
118
|
},
|
119
|
+
{
|
120
|
+
"mixed line length",
|
121
|
+
[]string{
|
122
|
+
"The longest line.",
|
123
|
+
"A long line.",
|
124
|
+
"A longer line.",
|
125
|
+
"A line.",
|
126
|
+
},
|
127
|
+
[]string{
|
128
|
+
"TAAA",
|
129
|
+
"h ",
|
130
|
+
"elll",
|
131
|
+
" ooi",
|
132
|
+
"lnnn",
|
133
|
+
"ogge",
|
134
|
+
"n e.",
|
135
|
+
"glr",
|
136
|
+
"ei ",
|
137
|
+
"snl",
|
138
|
+
"tei",
|
139
|
+
" .n",
|
140
|
+
"l e",
|
141
|
+
"i .",
|
142
|
+
"n",
|
143
|
+
"e",
|
144
|
+
".",
|
145
|
+
},
|
146
|
+
},
|
119
147
|
{
|
120
148
|
"square",
|
121
149
|
[]string{
|
@@ -171,78 +199,4 @@ var testCases = []struct {
|
|
171
199
|
" R",
|
172
200
|
},
|
173
201
|
},
|
174
|
-
{
|
175
|
-
"many lines",
|
176
|
-
[]string{
|
177
|
-
"Chor. Two households, both alike in dignity,",
|
178
|
-
"In fair Verona, where we lay our scene,",
|
179
|
-
"From ancient grudge break to new mutiny,",
|
180
|
-
"Where civil blood makes civil hands unclean.",
|
181
|
-
"From forth the fatal loins of these two foes",
|
182
|
-
"A pair of star-cross'd lovers take their life;",
|
183
|
-
"Whose misadventur'd piteous overthrows",
|
184
|
-
"Doth with their death bury their parents' strife.",
|
185
|
-
"The fearful passage of their death-mark'd love,",
|
186
|
-
"And the continuance of their parents' rage,",
|
187
|
-
"Which, but their children's end, naught could remove,",
|
188
|
-
"Is now the two hours' traffic of our stage;",
|
189
|
-
"The which if you with patient ears attend,",
|
190
|
-
"What here shall miss, our toil shall strive to mend.",
|
191
|
-
},
|
192
|
-
[]string{
|
193
|
-
"CIFWFAWDTAWITW",
|
194
|
-
"hnrhr hohnhshh",
|
195
|
-
"o oeopotedi ea",
|
196
|
-
"rfmrmash cn t",
|
197
|
-
".a e ie fthow ",
|
198
|
-
" ia fr weh,whh",
|
199
|
-
"Trnco miae ie",
|
200
|
-
"w ciroitr btcr",
|
201
|
-
"oVivtfshfcuhhe",
|
202
|
-
" eeih a uote ",
|
203
|
-
"hrnl sdtln is",
|
204
|
-
"oot ttvh tttfh",
|
205
|
-
"un bhaeepihw a",
|
206
|
-
"saglernianeoyl",
|
207
|
-
"e,ro -trsui ol",
|
208
|
-
"h uofcu sarhu ",
|
209
|
-
"owddarrdan o m",
|
210
|
-
"lhg to'egccuwi",
|
211
|
-
"deemasdaeehris",
|
212
|
-
"sr als t ists",
|
213
|
-
",ebk 'phool'h,",
|
214
|
-
" reldi ffd ",
|
215
|
-
"bweso tb rtpo",
|
216
|
-
"oea ileutterau",
|
217
|
-
"t kcnoorhhnatr",
|
218
|
-
"hl isvuyee'fi ",
|
219
|
-
" atv es iisfet",
|
220
|
-
"ayoior trr ino",
|
221
|
-
"l lfsoh ecti",
|
222
|
-
"ion vedpn l",
|
223
|
-
"kuehtteieadoe ",
|
224
|
-
"erwaharrar,fas",
|
225
|
-
" nekt te rh",
|
226
|
-
"ismdsehphnnosa",
|
227
|
-
"ncuse ra-tau l",
|
228
|
-
" et tormsural",
|
229
|
-
"dniuthwea'g t ",
|
230
|
-
"iennwesnr hsts",
|
231
|
-
"g,ycoi tkrttet",
|
232
|
-
"n ,l r s'a anr",
|
233
|
-
"i ef 'dgcgdi",
|
234
|
-
"t aol eoe,v",
|
235
|
-
"y nei sl,u; e",
|
236
|
-
", .sf to l ",
|
237
|
-
" e rv d t",
|
238
|
-
" ; ie o",
|
239
|
-
" f, r ",
|
240
|
-
" e e m",
|
241
|
-
" . m e",
|
242
|
-
" o n",
|
243
|
-
" v d",
|
244
|
-
" e .",
|
245
|
-
" ,",
|
246
|
-
},
|
247
|
-
},
|
248
202
|
}
|
@@ -22,8 +22,10 @@ func main() {
|
|
22
22
|
type js struct {
|
23
23
|
Cases []struct {
|
24
24
|
Description string
|
25
|
-
Input
|
26
|
-
|
25
|
+
Input struct {
|
26
|
+
Sentence string
|
27
|
+
}
|
28
|
+
Expected map[string]int
|
27
29
|
}
|
28
30
|
}
|
29
31
|
|
@@ -39,7 +41,7 @@ var testCases = []struct {
|
|
39
41
|
}{
|
40
42
|
{{range .J.Cases}}{
|
41
43
|
{{printf "%q" .Description}},
|
42
|
-
{{printf "%q" .Input}},
|
44
|
+
{{printf "%q" .Input.Sentence}},
|
43
45
|
Frequency{ {{range $key, $val := .Expected}} {{printf "%q: %d, " $key $val}} {{end}} },
|
44
46
|
},
|
45
47
|
{{end}}}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package wordcount
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 5559f34 word-count: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -20,8 +20,10 @@ func main() {
|
|
20
20
|
|
21
21
|
type OneCase struct {
|
22
22
|
Description string
|
23
|
-
Input
|
24
|
-
|
23
|
+
Input struct {
|
24
|
+
Question string
|
25
|
+
}
|
26
|
+
Expected interface{}
|
25
27
|
}
|
26
28
|
|
27
29
|
// The JSON structure we expect to be able to unmarshal into
|
@@ -65,7 +67,7 @@ type wordyTest struct {
|
|
65
67
|
var tests = []wordyTest {
|
66
68
|
{{range .J.Cases}}{
|
67
69
|
"{{.Description}}",
|
68
|
-
"{{.Input}}",
|
70
|
+
"{{.Input.Question}}",
|
69
71
|
{{if .Valid}} true,
|
70
72
|
{{.Answer}},
|
71
73
|
{{- else}} false,
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package wordy
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: df75482 wordy: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
type wordyTest struct {
|
8
8
|
description string
|