trackler 2.2.1.50 → 2.2.1.51

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/README.md +10 -0
  4. data/tracks/c/exercises/raindrops/src/example.c +16 -18
  5. data/tracks/c/exercises/raindrops/src/example.h +1 -1
  6. data/tracks/c/exercises/raindrops/test/test_raindrops.c +25 -54
  7. data/tracks/clojure/config.json +256 -382
  8. data/tracks/clojure/config/maintainers.json +19 -19
  9. data/tracks/coq/docs/SNIPPET.txt +12 -0
  10. data/tracks/csharp/config.json +677 -678
  11. data/tracks/csharp/config/maintainers.json +27 -27
  12. data/tracks/csharp/docs/GENERATORS.md +2 -0
  13. data/tracks/csharp/exercises/bowling/BowlingTest.cs +163 -87
  14. data/tracks/csharp/exercises/bowling/Example.cs +47 -8
  15. data/tracks/csharp/generators/Exercises/Bowling.cs +116 -0
  16. data/tracks/elisp/config.json +84 -126
  17. data/tracks/elisp/config/maintainers.json +7 -7
  18. data/tracks/elixir/config.json +397 -513
  19. data/tracks/elixir/config/maintainers.json +15 -15
  20. data/tracks/erlang/.gitmodules +3 -0
  21. data/tracks/erlang/.travis.yml +1 -0
  22. data/tracks/erlang/exercises/hello-world/test/hello_world_tests.erl +1 -1
  23. data/tracks/erlang/testgen/.gitignore +19 -0
  24. data/tracks/erlang/testgen/LICENSE +21 -0
  25. data/tracks/erlang/testgen/README.md +14 -0
  26. data/tracks/erlang/testgen/include/tgen.hrl +6 -0
  27. data/tracks/erlang/testgen/rebar.config +15 -0
  28. data/tracks/erlang/testgen/src/testgen.app.src +15 -0
  29. data/tracks/erlang/testgen/src/testgen.erl +41 -0
  30. data/tracks/erlang/testgen/src/tg_file_tools.erl +14 -0
  31. data/tracks/erlang/testgen/src/tg_git_tools.erl +20 -0
  32. data/tracks/erlang/testgen/src/tgen.erl +126 -0
  33. data/tracks/erlang/testgen/src/tgen_hello-world.erl +35 -0
  34. data/tracks/fsharp/config.json +643 -643
  35. data/tracks/fsharp/config/maintainers.json +15 -15
  36. data/tracks/groovy/config.json +97 -101
  37. data/tracks/groovy/config/maintainers.json +7 -7
  38. data/tracks/haxe/docs/INSTALLATION.md +2 -0
  39. data/tracks/haxe/docs/SNIPPET.txt +7 -0
  40. data/tracks/haxe/docs/TESTS.md +24 -0
  41. data/tracks/idris/config.json +35 -37
  42. data/tracks/idris/config/maintainers.json +7 -7
  43. data/tracks/java/config.json +122 -122
  44. data/tracks/javascript/exercises/palindrome-products/README.md +6 -6
  45. data/tracks/kotlin/config.json +264 -383
  46. data/tracks/kotlin/config/maintainers.json +15 -15
  47. data/tracks/lfe/config.json +126 -188
  48. data/tracks/lfe/config/maintainers.json +7 -7
  49. data/tracks/lua/exercises/etl/README.md +1 -1
  50. data/tracks/lua/exercises/ocr-numbers/README.md +1 -1
  51. data/tracks/lua/exercises/pascals-triangle/README.md +1 -1
  52. data/tracks/lua/exercises/pov/README.md +1 -1
  53. data/tracks/lua/exercises/react/react_spec.lua +1 -1
  54. data/tracks/lua/exercises/rna-transcription/README.md +1 -1
  55. data/tracks/objective-c/config.json +8 -8
  56. data/tracks/objective-c/config/maintainers.json +15 -15
  57. data/tracks/perl6/docs/EXERCISE_README_INSERT.md +9 -5
  58. data/tracks/perl6/exercises/accumulate/README.md +9 -5
  59. data/tracks/perl6/exercises/all-your-base/README.md +9 -5
  60. data/tracks/perl6/exercises/allergies/README.md +9 -5
  61. data/tracks/perl6/exercises/anagram/README.md +9 -5
  62. data/tracks/perl6/exercises/atbash-cipher/README.md +9 -5
  63. data/tracks/perl6/exercises/binary/README.md +9 -5
  64. data/tracks/perl6/exercises/bob/README.md +9 -5
  65. data/tracks/perl6/exercises/clock/README.md +9 -5
  66. data/tracks/perl6/exercises/flatten-array/README.md +9 -5
  67. data/tracks/perl6/exercises/grade-school/README.md +9 -5
  68. data/tracks/perl6/exercises/grains/README.md +9 -5
  69. data/tracks/perl6/exercises/hello-world/README.md +9 -5
  70. data/tracks/perl6/exercises/leap/README.md +9 -5
  71. data/tracks/perl6/exercises/linked-list/README.md +9 -5
  72. data/tracks/perl6/exercises/luhn/README.md +9 -5
  73. data/tracks/perl6/exercises/phone-number/README.md +9 -5
  74. data/tracks/perl6/exercises/raindrops/README.md +9 -5
  75. data/tracks/perl6/exercises/rna-transcription/README.md +10 -6
  76. data/tracks/perl6/exercises/robot-name/README.md +9 -5
  77. data/tracks/perl6/exercises/scrabble-score/README.md +9 -5
  78. data/tracks/perl6/exercises/space-age/README.md +10 -7
  79. data/tracks/perl6/exercises/trinary/README.md +9 -5
  80. data/tracks/perl6/exercises/word-count/README.md +9 -5
  81. data/tracks/perl6/exercises/wordy/README.md +9 -5
  82. data/tracks/r/config.json +136 -138
  83. data/tracks/r/config/maintainers.json +15 -15
  84. data/tracks/racket/config.json +105 -151
  85. data/tracks/racket/config/maintainers.json +15 -15
  86. data/tracks/rust/.travis.yml +1 -0
  87. data/tracks/rust/_test/count-ignores.sh +16 -0
  88. data/tracks/rust/exercises/all-your-base/tests/all-your-base.rs +36 -36
  89. data/tracks/rust/exercises/alphametics/tests/alphametics.rs +2 -2
  90. data/tracks/rust/exercises/bowling/tests/bowling.rs +14 -14
  91. data/tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs +16 -16
  92. data/tracks/rust/exercises/hamming/tests/hamming.rs +5 -5
  93. data/tracks/rust/exercises/largest-series-product/tests/largest-series-product.rs +12 -12
  94. data/tracks/rust/exercises/nucleotide-count/tests/nucleotide-count.rs +4 -4
  95. data/tracks/rust/exercises/ocr-numbers/tests/ocr-numbers.rs +15 -15
  96. data/tracks/rust/exercises/pascals-triangle/tests/pascals-triangle.rs +1 -1
  97. data/tracks/rust/exercises/protein-translation/tests/proteins.rs +6 -6
  98. data/tracks/rust/exercises/react/tests/react.rs +11 -11
  99. data/tracks/rust/exercises/variable-length-quantity/tests/variable-length-quantity.rs +13 -15
  100. data/tracks/rust/exercises/wordy/tests/wordy.rs +14 -14
  101. data/tracks/swift/config.json +447 -449
  102. data/tracks/swift/config/maintainers.json +15 -15
  103. data/tracks/typescript/config.json +294 -295
  104. data/tracks/typescript/config/maintainers.json +11 -11
  105. data/tracks/vbnet/docs/SNIPPET.txt +5 -0
  106. metadata +21 -2
@@ -1,35 +1,35 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
- "github_username": "hankturowski",
5
- "show_on_website": false,
6
5
  "alumnus": false,
7
- "name": null,
6
+ "avatar_url": null,
8
7
  "bio": null,
8
+ "github_username": "hankturowski",
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "name": null,
12
+ "show_on_website": false
12
13
  },
13
14
  {
14
- "github_username": "masters3d",
15
- "show_on_website": false,
16
15
  "alumnus": false,
17
- "name": null,
16
+ "avatar_url": null,
18
17
  "bio": null,
18
+ "github_username": "masters3d",
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "avatar_url": null
21
+ "name": null,
22
+ "show_on_website": false
22
23
  },
23
24
  {
24
- "github_username": "robtimp",
25
- "show_on_website": false,
26
25
  "alumnus": false,
27
- "name": null,
26
+ "avatar_url": null,
28
27
  "bio": null,
28
+ "github_username": "robtimp",
29
29
  "link_text": null,
30
30
  "link_url": null,
31
- "avatar_url": null
31
+ "name": null,
32
+ "show_on_website": false
32
33
  }
33
- ],
34
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
35
- }
34
+ ]
35
+ }
@@ -1,488 +1,487 @@
1
1
  {
2
- "language": "TypeScript",
3
2
  "active": true,
4
3
  "blurb": "TypeScript is a language for writing more maintainable JavaScript. TypeScript adds optional types, classes, and modules to JavaScript.",
5
- "test_pattern": ".*[.]test[.]ts$",
6
4
  "exercises": [
7
5
  {
8
- "uuid": "755f6f85-9ab3-4af6-9e35-dbb9d64be9c5",
9
- "slug": "hello-world",
10
6
  "core": true,
11
7
  "difficulty": 1,
8
+ "slug": "hello-world",
12
9
  "topics": [
13
- "Control-flow (conditionals)",
14
- "Optional values",
15
- "Strings",
16
- "Text formatting"
17
- ]
10
+ "control_flow_conditionals",
11
+ "optional_values",
12
+ "strings",
13
+ "text_formatting"
14
+ ],
15
+ "uuid": "755f6f85-9ab3-4af6-9e35-dbb9d64be9c5"
18
16
  },
19
17
  {
20
- "uuid": "fb80f76c-42da-4f62-9f0f-8c85d984908b",
21
- "slug": "leap",
22
18
  "core": true,
23
19
  "difficulty": 1,
20
+ "slug": "leap",
24
21
  "topics": [
25
- "Booleans",
26
- "Integers",
27
- "Logic"
28
- ]
22
+ "booleans",
23
+ "integers",
24
+ "logic"
25
+ ],
26
+ "uuid": "fb80f76c-42da-4f62-9f0f-8c85d984908b"
29
27
  },
30
28
  {
31
- "uuid": "b4db381f-1c99-44c6-948c-c8892d77823e",
32
- "slug": "rna-transcription",
33
29
  "core": true,
34
30
  "difficulty": 2,
31
+ "slug": "rna-transcription",
35
32
  "topics": [
36
- "Strings",
37
- "Transforming"
38
- ]
33
+ "strings",
34
+ "transforming"
35
+ ],
36
+ "uuid": "b4db381f-1c99-44c6-948c-c8892d77823e"
39
37
  },
40
38
  {
41
- "uuid": "3977d4e5-82ca-4801-ae20-6682dda23506",
42
- "slug": "bob",
43
39
  "core": true,
44
40
  "difficulty": 2,
41
+ "slug": "bob",
45
42
  "topics": [
46
- "Control-flow (conditionals)",
47
- "Polymorphism",
48
- "Strings",
49
- "Unicode",
50
- "Pattern recognition",
51
- "Regular expressions"
52
- ]
43
+ "control_flow_conditionals",
44
+ "pattern_recognition",
45
+ "polymorphism",
46
+ "regular_expressions",
47
+ "strings",
48
+ "unicode"
49
+ ],
50
+ "uuid": "3977d4e5-82ca-4801-ae20-6682dda23506"
53
51
  },
54
52
  {
55
- "uuid": "a2c7abe7-b487-4cc2-a86a-d97cdd61709d",
56
- "slug": "pangram",
57
53
  "core": true,
58
54
  "difficulty": 3,
55
+ "slug": "pangram",
59
56
  "topics": [
60
- "Control-flow (conditionals)",
61
- "Control-flow (loops)",
62
- "Lists",
63
- "Strings",
64
- "Maps",
65
- "Algorithms",
66
- "Searching"
67
- ]
57
+ "algorithms",
58
+ "control_flow_conditionals",
59
+ "control_flow_loops",
60
+ "lists",
61
+ "maps",
62
+ "searching",
63
+ "strings"
64
+ ],
65
+ "uuid": "a2c7abe7-b487-4cc2-a86a-d97cdd61709d"
68
66
  },
69
67
  {
70
- "uuid": "8fe1e0ef-068e-4a53-a576-35be59f8152f",
71
- "slug": "space-age",
72
68
  "core": true,
73
69
  "difficulty": 3,
70
+ "slug": "space-age",
74
71
  "topics": [
75
- "Classes",
76
- "Floating-point numbers",
77
- "Mathematics"
78
- ]
72
+ "classes",
73
+ "floating_point_numbers",
74
+ "mathematics"
75
+ ],
76
+ "uuid": "8fe1e0ef-068e-4a53-a576-35be59f8152f"
79
77
  },
80
78
  {
81
- "uuid": "e16c3064-b2ef-11e7-abc4-cec278b6b50a",
82
- "slug": "strain",
83
79
  "core": false,
84
80
  "difficulty": 4,
81
+ "slug": "strain",
85
82
  "topics": [
86
- "Control-flow (conditionals)",
87
- "Control-flow (loops)",
88
- "Algorithms",
89
- "Lists",
90
- "Arrays",
91
- "Callbacks",
92
- "Filtering"
93
- ]
83
+ "algorithms",
84
+ "arrays",
85
+ "callbacks",
86
+ "control_flow_conditionals",
87
+ "control_flow_loops",
88
+ "filtering",
89
+ "lists"
90
+ ],
91
+ "uuid": "e16c3064-b2ef-11e7-abc4-cec278b6b50a"
94
92
  },
95
93
  {
96
- "uuid": "4ecf9470-a959-11e7-abc4-cec278b6b50a",
97
- "slug": "prime-factors",
98
94
  "core": true,
99
95
  "difficulty": 4,
96
+ "slug": "prime-factors",
100
97
  "topics": [
101
- "Control-flow (conditionals)",
102
- "Control-flow (loops)",
103
- "Mathematics",
104
- "Algorithms",
105
- "Integers"
106
- ]
98
+ "algorithms",
99
+ "control_flow_conditionals",
100
+ "control_flow_loops",
101
+ "integers",
102
+ "mathematics"
103
+ ],
104
+ "uuid": "4ecf9470-a959-11e7-abc4-cec278b6b50a"
107
105
  },
108
106
  {
109
- "uuid": "4c1392d7-8779-496f-b0bb-81605e777e3b",
110
- "slug": "nth-prime",
111
107
  "core": false,
112
- "unlocked_by": "prime-factors",
113
108
  "difficulty": 5,
109
+ "slug": "nth-prime",
114
110
  "topics": [
115
- "Control-flow (conditionals)",
116
- "Control-flow (loops)",
117
- "Exception handling",
118
- "Algorithms",
119
- "Mathematics",
120
- "Integers"
121
- ]
111
+ "algorithms",
112
+ "control_flow_conditionals",
113
+ "control_flow_loops",
114
+ "exception_handling",
115
+ "integers",
116
+ "mathematics"
117
+ ],
118
+ "unlocked_by": "prime-factors",
119
+ "uuid": "4c1392d7-8779-496f-b0bb-81605e777e3b"
122
120
  },
123
121
  {
124
- "uuid": "e431fb10-766a-4542-94ad-9c30224a3885",
125
- "slug": "sum-of-multiples",
126
122
  "core": false,
127
- "unlocked_by": "space-age",
128
123
  "difficulty": 5,
124
+ "slug": "sum-of-multiples",
129
125
  "topics": [
130
- "Control-flow (conditionals)",
131
- "Control-flow (loops)",
132
- "Lists",
133
- "Integers"
134
- ]
126
+ "control_flow_conditionals",
127
+ "control_flow_loops",
128
+ "integers",
129
+ "lists"
130
+ ],
131
+ "unlocked_by": "space-age",
132
+ "uuid": "e431fb10-766a-4542-94ad-9c30224a3885"
135
133
  },
136
134
  {
137
- "uuid": "7d42dd76-a6cf-11e7-abc4-cec278b6b50a",
138
- "slug": "linked-list",
139
135
  "core": true,
140
136
  "difficulty": 5,
137
+ "slug": "linked-list",
141
138
  "topics": [
142
- "Control-flow (conditionals)",
143
- "Control-flow (loops)",
144
- "Algorithms",
145
- "Data structures",
146
- "Arrays",
147
- "Lists",
148
- "Optional values"
149
- ]
139
+ "algorithms",
140
+ "arrays",
141
+ "control_flow_conditionals",
142
+ "control_flow_loops",
143
+ "data_structures",
144
+ "lists",
145
+ "optional_values"
146
+ ],
147
+ "uuid": "7d42dd76-a6cf-11e7-abc4-cec278b6b50a"
150
148
  },
151
149
  {
152
- "uuid": "b2f90523-0cb1-f080-a03c-5aee5f919abf93b491b",
153
- "slug": "binary-search-tree",
154
150
  "core": false,
155
- "unlocked_by": "sum-of-multiples",
156
151
  "difficulty": 6,
152
+ "slug": "binary-search-tree",
157
153
  "topics": [
158
- "Control-flow (conditionals)",
159
- "Control-flow (loops)",
160
- "Recursion",
161
- "Algorithms"
162
- ]
154
+ "algorithms",
155
+ "control_flow_conditionals",
156
+ "control_flow_loops",
157
+ "recursion"
158
+ ],
159
+ "unlocked_by": "sum-of-multiples",
160
+ "uuid": "b2f90523-0cb1-f080-a03c-5aee5f919abf93b491b"
163
161
  },
164
162
  {
165
- "uuid": "b00dd1af-f89c-4382-ab43-514651de6b20",
166
- "slug": "robot-name",
167
163
  "core": true,
168
164
  "difficulty": 6,
165
+ "slug": "robot-name",
169
166
  "topics": [
170
- "Control-flow (conditionals)",
171
- "Exception handling",
172
- "Sets",
173
- "Randomness",
174
- "Regular expressions"
175
- ]
167
+ "control_flow_conditionals",
168
+ "exception_handling",
169
+ "randomness",
170
+ "regular_expressions",
171
+ "sets"
172
+ ],
173
+ "uuid": "b00dd1af-f89c-4382-ab43-514651de6b20"
176
174
  },
177
175
  {
178
- "uuid": "32e79fd7-f002-4bdc-b6bd-7a91d8c1af61",
179
- "slug": "grade-school",
180
176
  "core": true,
181
177
  "difficulty": 6,
178
+ "slug": "grade-school",
182
179
  "topics": [
183
- "Arrays",
184
- "Maps",
185
- "Sorting"
186
- ]
180
+ "arrays",
181
+ "maps",
182
+ "sorting"
183
+ ],
184
+ "uuid": "32e79fd7-f002-4bdc-b6bd-7a91d8c1af61"
187
185
  },
188
186
  {
189
- "uuid": "269577e5-e782-4264-9ad9-9ad4b8bc0aab",
190
- "slug": "wordy",
191
187
  "core": true,
192
188
  "difficulty": 7,
189
+ "slug": "wordy",
193
190
  "topics": [
194
- "Control-flow (conditionals)",
195
- "Control-flow (loops)",
196
- "Regular expressions",
197
- "Exception handling",
198
- "Strings",
199
- "Pattern recognition",
200
- "Parsing"
201
- ]
191
+ "control_flow_conditionals",
192
+ "control_flow_loops",
193
+ "exception_handling",
194
+ "parsing",
195
+ "pattern_recognition",
196
+ "regular_expressions",
197
+ "strings"
198
+ ],
199
+ "uuid": "269577e5-e782-4264-9ad9-9ad4b8bc0aab"
202
200
  },
203
201
  {
204
- "uuid": "3cc210e8-b3bb-11e7-abc4-cec278b6b50a",
205
- "slug": "circular-buffer",
206
202
  "core": false,
207
- "unlocked_by": "linked-list",
208
203
  "difficulty": 8,
204
+ "slug": "circular-buffer",
209
205
  "topics": [
210
- "Control-flow (conditionals)",
211
- "Control-flow (loops)",
212
- "Data structures",
213
- "Lists",
214
- "Arrays",
215
- "Exception handling"
216
- ]
206
+ "arrays",
207
+ "control_flow_conditionals",
208
+ "control_flow_loops",
209
+ "data_structures",
210
+ "exception_handling",
211
+ "lists"
212
+ ],
213
+ "unlocked_by": "linked-list",
214
+ "uuid": "3cc210e8-b3bb-11e7-abc4-cec278b6b50a"
217
215
  },
218
216
  {
219
- "uuid": "9dfabc5c-d2a5-4896-9fc2-2b25b9a5f62f",
220
- "slug": "gigasecond",
221
217
  "core": false,
222
- "unlocked_by": "hello-world",
223
218
  "difficulty": 3,
219
+ "slug": "gigasecond",
224
220
  "topics": [
225
- "Time"
226
- ]
221
+ "time"
222
+ ],
223
+ "unlocked_by": "hello-world",
224
+ "uuid": "9dfabc5c-d2a5-4896-9fc2-2b25b9a5f62f"
227
225
  },
228
226
  {
229
- "uuid": "dd332597-4924-48dc-abb3-1d3fde492777",
230
- "slug": "series",
231
227
  "core": false,
232
- "unlocked_by": "pangram",
233
228
  "difficulty": 3,
229
+ "slug": "series",
234
230
  "topics": [
235
- "Control-flow (loops)",
236
- "Exception handling",
237
- "Strings",
238
- "Text formatting"
239
- ]
231
+ "control_flow_loops",
232
+ "exception_handling",
233
+ "strings",
234
+ "text_formatting"
235
+ ],
236
+ "unlocked_by": "pangram",
237
+ "uuid": "dd332597-4924-48dc-abb3-1d3fde492777"
240
238
  },
241
239
  {
242
- "uuid": "3f649490-dc7d-4a77-a2a0-2ae71ae834a9",
243
- "slug": "difference-of-squares",
244
240
  "core": false,
245
- "unlocked_by": "hello-world",
246
241
  "difficulty": 3,
242
+ "slug": "difference-of-squares",
247
243
  "topics": [
248
- "Control-flow (loops)",
249
- "Algorithms",
250
- "Mathematics",
251
- "Integers"
252
- ]
244
+ "algorithms",
245
+ "control_flow_loops",
246
+ "integers",
247
+ "mathematics"
248
+ ],
249
+ "unlocked_by": "hello-world",
250
+ "uuid": "3f649490-dc7d-4a77-a2a0-2ae71ae834a9"
253
251
  },
254
252
  {
255
- "uuid": "5e5c48fb-91bb-495a-97f6-ec8642739a0a",
256
- "slug": "word-count",
257
253
  "core": false,
258
- "unlocked_by": "hello-world",
259
254
  "difficulty": 1,
255
+ "slug": "word-count",
260
256
  "topics": [
261
- "Control-flow (loops)",
262
- "Lists",
263
- "Strings",
264
- "Unicode",
265
- "Regular expressions"
266
- ]
257
+ "control_flow_loops",
258
+ "lists",
259
+ "regular_expressions",
260
+ "strings",
261
+ "unicode"
262
+ ],
263
+ "unlocked_by": "hello-world",
264
+ "uuid": "5e5c48fb-91bb-495a-97f6-ec8642739a0a"
267
265
  },
268
266
  {
269
- "uuid": "c8677318-ba6c-4e8c-83ec-513cc6530e7f",
270
- "slug": "raindrops",
271
267
  "core": false,
272
- "unlocked_by": "rna-transcription",
273
268
  "difficulty": 2,
269
+ "slug": "raindrops",
274
270
  "topics": [
275
- "Control-flow (conditionals)",
276
- "Strings",
277
- "Integers",
278
- "Transforming"
279
- ]
271
+ "control_flow_conditionals",
272
+ "integers",
273
+ "strings",
274
+ "transforming"
275
+ ],
276
+ "unlocked_by": "rna-transcription",
277
+ "uuid": "c8677318-ba6c-4e8c-83ec-513cc6530e7f"
280
278
  },
281
279
  {
282
- "uuid": "ab027a47-d483-4011-aac4-564a6284e5b8",
283
- "slug": "etl",
284
280
  "core": false,
285
- "unlocked_by": "rna-transcription",
286
281
  "difficulty": 2,
282
+ "slug": "etl",
287
283
  "topics": [
288
- "Control-flow (loops)",
289
- "Transforming",
290
- "Maps",
291
- "Integers"
292
- ]
284
+ "control_flow_loops",
285
+ "integers",
286
+ "maps",
287
+ "transforming"
288
+ ],
289
+ "unlocked_by": "rna-transcription",
290
+ "uuid": "ab027a47-d483-4011-aac4-564a6284e5b8"
293
291
  },
294
292
  {
295
- "uuid": "18204e23-fca8-44dc-8d5c-abe66b87c640",
296
- "slug": "hamming",
297
293
  "core": false,
298
- "unlocked_by": "rna-transcription",
299
294
  "difficulty": 3,
295
+ "slug": "hamming",
300
296
  "topics": [
301
- "Control-flow (loops)",
302
- "Control-flow (conditionals)",
303
- "Equality",
304
- "Strings"
305
- ]
297
+ "control_flow_conditionals",
298
+ "control_flow_loops",
299
+ "equality",
300
+ "strings"
301
+ ],
302
+ "unlocked_by": "rna-transcription",
303
+ "uuid": "18204e23-fca8-44dc-8d5c-abe66b87c640"
306
304
  },
307
305
  {
308
- "uuid": "7c60f7c5-2922-4ce4-acbe-51c5ab654b4d",
309
- "slug": "scrabble-score",
310
306
  "core": false,
311
- "unlocked_by": "rna-transcription",
312
307
  "difficulty": 5,
308
+ "slug": "scrabble-score",
313
309
  "topics": [
314
- "Control-flow (conditionals)",
315
- "Control-flow (loops)",
316
- "Maps",
317
- "Strings"
318
- ]
310
+ "control_flow_conditionals",
311
+ "control_flow_loops",
312
+ "maps",
313
+ "strings"
314
+ ],
315
+ "unlocked_by": "rna-transcription",
316
+ "uuid": "7c60f7c5-2922-4ce4-acbe-51c5ab654b4d"
319
317
  },
320
318
  {
321
- "uuid": "f6631a0f-2da3-47a4-b46b-7a81fa0d4dfd",
322
- "slug": "acronym",
323
319
  "core": false,
324
- "unlocked_by": "pangram",
325
320
  "difficulty": 2,
321
+ "slug": "acronym",
326
322
  "topics": [
323
+ "control_flow_loops",
324
+ "regular_expressions",
327
325
  "strings",
328
- "control-flow (loops)",
329
- "regular expressions",
330
326
  "transforming"
331
- ]
327
+ ],
328
+ "unlocked_by": "pangram",
329
+ "uuid": "f6631a0f-2da3-47a4-b46b-7a81fa0d4dfd"
332
330
  },
333
331
  {
334
- "uuid": "2ceec21e-fb9d-4145-8788-826c3941eb01",
335
- "slug": "anagram",
336
332
  "core": false,
337
- "unlocked_by": "pangram",
338
333
  "difficulty": 2,
334
+ "slug": "anagram",
339
335
  "topics": [
340
- "Strings",
341
- "Filtering"
342
- ]
336
+ "filtering",
337
+ "strings"
338
+ ],
339
+ "unlocked_by": "pangram",
340
+ "uuid": "2ceec21e-fb9d-4145-8788-826c3941eb01"
343
341
  },
344
342
  {
345
- "uuid": "bbd4665c-be4b-4d70-bc92-e91ce7a1d55f",
346
- "slug": "phone-number",
347
343
  "core": false,
348
- "unlocked_by": "pangram",
349
344
  "difficulty": 5,
345
+ "slug": "phone-number",
350
346
  "topics": [
351
- "Parsing",
352
- "Transforming"
353
- ]
347
+ "parsing",
348
+ "transforming"
349
+ ],
350
+ "unlocked_by": "pangram",
351
+ "uuid": "bbd4665c-be4b-4d70-bc92-e91ce7a1d55f"
354
352
  },
355
353
  {
356
- "uuid": "7a4fefd2-6e71-42d6-82fd-a25d2ef9eae9",
357
- "slug": "beer-song",
358
354
  "core": false,
359
- "unlocked_by": "bob",
360
355
  "difficulty": 5,
356
+ "slug": "beer-song",
361
357
  "topics": [
362
- "Control-flow (conditionals)",
363
- "Control-flow (loops)",
364
- "Strings"
365
- ]
358
+ "control_flow_conditionals",
359
+ "control_flow_loops",
360
+ "strings"
361
+ ],
362
+ "unlocked_by": "bob",
363
+ "uuid": "7a4fefd2-6e71-42d6-82fd-a25d2ef9eae9"
366
364
  },
367
-
368
365
  {
369
- "uuid": "8e7b92f4-a508-4200-bd62-b36281dd9ed9",
370
- "slug": "say",
371
366
  "core": false,
372
- "unlocked_by": "bob",
373
367
  "difficulty": 6,
368
+ "slug": "say",
374
369
  "topics": [
375
- "Control-flow (conditionals)",
376
- "Control-flow (loops)",
377
- "Mathematics",
378
- "Integers",
379
- "Exception handling",
380
- "Strings",
381
- "Text formatting"
382
- ]
370
+ "control_flow_conditionals",
371
+ "control_flow_loops",
372
+ "exception_handling",
373
+ "integers",
374
+ "mathematics",
375
+ "strings",
376
+ "text_formatting"
377
+ ],
378
+ "unlocked_by": "bob",
379
+ "uuid": "8e7b92f4-a508-4200-bd62-b36281dd9ed9"
383
380
  },
384
381
  {
385
- "uuid": "246129c9-83b5-43e0-beb6-8a2cea7e4e17",
386
- "slug": "food-chain",
387
382
  "core": false,
388
- "unlocked_by": "bob",
389
383
  "difficulty": 4,
384
+ "slug": "food-chain",
390
385
  "topics": [
391
- "Text formatting",
392
- "Algorithms"
393
- ]
386
+ "algorithms",
387
+ "text_formatting"
388
+ ],
389
+ "unlocked_by": "bob",
390
+ "uuid": "246129c9-83b5-43e0-beb6-8a2cea7e4e17"
394
391
  },
395
392
  {
396
- "uuid": "c6960d69-7794-4711-8891-9c5a63727112",
397
- "slug": "clock",
398
393
  "core": true,
399
394
  "difficulty": 3,
395
+ "slug": "clock",
400
396
  "topics": [
401
- "Mathematics",
402
- "Strings",
403
- "Integers",
404
- "Logic"
405
- ]
397
+ "integers",
398
+ "logic",
399
+ "mathematics",
400
+ "strings"
401
+ ],
402
+ "uuid": "c6960d69-7794-4711-8891-9c5a63727112"
406
403
  },
407
404
  {
408
- "uuid": "cf2d545c-036e-0980-3ac2-64ad54c3867e37f4cfa",
409
- "slug": "triangle",
410
405
  "core": false,
411
- "unlocked_by": "leap",
412
406
  "difficulty": 3,
407
+ "slug": "triangle",
413
408
  "topics": [
414
- "Control-flow (loops)",
415
- "Control-flow (conditionals)",
416
- "Exception handling",
417
- "Integers",
418
- "Mathematics"
419
- ]
409
+ "control_flow_conditionals",
410
+ "control_flow_loops",
411
+ "exception_handling",
412
+ "integers",
413
+ "mathematics"
414
+ ],
415
+ "unlocked_by": "leap",
416
+ "uuid": "cf2d545c-036e-0980-3ac2-64ad54c3867e37f4cfa"
420
417
  },
421
418
  {
422
- "uuid": "a4054ca4-0737-6e80-3ca5-372be502b1d8bb93b20",
423
- "slug": "pascals-triangle",
424
419
  "core": true,
425
420
  "difficulty": 5,
421
+ "slug": "pascals-triangle",
426
422
  "topics": [
427
- "Control-flow (conditionals)",
428
- "Control-flow (loops)",
429
- "Mathematics"
430
- ]
423
+ "control_flow_conditionals",
424
+ "control_flow_loops",
425
+ "mathematics"
426
+ ],
427
+ "uuid": "a4054ca4-0737-6e80-3ca5-372be502b1d8bb93b20"
431
428
  },
432
429
  {
433
- "uuid": "b2fcd8f0-03b2-7880-ec70-65ad5cedfdd8116012d",
434
- "slug": "binary-search",
435
430
  "core": false,
436
431
  "difficulty": 5,
432
+ "slug": "binary-search",
437
433
  "topics": [
438
- "Control-flow (conditionals)",
439
- "Control-flow (loops)",
440
- "Arrays",
441
- "Algorithms"
442
- ]
434
+ "algorithms",
435
+ "arrays",
436
+ "control_flow_conditionals",
437
+ "control_flow_loops"
438
+ ],
439
+ "uuid": "b2fcd8f0-03b2-7880-ec70-65ad5cedfdd8116012d"
443
440
  },
444
441
  {
445
- "uuid": "1447f7bc-0d30-b980-378b-ab8defd8ff148419dbd",
446
- "slug": "rotational-cipher",
447
442
  "core": false,
448
443
  "difficulty": 4,
444
+ "slug": "rotational-cipher",
449
445
  "topics": [
450
446
  "ascii",
451
- "Mathematics",
452
- "Iterators"
453
- ]
447
+ "iterators",
448
+ "mathematics"
449
+ ],
450
+ "uuid": "1447f7bc-0d30-b980-378b-ab8defd8ff148419dbd"
454
451
  },
455
452
  {
456
- "uuid": "b646dc26-59c1-436e-883a-20290de7a526",
457
- "slug": "largest-series-product",
458
453
  "core": false,
459
- "unlocked_by": "pangram",
460
454
  "difficulty": 7,
455
+ "slug": "largest-series-product",
461
456
  "topics": [
462
- "Control-flow (conditionals)",
463
- "Control-flow (loops)",
464
- "Mathematics",
465
- "Integers",
466
- "Strings",
467
- "Exception handling",
468
- "Regular expressions"
469
- ]
457
+ "control_flow_conditionals",
458
+ "control_flow_loops",
459
+ "exception_handling",
460
+ "integers",
461
+ "mathematics",
462
+ "regular_expressions",
463
+ "strings"
464
+ ],
465
+ "unlocked_by": "pangram",
466
+ "uuid": "b646dc26-59c1-436e-883a-20290de7a526"
470
467
  },
471
468
  {
472
- "uuid": "abe907d0-7ca0-4fe5-83fd-72a4d2acab66",
473
- "slug": "robot-simulator",
474
469
  "core": false,
475
- "unlocked_by": "wordy",
476
470
  "difficulty": 5,
471
+ "slug": "robot-simulator",
477
472
  "topics": [
478
- "Control-flow (conditionals)",
479
- "Control-flow (loops)",
480
- "Exception handling",
481
- "Strings",
482
- "Games",
483
- "Parsing"
484
- ]
473
+ "control_flow_conditionals",
474
+ "control_flow_loops",
475
+ "exception_handling",
476
+ "games",
477
+ "parsing",
478
+ "strings"
479
+ ],
480
+ "unlocked_by": "wordy",
481
+ "uuid": "abe907d0-7ca0-4fe5-83fd-72a4d2acab66"
485
482
  }
486
483
  ],
487
- "foregone": []
488
- }
484
+ "foregone": [],
485
+ "language": "TypeScript",
486
+ "test_pattern": ".*[.]test[.]ts$"
487
+ }