trackler 2.0.8.17 → 2.0.8.18
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/common/exercises/forth/canonical-data.json +307 -321
- data/common/exercises/largest-series-product/canonical-data.json +139 -122
- data/common/exercises/list-ops/canonical-data.json +162 -141
- data/common/exercises/markdown/canonical-data.json +15 -14
- data/common/exercises/pov/canonical-data.json +264 -116
- data/common/exercises/prime-factors/canonical-data.json +51 -40
- data/common/exercises/rail-fence-cipher/canonical-data.json +56 -44
- data/common/exercises/react/canonical-data.json +18 -4
- data/common/exercises/rectangles/canonical-data.json +16 -1
- data/common/exercises/rotational-cipher/canonical-data.json +81 -67
- data/common/exercises/run-length-encoding/canonical-data.json +89 -71
- data/common/exercises/space-age/canonical-data.json +61 -45
- data/common/exercises/sublist/canonical-data.json +136 -99
- data/common/exercises/transpose/canonical-data.json +207 -194
- data/common/exercises/variable-length-quantity/canonical-data.json +171 -141
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/exercises/diamond/HINTS.md +9 -0
- data/tracks/go/README.md +3 -0
- data/tracks/go/exercises/queen-attack/queen_attack_test.go +1 -1
- data/tracks/haskell/exercises/hamming/src/Hamming.hs +2 -1
- data/tracks/java/exercises/flatten-array/src/test/java/FlattenerTest.java +5 -0
- data/tracks/ocaml/exercises/anagram/test.ml +2 -2
- data/tracks/ocaml/tools/test-generator/src/controller.ml +7 -2
- data/tracks/ocaml/tools/test-generator/src/parser.ml +31 -18
- data/tracks/ocaml/tools/test-generator/src/template.ml +10 -8
- data/tracks/ocaml/tools/test-generator/src/utils.ml +11 -0
- data/tracks/ocaml/tools/test-generator/templates/phone-number/template.ml +4 -5
- data/tracks/ocaml/tools/test-generator/test/beer-song.json +77 -0
- data/tracks/ocaml/tools/test-generator/test/difference_of_squares.json +76 -62
- data/tracks/ocaml/tools/test-generator/test/parser_test.ml +11 -9
- data/tracks/ocaml/tools/test-generator/test/template_test.ml +2 -2
- metadata +4 -2
@@ -1,46 +1,62 @@
|
|
1
|
-
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
1
|
+
{
|
2
|
+
"exercise": "space-age",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"cases": [
|
5
|
+
{
|
6
|
+
"description": "age on Earth",
|
7
|
+
"property": "age",
|
8
|
+
"planet": "Earth",
|
9
|
+
"seconds": 1000000000,
|
10
|
+
"expected": 31.69
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"description": "age on Mercury",
|
14
|
+
"property": "age",
|
15
|
+
"planet": "Mercury",
|
16
|
+
"seconds": 2134835688,
|
17
|
+
"expected": 280.88
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"description": "age on Venus",
|
21
|
+
"property": "age",
|
22
|
+
"planet": "Venus",
|
23
|
+
"seconds": 189839836,
|
24
|
+
"expected": 9.78
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"description": "age on Mars",
|
28
|
+
"property": "age",
|
29
|
+
"planet": "Mars",
|
30
|
+
"seconds": 2329871239,
|
31
|
+
"expected": 39.25
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"description": "age on Jupiter",
|
35
|
+
"property": "age",
|
36
|
+
"planet": "Jupiter",
|
37
|
+
"seconds": 901876382,
|
38
|
+
"expected": 2.41
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"description": "age on Saturn",
|
42
|
+
"property": "age",
|
43
|
+
"planet": "Saturn",
|
44
|
+
"seconds": 3000000000,
|
45
|
+
"expected": 3.23
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"description": "age on Uranus",
|
49
|
+
"property": "age",
|
50
|
+
"planet": "Uranus",
|
51
|
+
"seconds": 3210123456,
|
52
|
+
"expected": 1.21
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"description": "age on Neptune",
|
56
|
+
"property": "age",
|
57
|
+
"planet": "Neptune",
|
58
|
+
"seconds": 8210123456,
|
59
|
+
"expected": 1.58
|
60
|
+
}
|
61
|
+
]
|
46
62
|
}
|
@@ -1,101 +1,138 @@
|
|
1
1
|
{
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
2
|
+
"exercise": "sublist",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"comments": [
|
5
|
+
"Lists are ordered and sequential.",
|
6
|
+
"https://en.wikipedia.org/wiki/List_%28abstract_data_type%29",
|
7
|
+
"",
|
8
|
+
"Depending on your language, there may need to be some translation",
|
9
|
+
"to go from the JSON array to the list representation.",
|
10
|
+
"The expectation can be used to generate an expected value",
|
11
|
+
"based on your implementation (such as a constant 'EQUAL', 'SUBLIST', etc.).",
|
12
|
+
"",
|
13
|
+
"If appropriate for your track, you'll need to ensure that no pair of expected values are equal.",
|
14
|
+
"Otherwise, an implementation that always returns a constant value may falsely pass the tests.",
|
15
|
+
"See https://github.com/exercism/xpython/issues/342"
|
16
|
+
],
|
17
|
+
"cases": [
|
18
|
+
{
|
19
|
+
"description": "empty lists",
|
20
|
+
"property": "sublist",
|
21
|
+
"listOne": [],
|
22
|
+
"listTwo": [],
|
23
|
+
"expected": "equal"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"description": "empty list within non empty list",
|
27
|
+
"property": "sublist",
|
28
|
+
"listOne": [],
|
29
|
+
"listTwo": [1, 2, 3],
|
30
|
+
"expected": "sublist"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"description": "non empty list contains empty list",
|
34
|
+
"property": "sublist",
|
35
|
+
"listOne": [1, 2, 3],
|
36
|
+
"listTwo": [],
|
37
|
+
"expected": "superlist"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"description": "list equals itself",
|
41
|
+
"property": "sublist",
|
42
|
+
"listOne": [1, 2, 3],
|
43
|
+
"listTwo": [1, 2, 3],
|
44
|
+
"expected": "equal"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"description": "different lists",
|
48
|
+
"property": "sublist",
|
49
|
+
"listOne": [1, 2, 3],
|
50
|
+
"listTwo": [2, 3, 4],
|
51
|
+
"expected": "unequal"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"description": "false start",
|
55
|
+
"property": "sublist",
|
56
|
+
"listOne": [1, 2, 5],
|
57
|
+
"listTwo": [0, 1, 2, 3, 1, 2, 5, 6],
|
58
|
+
"expected": "sublist"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"description": "consecutive",
|
62
|
+
"property": "sublist",
|
63
|
+
"listOne": [1, 1, 2],
|
64
|
+
"listTwo": [0, 1, 1, 1, 2, 1, 2],
|
65
|
+
"expected": "sublist"
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"description": "sublist at start",
|
69
|
+
"property": "sublist",
|
70
|
+
"listOne": [0, 1, 2],
|
71
|
+
"listTwo": [0, 1, 2, 3, 4, 5],
|
72
|
+
"expected": "sublist"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"description": "sublist in middle",
|
76
|
+
"property": "sublist",
|
77
|
+
"listOne": [2, 3, 4],
|
78
|
+
"listTwo": [0, 1, 2, 3, 4, 5],
|
79
|
+
"expected": "sublist"
|
80
|
+
},
|
81
|
+
{
|
82
|
+
"description": "sublist at end",
|
83
|
+
"property": "sublist",
|
84
|
+
"listOne": [3, 4, 5],
|
85
|
+
"listTwo": [0, 1, 2, 3, 4, 5],
|
86
|
+
"expected": "sublist"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"description": "at start of superlist",
|
90
|
+
"property": "sublist",
|
91
|
+
"listOne": [0, 1, 2, 3, 4, 5],
|
92
|
+
"listTwo": [0, 1, 2],
|
93
|
+
"expected": "superlist"
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"description": "in middle of superlist",
|
97
|
+
"property": "sublist",
|
98
|
+
"listOne": [0, 1, 2, 3, 4, 5],
|
99
|
+
"listTwo": [2, 3],
|
100
|
+
"expected": "superlist"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"description": "at end of superlist",
|
104
|
+
"property": "sublist",
|
105
|
+
"listOne": [0, 1, 2, 3, 4, 5],
|
106
|
+
"listTwo": [3, 4, 5],
|
107
|
+
"expected": "superlist"
|
108
|
+
},
|
109
|
+
{
|
110
|
+
"description": "first list missing element from second list",
|
111
|
+
"property": "sublist",
|
112
|
+
"listOne": [1, 3],
|
113
|
+
"listTwo": [1, 2, 3],
|
114
|
+
"expected": "unequal"
|
115
|
+
},
|
116
|
+
{
|
117
|
+
"description": "second list missing element from first list",
|
118
|
+
"property": "sublist",
|
119
|
+
"listOne": [1, 2, 3],
|
120
|
+
"listTwo": [1, 3],
|
121
|
+
"expected": "unequal"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"description": "order matters to a list",
|
125
|
+
"property": "sublist",
|
126
|
+
"listOne": [1, 2, 3],
|
127
|
+
"listTwo": [3, 2, 1],
|
128
|
+
"expected": "unequal"
|
129
|
+
},
|
130
|
+
{
|
131
|
+
"description": "same digits but different numbers",
|
132
|
+
"property": "sublist",
|
133
|
+
"listOne": [1, 0, 1],
|
134
|
+
"listTwo": [10, 1],
|
135
|
+
"expected": "unequal"
|
136
|
+
}
|
137
|
+
]
|
101
138
|
}
|