trackler 2.0.8.13 → 2.0.8.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/acronym/canonical-data.json +50 -39
- data/common/exercises/all-your-base/canonical-data.json +192 -146
- data/common/exercises/allergies/canonical-data.json +133 -93
- data/common/exercises/anagram/canonical-data.json +128 -106
- data/common/exercises/atbash-cipher/canonical-data.json +92 -74
- data/common/exercises/binary/canonical-data.json +94 -77
- data/common/exercises/bob/canonical-data.json +154 -127
- data/common/exercises/book-store/canonical-data.json +106 -92
- data/common/exercises/change/canonical-data.json +80 -68
- data/common/exercises/grains/canonical-data.json +75 -60
- data/common/exercises/hello-world/canonical-data.json +6 -6
- data/common/exercises/leap/canonical-data.json +28 -22
- data/common/exercises/luhn/canonical-data.json +16 -1
- data/common/exercises/pig-latin/canonical-data.json +93 -75
- data/common/exercises/raindrops/canonical-data.json +112 -92
- data/common/exercises/rna-transcription/canonical-data.json +64 -54
- data/common/exercises/run-length-encoding/canonical-data.json +20 -0
- data/common/exercises/run-length-encoding/description.md +3 -7
- data/common/exercises/say/canonical-data.json +98 -81
- data/common/exercises/scrabble-score/canonical-data.json +13 -0
- data/common/exercises/sieve/canonical-data.json +48 -42
- data/common/exercises/trinary/canonical-data.json +75 -60
- data/common/exercises/word-count/canonical-data.json +116 -54
- data/common/exercises/wordy/canonical-data.json +101 -83
- data/lib/trackler/version.rb +1 -1
- data/tracks/delphi/SETUP.md +10 -1
- data/tracks/delphi/config.json +8 -0
- data/tracks/delphi/docs/TESTS.md +4 -0
- data/tracks/delphi/exercises/hello-world/uTestHelloWorld.pas +49 -27
- data/tracks/delphi/exercises/triangle/Triangle.dpr +60 -0
- data/tracks/delphi/exercises/triangle/uTestTriangle.pas +186 -0
- data/tracks/delphi/exercises/triangle/uTriangleExample.pas +64 -0
- data/tracks/go/exercises/poker/poker_test.go +6 -6
- data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +2 -1
- data/tracks/scala/config.json +10 -0
- data/tracks/scala/exercises/variable-length-quantity/HINTS.md +2 -0
- data/tracks/scala/exercises/variable-length-quantity/build.sbt +3 -0
- data/tracks/scala/exercises/variable-length-quantity/example.scala +56 -0
- data/tracks/scala/exercises/variable-length-quantity/src/main/scala/VariableLengthQuantity.scala +0 -0
- data/tracks/scala/exercises/variable-length-quantity/src/test/scala/VariableLengthQuantityTest.scala +162 -0
- data/tracks/scala/testgen/src/main/scala/VariableLengthQuantityTestGenerator.scala +80 -0
- data/tracks/typescript/common/package.json +6 -7
- data/tracks/typescript/common/yarn.lock +422 -380
- data/tracks/typescript/config.json +12 -0
- data/tracks/typescript/exercises/anagram/package.json +6 -7
- data/tracks/typescript/exercises/anagram/yarn.lock +422 -380
- data/tracks/typescript/exercises/beer-song/package.json +6 -7
- data/tracks/typescript/exercises/beer-song/yarn.lock +422 -380
- data/tracks/typescript/exercises/bob/package.json +6 -7
- data/tracks/typescript/exercises/bob/yarn.lock +422 -380
- data/tracks/typescript/exercises/food-chain/package.json +6 -7
- data/tracks/typescript/exercises/food-chain/yarn.lock +422 -380
- data/tracks/typescript/exercises/gigasecond/package.json +6 -7
- data/tracks/typescript/exercises/gigasecond/yarn.lock +422 -380
- data/tracks/typescript/exercises/grade-school/grade-school.example.ts +31 -0
- data/tracks/typescript/exercises/grade-school/grade-school.test.ts +81 -0
- data/tracks/typescript/exercises/grade-school/package.json +36 -0
- data/tracks/typescript/exercises/grade-school/tsconfig.json +21 -0
- data/tracks/typescript/exercises/grade-school/tslint.json +127 -0
- data/tracks/typescript/exercises/grade-school/yarn.lock +2739 -0
- data/tracks/typescript/exercises/hamming/package.json +6 -7
- data/tracks/typescript/exercises/hamming/yarn.lock +422 -380
- data/tracks/typescript/exercises/hello-world/package.json +6 -7
- data/tracks/typescript/exercises/hello-world/yarn.lock +422 -380
- data/tracks/typescript/exercises/leap/package.json +6 -7
- data/tracks/typescript/exercises/leap/yarn.lock +422 -380
- data/tracks/typescript/exercises/pangram/package.json +6 -7
- data/tracks/typescript/exercises/pangram/yarn.lock +422 -380
- data/tracks/typescript/exercises/phone-number/package.json +6 -7
- data/tracks/typescript/exercises/phone-number/yarn.lock +422 -380
- data/tracks/typescript/exercises/rna-transcription/package.json +6 -7
- data/tracks/typescript/exercises/rna-transcription/yarn.lock +422 -380
- data/tracks/typescript/exercises/robot-name/package.json +36 -0
- data/tracks/typescript/exercises/robot-name/robot-name.example.ts +36 -0
- data/tracks/typescript/exercises/robot-name/robot-name.test.ts +86 -0
- data/tracks/typescript/exercises/robot-name/tsconfig.json +21 -0
- data/tracks/typescript/exercises/robot-name/tslint.json +127 -0
- data/tracks/typescript/exercises/robot-name/yarn.lock +2739 -0
- data/tracks/typescript/exercises/say/package.json +6 -7
- data/tracks/typescript/exercises/say/yarn.lock +422 -380
- data/tracks/typescript/exercises/word-count/package.json +6 -7
- data/tracks/typescript/exercises/word-count/yarn.lock +422 -380
- data/tracks/typescript/exercises/wordy/package.json +6 -7
- data/tracks/typescript/exercises/wordy/yarn.lock +422 -380
- metadata +23 -2
@@ -1,131 +1,149 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
5
|
-
],
|
6
|
-
"groups" : [
|
2
|
+
"exercise": "pig-latin",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"cases": [
|
7
5
|
{
|
8
|
-
"description"
|
9
|
-
"cases"
|
6
|
+
"description": "ay is added to words that start with vowels",
|
7
|
+
"cases": [
|
10
8
|
{
|
11
|
-
"description"
|
12
|
-
"
|
13
|
-
"
|
9
|
+
"description": "word beginning with a",
|
10
|
+
"property": "translate",
|
11
|
+
"input": "apple",
|
12
|
+
"expected": "appleay"
|
14
13
|
},
|
15
14
|
{
|
16
|
-
"description"
|
17
|
-
"
|
18
|
-
"
|
15
|
+
"description": "word beginning with e",
|
16
|
+
"property": "translate",
|
17
|
+
"input": "ear",
|
18
|
+
"expected": "earay"
|
19
19
|
},
|
20
20
|
{
|
21
|
-
"description"
|
22
|
-
"
|
23
|
-
"
|
21
|
+
"description": "word beginning with i",
|
22
|
+
"property": "translate",
|
23
|
+
"input": "igloo",
|
24
|
+
"expected": "iglooay"
|
24
25
|
},
|
25
26
|
{
|
26
|
-
"description"
|
27
|
-
"
|
28
|
-
"
|
27
|
+
"description": "word beginning with o",
|
28
|
+
"property": "translate",
|
29
|
+
"input": "object",
|
30
|
+
"expected": "objectay"
|
29
31
|
},
|
30
32
|
{
|
31
|
-
"description"
|
32
|
-
"
|
33
|
-
"
|
33
|
+
"description": "word beginning with u",
|
34
|
+
"property": "translate",
|
35
|
+
"input": "under",
|
36
|
+
"expected": "underay"
|
34
37
|
},
|
35
38
|
{
|
36
|
-
"description"
|
37
|
-
"
|
38
|
-
"
|
39
|
+
"description": "word beginning with a vowel and followed by a qu",
|
40
|
+
"property": "translate",
|
41
|
+
"input": "equal",
|
42
|
+
"expected": "equalay"
|
39
43
|
}
|
40
44
|
]
|
41
45
|
},
|
42
46
|
{
|
43
|
-
"description"
|
44
|
-
"cases"
|
47
|
+
"description": "first letter and ay are moved to the end of words that start with consonants",
|
48
|
+
"cases": [
|
45
49
|
{
|
46
|
-
"description"
|
47
|
-
"
|
48
|
-
"
|
50
|
+
"description": "word beginning with p",
|
51
|
+
"property": "translate",
|
52
|
+
"input": "pig",
|
53
|
+
"expected": "igpay"
|
49
54
|
},
|
50
55
|
{
|
51
|
-
"description"
|
52
|
-
"
|
53
|
-
"
|
56
|
+
"description": "word beginning with k",
|
57
|
+
"property": "translate",
|
58
|
+
"input": "koala",
|
59
|
+
"expected": "oalakay"
|
54
60
|
},
|
55
61
|
{
|
56
|
-
"description"
|
57
|
-
"
|
58
|
-
"
|
62
|
+
"description": "word beginning with y",
|
63
|
+
"property": "translate",
|
64
|
+
"input": "yellow",
|
65
|
+
"expected": "ellowyay"
|
59
66
|
},
|
60
67
|
{
|
61
|
-
"description"
|
62
|
-
"
|
63
|
-
"
|
68
|
+
"description": "word beginning with x",
|
69
|
+
"property": "translate",
|
70
|
+
"input": "xenon",
|
71
|
+
"expected": "enonxay"
|
64
72
|
},
|
65
73
|
{
|
66
|
-
"description"
|
67
|
-
"
|
68
|
-
"
|
74
|
+
"description": "word beginning with q without a following u",
|
75
|
+
"property": "translate",
|
76
|
+
"input": "qat",
|
77
|
+
"expected": "atqay"
|
69
78
|
}
|
70
79
|
]
|
71
80
|
},
|
72
81
|
{
|
73
|
-
"description"
|
74
|
-
"cases"
|
82
|
+
"description": "some letter clusters are treated like a single consonant",
|
83
|
+
"cases": [
|
75
84
|
{
|
76
|
-
"description"
|
77
|
-
"
|
78
|
-
"
|
85
|
+
"description": "word beginning with ch",
|
86
|
+
"property": "translate",
|
87
|
+
"input": "chair",
|
88
|
+
"expected": "airchay"
|
79
89
|
},
|
80
90
|
{
|
81
|
-
"description"
|
82
|
-
"
|
83
|
-
"
|
91
|
+
"description": "word beginning with qu",
|
92
|
+
"property": "translate",
|
93
|
+
"input": "queen",
|
94
|
+
"expected": "eenquay"
|
84
95
|
},
|
85
96
|
{
|
86
|
-
"description"
|
87
|
-
"
|
88
|
-
"
|
97
|
+
"description": "word beginning with qu and a preceding consonant",
|
98
|
+
"property": "translate",
|
99
|
+
"input": "square",
|
100
|
+
"expected": "aresquay"
|
89
101
|
},
|
90
102
|
{
|
91
|
-
"description"
|
92
|
-
"
|
93
|
-
"
|
103
|
+
"description": "word beginning with th",
|
104
|
+
"property": "translate",
|
105
|
+
"input": "therapy",
|
106
|
+
"expected": "erapythay"
|
94
107
|
},
|
95
108
|
{
|
96
|
-
"description"
|
97
|
-
"
|
98
|
-
"
|
109
|
+
"description": "word beginning with thr",
|
110
|
+
"property": "translate",
|
111
|
+
"input": "thrush",
|
112
|
+
"expected": "ushthray"
|
99
113
|
},
|
100
114
|
{
|
101
|
-
"description"
|
102
|
-
"
|
103
|
-
"
|
115
|
+
"description": "word beginning with sch",
|
116
|
+
"property": "translate",
|
117
|
+
"input": "school",
|
118
|
+
"expected": "oolschay"
|
104
119
|
}
|
105
120
|
]
|
106
121
|
},
|
107
122
|
{
|
108
|
-
"description"
|
109
|
-
"cases"
|
123
|
+
"description": "some letter clusters are treated like a single vowel",
|
124
|
+
"cases": [
|
110
125
|
{
|
111
|
-
"description"
|
112
|
-
"
|
113
|
-
"
|
126
|
+
"description": "word beginning with yt",
|
127
|
+
"property": "translate",
|
128
|
+
"input": "yttria",
|
129
|
+
"expected": "yttriaay"
|
114
130
|
},
|
115
131
|
{
|
116
|
-
"description"
|
117
|
-
"
|
118
|
-
"
|
132
|
+
"description": "word beginning with xr",
|
133
|
+
"property": "translate",
|
134
|
+
"input": "xray",
|
135
|
+
"expected": "xrayay"
|
119
136
|
}
|
120
137
|
]
|
121
138
|
},
|
122
139
|
{
|
123
|
-
"description"
|
124
|
-
"cases"
|
140
|
+
"description": "phrases are translated",
|
141
|
+
"cases": [
|
125
142
|
{
|
126
|
-
"description"
|
127
|
-
"
|
128
|
-
"
|
143
|
+
"description": "a whole phrase",
|
144
|
+
"property": "translate",
|
145
|
+
"input": "quick fast run",
|
146
|
+
"expected": "ickquay astfay unray"
|
129
147
|
}
|
130
148
|
]
|
131
149
|
}
|
@@ -1,94 +1,114 @@
|
|
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
|
-
|
2
|
+
"exercise": "raindrops",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"cases": [
|
5
|
+
{
|
6
|
+
"description": "the sound for 1 is 1",
|
7
|
+
"property": "convert",
|
8
|
+
"number": 1,
|
9
|
+
"expected": "1"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"description": "the sound for 3 is Pling",
|
13
|
+
"property": "convert",
|
14
|
+
"number": 3,
|
15
|
+
"expected": "Pling"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"description": "the sound for 5 is Plang",
|
19
|
+
"property": "convert",
|
20
|
+
"number": 5,
|
21
|
+
"expected": "Plang"
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"description": "the sound for 7 is Plong",
|
25
|
+
"property": "convert",
|
26
|
+
"number": 7,
|
27
|
+
"expected": "Plong"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"description": "the sound for 6 is Pling as it has a factor 3",
|
31
|
+
"property": "convert",
|
32
|
+
"number": 6,
|
33
|
+
"expected": "Pling"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"description": "2 to the power 3 does not make a raindrop sound as 3 is the exponent not the base",
|
37
|
+
"property": "convert",
|
38
|
+
"number": 8,
|
39
|
+
"expected": "8"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"description": "the sound for 9 is Pling as it has a factor 3",
|
43
|
+
"property": "convert",
|
44
|
+
"number": 9,
|
45
|
+
"expected": "Pling"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"description": "the sound for 10 is Plang as it has a factor 5",
|
49
|
+
"property": "convert",
|
50
|
+
"number": 10,
|
51
|
+
"expected": "Plang"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"description": "the sound for 14 is Plong as it has a factor of 7",
|
55
|
+
"property": "convert",
|
56
|
+
"number": 14,
|
57
|
+
"expected": "Plong"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"description": "the sound for 15 is PlingPlang as it has factors 3 and 5",
|
61
|
+
"property": "convert",
|
62
|
+
"number": 15,
|
63
|
+
"expected": "PlingPlang"
|
64
|
+
},
|
65
|
+
{
|
66
|
+
"description": "the sound for 21 is PlingPlong as it has factors 3 and 7",
|
67
|
+
"property": "convert",
|
68
|
+
"number": 21,
|
69
|
+
"expected": "PlingPlong"
|
70
|
+
},
|
71
|
+
{
|
72
|
+
"description": "the sound for 25 is Plang as it has a factor 5",
|
73
|
+
"property": "convert",
|
74
|
+
"number": 25,
|
75
|
+
"expected": "Plang"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"description": "the sound for 27 is Pling as it has a factor 3",
|
79
|
+
"property": "convert",
|
80
|
+
"number": 27,
|
81
|
+
"expected": "Pling"
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"description": "the sound for 35 is PlangPlong as it has factors 5 and 7",
|
85
|
+
"property": "convert",
|
86
|
+
"number": 35,
|
87
|
+
"expected": "PlangPlong"
|
88
|
+
},
|
89
|
+
{
|
90
|
+
"description": "the sound for 49 is Plong as it has a factor 7",
|
91
|
+
"property": "convert",
|
92
|
+
"number": 49,
|
93
|
+
"expected": "Plong"
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"description": "the sound for 52 is 52",
|
97
|
+
"property": "convert",
|
98
|
+
"number": 52,
|
99
|
+
"expected": "52"
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"description": "the sound for 105 is PlingPlangPlong as it has factors 3, 5 and 7",
|
103
|
+
"property": "convert",
|
104
|
+
"number": 105,
|
105
|
+
"expected": "PlingPlangPlong"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"description": "the sound for 3125 is Plang as it has a factor 5",
|
109
|
+
"property": "convert",
|
110
|
+
"number": 3125,
|
111
|
+
"expected": "Plang"
|
112
|
+
}
|
113
|
+
]
|
94
114
|
}
|
@@ -1,56 +1,66 @@
|
|
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
|
-
|
2
|
+
"exercise": "rna-transcription",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"comments": [
|
5
|
+
"Language implementations vary on the issue of invalid input data.",
|
6
|
+
"A language may elect to simplify this task by only presenting valid",
|
7
|
+
"test cases. For languages handling invalid input data as",
|
8
|
+
"error conditions, invalid test cases are included here and are",
|
9
|
+
"indicated with an expected value of null. Note however that null is",
|
10
|
+
"simply an indication here in the JSON. Actually returning null from",
|
11
|
+
"a rna-transcription function may or may not be idiomatic in a language.",
|
12
|
+
"Language idioms of errors or exceptions should be followed.",
|
13
|
+
"Alternative interpretations such as ignoring excess length at the end",
|
14
|
+
"are not represented here."
|
15
|
+
],
|
16
|
+
"cases": [
|
17
|
+
{
|
18
|
+
"description": "rna complement of cytosine is guanine",
|
19
|
+
"property": "toRna",
|
20
|
+
"dna": "C",
|
21
|
+
"expected": "G"
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"description": "rna complement of guanine is cytosine",
|
25
|
+
"property": "toRna",
|
26
|
+
"dna": "G",
|
27
|
+
"expected": "C"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"description": "rna complement of thymine is adenine",
|
31
|
+
"property": "toRna",
|
32
|
+
"dna": "T",
|
33
|
+
"expected": "A"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"description": "rna complement of adenine is uracil",
|
37
|
+
"property": "toRna",
|
38
|
+
"dna": "A",
|
39
|
+
"expected": "U"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"description": "rna complement",
|
43
|
+
"property": "toRna",
|
44
|
+
"dna": "ACGTGGTCTTAA",
|
45
|
+
"expected": "UGCACCAGAAUU"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"description": "dna correctly handles invalid input",
|
49
|
+
"property": "toRna",
|
50
|
+
"dna": "U",
|
51
|
+
"expected": null
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"description": "dna correctly handles completely invalid input",
|
55
|
+
"property": "toRna",
|
56
|
+
"dna": "XXX",
|
57
|
+
"expected": null
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"description": "dna correctly handles partially invalid input",
|
61
|
+
"property": "toRna",
|
62
|
+
"dna": "ACGTXXXCTTAA",
|
63
|
+
"expected": null
|
64
|
+
}
|
65
|
+
]
|
56
66
|
}
|