trackler 2.2.1.19 → 2.2.1.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config.json +11 -0
  4. data/tracks/bash/docs/ABOUT.md +5 -0
  5. data/tracks/bash/exercises/word-count/README.md +24 -0
  6. data/tracks/bash/exercises/word-count/example.awk +12 -0
  7. data/tracks/bash/exercises/word-count/example.sh +21 -0
  8. data/tracks/bash/exercises/word-count/word_count_test.sh +84 -0
  9. data/tracks/coffeescript/config/maintainers.json +5 -11
  10. data/tracks/csharp/.travis.yml +3 -0
  11. data/tracks/delphi/config/maintainers.json +1 -1
  12. data/tracks/ecmascript/config.json +108 -108
  13. data/tracks/elixir/exercises/phone-number/phone_number_test.exs +21 -1
  14. data/tracks/factor/docs/SNIPPET.txt +5 -0
  15. data/tracks/idris/docs/TESTS.md +7 -0
  16. data/tracks/java/config.json +47 -47
  17. data/tracks/javascript/config.json +103 -103
  18. data/tracks/julia/config.json +121 -121
  19. data/tracks/julia/docs/RESOURCES.md +1 -1
  20. data/tracks/julia/docs/SNIPPET.txt +8 -0
  21. data/tracks/objective-c/config.json +2 -3
  22. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.m +11 -32
  23. data/tracks/ocaml/.travis-ci.sh +1 -1
  24. data/tracks/ocaml/.travis.yml +1 -1
  25. data/tracks/ocaml/README.md +1 -1
  26. data/tracks/ocaml/exercises/change/test.ml +24 -21
  27. data/tracks/ocaml/tools/test-generator/src/codegen.ml +3 -7
  28. data/tracks/ocaml/tools/test-generator/src/controller.ml +4 -5
  29. data/tracks/ocaml/tools/test-generator/src/languages.ml +4 -3
  30. data/tracks/ocaml/tools/test-generator/src/model.ml +1 -2
  31. data/tracks/ocaml/tools/test-generator/src/ocaml_special_cases.ml +19 -18
  32. data/tracks/ocaml/tools/test-generator/src/parser.ml +12 -17
  33. data/tracks/ocaml/tools/test-generator/src/purescript_special_cases.ml +11 -3
  34. data/tracks/ocaml/tools/test-generator/test/codegen_test.ml +2 -3
  35. data/tracks/ocaml/tools/test-generator/test/ocaml_special_cases_test.ml +12 -4
  36. data/tracks/ocaml/tools/test-generator/test/parser_test.ml +10 -10
  37. data/tracks/purescript/exercises/bob/test/Main.purs +5 -5
  38. data/tracks/ruby/bin/generate +1 -1
  39. data/tracks/ruby/docs/24pullrequests.md +1 -1
  40. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +24 -24
  41. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +1 -1
  42. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +1 -1
  43. data/tracks/ruby/exercises/bowling/bowling_test.rb +10 -10
  44. data/tracks/ruby/exercises/change/.meta/.version +1 -1
  45. data/tracks/ruby/exercises/change/.meta/solutions/change.rb +1 -1
  46. data/tracks/ruby/exercises/change/change_test.rb +7 -2
  47. data/tracks/ruby/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb +1 -1
  48. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +1 -1
  49. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +1 -1
  50. data/tracks/ruby/exercises/hamming/.meta/generator/hamming_case.rb +5 -1
  51. data/tracks/ruby/exercises/hamming/hamming_test.rb +7 -7
  52. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +1 -1
  53. data/tracks/ruby/exercises/pangram/.meta/.version +1 -1
  54. data/tracks/ruby/exercises/pangram/.meta/solutions/pangram.rb +1 -1
  55. data/tracks/ruby/exercises/pangram/pangram_test.rb +3 -3
  56. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -4
  57. data/tracks/ruby/exercises/roman-numerals/.meta/solutions/roman_numerals.rb +1 -1
  58. data/tracks/ruby/exercises/space-age/.meta/generator/test_template.erb +1 -1
  59. data/tracks/ruby/lib/generator/test_template.erb +1 -1
  60. data/tracks/ruby/lib/generator/underscore.rb +1 -1
  61. data/tracks/ruby/lib/helper.rb +4 -4
  62. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha-beta/.meta/generator/test_template.erb +1 -1
  63. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/.version +0 -0
  64. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/alpha_case.rb +0 -0
  65. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/test_template.erb +1 -1
  66. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/solutions/alpha.rb +0 -0
  67. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/.version +0 -0
  68. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/generator/beta_case.rb +0 -0
  69. data/tracks/ruby/test/fixtures/{xruby → ruby}/lib/generator/test_template.erb +1 -1
  70. data/tracks/ruby/test/generator/files/track_files_test.rb +4 -4
  71. data/tracks/ruby/test/generator/implementation_test.rb +1 -1
  72. data/tracks/ruby/test/generator/template_values_test.rb +1 -1
  73. data/tracks/scala/exercises/rail-fence-cipher/src/main/scala/{RailFenceCipher.scala → .keep} +0 -0
  74. data/tracks/scala/exercises/rail-fence-cipher/src/test/scala/RailFenceCipherTest.scala +16 -23
  75. data/tracks/scala/exercises/say/src/test/scala/SayTest.scala +20 -33
  76. data/tracks/scala/testgen/src/main/scala/RailFenceCipherTestGenerator.scala +9 -53
  77. data/tracks/scala/testgen/src/main/scala/SayTestGenerator.scala +50 -0
  78. data/tracks/sml/bin/generate +1 -1
  79. data/tracks/sml/config.json +30 -0
  80. data/tracks/sml/exercises/all-your-base/README.md +61 -0
  81. data/tracks/sml/exercises/all-your-base/all-your-base.sml +2 -0
  82. data/tracks/sml/exercises/all-your-base/example.sml +36 -0
  83. data/tracks/sml/exercises/all-your-base/test.sml +75 -0
  84. data/tracks/sml/exercises/all-your-base/testlib.sml +159 -0
  85. data/tracks/sml/exercises/difference-of-squares/example.sml +3 -6
  86. data/tracks/sml/exercises/list-ops/README.md +40 -0
  87. data/tracks/sml/exercises/list-ops/example.sml +34 -0
  88. data/tracks/sml/exercises/list-ops/list-ops.sml +23 -0
  89. data/tracks/sml/exercises/list-ops/test.sml +85 -0
  90. data/tracks/sml/exercises/list-ops/testlib.sml +159 -0
  91. data/tracks/sml/exercises/prime-factors/README.md +66 -0
  92. data/tracks/sml/exercises/prime-factors/example.sml +15 -0
  93. data/tracks/sml/exercises/prime-factors/prime-factors.sml +2 -0
  94. data/tracks/sml/exercises/prime-factors/test.sml +35 -0
  95. data/tracks/sml/exercises/prime-factors/testlib.sml +159 -0
  96. metadata +34 -11
@@ -77,6 +77,16 @@ defmodule PhoneTest do
77
77
  assert Phone.area_code("12125550100") == "212"
78
78
  end
79
79
 
80
+ @tag :pending
81
+ test "invalid area code" do
82
+ assert Phone.area_code("(100) 555-1234") == "000"
83
+ end
84
+
85
+ @tag :pending
86
+ test "no area code" do
87
+ assert Phone.area_code("867.5309") == "000"
88
+ end
89
+
80
90
  @tag :pending
81
91
  test "pretty print" do
82
92
  assert Phone.pretty("2125550100") == "(212) 555-0100"
@@ -84,6 +94,16 @@ defmodule PhoneTest do
84
94
 
85
95
  @tag :pending
86
96
  test "pretty print with full US phone number" do
87
- assert Phone.pretty("12125550100") == "(212) 555-0100"
97
+ assert Phone.pretty("+1 (303) 555-1212") == "(303) 555-1212"
98
+ end
99
+
100
+ @tag :pending
101
+ test "pretty print invalid US phone number" do
102
+ assert Phone.pretty("212-155-0100") == "(000) 000-0000"
103
+ end
104
+
105
+ @tag :pending
106
+ test "pretty print invalid, short US phone number" do
107
+ assert Phone.pretty("867.5309") == "(000) 000-0000"
88
108
  end
89
109
  end
@@ -0,0 +1,5 @@
1
+ USING: formatting kernel sequences ;
2
+ IN: hello-world
3
+
4
+ : say-hello ( -- string )
5
+ "Hello, World!" ;
@@ -0,0 +1,7 @@
1
+ To run tests from the command line:
2
+
3
+ ```bash
4
+ idris --testpkg HelloWorld.ipkg
5
+ ```
6
+
7
+ (Replace `HelloWorld.ipkg` with the `.ipkg` file in the root directory of each exercise.)
@@ -96,7 +96,7 @@
96
96
  "uuid": "d916e4f8-fda1-41c0-ab24-79e8fc3f1272",
97
97
  "slug": "raindrops",
98
98
  "core": false,
99
- "unlocked_by": "two-fer",
99
+ "unlocked_by": "hello-world",
100
100
  "difficulty": 3,
101
101
  "topics": [
102
102
 
@@ -136,7 +136,7 @@
136
136
  "uuid": "2f244afc-3e7b-4f89-92af-e2b427f4ef35",
137
137
  "slug": "sum-of-multiples",
138
138
  "core": false,
139
- "unlocked_by": "perfect-numbers",
139
+ "unlocked_by": "difference-of-squares",
140
140
  "difficulty": 4,
141
141
  "topics": [
142
142
 
@@ -176,7 +176,7 @@
176
176
  "uuid": "b7310b6e-435c-4d5f-b2bd-31e586d0f238",
177
177
  "slug": "largest-series-product",
178
178
  "core": false,
179
- "unlocked_by": "luhn",
179
+ "unlocked_by": "hamming",
180
180
  "difficulty": 4,
181
181
  "topics": [
182
182
 
@@ -186,7 +186,7 @@
186
186
  "uuid": "6791d01f-bae4-4b63-ae76-86529ac49e36",
187
187
  "slug": "sieve",
188
188
  "core": false,
189
- "unlocked_by": "sum-of-multiples",
189
+ "unlocked_by": "difference-of-squares",
190
190
  "difficulty": 4,
191
191
  "topics": [
192
192
 
@@ -196,7 +196,7 @@
196
196
  "uuid": "581afdbb-dfb6-4dc5-9554-a025b5469a3c",
197
197
  "slug": "twelve-days",
198
198
  "core": false,
199
- "unlocked_by": "raindrops",
199
+ "unlocked_by": "two-fer",
200
200
  "difficulty": 4,
201
201
  "topics": [
202
202
 
@@ -236,7 +236,7 @@
236
236
  "uuid": "2c69db99-648d-4bd7-8012-1fbdeff6ca0a",
237
237
  "slug": "nth-prime",
238
238
  "core": false,
239
- "unlocked_by": "collatz-conjecture",
239
+ "unlocked_by": "triangle",
240
240
  "difficulty": 4,
241
241
  "topics": [
242
242
 
@@ -256,7 +256,7 @@
256
256
  "uuid": "ecbd997b-86f4-4e11-9ff0-706ac2899415",
257
257
  "slug": "diamond",
258
258
  "core": false,
259
- "unlocked_by": "twelve-days",
259
+ "unlocked_by": "two-fer",
260
260
  "difficulty": 4,
261
261
  "topics": [
262
262
 
@@ -266,7 +266,7 @@
266
266
  "uuid": "c3e89c7c-3a8a-4ddc-b653-9b0ff9e1d7d8",
267
267
  "slug": "isogram",
268
268
  "core": false,
269
- "unlocked_by": "pangram",
269
+ "unlocked_by": "hello-world",
270
270
  "difficulty": 4,
271
271
  "topics": [
272
272
 
@@ -286,7 +286,7 @@
286
286
  "uuid": "38bc80ae-d842-4c04-a797-48edf322504d",
287
287
  "slug": "pig-latin",
288
288
  "core": false,
289
- "unlocked_by": "rna-transcription",
289
+ "unlocked_by": "hello-world",
290
290
  "difficulty": 5,
291
291
  "topics": [
292
292
 
@@ -296,7 +296,7 @@
296
296
  "uuid": "5f9139e7-9fbb-496a-a0d7-a946283033de",
297
297
  "slug": "phone-number",
298
298
  "core": false,
299
- "unlocked_by": "largest-series-product",
299
+ "unlocked_by": "hamming",
300
300
  "difficulty": 5,
301
301
  "topics": [
302
302
 
@@ -306,7 +306,7 @@
306
306
  "uuid": "2d80fdfc-5bd7-4b67-9fbe-8ab820d89051",
307
307
  "slug": "nucleotide-count",
308
308
  "core": false,
309
- "unlocked_by": "phone-number",
309
+ "unlocked_by": "hamming",
310
310
  "difficulty": 5,
311
311
  "topics": [
312
312
 
@@ -346,7 +346,7 @@
346
346
  "uuid": "599c08ec-7338-46ed-99f8-a76f78f724e6",
347
347
  "slug": "prime-factors",
348
348
  "core": false,
349
- "unlocked_by": "nth-prime",
349
+ "unlocked_by": "triangle",
350
350
  "difficulty": 5,
351
351
  "topics": [
352
352
 
@@ -356,7 +356,7 @@
356
356
  "uuid": "6a617ddb-04e3-451c-bb30-27ccd0be9125",
357
357
  "slug": "allergies",
358
358
  "core": false,
359
- "unlocked_by": "secret-handshake",
359
+ "unlocked_by": "gigasecond",
360
360
  "difficulty": 5,
361
361
  "topics": [
362
362
 
@@ -366,7 +366,7 @@
366
366
  "uuid": "34cd328c-cd96-492b-abd4-2b8716cdcd9a",
367
367
  "slug": "bob",
368
368
  "core": false,
369
- "unlocked_by": "diamond",
369
+ "unlocked_by": "two-fer",
370
370
  "difficulty": 5,
371
371
  "topics": [
372
372
 
@@ -376,7 +376,7 @@
376
376
  "uuid": "d2a76905-1c8c-4b03-b4f7-4fbff19329f3",
377
377
  "slug": "pascals-triangle",
378
378
  "core": false,
379
- "unlocked_by": "kindergarten-garden",
379
+ "unlocked_by": "matrix",
380
380
  "difficulty": 5,
381
381
  "topics": [
382
382
 
@@ -396,7 +396,7 @@
396
396
  "uuid": "af80d7f4-c7d0-4d0b-9c30-09da120f6bb9",
397
397
  "slug": "series",
398
398
  "core": false,
399
- "unlocked_by": "nucleotide-count",
399
+ "unlocked_by": "hamming",
400
400
  "difficulty": 5,
401
401
  "topics": [
402
402
 
@@ -406,7 +406,7 @@
406
406
  "uuid": "d36ce010-210f-4e9a-9d6c-cb933e0a59af",
407
407
  "slug": "atbash-cipher",
408
408
  "core": false,
409
- "unlocked_by": "run-length-encoding",
409
+ "unlocked_by": "rotational-cipher",
410
410
  "difficulty": 5,
411
411
  "topics": [
412
412
 
@@ -416,7 +416,7 @@
416
416
  "uuid": "163fcc6b-c054-4232-a88b-0aded846a6eb",
417
417
  "slug": "spiral-matrix",
418
418
  "core": false,
419
- "unlocked_by": "pascals-triangle",
419
+ "unlocked_by": "matrix",
420
420
  "difficulty": 6,
421
421
  "topics": [
422
422
 
@@ -426,7 +426,7 @@
426
426
  "uuid": "3e728cd4-5e5f-4c69-8a53-bc36d020fcdb",
427
427
  "slug": "roman-numerals",
428
428
  "core": false,
429
- "unlocked_by": "series",
429
+ "unlocked_by": "hamming",
430
430
  "difficulty": 6,
431
431
  "topics": [
432
432
 
@@ -436,7 +436,7 @@
436
436
  "uuid": "57b76837-4610-466f-9373-d5c2697625f1",
437
437
  "slug": "transpose",
438
438
  "core": false,
439
- "unlocked_by": "spiral-matrix",
439
+ "unlocked_by": "matrix",
440
440
  "difficulty": 6,
441
441
  "topics": [
442
442
 
@@ -446,7 +446,7 @@
446
446
  "uuid": "6b51aca3-3451-4a64-ad7b-00b151d7548a",
447
447
  "slug": "house",
448
448
  "core": false,
449
- "unlocked_by": "bob",
449
+ "unlocked_by": "two-fer",
450
450
  "difficulty": 6,
451
451
  "topics": [
452
452
 
@@ -456,7 +456,7 @@
456
456
  "uuid": "dd3e6fd6-5359-4978-acd7-c39374cead4d",
457
457
  "slug": "food-chain",
458
458
  "core": false,
459
- "unlocked_by": "house",
459
+ "unlocked_by": "two-fer",
460
460
  "difficulty": 6,
461
461
  "topics": [
462
462
 
@@ -466,7 +466,7 @@
466
466
  "uuid": "56943095-de76-40bf-b42b-fa3e70f8df5e",
467
467
  "slug": "beer-song",
468
468
  "core": false,
469
- "unlocked_by": "food-chain",
469
+ "unlocked_by": "two-fer",
470
470
  "difficulty": 6,
471
471
  "topics": [
472
472
 
@@ -506,7 +506,7 @@
506
506
  "uuid": "b4af5da1-601f-4b0f-bfb8-4a381851090c",
507
507
  "slug": "grade-school",
508
508
  "core": false,
509
- "unlocked_by": "etl",
509
+ "unlocked_by": "word-count",
510
510
  "difficulty": 6,
511
511
  "topics": [
512
512
 
@@ -516,7 +516,7 @@
516
516
  "uuid": "993bde9d-7774-4e7a-a381-9eee75f28ecb",
517
517
  "slug": "robot-simulator",
518
518
  "core": false,
519
- "unlocked_by": "allergies",
519
+ "unlocked_by": "secret-handshake",
520
520
  "difficulty": 6,
521
521
  "topics": [
522
522
 
@@ -536,7 +536,7 @@
536
536
  "uuid": "416a1489-12af-4593-8540-0f55285c96b4",
537
537
  "slug": "minesweeper",
538
538
  "core": false,
539
- "unlocked_by": "queen-attack",
539
+ "unlocked_by": "scrabble-score",
540
540
  "difficulty": 6,
541
541
  "topics": [
542
542
 
@@ -546,7 +546,7 @@
546
546
  "uuid": "3310a3cd-c0cb-45fa-8c51-600178be904a",
547
547
  "slug": "wordy",
548
548
  "core": false,
549
- "unlocked_by": "robot-simulator",
549
+ "unlocked_by": "secret-handshake",
550
550
  "difficulty": 6,
551
551
  "topics": [
552
552
 
@@ -556,7 +556,7 @@
556
556
  "uuid": "f7c2e4b5-1995-4dfe-b827-c9aff8ac5332",
557
557
  "slug": "all-your-base",
558
558
  "core": false,
559
- "unlocked_by": "sieve",
559
+ "unlocked_by": "saddle-points",
560
560
  "difficulty": 6,
561
561
  "topics": [
562
562
 
@@ -576,7 +576,7 @@
576
576
  "uuid": "4b3f7771-c642-4278-a3d9-2fb958f26361",
577
577
  "slug": "bowling",
578
578
  "core": false,
579
- "unlocked_by": "minesweeper",
579
+ "unlocked_by": "scrabble-score",
580
580
  "difficulty": 6,
581
581
  "topics": [
582
582
 
@@ -586,7 +586,7 @@
586
586
  "uuid": "fb10dc2f-0ba1-44b6-8365-5e48e86d1283",
587
587
  "slug": "anagram",
588
588
  "core": false,
589
- "unlocked_by": "isogram",
589
+ "unlocked_by": "hello-world",
590
590
  "difficulty": 7,
591
591
  "topics": [
592
592
 
@@ -606,7 +606,7 @@
606
606
  "uuid": "b53bde52-cb5f-4d43-86ec-18aa509d62f9",
607
607
  "slug": "word-search",
608
608
  "core": false,
609
- "unlocked_by": "bowling",
609
+ "unlocked_by": "scrabble-score",
610
610
  "difficulty": 7,
611
611
  "topics": [
612
612
 
@@ -616,7 +616,7 @@
616
616
  "uuid": "e3e5ffe5-cfc1-467e-a28a-da0302130144",
617
617
  "slug": "simple-linked-list",
618
618
  "core": false,
619
- "unlocked_by": "sublist",
619
+ "unlocked_by": "linked-list",
620
620
  "difficulty": 7,
621
621
  "topics": [
622
622
 
@@ -646,7 +646,7 @@
646
646
  "uuid": "162bebdc-9bf2-43c0-8460-a91f5fc16147",
647
647
  "slug": "crypto-square",
648
648
  "core": false,
649
- "unlocked_by": "atbash-cipher",
649
+ "unlocked_by": "rotational-cipher",
650
650
  "difficulty": 7,
651
651
  "topics": [
652
652
 
@@ -656,7 +656,7 @@
656
656
  "uuid": "57eeac00-741c-4843-907a-51f0ac5ea4cb",
657
657
  "slug": "poker",
658
658
  "core": false,
659
- "unlocked_by": "word-search",
659
+ "unlocked_by": "scrabble-score",
660
660
  "difficulty": 7,
661
661
  "topics": [
662
662
  "Parsing",
@@ -668,7 +668,7 @@
668
668
  "uuid": "97c8fcd4-85b6-41cb-9de2-b4e1b4951222",
669
669
  "slug": "clock",
670
670
  "core": false,
671
- "unlocked_by": "all-your-base",
671
+ "unlocked_by": "saddle-points",
672
672
  "difficulty": 7,
673
673
  "topics": [
674
674
 
@@ -678,7 +678,7 @@
678
678
  "uuid": "5cbc6a67-3a53-4aad-ae68-ff469525437f",
679
679
  "slug": "ocr-numbers",
680
680
  "core": false,
681
- "unlocked_by": "roman-numerals",
681
+ "unlocked_by": "robot-name",
682
682
  "difficulty": 8,
683
683
  "topics": [
684
684
 
@@ -688,7 +688,7 @@
688
688
  "uuid": "626dc25a-062c-4053-a8c1-788e4dc44ca0",
689
689
  "slug": "circular-buffer",
690
690
  "core": false,
691
- "unlocked_by": "simple-linked-list",
691
+ "unlocked_by": "linked-list",
692
692
  "difficulty": 8,
693
693
  "topics": [
694
694
  "Queues",
@@ -700,7 +700,7 @@
700
700
  "uuid": "64cda115-919a-4eef-9a45-9ec5d1af98cc",
701
701
  "slug": "rectangles",
702
702
  "core": false,
703
- "unlocked_by": "ocr-numbers",
703
+ "unlocked_by": "robot-name",
704
704
  "difficulty": 8,
705
705
  "topics": [
706
706
 
@@ -710,7 +710,7 @@
710
710
  "uuid": "e5f05d00-fe5b-4d78-b2fa-934c1c9afb32",
711
711
  "slug": "book-store",
712
712
  "core": false,
713
- "unlocked_by": "bracket-push",
713
+ "unlocked_by": "flatten-array",
714
714
  "difficulty": 8,
715
715
  "topics": [
716
716
 
@@ -720,7 +720,7 @@
720
720
  "uuid": "f654831f-c34b-44f5-9dd5-054efbb486f2",
721
721
  "slug": "simple-cipher",
722
722
  "core": false,
723
- "unlocked_by": "crypto-square",
723
+ "unlocked_by": "rotational-cipher",
724
724
  "difficulty": 8,
725
725
  "topics": [
726
726
 
@@ -730,7 +730,7 @@
730
730
  "uuid": "52d11278-0d65-4b5b-b387-1374fced3243",
731
731
  "slug": "complex-numbers",
732
732
  "core": false,
733
- "unlocked_by": "prime-factors",
733
+ "unlocked_by": "triangle",
734
734
  "difficulty": 8,
735
735
  "topics": [
736
736
 
@@ -740,7 +740,7 @@
740
740
  "uuid": "a9836565-5c39-4285-b83a-53408be36ccc",
741
741
  "slug": "list-ops",
742
742
  "core": false,
743
- "unlocked_by": "circular-buffer",
743
+ "unlocked_by": "linked-list",
744
744
  "difficulty": 8,
745
745
  "topics": [
746
746
 
@@ -750,7 +750,7 @@
750
750
  "uuid": "bac1f4bc-eea9-43c1-8e95-097347f5925e",
751
751
  "slug": "change",
752
752
  "core": false,
753
- "unlocked_by": "book-store",
753
+ "unlocked_by": "flatten-array",
754
754
  "difficulty": 8,
755
755
  "topics": [
756
756
 
@@ -760,7 +760,7 @@
760
760
  "uuid": "873c05de-b5f5-4c5b-97f0-d1ede8a82832",
761
761
  "slug": "palindrome-products",
762
762
  "core": false,
763
- "unlocked_by": "clock",
763
+ "unlocked_by": "saddle-points",
764
764
  "difficulty": 8,
765
765
  "topics": [
766
766
 
@@ -770,7 +770,7 @@
770
770
  "uuid": "88505f95-89e5-4a08-8ed2-208eb818cdf1",
771
771
  "slug": "pythagorean-triplet",
772
772
  "core": false,
773
- "unlocked_by": "complex-numbers",
773
+ "unlocked_by": "triangle",
774
774
  "difficulty": 9,
775
775
  "topics": [
776
776
 
@@ -780,7 +780,7 @@
780
780
  "uuid": "f0c0316d-3fb5-455e-952a-91161e7fb298",
781
781
  "slug": "forth",
782
782
  "core": false,
783
- "unlocked_by": "wordy",
783
+ "unlocked_by": "secret-handshake",
784
784
  "difficulty": 9,
785
785
  "topics": [
786
786
 
@@ -790,7 +790,7 @@
790
790
  "uuid": "377fe38b-08ad-4f3a-8118-a43c10f7b9b2",
791
791
  "slug": "custom-set",
792
792
  "core": false,
793
- "unlocked_by": "list-ops",
793
+ "unlocked_by": "linked-list",
794
794
  "difficulty": 10,
795
795
  "topics": [
796
796