trackler 2.2.1.101 → 2.2.1.102

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/protein-translation/description.md +2 -2
  4. data/problem-specifications/exercises/robot-simulator/canonical-data.json +27 -27
  5. data/problem-specifications/exercises/run-length-encoding/canonical-data.json +40 -14
  6. data/problem-specifications/exercises/tournament/canonical-data.json +71 -49
  7. data/tracks/bash/CONTRIBUTING.md +5 -10
  8. data/tracks/bash/POLICIES.md +57 -0
  9. data/tracks/bash/_template/example.sh +20 -1
  10. data/tracks/bash/exercises/hello-world/hello_world.sh +22 -0
  11. data/tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon +1 -9
  12. data/tracks/ceylon/exercises/rna-transcription/README.md +1 -1
  13. data/tracks/fsharp/exercises/matrix/Example.fs +16 -13
  14. data/tracks/fsharp/exercises/matrix/Matrix.fs +2 -4
  15. data/tracks/fsharp/exercises/matrix/MatrixTest.fs +26 -67
  16. data/tracks/fsharp/exercises/saddle-points/Example.fs +19 -15
  17. data/tracks/fsharp/exercises/saddle-points/SaddlePointsTest.fs +31 -31
  18. data/tracks/fsharp/exercises/sublist/SublistTest.fs +71 -41
  19. data/tracks/fsharp/exercises/tournament/TournamentTest.fs +115 -48
  20. data/tracks/fsharp/exercises/transpose/Example.fs +10 -13
  21. data/tracks/fsharp/exercises/transpose/TransposeTest.fs +150 -219
  22. data/tracks/fsharp/generators/Generators.fs +55 -0
  23. data/tracks/go/exercises/clock/clock_test.go +1 -1
  24. data/tracks/go/exercises/poker/.meta/gen.go +5 -3
  25. data/tracks/go/exercises/poker/cases_test.go +2 -2
  26. data/tracks/go/exercises/prime-factors/.meta/gen.go +5 -3
  27. data/tracks/go/exercises/prime-factors/cases_test.go +2 -2
  28. data/tracks/go/exercises/rail-fence-cipher/.meta/gen.go +9 -7
  29. data/tracks/go/exercises/rail-fence-cipher/cases_test.go +2 -2
  30. data/tracks/go/exercises/raindrops/.meta/gen.go +4 -2
  31. data/tracks/go/exercises/raindrops/cases_test.go +2 -2
  32. data/tracks/go/exercises/reverse-string/.meta/gen.go +5 -3
  33. data/tracks/go/exercises/reverse-string/cases_test.go +2 -2
  34. data/tracks/go/exercises/rna-transcription/.meta/gen.go +11 -19
  35. data/tracks/go/exercises/rna-transcription/cases_test.go +20 -18
  36. data/tracks/go/exercises/rna-transcription/rna_transcription_test.go +3 -2
  37. data/tracks/go/exercises/run-length-encoding/.meta/gen.go +15 -9
  38. data/tracks/go/exercises/run-length-encoding/cases_test.go +2 -2
  39. data/tracks/go/exercises/sieve/.meta/gen.go +5 -3
  40. data/tracks/go/exercises/sieve/cases_test.go +2 -2
  41. data/tracks/go/exercises/space-age/.meta/gen.go +7 -5
  42. data/tracks/go/exercises/space-age/cases_test.go +2 -2
  43. data/tracks/go/exercises/sublist/.meta/gen.go +7 -5
  44. data/tracks/go/exercises/sublist/cases_test.go +2 -2
  45. data/tracks/go/exercises/variable-length-quantity/.meta/gen.go +7 -5
  46. data/tracks/go/exercises/variable-length-quantity/cases_test.go +2 -2
  47. data/tracks/haskell/exercises/rna-transcription/README.md +1 -1
  48. data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
  49. data/tracks/haskell/exercises/rna-transcription/test/Tests.hs +12 -0
  50. data/tracks/javascript/.travis.yml +1 -1
  51. data/tracks/ruby/exercises/accumulate/.meta/hints.md +6 -3
  52. data/tracks/ruby/exercises/accumulate/README.md +6 -3
  53. metadata +4 -3
  54. data/tracks/fsharp/exercises/transpose/TrinaryTest.fs +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38955198264f18fac652f3d76a421f78c1bf337e
4
- data.tar.gz: eed248bf069e5ca2af07c9c0defaba6a79f4d099
3
+ metadata.gz: c07d48b3f6c34095030bc8bc591d341e127c160a
4
+ data.tar.gz: 5de1ec9ba71f9338ef7062f03c992d138ccb1855
5
5
  SHA512:
6
- metadata.gz: fdc735a15f40f7fa84e5e5ef1397239a032099d9f25b768ef721d1b4572f7a7c73e02237eaa586b40d5e620fcbc6dbe0ea280b01eeeea89bbce33a906087f144
7
- data.tar.gz: 5590a9760631b3bc7405bc76564dd23436d9f734c80baf39433bb05d5fd37900273794791d2e9b46a20ccfcaaa50cc5306013a010c2aef1b1dc481d42adfedb9
6
+ metadata.gz: 631edeb05a5114cce30b9d49e842731e0ec384013cc9b0a9bf51e1e38f4095cb3a9ef9b7a1593f41e84dee1fbd7925b504497ae54b712ed0ebbc638e3ee78b6d
7
+ data.tar.gz: af8a8bc47882db5d5f160bf9336d2f25d86d7d78cbeb47cfad78f985c25996a5a685210b8f90edd4ccf1df377343e3decd8c5a69e850168be2a274faed044ef5
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.101"
2
+ VERSION = "2.2.1.102"
3
3
  end
@@ -18,11 +18,11 @@ All subsequent codons after are ignored, like this:
18
18
 
19
19
  RNA: `"AUGUUUUCUUAAAUG"` =>
20
20
 
21
- Codons: `"AUG", "UUU", "UCU", "UAG", "AUG"` =>
21
+ Codons: `"AUG", "UUU", "UCU", "UAA", "AUG"` =>
22
22
 
23
23
  Protein: `"Methionine", "Phenylalanine", "Serine"`
24
24
 
25
- Note the stop codon terminates the translation and the final methionine is not translated into the protein sequence.
25
+ Note the stop codon `"UAA"` terminates the translation and the final methionine is not translated into the protein sequence.
26
26
 
27
27
  Below are the codons and resulting Amino Acids needed for the exercise.
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "robot-simulator",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "comments": [
5
5
  "Some tests have two expectations: one for the position, one for the direction",
6
6
  "Optionally, you can also test",
@@ -15,7 +15,7 @@
15
15
  {
16
16
  "description": "Robots are created with a position and direction",
17
17
  "property": "create",
18
- "robot": {
18
+ "input": {
19
19
  "position": {
20
20
  "x": 0,
21
21
  "y": 0
@@ -33,7 +33,7 @@
33
33
  {
34
34
  "description": "Negative positions are allowed",
35
35
  "property": "create",
36
- "robot": {
36
+ "input": {
37
37
  "position": {
38
38
  "x": -1,
39
39
  "y": -1
@@ -56,7 +56,7 @@
56
56
  {
57
57
  "description": "does not change the position",
58
58
  "property": "turnRight",
59
- "robot": {
59
+ "input": {
60
60
  "position": {
61
61
  "x": 0,
62
62
  "y": 0
@@ -73,7 +73,7 @@
73
73
  {
74
74
  "description": "changes the direction from north to east",
75
75
  "property": "turnRight",
76
- "robot": {
76
+ "input": {
77
77
  "position": {
78
78
  "x": 0,
79
79
  "y": 0
@@ -87,7 +87,7 @@
87
87
  {
88
88
  "description": "changes the direction from east to south",
89
89
  "property": "turnRight",
90
- "robot": {
90
+ "input": {
91
91
  "position": {
92
92
  "x": 0,
93
93
  "y": 0
@@ -101,7 +101,7 @@
101
101
  {
102
102
  "description": "changes the direction from south to west",
103
103
  "property": "turnRight",
104
- "robot": {
104
+ "input": {
105
105
  "position": {
106
106
  "x": 0,
107
107
  "y": 0
@@ -115,7 +115,7 @@
115
115
  {
116
116
  "description": "changes the direction from west to north",
117
117
  "property": "turnRight",
118
- "robot": {
118
+ "input": {
119
119
  "position": {
120
120
  "x": 0,
121
121
  "y": 0
@@ -134,7 +134,7 @@
134
134
  {
135
135
  "description": "does not change the position",
136
136
  "property": "turnLeft",
137
- "robot": {
137
+ "input": {
138
138
  "position": {
139
139
  "x": 0,
140
140
  "y": 0
@@ -151,7 +151,7 @@
151
151
  {
152
152
  "description": "changes the direction from north to west",
153
153
  "property": "turnLeft",
154
- "robot": {
154
+ "input": {
155
155
  "position": {
156
156
  "x": 0,
157
157
  "y": 0
@@ -165,7 +165,7 @@
165
165
  {
166
166
  "description": "changes the direction from west to south",
167
167
  "property": "turnLeft",
168
- "robot": {
168
+ "input": {
169
169
  "position": {
170
170
  "x": 0,
171
171
  "y": 0
@@ -179,7 +179,7 @@
179
179
  {
180
180
  "description": "changes the direction from south to east",
181
181
  "property": "turnLeft",
182
- "robot": {
182
+ "input": {
183
183
  "position": {
184
184
  "x": 0,
185
185
  "y": 0
@@ -193,7 +193,7 @@
193
193
  {
194
194
  "description": "changes the direction from east to north",
195
195
  "property": "turnLeft",
196
- "robot": {
196
+ "input": {
197
197
  "position": {
198
198
  "x": 0,
199
199
  "y": 0
@@ -212,7 +212,7 @@
212
212
  {
213
213
  "description": "does not change the direction",
214
214
  "property": "advance",
215
- "robot": {
215
+ "input": {
216
216
  "position": {
217
217
  "x": 0,
218
218
  "y": 0
@@ -226,7 +226,7 @@
226
226
  {
227
227
  "description": "increases the y coordinate one when facing north",
228
228
  "property": "advance",
229
- "robot": {
229
+ "input": {
230
230
  "position": {
231
231
  "x": 0,
232
232
  "y": 0
@@ -243,7 +243,7 @@
243
243
  {
244
244
  "description": "decreases the y coordinate by one when facing south",
245
245
  "property": "advance",
246
- "robot": {
246
+ "input": {
247
247
  "position": {
248
248
  "x": 0,
249
249
  "y": 0
@@ -260,7 +260,7 @@
260
260
  {
261
261
  "description": "increases the x coordinate by one when facing east",
262
262
  "property": "advance",
263
- "robot": {
263
+ "input": {
264
264
  "position": {
265
265
  "x": 0,
266
266
  "y": 0
@@ -277,7 +277,7 @@
277
277
  {
278
278
  "description": "decreases the x coordinate by one when facing west",
279
279
  "property": "advance",
280
- "robot": {
280
+ "input": {
281
281
  "position": {
282
282
  "x": 0,
283
283
  "y": 0
@@ -299,14 +299,14 @@
299
299
  {
300
300
  "description": "instructions to move west and north",
301
301
  "property": "instructions",
302
- "robot": {
302
+ "input": {
303
303
  "position": {
304
304
  "x": 0,
305
305
  "y": 0
306
306
  },
307
- "direction": "north"
307
+ "direction": "north",
308
+ "instructions": "LAAARALA"
308
309
  },
309
- "instructions": "LAAARALA",
310
310
  "expected": {
311
311
  "position": {
312
312
  "x": -4,
@@ -318,14 +318,14 @@
318
318
  {
319
319
  "description": "instructions to move west and south",
320
320
  "property": "instructions",
321
- "robot": {
321
+ "input": {
322
322
  "position": {
323
323
  "x": 2,
324
324
  "y": -7
325
325
  },
326
- "direction": "east"
326
+ "direction": "east",
327
+ "instructions": "RRAAAAALA"
327
328
  },
328
- "instructions": "RRAAAAALA",
329
329
  "expected": {
330
330
  "position": {
331
331
  "x": -3,
@@ -337,14 +337,14 @@
337
337
  {
338
338
  "description": "instructions to move east and north",
339
339
  "property": "instructions",
340
- "robot": {
340
+ "input": {
341
341
  "position": {
342
342
  "x": 8,
343
343
  "y": 4
344
344
  },
345
- "direction": "south"
345
+ "direction": "south",
346
+ "instructions": "LAAARRRALLLL"
346
347
  },
347
- "instructions": "LAAARRRALLLL",
348
348
  "expected": {
349
349
  "position": {
350
350
  "x": 11,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "run-length-encoding",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "cases": [
5
5
  {
6
6
  "description": "run-length encode a string",
@@ -8,37 +8,49 @@
8
8
  {
9
9
  "description": "empty string",
10
10
  "property": "encode",
11
- "input": "",
11
+ "input": {
12
+ "string": ""
13
+ },
12
14
  "expected": ""
13
15
  },
14
16
  {
15
17
  "description": "single characters only are encoded without count",
16
18
  "property": "encode",
17
- "input": "XYZ",
19
+ "input": {
20
+ "string": "XYZ"
21
+ },
18
22
  "expected": "XYZ"
19
23
  },
20
24
  {
21
25
  "description": "string with no single characters",
22
26
  "property": "encode",
23
- "input": "AABBBCCCC",
27
+ "input": {
28
+ "string": "AABBBCCCC"
29
+ },
24
30
  "expected": "2A3B4C"
25
31
  },
26
32
  {
27
33
  "description": "single characters mixed with repeated characters",
28
34
  "property": "encode",
29
- "input": "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB",
35
+ "input": {
36
+ "string": "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
37
+ },
30
38
  "expected": "12WB12W3B24WB"
31
39
  },
32
40
  {
33
41
  "description": "multiple whitespace mixed in string",
34
42
  "property": "encode",
35
- "input": " hsqq qww ",
43
+ "input": {
44
+ "string": " hsqq qww "
45
+ },
36
46
  "expected": "2 hs2q q2w2 "
37
47
  },
38
48
  {
39
49
  "description": "lowercase characters",
40
50
  "property": "encode",
41
- "input": "aabbbcccc",
51
+ "input": {
52
+ "string": "aabbbcccc"
53
+ },
42
54
  "expected": "2a3b4c"
43
55
  }
44
56
  ]
@@ -49,37 +61,49 @@
49
61
  {
50
62
  "description": "empty string",
51
63
  "property": "decode",
52
- "input": "",
64
+ "input": {
65
+ "string": ""
66
+ },
53
67
  "expected": ""
54
68
  },
55
69
  {
56
70
  "description": "single characters only",
57
71
  "property": "decode",
58
- "input": "XYZ",
72
+ "input": {
73
+ "string": "XYZ"
74
+ },
59
75
  "expected": "XYZ"
60
76
  },
61
77
  {
62
78
  "description": "string with no single characters",
63
79
  "property": "decode",
64
- "input": "2A3B4C",
80
+ "input": {
81
+ "string": "2A3B4C"
82
+ },
65
83
  "expected": "AABBBCCCC"
66
84
  },
67
85
  {
68
86
  "description": "single characters with repeated characters",
69
87
  "property": "decode",
70
- "input": "12WB12W3B24WB",
88
+ "input": {
89
+ "string": "12WB12W3B24WB"
90
+ },
71
91
  "expected": "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"
72
92
  },
73
93
  {
74
94
  "description": "multiple whitespace mixed in string",
75
95
  "property": "decode",
76
- "input": "2 hs2q q2w2 ",
96
+ "input": {
97
+ "string": "2 hs2q q2w2 "
98
+ },
77
99
  "expected": " hsqq qww "
78
100
  },
79
101
  {
80
102
  "description": "lower case string",
81
103
  "property": "decode",
82
- "input": "2a3b4c",
104
+ "input": {
105
+ "string": "2a3b4c"
106
+ },
83
107
  "expected": "aabbbcccc"
84
108
  }
85
109
  ]
@@ -90,7 +114,9 @@
90
114
  {
91
115
  "description": "encode followed by decode gives original string",
92
116
  "property": "consistency",
93
- "input": "zzz ZZ zZ",
117
+ "input": {
118
+ "string": "zzz ZZ zZ"
119
+ },
94
120
  "expected": "zzz ZZ zZ"
95
121
  }
96
122
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "tournament",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "comments": [
5
5
  "The inputs and outputs are represented as arrays of strings to",
6
6
  "improve readability in this JSON file.",
@@ -13,15 +13,19 @@
13
13
  {
14
14
  "description": "just the header if no input",
15
15
  "property": "tally",
16
- "input": [],
16
+ "input": {
17
+ "rows": []
18
+ },
17
19
  "expected": [ "Team | MP | W | D | L | P" ]
18
20
  },
19
21
  {
20
22
  "description": "a win is three points, a loss is zero points",
21
23
  "property": "tally",
22
- "input": [
23
- "Allegoric Alaskans;Blithering Badgers;win"
24
- ],
24
+ "input": {
25
+ "rows": [
26
+ "Allegoric Alaskans;Blithering Badgers;win"
27
+ ]
28
+ },
25
29
  "expected": [
26
30
  "Team | MP | W | D | L | P",
27
31
  "Allegoric Alaskans | 1 | 1 | 0 | 0 | 3",
@@ -31,9 +35,11 @@
31
35
  {
32
36
  "description": "a win can also be expressed as a loss",
33
37
  "property": "tally",
34
- "input": [
35
- "Blithering Badgers;Allegoric Alaskans;loss"
36
- ],
38
+ "input": {
39
+ "rows": [
40
+ "Blithering Badgers;Allegoric Alaskans;loss"
41
+ ]
42
+ },
37
43
  "expected": [
38
44
  "Team | MP | W | D | L | P",
39
45
  "Allegoric Alaskans | 1 | 1 | 0 | 0 | 3",
@@ -43,9 +49,11 @@
43
49
  {
44
50
  "description": "a different team can win",
45
51
  "property": "tally",
46
- "input": [
47
- "Blithering Badgers;Allegoric Alaskans;win"
48
- ],
52
+ "input": {
53
+ "rows": [
54
+ "Blithering Badgers;Allegoric Alaskans;win"
55
+ ]
56
+ },
49
57
  "expected": [
50
58
  "Team | MP | W | D | L | P",
51
59
  "Blithering Badgers | 1 | 1 | 0 | 0 | 3",
@@ -55,9 +63,11 @@
55
63
  {
56
64
  "description": "a draw is one point each",
57
65
  "property": "tally",
58
- "input": [
59
- "Allegoric Alaskans;Blithering Badgers;draw"
60
- ],
66
+ "input": {
67
+ "rows": [
68
+ "Allegoric Alaskans;Blithering Badgers;draw"
69
+ ]
70
+ },
61
71
  "expected": [
62
72
  "Team | MP | W | D | L | P",
63
73
  "Allegoric Alaskans | 1 | 0 | 1 | 0 | 1",
@@ -67,10 +77,12 @@
67
77
  {
68
78
  "description": "There can be more than one match",
69
79
  "property": "tally",
70
- "input": [
71
- "Allegoric Alaskans;Blithering Badgers;win",
72
- "Allegoric Alaskans;Blithering Badgers;win"
73
- ],
80
+ "input": {
81
+ "rows": [
82
+ "Allegoric Alaskans;Blithering Badgers;win",
83
+ "Allegoric Alaskans;Blithering Badgers;win"
84
+ ]
85
+ },
74
86
  "expected": [
75
87
  "Team | MP | W | D | L | P",
76
88
  "Allegoric Alaskans | 2 | 2 | 0 | 0 | 6",
@@ -80,10 +92,12 @@
80
92
  {
81
93
  "description": "There can be more than one winner",
82
94
  "property": "tally",
83
- "input": [
84
- "Allegoric Alaskans;Blithering Badgers;loss",
85
- "Allegoric Alaskans;Blithering Badgers;win"
86
- ],
95
+ "input": {
96
+ "rows": [
97
+ "Allegoric Alaskans;Blithering Badgers;loss",
98
+ "Allegoric Alaskans;Blithering Badgers;win"
99
+ ]
100
+ },
87
101
  "expected": [
88
102
  "Team | MP | W | D | L | P",
89
103
  "Allegoric Alaskans | 2 | 1 | 0 | 1 | 3",
@@ -93,11 +107,13 @@
93
107
  {
94
108
  "description": "There can be more than two teams",
95
109
  "property": "tally",
96
- "input": [
97
- "Allegoric Alaskans;Blithering Badgers;win",
98
- "Blithering Badgers;Courageous Californians;win",
99
- "Courageous Californians;Allegoric Alaskans;loss"
100
- ],
110
+ "input": {
111
+ "rows": [
112
+ "Allegoric Alaskans;Blithering Badgers;win",
113
+ "Blithering Badgers;Courageous Californians;win",
114
+ "Courageous Californians;Allegoric Alaskans;loss"
115
+ ]
116
+ },
101
117
  "expected": [
102
118
  "Team | MP | W | D | L | P",
103
119
  "Allegoric Alaskans | 2 | 2 | 0 | 0 | 6",
@@ -108,14 +124,16 @@
108
124
  {
109
125
  "description": "typical input",
110
126
  "property": "tally",
111
- "input": [
112
- "Allegoric Alaskans;Blithering Badgers;win",
113
- "Devastating Donkeys;Courageous Californians;draw",
114
- "Devastating Donkeys;Allegoric Alaskans;win",
115
- "Courageous Californians;Blithering Badgers;loss",
116
- "Blithering Badgers;Devastating Donkeys;loss",
117
- "Allegoric Alaskans;Courageous Californians;win"
118
- ],
127
+ "input": {
128
+ "rows": [
129
+ "Allegoric Alaskans;Blithering Badgers;win",
130
+ "Devastating Donkeys;Courageous Californians;draw",
131
+ "Devastating Donkeys;Allegoric Alaskans;win",
132
+ "Courageous Californians;Blithering Badgers;loss",
133
+ "Blithering Badgers;Devastating Donkeys;loss",
134
+ "Allegoric Alaskans;Courageous Californians;win"
135
+ ]
136
+ },
119
137
  "expected": [
120
138
  "Team | MP | W | D | L | P",
121
139
  "Devastating Donkeys | 3 | 2 | 1 | 0 | 7",
@@ -127,12 +145,14 @@
127
145
  {
128
146
  "description": "incomplete competition (not all pairs have played)",
129
147
  "property": "tally",
130
- "input": [
131
- "Allegoric Alaskans;Blithering Badgers;loss",
132
- "Devastating Donkeys;Allegoric Alaskans;loss",
133
- "Courageous Californians;Blithering Badgers;draw",
134
- "Allegoric Alaskans;Courageous Californians;win"
135
- ],
148
+ "input": {
149
+ "rows": [
150
+ "Allegoric Alaskans;Blithering Badgers;loss",
151
+ "Devastating Donkeys;Allegoric Alaskans;loss",
152
+ "Courageous Californians;Blithering Badgers;draw",
153
+ "Allegoric Alaskans;Courageous Californians;win"
154
+ ]
155
+ },
136
156
  "expected": [
137
157
  "Team | MP | W | D | L | P",
138
158
  "Allegoric Alaskans | 3 | 2 | 0 | 1 | 6",
@@ -144,14 +164,16 @@
144
164
  {
145
165
  "description": "ties broken alphabetically",
146
166
  "property": "tally",
147
- "input": [
148
- "Courageous Californians;Devastating Donkeys;win",
149
- "Allegoric Alaskans;Blithering Badgers;win",
150
- "Devastating Donkeys;Allegoric Alaskans;loss",
151
- "Courageous Californians;Blithering Badgers;win",
152
- "Blithering Badgers;Devastating Donkeys;draw",
153
- "Allegoric Alaskans;Courageous Californians;draw"
154
- ],
167
+ "input": {
168
+ "rows": [
169
+ "Courageous Californians;Devastating Donkeys;win",
170
+ "Allegoric Alaskans;Blithering Badgers;win",
171
+ "Devastating Donkeys;Allegoric Alaskans;loss",
172
+ "Courageous Californians;Blithering Badgers;win",
173
+ "Blithering Badgers;Devastating Donkeys;draw",
174
+ "Allegoric Alaskans;Courageous Californians;draw"
175
+ ]
176
+ },
155
177
  "expected": [
156
178
  "Team | MP | W | D | L | P",
157
179
  "Allegoric Alaskans | 3 | 2 | 1 | 0 | 7",