trackler 2.2.1.147 → 2.2.1.148

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/crystal/Makefile +1 -1
  4. data/tracks/crystal/exercises/acronym/spec/acronym_spec.cr +2 -6
  5. data/tracks/crystal/exercises/binary/spec/binary_spec.cr +1 -1
  6. data/tracks/crystal/exercises/difference-of-squares/spec/difference_of_squares_spec.cr +10 -14
  7. data/tracks/crystal/exercises/run-length-encoding/spec/run_length_encoding_spec.cr +29 -9
  8. data/tracks/crystal/generator/src/generators/acronym.cr +1 -1
  9. data/tracks/crystal/generator/src/generators/binary.cr +1 -1
  10. data/tracks/crystal/generator/src/generators/difference_of_squares.cr +6 -7
  11. data/tracks/crystal/generator/src/generators/run_length_encoding.cr +20 -10
  12. data/tracks/csharp/config.json +477 -477
  13. data/tracks/elixir/exercises/largest-series-product/example.exs +1 -1
  14. data/tracks/elm/exercises/phone-number/PhoneNumber.elm +1 -6
  15. data/tracks/elm/exercises/phone-number/tests/Tests.elm +22 -37
  16. data/tracks/elm/exercises/run-length-encoding/tests/Tests.elm +55 -31
  17. data/tracks/fsharp/generators/Exercise.fs +27 -6
  18. data/tracks/fsharp/generators/Generators.fs +37 -45
  19. data/tracks/fsharp/generators/Templates.fs +15 -44
  20. data/tracks/haskell/.travis.yml +1 -0
  21. data/tracks/haskell/bin/check-configlet-fmt.sh +42 -0
  22. data/tracks/haskell/config/maintainers.json +13 -13
  23. data/tracks/haskell/config.json +212 -250
  24. data/tracks/java/exercises/sublist/.meta/version +1 -1
  25. data/tracks/java/exercises/word-search/.meta/version +1 -1
  26. data/tracks/nim/config.json +10 -0
  27. data/tracks/nim/exercises/reverse-string/README.md +13 -0
  28. data/tracks/nim/exercises/reverse-string/example.nim +4 -0
  29. data/tracks/nim/exercises/reverse-string/reverse_string_test.nim +20 -0
  30. data/tracks/objective-c/config.json +10 -0
  31. data/tracks/objective-c/exercises/reverse-string/README.md +34 -0
  32. data/tracks/objective-c/exercises/reverse-string/ReverseStringExample.h +7 -0
  33. data/tracks/objective-c/exercises/reverse-string/ReverseStringExample.m +22 -0
  34. data/tracks/objective-c/exercises/reverse-string/ReverseStringTest.m +51 -0
  35. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
  36. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  37. data/tracks/ruby/config/maintainers.json +25 -25
  38. data/tracks/ruby/config.json +203 -371
  39. data/tracks/ruby/exercises/bob/.meta/.version +1 -1
  40. data/tracks/ruby/exercises/bob/.meta/generator/bob_case.rb +3 -2
  41. data/tracks/ruby/exercises/bob/.meta/solutions/bob.rb +3 -1
  42. data/tracks/ruby/exercises/bob/README.md +2 -0
  43. data/tracks/ruby/exercises/bob/bob_test.rb +27 -27
  44. data/tracks/ruby/exercises/hamming/RUNNING_TESTS.md +1 -1
  45. data/tracks/rust/.travis.yml +1 -0
  46. data/tracks/rust/_test/check-configlet-fmt.sh +37 -0
  47. data/tracks/rust/config/maintainers.json +23 -23
  48. data/tracks/rust/config.json +246 -246
  49. metadata +12 -3
  50. data/tracks/elm/exercises/run-length-encoding/RunLengthEncodingPropertyChecks.elm +0 -63
@@ -1,943 +1,775 @@
1
1
  {
2
2
  "language": "Ruby",
3
3
  "active": true,
4
- "blurb" : "Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.",
4
+ "blurb": "Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.",
5
5
  "gitter": "ruby",
6
6
  "solution_pattern": "[Ee]xample|\\.meta/solutions/[^/]*\\.rb",
7
+ "foregone": [],
7
8
  "exercises": [
8
9
  {
9
- "uuid": "4fe19484-4414-471b-a106-73c776c61388",
10
10
  "slug": "hello-world",
11
+ "uuid": "4fe19484-4414-471b-a106-73c776c61388",
11
12
  "core": false,
12
13
  "unlocked_by": null,
13
14
  "difficulty": 1,
14
- "topics": [
15
-
16
- ]
15
+ "topics": null
17
16
  },
18
17
  {
19
- "uuid": "d33dec8a-e2b4-40bc-8be9-3f49de084d43",
20
18
  "slug": "hamming",
19
+ "uuid": "d33dec8a-e2b4-40bc-8be9-3f49de084d43",
21
20
  "core": false,
22
21
  "unlocked_by": null,
23
22
  "difficulty": 1,
24
- "topics": [
25
-
26
- ]
23
+ "topics": null
27
24
  },
28
25
  {
29
- "uuid": "0fb594a1-193b-4ccf-8de2-eb6a81708b29",
30
26
  "slug": "gigasecond",
27
+ "uuid": "0fb594a1-193b-4ccf-8de2-eb6a81708b29",
31
28
  "core": false,
32
29
  "unlocked_by": null,
33
30
  "difficulty": 1,
34
- "topics": [
35
-
36
- ]
31
+ "topics": null
37
32
  },
38
33
  {
39
- "uuid": "41f66d2a-1883-4a2c-875f-663c46fa88aa",
40
34
  "slug": "rna-transcription",
35
+ "uuid": "41f66d2a-1883-4a2c-875f-663c46fa88aa",
41
36
  "core": false,
42
37
  "unlocked_by": null,
43
38
  "difficulty": 1,
44
- "topics": [
45
-
46
- ]
39
+ "topics": null
47
40
  },
48
41
  {
49
- "uuid": "efad2cea-1e0b-4fb8-a452-a8e91be73638",
50
42
  "slug": "raindrops",
43
+ "uuid": "efad2cea-1e0b-4fb8-a452-a8e91be73638",
51
44
  "core": false,
52
45
  "unlocked_by": null,
53
46
  "difficulty": 1,
54
- "topics": [
55
-
56
- ]
47
+ "topics": null
57
48
  },
58
49
  {
59
- "uuid": "f1e4ee0c-8718-43f2-90a5-fb1e915288da",
60
50
  "slug": "difference-of-squares",
51
+ "uuid": "f1e4ee0c-8718-43f2-90a5-fb1e915288da",
61
52
  "core": false,
62
53
  "unlocked_by": null,
63
54
  "difficulty": 1,
64
- "topics": [
65
-
66
- ]
55
+ "topics": null
67
56
  },
68
57
  {
69
- "uuid": "fcf07149-b2cb-4042-90e6-fb3350e0fdf6",
70
58
  "slug": "pangram",
59
+ "uuid": "fcf07149-b2cb-4042-90e6-fb3350e0fdf6",
71
60
  "core": false,
72
61
  "unlocked_by": null,
73
62
  "difficulty": 1,
74
- "topics": [
75
-
76
- ]
63
+ "topics": null
77
64
  },
78
65
  {
79
- "uuid": "80f9af5a-ea29-4937-9333-b4494aaf2446",
80
66
  "slug": "sieve",
67
+ "uuid": "80f9af5a-ea29-4937-9333-b4494aaf2446",
81
68
  "core": false,
82
69
  "unlocked_by": null,
83
70
  "difficulty": 1,
84
- "topics": [
85
-
86
- ]
71
+ "topics": null
87
72
  },
88
73
  {
89
- "uuid": "b7ca9519-c33b-418b-a4ef-858a3d4d6855",
90
74
  "slug": "roman-numerals",
75
+ "uuid": "b7ca9519-c33b-418b-a4ef-858a3d4d6855",
91
76
  "core": false,
92
77
  "unlocked_by": null,
93
78
  "difficulty": 1,
94
- "topics": [
95
-
96
- ]
79
+ "topics": null
97
80
  },
98
81
  {
99
- "uuid": "16baef71-6234-4928-a2d4-a19eb8e110b8",
100
82
  "slug": "nth-prime",
83
+ "uuid": "16baef71-6234-4928-a2d4-a19eb8e110b8",
101
84
  "core": false,
102
85
  "unlocked_by": null,
103
86
  "difficulty": 1,
104
- "topics": [
105
-
106
- ]
87
+ "topics": null
107
88
  },
108
89
  {
109
- "uuid": "06eaa2dd-dc80-4d38-b10d-11174183b0b6",
110
90
  "slug": "leap",
91
+ "uuid": "06eaa2dd-dc80-4d38-b10d-11174183b0b6",
111
92
  "core": false,
112
93
  "unlocked_by": null,
113
94
  "difficulty": 1,
114
- "topics": [
115
-
116
- ]
95
+ "topics": null
117
96
  },
118
97
  {
119
- "uuid": "22519f53-4516-43bc-915e-07d58e48f617",
120
98
  "slug": "grains",
99
+ "uuid": "22519f53-4516-43bc-915e-07d58e48f617",
121
100
  "core": false,
122
101
  "unlocked_by": null,
123
102
  "difficulty": 1,
124
- "topics": [
125
-
126
- ]
103
+ "topics": null
127
104
  },
128
105
  {
129
- "uuid": "e9d29769-8d4d-4159-8d6f-762db5339707",
130
106
  "slug": "word-count",
107
+ "uuid": "e9d29769-8d4d-4159-8d6f-762db5339707",
131
108
  "core": false,
132
109
  "unlocked_by": null,
133
110
  "difficulty": 1,
134
- "topics": [
135
-
136
- ]
111
+ "topics": null
137
112
  },
138
113
  {
139
- "uuid": "70fec82e-3038-468f-96ef-bfb48ce03ef3",
140
114
  "slug": "bob",
115
+ "uuid": "70fec82e-3038-468f-96ef-bfb48ce03ef3",
141
116
  "core": false,
142
117
  "unlocked_by": null,
143
118
  "difficulty": 1,
144
- "topics": [
145
-
146
- ]
119
+ "topics": null
147
120
  },
148
121
  {
149
- "uuid": "9d6a8c89-41c1-4c4e-b24c-476ba0dfa5f9",
150
122
  "slug": "run-length-encoding",
123
+ "uuid": "9d6a8c89-41c1-4c4e-b24c-476ba0dfa5f9",
151
124
  "core": false,
152
125
  "unlocked_by": null,
153
126
  "difficulty": 1,
154
- "topics": [
155
-
156
- ]
127
+ "topics": null
157
128
  },
158
129
  {
159
- "uuid": "43bc27ed-d2fa-4173-8665-4459b71c9a3a",
160
130
  "slug": "binary",
131
+ "uuid": "43bc27ed-d2fa-4173-8665-4459b71c9a3a",
161
132
  "core": false,
162
133
  "unlocked_by": null,
163
134
  "difficulty": 1,
164
- "topics": [
165
-
166
- ]
135
+ "topics": null
167
136
  },
168
137
  {
169
- "uuid": "2c71fc3a-2c93-402b-b091-697b795ce3ba",
170
138
  "slug": "accumulate",
139
+ "uuid": "2c71fc3a-2c93-402b-b091-697b795ce3ba",
171
140
  "core": false,
172
141
  "unlocked_by": null,
173
142
  "difficulty": 1,
174
- "topics": [
175
-
176
- ]
143
+ "topics": null
177
144
  },
178
145
  {
179
- "uuid": "4fc25295-5d6a-4d13-9b87-064167d8980e",
180
146
  "slug": "sum-of-multiples",
147
+ "uuid": "4fc25295-5d6a-4d13-9b87-064167d8980e",
181
148
  "core": false,
182
149
  "unlocked_by": null,
183
150
  "difficulty": 1,
184
- "topics": [
185
-
186
- ]
151
+ "topics": null
187
152
  },
188
153
  {
189
- "uuid": "4460742c-2beb-48d7-94e6-72ff13c68c71",
190
154
  "slug": "grade-school",
155
+ "uuid": "4460742c-2beb-48d7-94e6-72ff13c68c71",
191
156
  "core": false,
192
157
  "unlocked_by": null,
193
158
  "difficulty": 1,
194
- "topics": [
195
-
196
- ]
159
+ "topics": null
197
160
  },
198
161
  {
199
- "uuid": "2de036e4-576d-47fc-bb03-4ed1612e79da",
200
162
  "slug": "series",
163
+ "uuid": "2de036e4-576d-47fc-bb03-4ed1612e79da",
201
164
  "core": false,
202
165
  "unlocked_by": null,
203
166
  "difficulty": 1,
204
- "topics": [
205
-
206
- ]
167
+ "topics": null
207
168
  },
208
169
  {
209
- "uuid": "b68665d5-14ef-4351-ac4a-c28a80c27b3d",
210
170
  "slug": "phone-number",
171
+ "uuid": "b68665d5-14ef-4351-ac4a-c28a80c27b3d",
211
172
  "core": false,
212
173
  "unlocked_by": null,
213
174
  "difficulty": 1,
214
- "topics": [
215
-
216
- ]
175
+ "topics": null
217
176
  },
218
177
  {
219
- "uuid": "a18daa31-88d3-45ba-84ca-f1d52fe23a79",
220
178
  "slug": "prime-factors",
179
+ "uuid": "a18daa31-88d3-45ba-84ca-f1d52fe23a79",
221
180
  "core": false,
222
181
  "unlocked_by": null,
223
182
  "difficulty": 1,
224
- "topics": [
225
-
226
- ]
183
+ "topics": null
227
184
  },
228
185
  {
229
- "uuid": "ac0966a9-822b-45be-91d9-36f6706ea76f",
230
186
  "slug": "strain",
187
+ "uuid": "ac0966a9-822b-45be-91d9-36f6706ea76f",
231
188
  "core": false,
232
189
  "unlocked_by": null,
233
190
  "difficulty": 1,
234
- "topics": [
235
-
236
- ]
191
+ "topics": null
237
192
  },
238
193
  {
239
- "uuid": "0d66f3db-69a4-44b9-80be-9366f8b189ec",
240
194
  "slug": "etl",
195
+ "uuid": "0d66f3db-69a4-44b9-80be-9366f8b189ec",
241
196
  "core": false,
242
197
  "unlocked_by": null,
243
198
  "difficulty": 1,
244
- "topics": [
245
-
246
- ]
199
+ "topics": null
247
200
  },
248
201
  {
249
- "uuid": "f6735416-4be6-4eb8-b6b9-cb61671ce25e",
250
202
  "slug": "trinary",
203
+ "uuid": "f6735416-4be6-4eb8-b6b9-cb61671ce25e",
251
204
  "core": false,
252
205
  "unlocked_by": null,
253
206
  "difficulty": 1,
254
- "topics": [
255
-
256
- ]
207
+ "topics": null
257
208
  },
258
209
  {
259
- "uuid": "50c34698-7767-42b3-962f-21c735e49787",
260
210
  "slug": "beer-song",
211
+ "uuid": "50c34698-7767-42b3-962f-21c735e49787",
261
212
  "core": false,
262
213
  "unlocked_by": null,
263
214
  "difficulty": 1,
264
- "topics": [
265
-
266
- ]
215
+ "topics": null
267
216
  },
268
217
  {
269
- "uuid": "051f0825-8357-4ca6-b24f-40a373deac19",
270
218
  "slug": "bowling",
219
+ "uuid": "051f0825-8357-4ca6-b24f-40a373deac19",
271
220
  "core": false,
272
221
  "unlocked_by": null,
273
222
  "difficulty": 1,
274
- "topics": [
275
-
276
- ]
223
+ "topics": null
277
224
  },
278
225
  {
279
- "uuid": "c971a2b5-ccd4-4e55-9fc7-33e991bc0676",
280
226
  "slug": "space-age",
227
+ "uuid": "c971a2b5-ccd4-4e55-9fc7-33e991bc0676",
281
228
  "core": false,
282
229
  "unlocked_by": null,
283
230
  "difficulty": 1,
284
- "topics": [
285
-
286
- ]
231
+ "topics": null
287
232
  },
288
233
  {
289
- "uuid": "36df18ba-580d-4982-984e-ba50eb1f8c0b",
290
234
  "slug": "anagram",
235
+ "uuid": "36df18ba-580d-4982-984e-ba50eb1f8c0b",
291
236
  "core": false,
292
237
  "unlocked_by": null,
293
238
  "difficulty": 1,
294
- "topics": [
295
-
296
- ]
239
+ "topics": null
297
240
  },
298
241
  {
299
- "uuid": "0e05bfcf-17ae-4884-803a-fa1428bc1702",
300
242
  "slug": "binary-search-tree",
243
+ "uuid": "0e05bfcf-17ae-4884-803a-fa1428bc1702",
301
244
  "core": false,
302
245
  "unlocked_by": null,
303
246
  "difficulty": 1,
304
- "topics": [
305
-
306
- ]
247
+ "topics": null
307
248
  },
308
249
  {
309
- "uuid": "86f8e33d-31b7-43e3-8ea3-2e391133704a",
310
250
  "slug": "crypto-square",
251
+ "uuid": "86f8e33d-31b7-43e3-8ea3-2e391133704a",
311
252
  "core": false,
312
253
  "unlocked_by": null,
313
254
  "difficulty": 1,
314
- "topics": [
315
-
316
- ]
255
+ "topics": null
317
256
  },
318
257
  {
319
- "uuid": "f95ebf09-0f32-4e60-867d-60cb81dd9a62",
320
258
  "slug": "clock",
259
+ "uuid": "f95ebf09-0f32-4e60-867d-60cb81dd9a62",
321
260
  "core": false,
322
261
  "unlocked_by": null,
323
262
  "difficulty": 1,
324
- "topics": [
325
-
326
- ]
263
+ "topics": null
327
264
  },
328
265
  {
329
- "uuid": "2323a2a5-c181-4c1e-9c5f-f6b92b2de511",
330
266
  "slug": "alphametics",
267
+ "uuid": "2323a2a5-c181-4c1e-9c5f-f6b92b2de511",
331
268
  "core": false,
332
269
  "unlocked_by": null,
333
270
  "difficulty": 1,
334
- "topics": [
335
-
336
- ]
271
+ "topics": null
337
272
  },
338
273
  {
339
- "uuid": "64196fe5-2270-4113-a614-fbfbb6d00f2b",
340
274
  "slug": "rail-fence-cipher",
275
+ "uuid": "64196fe5-2270-4113-a614-fbfbb6d00f2b",
341
276
  "core": false,
342
277
  "unlocked_by": null,
343
278
  "difficulty": 1,
344
- "topics": [
345
-
346
- ]
279
+ "topics": null
347
280
  },
348
281
  {
349
- "uuid": "74468206-68a2-4efb-8caa-782634674c7f",
350
282
  "slug": "acronym",
283
+ "uuid": "74468206-68a2-4efb-8caa-782634674c7f",
351
284
  "core": false,
352
285
  "unlocked_by": null,
353
286
  "difficulty": 1,
354
- "topics": [
355
-
356
- ]
287
+ "topics": null
357
288
  },
358
289
  {
359
- "uuid": "d934ebce-9ac3-4a41-bcb8-d70480170438",
360
290
  "slug": "scrabble-score",
291
+ "uuid": "d934ebce-9ac3-4a41-bcb8-d70480170438",
361
292
  "core": false,
362
293
  "unlocked_by": null,
363
294
  "difficulty": 1,
364
- "topics": [
365
-
366
- ]
295
+ "topics": null
367
296
  },
368
297
  {
369
- "uuid": "8ad2bffd-1d79-4e1f-8ef3-ece0214d2804",
370
298
  "slug": "nucleotide-count",
299
+ "uuid": "8ad2bffd-1d79-4e1f-8ef3-ece0214d2804",
371
300
  "core": false,
372
301
  "unlocked_by": null,
373
302
  "difficulty": 1,
374
- "topics": [
375
-
376
- ]
303
+ "topics": null
377
304
  },
378
305
  {
379
- "uuid": "2df8ed82-2a04-4112-a17b-7813bcdc0e84",
380
306
  "slug": "flatten-array",
307
+ "uuid": "2df8ed82-2a04-4112-a17b-7813bcdc0e84",
381
308
  "core": false,
382
309
  "unlocked_by": null,
383
310
  "difficulty": 1,
384
- "topics": [
385
-
386
- ]
311
+ "topics": null
387
312
  },
388
313
  {
389
- "uuid": "6984cc14-91f8-47a7-b7e2-4b210a5dbc5c",
390
314
  "slug": "hexadecimal",
315
+ "uuid": "6984cc14-91f8-47a7-b7e2-4b210a5dbc5c",
391
316
  "core": false,
392
317
  "unlocked_by": null,
393
318
  "difficulty": 1,
394
- "topics": [
395
-
396
- ]
319
+ "topics": null
397
320
  },
398
321
  {
399
- "uuid": "2a410923-6445-41fc-9cf3-a60209e1c1c2",
400
322
  "slug": "say",
323
+ "uuid": "2a410923-6445-41fc-9cf3-a60209e1c1c2",
401
324
  "core": false,
402
325
  "unlocked_by": null,
403
326
  "difficulty": 1,
404
- "topics": [
405
-
406
- ]
327
+ "topics": null
407
328
  },
408
329
  {
409
- "uuid": "8120e133-9561-4f82-8081-10c19f7f6ba3",
410
330
  "slug": "meetup",
331
+ "uuid": "8120e133-9561-4f82-8081-10c19f7f6ba3",
411
332
  "core": false,
412
333
  "unlocked_by": null,
413
334
  "difficulty": 1,
414
- "topics": [
415
-
416
- ]
335
+ "topics": null
417
336
  },
418
337
  {
419
- "uuid": "76a0fd0a-cc65-4be3-acc8-7348bb67ad5a",
420
338
  "slug": "robot-name",
339
+ "uuid": "76a0fd0a-cc65-4be3-acc8-7348bb67ad5a",
421
340
  "core": false,
422
341
  "unlocked_by": null,
423
342
  "difficulty": 6,
424
- "topics": [
425
-
426
- ]
343
+ "topics": null
427
344
  },
428
345
  {
429
- "uuid": "2ce9b158-e730-4c86-8639-bd08af9f80f4",
430
346
  "slug": "queen-attack",
347
+ "uuid": "2ce9b158-e730-4c86-8639-bd08af9f80f4",
431
348
  "core": false,
432
349
  "unlocked_by": null,
433
350
  "difficulty": 1,
434
- "topics": [
435
-
436
- ]
351
+ "topics": null
437
352
  },
438
353
  {
439
- "uuid": "abd68340-91b9-48c1-8567-79822bb2165c",
440
354
  "slug": "palindrome-products",
355
+ "uuid": "abd68340-91b9-48c1-8567-79822bb2165c",
441
356
  "core": false,
442
357
  "unlocked_by": null,
443
358
  "difficulty": 1,
444
- "topics": [
445
-
446
- ]
359
+ "topics": null
447
360
  },
448
361
  {
449
- "uuid": "26f6e297-7980-4472-8ce7-157b62b0ff40",
450
362
  "slug": "bracket-push",
363
+ "uuid": "26f6e297-7980-4472-8ce7-157b62b0ff40",
451
364
  "core": false,
452
365
  "unlocked_by": null,
453
366
  "difficulty": 1,
454
- "topics": [
455
-
456
- ]
367
+ "topics": null
457
368
  },
458
369
  {
459
- "uuid": "6f0919eb-2160-4cca-8504-286acc2ae9c8",
460
370
  "slug": "food-chain",
371
+ "uuid": "6f0919eb-2160-4cca-8504-286acc2ae9c8",
461
372
  "core": false,
462
373
  "unlocked_by": null,
463
374
  "difficulty": 1,
464
- "topics": [
465
-
466
- ]
375
+ "topics": null
467
376
  },
468
377
  {
469
- "uuid": "3de21c18-a533-4150-8a73-49df8fcb8c61",
470
378
  "slug": "matrix",
379
+ "uuid": "3de21c18-a533-4150-8a73-49df8fcb8c61",
471
380
  "core": false,
472
381
  "unlocked_by": null,
473
382
  "difficulty": 1,
474
- "topics": [
475
-
476
- ]
383
+ "topics": null
477
384
  },
478
385
  {
479
- "uuid": "38bb4ac6-a5ec-4448-8b86-cdaff13a8be3",
480
386
  "slug": "saddle-points",
387
+ "uuid": "38bb4ac6-a5ec-4448-8b86-cdaff13a8be3",
481
388
  "core": false,
482
389
  "unlocked_by": null,
483
390
  "difficulty": 1,
484
- "topics": [
485
-
486
- ]
391
+ "topics": null
487
392
  },
488
393
  {
489
- "uuid": "5c797eb2-155d-47ca-8f85-2ba5803f9713",
490
394
  "slug": "triangle",
395
+ "uuid": "5c797eb2-155d-47ca-8f85-2ba5803f9713",
491
396
  "core": false,
492
397
  "unlocked_by": null,
493
398
  "difficulty": 1,
494
- "topics": [
495
-
496
- ]
399
+ "topics": null
497
400
  },
498
401
  {
499
- "uuid": "1e737640-9785-4a47-866a-46298104d891",
500
402
  "slug": "atbash-cipher",
403
+ "uuid": "1e737640-9785-4a47-866a-46298104d891",
501
404
  "core": false,
502
405
  "unlocked_by": null,
503
406
  "difficulty": 1,
504
- "topics": [
505
-
506
- ]
407
+ "topics": null
507
408
  },
508
409
  {
509
- "uuid": "df5d771a-e57b-4a96-8a29-9bd4ce7f88d2",
510
410
  "slug": "house",
411
+ "uuid": "df5d771a-e57b-4a96-8a29-9bd4ce7f88d2",
511
412
  "core": false,
512
413
  "unlocked_by": null,
513
414
  "difficulty": 1,
514
- "topics": [
515
-
516
- ]
415
+ "topics": null
517
416
  },
518
417
  {
519
- "uuid": "c1ebad1b-d5aa-465a-b5ef-9e717ab5db9e",
520
418
  "slug": "secret-handshake",
419
+ "uuid": "c1ebad1b-d5aa-465a-b5ef-9e717ab5db9e",
521
420
  "core": false,
522
421
  "unlocked_by": null,
523
422
  "difficulty": 1,
524
- "topics": [
525
-
526
- ]
423
+ "topics": null
527
424
  },
528
425
  {
529
- "uuid": "3c5193ab-6471-4be2-9d24-1d2b51ad822a",
530
426
  "slug": "proverb",
427
+ "uuid": "3c5193ab-6471-4be2-9d24-1d2b51ad822a",
531
428
  "core": false,
532
429
  "unlocked_by": null,
533
430
  "difficulty": 1,
534
- "topics": [
535
-
536
- ]
431
+ "topics": null
537
432
  },
538
433
  {
539
- "uuid": "dd13bb29-589c-497d-9580-3f288f353fb2",
540
434
  "slug": "ocr-numbers",
435
+ "uuid": "dd13bb29-589c-497d-9580-3f288f353fb2",
541
436
  "core": false,
542
437
  "unlocked_by": null,
543
438
  "difficulty": 1,
544
- "topics": [
545
-
546
- ]
439
+ "topics": null
547
440
  },
548
441
  {
549
- "uuid": "efc0e498-891a-4e91-a6aa-fae635573a83",
550
442
  "slug": "pig-latin",
443
+ "uuid": "efc0e498-891a-4e91-a6aa-fae635573a83",
551
444
  "core": false,
552
445
  "unlocked_by": null,
553
446
  "difficulty": 1,
554
- "topics": [
555
-
556
- ]
447
+ "topics": null
557
448
  },
558
449
  {
559
- "uuid": "fa7b91c2-842c-42c8-bdf9-00bb3e71a7f5",
560
450
  "slug": "simple-linked-list",
451
+ "uuid": "fa7b91c2-842c-42c8-bdf9-00bb3e71a7f5",
561
452
  "core": false,
562
453
  "unlocked_by": null,
563
454
  "difficulty": 1,
564
- "topics": [
565
-
566
- ]
455
+ "topics": null
567
456
  },
568
457
  {
569
- "uuid": "bee97539-b8c1-460e-aa14-9336008df2b6",
570
458
  "slug": "luhn",
459
+ "uuid": "bee97539-b8c1-460e-aa14-9336008df2b6",
571
460
  "core": false,
572
461
  "unlocked_by": null,
573
462
  "difficulty": 1,
574
- "topics": [
575
-
576
- ]
463
+ "topics": null
577
464
  },
578
465
  {
579
- "uuid": "29c66e8a-b1b0-4bbd-be7b-9979ff51ba8f",
580
466
  "slug": "simple-cipher",
467
+ "uuid": "29c66e8a-b1b0-4bbd-be7b-9979ff51ba8f",
581
468
  "core": false,
582
469
  "unlocked_by": null,
583
470
  "difficulty": 1,
584
- "topics": [
585
-
586
- ]
471
+ "topics": null
587
472
  },
588
473
  {
589
- "uuid": "cb58e4cf-e3af-469c-9f2d-02557b9f61ed",
590
474
  "slug": "wordy",
475
+ "uuid": "cb58e4cf-e3af-469c-9f2d-02557b9f61ed",
591
476
  "core": false,
592
477
  "unlocked_by": null,
593
478
  "difficulty": 1,
594
- "topics": [
595
-
596
- ]
479
+ "topics": null
597
480
  },
598
481
  {
599
- "uuid": "b306bdaa-438e-46a2-ba54-82cb2c0be882",
600
482
  "slug": "allergies",
483
+ "uuid": "b306bdaa-438e-46a2-ba54-82cb2c0be882",
601
484
  "core": false,
602
485
  "unlocked_by": null,
603
486
  "difficulty": 1,
604
- "topics": [
605
-
606
- ]
487
+ "topics": null
607
488
  },
608
489
  {
609
- "uuid": "9a59ba44-34f5-410b-a1e6-9a5c47c52d9e",
610
490
  "slug": "poker",
491
+ "uuid": "9a59ba44-34f5-410b-a1e6-9a5c47c52d9e",
611
492
  "core": false,
612
493
  "unlocked_by": null,
613
494
  "difficulty": 1,
614
- "topics": [
615
-
616
- ]
495
+ "topics": null
617
496
  },
618
497
  {
619
- "uuid": "04bde625-e363-4d8b-880f-db7bf86286eb",
620
498
  "slug": "kindergarten-garden",
499
+ "uuid": "04bde625-e363-4d8b-880f-db7bf86286eb",
621
500
  "core": false,
622
501
  "unlocked_by": null,
623
502
  "difficulty": 1,
624
- "topics": [
625
-
626
- ]
503
+ "topics": null
627
504
  },
628
505
  {
629
- "uuid": "92c9aafc-791d-4aaf-a136-9bee14f6ff95",
630
506
  "slug": "linked-list",
507
+ "uuid": "92c9aafc-791d-4aaf-a136-9bee14f6ff95",
631
508
  "core": false,
632
509
  "unlocked_by": null,
633
510
  "difficulty": 1,
634
- "topics": [
635
-
636
- ]
511
+ "topics": null
637
512
  },
638
513
  {
639
- "uuid": "43aad536-0e24-464c-9554-cbc2699d0543",
640
514
  "slug": "pythagorean-triplet",
515
+ "uuid": "43aad536-0e24-464c-9554-cbc2699d0543",
641
516
  "core": false,
642
517
  "unlocked_by": null,
643
518
  "difficulty": 1,
644
- "topics": [
645
-
646
- ]
519
+ "topics": null
647
520
  },
648
521
  {
649
- "uuid": "724e6a6e-2e6e-45a9-ab0e-0d8d50a06085",
650
522
  "slug": "robot-simulator",
523
+ "uuid": "724e6a6e-2e6e-45a9-ab0e-0d8d50a06085",
651
524
  "core": false,
652
525
  "unlocked_by": null,
653
526
  "difficulty": 1,
654
- "topics": [
655
-
656
- ]
527
+ "topics": null
657
528
  },
658
529
  {
659
- "uuid": "eeb64dda-b79f-4920-8fa3-04810e8d37ab",
660
530
  "slug": "twelve-days",
531
+ "uuid": "eeb64dda-b79f-4920-8fa3-04810e8d37ab",
661
532
  "core": false,
662
533
  "unlocked_by": null,
663
534
  "difficulty": 1,
664
- "topics": [
665
-
666
- ]
535
+ "topics": null
667
536
  },
668
537
  {
669
- "uuid": "f3419fe3-a5f5-4bc9-bc40-49f450b8981e",
670
538
  "slug": "circular-buffer",
539
+ "uuid": "f3419fe3-a5f5-4bc9-bc40-49f450b8981e",
671
540
  "core": false,
672
541
  "unlocked_by": null,
673
542
  "difficulty": 1,
674
- "topics": [
675
-
676
- ]
543
+ "topics": null
677
544
  },
678
545
  {
679
- "uuid": "7cb55328-1b11-4544-94c0-945444d9a6a4",
680
546
  "slug": "largest-series-product",
547
+ "uuid": "7cb55328-1b11-4544-94c0-945444d9a6a4",
681
548
  "core": false,
682
549
  "unlocked_by": null,
683
550
  "difficulty": 1,
684
- "topics": [
685
-
686
- ]
551
+ "topics": null
687
552
  },
688
553
  {
689
- "uuid": "b1ba445d-4908-4922-acc0-de3a0ec92c53",
690
554
  "slug": "binary-search",
555
+ "uuid": "b1ba445d-4908-4922-acc0-de3a0ec92c53",
691
556
  "core": false,
692
557
  "unlocked_by": null,
693
558
  "difficulty": 1,
694
- "topics": [
695
-
696
- ]
559
+ "topics": null
697
560
  },
698
561
  {
699
- "uuid": "e5a2d445-437d-46a8-889b-fbcd62c70fa9",
700
562
  "slug": "two-bucket",
563
+ "uuid": "e5a2d445-437d-46a8-889b-fbcd62c70fa9",
701
564
  "core": false,
702
565
  "unlocked_by": null,
703
566
  "difficulty": 1,
704
- "topics": [
705
-
706
- ]
567
+ "topics": null
707
568
  },
708
569
  {
709
- "uuid": "4ff8b056-f27d-4bdf-b7af-214448db4260",
710
570
  "slug": "pascals-triangle",
571
+ "uuid": "4ff8b056-f27d-4bdf-b7af-214448db4260",
711
572
  "core": false,
712
573
  "unlocked_by": null,
713
574
  "difficulty": 1,
714
- "topics": [
715
-
716
- ]
575
+ "topics": null
717
576
  },
718
577
  {
719
- "uuid": "4f74b3cd-f995-4b8c-9b57-23f073261d0e",
720
578
  "slug": "custom-set",
579
+ "uuid": "4f74b3cd-f995-4b8c-9b57-23f073261d0e",
721
580
  "core": false,
722
581
  "unlocked_by": null,
723
582
  "difficulty": 1,
724
- "topics": [
725
-
726
- ]
583
+ "topics": null
727
584
  },
728
585
  {
729
- "uuid": "9d6808fb-d367-4df9-a1f0-47ff83b75544",
730
586
  "slug": "minesweeper",
587
+ "uuid": "9d6808fb-d367-4df9-a1f0-47ff83b75544",
731
588
  "core": false,
732
589
  "unlocked_by": null,
733
590
  "difficulty": 1,
734
- "topics": [
735
-
736
- ]
591
+ "topics": null
737
592
  },
738
593
  {
739
- "uuid": "4134d491-8ec5-480b-aa61-37a02689db1f",
740
594
  "slug": "scale-generator",
595
+ "uuid": "4134d491-8ec5-480b-aa61-37a02689db1f",
741
596
  "core": false,
742
597
  "unlocked_by": null,
743
598
  "difficulty": 1,
744
- "topics": [
745
-
746
- ]
599
+ "topics": null
747
600
  },
748
601
  {
749
- "uuid": "00c6f623-2e54-4f90-ae3f-07e493f93c7c",
750
602
  "slug": "protein-translation",
603
+ "uuid": "00c6f623-2e54-4f90-ae3f-07e493f93c7c",
751
604
  "core": false,
752
605
  "unlocked_by": null,
753
606
  "difficulty": 1,
754
- "topics": [
755
-
756
- ]
607
+ "topics": null
757
608
  },
758
609
  {
759
- "uuid": "76ad732a-6e58-403b-ac65-9091d355241f",
760
610
  "slug": "perfect-numbers",
611
+ "uuid": "76ad732a-6e58-403b-ac65-9091d355241f",
761
612
  "core": false,
762
613
  "unlocked_by": null,
763
614
  "difficulty": 1,
764
- "topics": [
765
-
766
- ]
615
+ "topics": null
767
616
  },
768
617
  {
769
- "uuid": "538a6768-bae5-437c-9cdf-765d73a79643",
770
618
  "slug": "connect",
619
+ "uuid": "538a6768-bae5-437c-9cdf-765d73a79643",
771
620
  "core": false,
772
621
  "unlocked_by": null,
773
622
  "difficulty": 1,
774
- "topics": [
775
-
776
- ]
623
+ "topics": null
777
624
  },
778
625
  {
779
- "uuid": "f62e8acb-8370-46e1-ad7f-a6a2644f8602",
780
626
  "slug": "list-ops",
627
+ "uuid": "f62e8acb-8370-46e1-ad7f-a6a2644f8602",
781
628
  "core": false,
782
629
  "unlocked_by": null,
783
630
  "difficulty": 1,
784
- "topics": [
785
-
786
- ]
631
+ "topics": null
787
632
  },
788
633
  {
789
- "uuid": "c55c75fb-6140-4042-967a-39c75b7781bd",
790
634
  "slug": "diamond",
635
+ "uuid": "c55c75fb-6140-4042-967a-39c75b7781bd",
791
636
  "core": false,
792
637
  "unlocked_by": null,
793
638
  "difficulty": 1,
794
- "topics": [
795
-
796
- ]
639
+ "topics": null
797
640
  },
798
641
  {
799
- "uuid": "3ce4bd3e-0380-498a-8d0a-b79cf3fedc10",
800
642
  "slug": "all-your-base",
643
+ "uuid": "3ce4bd3e-0380-498a-8d0a-b79cf3fedc10",
801
644
  "core": false,
802
645
  "unlocked_by": null,
803
646
  "difficulty": 1,
804
- "topics": [
805
-
806
- ]
647
+ "topics": null
807
648
  },
808
649
  {
809
- "uuid": "a79eb8cd-d2db-48f5-a7dc-055039dcee62",
810
650
  "slug": "isogram",
651
+ "uuid": "a79eb8cd-d2db-48f5-a7dc-055039dcee62",
811
652
  "core": false,
812
653
  "unlocked_by": null,
813
654
  "difficulty": 1,
814
- "topics": [
815
-
816
- ]
655
+ "topics": null
817
656
  },
818
657
  {
819
- "uuid": "4a6bc7d3-5d3b-4ad8-96ae-783e17af7c32",
820
658
  "slug": "transpose",
659
+ "uuid": "4a6bc7d3-5d3b-4ad8-96ae-783e17af7c32",
821
660
  "core": false,
822
661
  "unlocked_by": null,
823
662
  "difficulty": 1,
824
- "topics": [
825
-
826
- ]
663
+ "topics": null
827
664
  },
828
665
  {
829
- "uuid": "486becee-9d85-4139-ab89-db254d385ade",
830
666
  "slug": "tournament",
667
+ "uuid": "486becee-9d85-4139-ab89-db254d385ade",
831
668
  "core": false,
832
669
  "unlocked_by": null,
833
670
  "difficulty": 1,
834
- "topics": [
835
-
836
- ]
671
+ "topics": null
837
672
  },
838
673
  {
839
- "uuid": "705f3eb6-55a9-476c-b3f2-e9f3cb0bbe37",
840
674
  "slug": "dominoes",
675
+ "uuid": "705f3eb6-55a9-476c-b3f2-e9f3cb0bbe37",
841
676
  "core": false,
842
677
  "unlocked_by": null,
843
678
  "difficulty": 1,
844
- "topics": [
845
-
846
- ]
679
+ "topics": null
847
680
  },
848
681
  {
849
- "uuid": "af961c87-341c-4dd3-a1eb-272501b9b0e4",
850
682
  "slug": "collatz-conjecture",
683
+ "uuid": "af961c87-341c-4dd3-a1eb-272501b9b0e4",
851
684
  "core": false,
852
685
  "unlocked_by": null,
853
686
  "difficulty": 1,
854
687
  "topics": [
855
- "Control-flow (loops)",
856
- "Control-flow (conditionals)",
857
- "Recursion",
858
- "Integers",
859
- "Algorithms",
860
- "Mathematics"
688
+ "algorithms",
689
+ "control_flow_conditionals",
690
+ "control_flow_loops",
691
+ "integers",
692
+ "mathematics",
693
+ "recursion"
861
694
  ]
862
695
  },
863
696
  {
864
- "uuid": "af5ccf14-eff2-4dc6-b1db-e209cddca62a",
865
697
  "slug": "rotational-cipher",
698
+ "uuid": "af5ccf14-eff2-4dc6-b1db-e209cddca62a",
866
699
  "core": false,
867
700
  "unlocked_by": null,
868
701
  "difficulty": 1,
869
702
  "topics": [
870
- "Control-flow (conditionals)",
871
- "Control-flow (loops)",
872
- "Logic",
873
- "Strings"
703
+ "control_flow_conditionals",
704
+ "control_flow_loops",
705
+ "logic",
706
+ "strings"
874
707
  ]
875
708
  },
876
709
  {
877
- "uuid": "dc6c3e44-1027-4d53-9653-ba06824f8bcf",
878
710
  "slug": "change",
711
+ "uuid": "dc6c3e44-1027-4d53-9653-ba06824f8bcf",
879
712
  "core": false,
880
713
  "unlocked_by": null,
881
714
  "difficulty": 5,
882
715
  "topics": [
883
- "Algorithms",
884
- "Control-flow (conditionals)",
885
- "Control-flow (loops)",
886
- "Logic"
716
+ "algorithms",
717
+ "control_flow_conditionals",
718
+ "control_flow_loops",
719
+ "logic"
887
720
  ]
888
721
  },
889
722
  {
890
- "uuid": "1304b188-6d08-4361-be40-c6b1b88e5e54",
891
723
  "slug": "two-fer",
724
+ "uuid": "1304b188-6d08-4361-be40-c6b1b88e5e54",
892
725
  "core": false,
893
726
  "unlocked_by": null,
894
727
  "difficulty": 1,
895
728
  "topics": [
896
- "Control-flow (conditionals)",
897
- "Strings"
729
+ "control_flow_conditionals",
730
+ "strings"
898
731
  ]
899
732
  },
900
733
  {
901
- "uuid": "cae4e000-3aac-41f7-b727-f9cce12d058d",
902
734
  "slug": "octal",
735
+ "uuid": "cae4e000-3aac-41f7-b727-f9cce12d058d",
903
736
  "deprecated": true
904
737
  },
905
738
  {
906
- "uuid": "89bd3d71-000f-4cd9-9a84-ad1b22ddbd33",
907
739
  "slug": "point-mutations",
740
+ "uuid": "89bd3d71-000f-4cd9-9a84-ad1b22ddbd33",
908
741
  "deprecated": true
909
742
  },
910
743
  {
911
- "uuid": "d75bd7c0-52c5-44f2-a046-f63cb332425f",
912
744
  "slug": "complex-numbers",
745
+ "uuid": "d75bd7c0-52c5-44f2-a046-f63cb332425f",
913
746
  "difficulty": 3,
914
- "topics": [ "Mathematics" ]
747
+ "topics": [
748
+ "mathematics"
749
+ ]
915
750
  },
916
751
  {
917
- "uuid": "a0aac827-8f7a-4065-9d05-a57009f5668d",
918
752
  "slug": "isbn-verifier",
753
+ "uuid": "a0aac827-8f7a-4065-9d05-a57009f5668d",
919
754
  "core": false,
920
755
  "unlocked_by": null,
921
756
  "difficulty": 2,
922
757
  "topics": [
923
- "strings",
924
- "logic"
758
+ "logic",
759
+ "strings"
925
760
  ]
926
761
  },
927
762
  {
928
- "uuid": "0ec96460-08be-49a0-973a-4336f21b763c",
929
763
  "slug": "book-store",
764
+ "uuid": "0ec96460-08be-49a0-973a-4336f21b763c",
930
765
  "core": false,
931
766
  "unlocked_by": null,
932
767
  "difficulty": 6,
933
768
  "topics": [
934
- "loops",
935
769
  "arrays",
936
- "logic"
770
+ "logic",
771
+ "loops"
937
772
  ]
938
773
  }
939
- ],
940
- "foregone": [
941
-
942
774
  ]
943
- }
775
+ }