trackler 2.2.1.0 → 2.2.1.1

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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/list-ops/canonical-data.json +27 -11
  4. data/problem-specifications/exercises/rotational-cipher/canonical-data.json +8 -8
  5. data/tracks/clojure/config.json +0 -2
  6. data/tracks/dart/config.json +0 -2
  7. data/tracks/elisp/config.json +0 -2
  8. data/tracks/elixir/config.json +0 -2
  9. data/tracks/erlang/config.json +190 -83
  10. data/tracks/go/config.json +0 -2
  11. data/tracks/groovy/config.json +55 -17
  12. data/tracks/idris/config.json +0 -2
  13. data/tracks/java/POLICIES.md +9 -1
  14. data/tracks/java/exercises/nucleotide-count/src/example/java/{DNA.java → NucleotideCounter.java} +4 -4
  15. data/tracks/java/exercises/nucleotide-count/src/test/java/{NucleotideTest.java → NucleotideCounterTest.java} +21 -21
  16. data/tracks/kotlin/exercises/rotational-cipher/README.md +39 -0
  17. data/tracks/lfe/config.json +0 -2
  18. data/tracks/lisp/config.json +4 -6
  19. data/tracks/lisp/config/exercise_readme.go.tmpl +16 -0
  20. data/tracks/lisp/exercises/allergies/README.md +84 -0
  21. data/tracks/lisp/exercises/anagram/README.md +60 -0
  22. data/tracks/lisp/exercises/atbash-cipher/README.md +81 -0
  23. data/tracks/lisp/exercises/beer-song/README.md +374 -0
  24. data/tracks/lisp/exercises/binary/README.md +82 -0
  25. data/tracks/lisp/exercises/bob/README.md +65 -0
  26. data/tracks/lisp/exercises/crypto-square/README.md +121 -0
  27. data/tracks/lisp/exercises/difference-of-squares/README.md +66 -0
  28. data/tracks/lisp/exercises/etl/README.md +98 -0
  29. data/tracks/lisp/exercises/gigasecond/README.md +58 -0
  30. data/tracks/lisp/exercises/grade-school/README.md +89 -0
  31. data/tracks/lisp/exercises/grains/README.md +81 -0
  32. data/tracks/lisp/exercises/hamming/README.md +89 -0
  33. data/tracks/lisp/exercises/leap/README.md +80 -0
  34. data/tracks/lisp/exercises/meetup/README.md +77 -0
  35. data/tracks/lisp/exercises/nucleotide-count/README.md +80 -0
  36. data/tracks/lisp/exercises/pascals-triangle/README.md +68 -0
  37. data/tracks/lisp/exercises/phone-number/README.md +81 -0
  38. data/tracks/lisp/exercises/prime-factors/README.md +83 -0
  39. data/tracks/lisp/exercises/raindrops/README.md +71 -0
  40. data/tracks/lisp/exercises/rna-transcription/README.md +72 -0
  41. data/tracks/lisp/exercises/robot-name/README.md +69 -0
  42. data/tracks/lisp/exercises/roman-numerals/README.md +96 -0
  43. data/tracks/lisp/exercises/scrabble-score/README.md +91 -0
  44. data/tracks/lisp/exercises/sieve/README.md +81 -0
  45. data/tracks/lisp/exercises/space-age/README.md +71 -0
  46. data/tracks/lisp/exercises/strain/README.md +87 -0
  47. data/tracks/lisp/exercises/triangle/README.md +73 -0
  48. data/tracks/lisp/exercises/trinary/README.md +75 -0
  49. data/tracks/lisp/exercises/word-count/README.md +66 -0
  50. data/tracks/perl5/config.json +0 -2
  51. data/tracks/perl6/config.json +0 -2
  52. data/tracks/php/config.json +0 -2
  53. data/tracks/pony/config.json +33 -0
  54. data/tracks/python/exercises/scale-generator/scale_generator_test.py +1 -1
  55. data/tracks/racket/config.json +0 -2
  56. data/tracks/ruby/config.json +0 -2
  57. data/tracks/rust/.gitignore +0 -1
  58. data/tracks/rust/_test/check-exercises.sh +7 -1
  59. data/tracks/rust/config.json +11 -0
  60. data/tracks/rust/config/maintainers.json +54 -0
  61. data/tracks/rust/exercises/acronym/src/lib.rs +0 -0
  62. data/tracks/rust/exercises/all-your-base/src/lib.rs +35 -0
  63. data/tracks/rust/exercises/allergies/src/lib.rs +0 -0
  64. data/tracks/rust/exercises/alphametics/src/lib.rs +5 -0
  65. data/tracks/rust/exercises/anagram/src/lib.rs +0 -0
  66. data/tracks/rust/exercises/atbash-cipher/src/lib.rs +0 -0
  67. data/tracks/rust/exercises/beer-song/src/lib.rs +0 -0
  68. data/tracks/rust/exercises/bob/src/lib.rs +0 -0
  69. data/tracks/rust/exercises/bowling/src/lib.rs +0 -0
  70. data/tracks/rust/exercises/bracket-push/src/lib.rs +0 -0
  71. data/tracks/rust/exercises/circular-buffer/src/lib.rs +0 -0
  72. data/tracks/rust/exercises/custom-set/src/lib.rs +0 -0
  73. data/tracks/rust/exercises/difference-of-squares/src/lib.rs +0 -0
  74. data/tracks/rust/exercises/dominoes/src/lib.rs +0 -0
  75. data/tracks/rust/exercises/etl/src/lib.rs +0 -0
  76. data/tracks/rust/exercises/forth/src/lib.rs +23 -0
  77. data/tracks/rust/exercises/gigasecond/src/lib.rs +7 -0
  78. data/tracks/rust/exercises/grade-school/src/lib.rs +26 -0
  79. data/tracks/rust/exercises/grains/src/lib.rs +7 -0
  80. data/tracks/rust/exercises/hamming/src/lib.rs +0 -0
  81. data/tracks/rust/exercises/hello-world/src/lib.rs +5 -0
  82. data/tracks/rust/exercises/hexadecimal/src/lib.rs +0 -0
  83. data/tracks/rust/exercises/largest-series-product/src/lib.rs +0 -0
  84. data/tracks/rust/exercises/leap/src/lib.rs +0 -0
  85. data/tracks/rust/exercises/luhn-from/src/lib.rs +0 -0
  86. data/tracks/rust/exercises/luhn-trait/src/lib.rs +0 -0
  87. data/tracks/rust/exercises/luhn/src/lib.rs +0 -0
  88. data/tracks/rust/exercises/minesweeper/src/lib.rs +0 -0
  89. data/tracks/rust/exercises/nucleotide-codons/src/lib.rs +0 -0
  90. data/tracks/rust/exercises/nucleotide-count/src/lib.rs +0 -0
  91. data/tracks/rust/exercises/ocr-numbers/src/lib.rs +7 -0
  92. data/tracks/rust/exercises/pangram/src/lib.rs +0 -0
  93. data/tracks/rust/exercises/parallel-letter-frequency/src/lib.rs +0 -0
  94. data/tracks/rust/exercises/pascals-triangle/src/lib.rs +11 -0
  95. data/tracks/rust/exercises/phone-number/src/lib.rs +0 -0
  96. data/tracks/rust/exercises/pig-latin/src/lib.rs +0 -0
  97. data/tracks/rust/exercises/protein-translation/src/lib.rs +0 -0
  98. data/tracks/rust/exercises/queen-attack/src/lib.rs +0 -0
  99. data/tracks/rust/exercises/raindrops/src/lib.rs +0 -0
  100. data/tracks/rust/exercises/react/src/lib.rs +89 -0
  101. data/tracks/rust/exercises/rectangles/src/lib.rs +0 -0
  102. data/tracks/rust/exercises/rna-transcription/src/lib.rs +0 -0
  103. data/tracks/rust/exercises/robot-name/src/lib.rs +0 -0
  104. data/tracks/rust/exercises/robot-simulator/src/lib.rs +44 -0
  105. data/tracks/rust/exercises/roman-numerals/src/lib.rs +0 -0
  106. data/tracks/rust/exercises/rotational-cipher/src/lib.rs +0 -0
  107. data/tracks/rust/exercises/run-length-encoding/src/lib.rs +0 -0
  108. data/tracks/rust/exercises/say/.meta/hints.md +19 -0
  109. data/tracks/rust/exercises/say/Cargo.lock +4 -0
  110. data/tracks/rust/exercises/say/Cargo.toml +4 -0
  111. data/tracks/rust/exercises/say/README.md +122 -0
  112. data/tracks/rust/exercises/say/example.rs +56 -0
  113. data/tracks/rust/exercises/say/src/lib.rs +4 -0
  114. data/tracks/rust/exercises/say/tests/say.rs +130 -0
  115. data/tracks/rust/exercises/scrabble-score/src/lib.rs +0 -0
  116. data/tracks/rust/exercises/sieve/src/lib.rs +0 -0
  117. data/tracks/rust/exercises/space-age/src/lib.rs +35 -0
  118. data/tracks/rust/exercises/sublist/src/lib.rs +0 -0
  119. data/tracks/rust/exercises/sum-of-multiples/src/lib.rs +0 -0
  120. data/tracks/rust/exercises/tournament/src/lib.rs +0 -0
  121. data/tracks/rust/exercises/triangle/src/lib.rs +0 -0
  122. data/tracks/rust/exercises/variable-length-quantity/src/lib.rs +9 -0
  123. data/tracks/rust/exercises/word-count/src/lib.rs +0 -0
  124. data/tracks/rust/exercises/wordy/src/lib.rs +0 -0
  125. data/tracks/scheme/config.json +0 -2
  126. metadata +45 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c951018b0fc7f4a87a5e136c734e4adf16cc7c46
4
- data.tar.gz: 4d73f5f35d46263ee97f76c83ed7ec332e7487ce
3
+ metadata.gz: 68a8bf6a80d4d09c6f6ef2633603442d8c32e4ab
4
+ data.tar.gz: 0f744d531bc32b4f007c97c87dd91db623f7c29a
5
5
  SHA512:
6
- metadata.gz: d044edfe4f38fca5cd9bd80cc85cb52106bb16b499c147d90cfcadde6500451d7c6e888b257f1455e5eb8da9d157df881653e6ab052bc16ae5d85616057909ea
7
- data.tar.gz: 93d7802d7e103589cad4fad96786503437f01b79335ee8b32531420573c35846f949c35fd285cf39cec7c2585b99b1cc4122e785cca7e3069ba55095dad2cbdf
6
+ metadata.gz: b60df628387892e6d23efab51fd3dd331e49b36a24cef70f7cb3d2f748500c62c6ff980888d30654008d17be4e9a430a8a0daa03022502364ef650bd67942469
7
+ data.tar.gz: dad16962f596965cb69e0f57a681d6a38087be463d68ae194d7c950748ef53f1cdd4965d3f5c01d4d772e8692278ed99b447b501b75d6bba637f7d70aa1da821
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.0"
2
+ VERSION = "2.2.1.1"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "list-ops",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "comments": [
5
5
  "Though there are no specifications here for dealing with large lists,",
6
6
  "implementers may add tests for handling large lists to ensure that the",
@@ -113,16 +113,24 @@
113
113
  "property": "foldl",
114
114
  "list": [],
115
115
  "initial": 2,
116
- "function": "value / accumulator",
116
+ "function": "(x, y) -> x * y",
117
117
  "expected": 2
118
118
  },
119
119
  {
120
- "description": "division of integers",
120
+ "description": "direction independent function applied to non-empty list",
121
121
  "property": "foldl",
122
122
  "list": [1, 2, 3, 4],
123
- "initial": 24,
124
- "function": "value / accumulator",
125
- "expected": 64
123
+ "initial": 5,
124
+ "function": "(x, y) -> x + y",
125
+ "expected": 15
126
+ },
127
+ {
128
+ "description": "direction dependent function applied to non-empty list",
129
+ "property": "foldl",
130
+ "list": [2, 5],
131
+ "initial": 5,
132
+ "function": "(x, y) -> x / y",
133
+ "expected": 0
126
134
  }
127
135
  ]
128
136
  },
@@ -134,16 +142,24 @@
134
142
  "property": "foldr",
135
143
  "list": [],
136
144
  "initial": 2,
137
- "function": "value / accumulator",
145
+ "function": "(x, y) -> x * y",
138
146
  "expected": 2
139
147
  },
140
148
  {
141
- "description": "division of integers",
149
+ "description": "direction independent function applied to non-empty list",
142
150
  "property": "foldr",
143
151
  "list": [1, 2, 3, 4],
144
- "initial": 24,
145
- "function": "value / accumulator",
146
- "expected": 9
152
+ "initial": 5,
153
+ "function": "(x, y) -> x + y",
154
+ "expected": 15
155
+ },
156
+ {
157
+ "description": "direction dependent function applied to non-empty list",
158
+ "property": "foldr",
159
+ "list": [2, 5],
160
+ "initial": 5,
161
+ "function": "(x, y) -> x / y",
162
+ "expected": 2
147
163
  }
148
164
  ]
149
165
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "exercise": "rotational-cipher",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "comments": [
5
5
  "The tests are a series of rotation tests: "
6
6
  ],
@@ -8,6 +8,13 @@
8
8
  {
9
9
  "description": "Test rotation from English to ROTn",
10
10
  "cases": [
11
+ {
12
+ "description": "rotate a by 0, same output as input",
13
+ "property": "rotate",
14
+ "text": "a",
15
+ "shiftKey": 0,
16
+ "expected": "a"
17
+ },
11
18
  {
12
19
  "description": "rotate a by 1",
13
20
  "property": "rotate",
@@ -22,13 +29,6 @@
22
29
  "shiftKey": 26,
23
30
  "expected": "a"
24
31
  },
25
- {
26
- "description": "rotate a by 0, same output as input",
27
- "property": "rotate",
28
- "text": "a",
29
- "shiftKey": 0,
30
- "expected": "a"
31
- },
32
32
  {
33
33
  "description": "rotate m by 13",
34
34
  "property": "rotate",
@@ -1,7 +1,5 @@
1
1
  {
2
- "slug": "clojure",
3
2
  "language": "Clojure",
4
- "repository": "https://github.com/exercism/clojure",
5
3
  "active": true,
6
4
  "foregone": [
7
5
 
@@ -1,7 +1,5 @@
1
1
  {
2
- "slug": "dart",
3
2
  "language": "Dart",
4
- "repository": "https://github.com/exercism/dart",
5
3
  "active": false,
6
4
  "test_pattern": "_test\\.dart$",
7
5
  "exercises": [
@@ -1,7 +1,5 @@
1
1
  {
2
- "slug": "elisp",
3
2
  "language": "Emacs Lisp",
4
- "repository": "https://github.com/exercism/elisp",
5
3
  "active": true,
6
4
  "deprecated": [
7
5
 
@@ -1,7 +1,5 @@
1
1
  {
2
- "slug": "elixir",
3
2
  "language": "Elixir",
4
- "repository": "https://github.com/exercism/elixir",
5
3
  "active": true,
6
4
  "exercises": [
7
5
  {
@@ -3,279 +3,386 @@
3
3
  "active": true,
4
4
  "exercises": [
5
5
  {
6
+ "uuid": "50547bc4-a78e-4450-9412-30bfa46c4a93",
6
7
  "slug": "hello-world",
8
+ "core": false,
9
+ "unlocked_by": null,
10
+ "difficulty": 1,
7
11
  "topics": [
8
12
 
9
- ],
10
- "difficulty": 1
13
+ ]
11
14
  },
12
15
  {
16
+ "uuid": "241eb25c-925b-4395-876c-c1dfe84e1c85",
13
17
  "slug": "leap",
18
+ "core": false,
19
+ "unlocked_by": null,
20
+ "difficulty": 1,
14
21
  "topics": [
15
22
 
16
- ],
17
- "difficulty": 1
23
+ ]
18
24
  },
19
25
  {
26
+ "uuid": "a21065ca-6aad-46b2-ada0-6a62abfcea2b",
20
27
  "slug": "accumulate",
28
+ "core": false,
29
+ "unlocked_by": null,
30
+ "difficulty": 1,
21
31
  "topics": [
22
32
 
23
- ],
24
- "difficulty": 1
33
+ ]
25
34
  },
26
35
  {
36
+ "uuid": "63c77b77-5a02-40ce-b5f6-372a5b3ae13d",
27
37
  "slug": "collatz-conjecture",
38
+ "core": false,
39
+ "unlocked_by": null,
40
+ "difficulty": 1,
28
41
  "topics": [
29
42
 
30
- ],
31
- "difficulty": 1
43
+ ]
32
44
  },
33
45
  {
46
+ "uuid": "8e9a98b1-bf4f-4c94-a258-a8618cc37f55",
34
47
  "slug": "rna-transcription",
48
+ "core": false,
49
+ "unlocked_by": null,
50
+ "difficulty": 2,
35
51
  "topics": [
36
52
 
37
- ],
38
- "difficulty": 2
53
+ ]
39
54
  },
40
55
  {
56
+ "uuid": "fced3620-26f2-4439-822c-27e1d59e24e1",
41
57
  "slug": "bob",
58
+ "core": false,
59
+ "unlocked_by": null,
60
+ "difficulty": 2,
42
61
  "topics": [
43
62
 
44
- ],
45
- "difficulty": 2
63
+ ]
46
64
  },
47
65
  {
66
+ "uuid": "c10bfbab-0b58-4fcb-aadc-304bd4b73cfc",
48
67
  "slug": "strain",
68
+ "core": false,
69
+ "unlocked_by": null,
70
+ "difficulty": 2,
49
71
  "topics": [
50
72
 
51
- ],
52
- "difficulty": 2
73
+ ]
53
74
  },
54
75
  {
76
+ "uuid": "8b7390fc-da44-4f02-ad17-a7eb5c19cf2b",
55
77
  "slug": "hamming",
78
+ "core": false,
79
+ "unlocked_by": null,
80
+ "difficulty": 2,
56
81
  "topics": [
57
82
 
58
- ],
59
- "difficulty": 2
83
+ ]
60
84
  },
61
85
  {
86
+ "uuid": "f276e064-a6d4-4a50-b53b-f36c1b30c62f",
62
87
  "slug": "space-age",
88
+ "core": false,
89
+ "unlocked_by": null,
90
+ "difficulty": 2,
63
91
  "topics": [
64
92
 
65
- ],
66
- "difficulty": 2
93
+ ]
67
94
  },
68
95
  {
96
+ "uuid": "c3070adc-d434-4989-8d6b-d9e483e32d1c",
69
97
  "slug": "grains",
98
+ "core": false,
99
+ "unlocked_by": null,
100
+ "difficulty": 2,
70
101
  "topics": [
71
102
 
72
- ],
73
- "difficulty": 2
103
+ ]
74
104
  },
75
105
  {
106
+ "uuid": "d3cbfc9a-a495-4bf2-87d0-811d5f71fda6",
76
107
  "slug": "nucleotide-count",
108
+ "core": false,
109
+ "unlocked_by": null,
110
+ "difficulty": 2,
77
111
  "topics": [
78
112
 
79
- ],
80
- "difficulty": 2
113
+ ]
81
114
  },
82
115
  {
116
+ "uuid": "ab852e36-3968-403f-93f5-53c7ecafa4c8",
83
117
  "slug": "difference-of-squares",
118
+ "core": false,
119
+ "unlocked_by": null,
120
+ "difficulty": 2,
84
121
  "topics": [
85
122
 
86
- ],
87
- "difficulty": 2
123
+ ]
88
124
  },
89
125
  {
126
+ "uuid": "2972e0de-b5ca-4fdd-9dbf-648937763394",
90
127
  "slug": "triangle",
128
+ "core": false,
129
+ "unlocked_by": null,
130
+ "difficulty": 2,
91
131
  "topics": [
92
132
 
93
- ],
94
- "difficulty": 2
133
+ ]
95
134
  },
96
135
  {
136
+ "uuid": "5af1c90a-f98d-4682-885b-9770c9223194",
97
137
  "slug": "sum-of-multiples",
138
+ "core": false,
139
+ "unlocked_by": null,
140
+ "difficulty": 3,
98
141
  "topics": [
99
142
 
100
- ],
101
- "difficulty": 3
143
+ ]
102
144
  },
103
145
  {
146
+ "uuid": "8f0570ae-223f-4da4-8b84-268b797b28ad",
104
147
  "slug": "anagram",
148
+ "core": false,
149
+ "unlocked_by": null,
150
+ "difficulty": 3,
105
151
  "topics": [
106
152
 
107
- ],
108
- "difficulty": 3
153
+ ]
109
154
  },
110
155
  {
156
+ "uuid": "d8e38780-d04e-43fc-8606-97dc71e4974b",
111
157
  "slug": "atbash-cipher",
158
+ "core": false,
159
+ "unlocked_by": null,
160
+ "difficulty": 3,
112
161
  "topics": [
113
162
 
114
- ],
115
- "difficulty": 3
163
+ ]
116
164
  },
117
165
  {
166
+ "uuid": "668f3947-3142-485e-89f8-e0e5060be29d",
118
167
  "slug": "phone-number",
168
+ "core": false,
169
+ "unlocked_by": null,
170
+ "difficulty": 3,
119
171
  "topics": [
120
172
 
121
- ],
122
- "difficulty": 3
173
+ ]
123
174
  },
124
175
  {
176
+ "uuid": "24ae9a43-4e1c-418b-97f6-2c83dbc0e14a",
125
177
  "slug": "gigasecond",
178
+ "core": false,
179
+ "unlocked_by": null,
180
+ "difficulty": 3,
126
181
  "topics": [
127
182
 
128
- ],
129
- "difficulty": 3
183
+ ]
130
184
  },
131
185
  {
186
+ "uuid": "4f5045d5-9ae1-4bdb-ac0b-a5d279a60ed8",
132
187
  "slug": "scrabble-score",
188
+ "core": false,
189
+ "unlocked_by": null,
190
+ "difficulty": 3,
133
191
  "topics": [
134
192
 
135
- ],
136
- "difficulty": 3
193
+ ]
137
194
  },
138
195
  {
196
+ "uuid": "a2d4ca29-54e2-4969-bfc9-ee483acf9caf",
139
197
  "slug": "robot-simulator",
198
+ "core": false,
199
+ "unlocked_by": null,
200
+ "difficulty": 4,
140
201
  "topics": [
141
202
 
142
- ],
143
- "difficulty": 4
203
+ ]
144
204
  },
145
205
  {
206
+ "uuid": "67bbcc69-31b7-41f2-a8e1-5a07d30e00d6",
146
207
  "slug": "grade-school",
208
+ "core": false,
209
+ "unlocked_by": null,
210
+ "difficulty": 4,
147
211
  "topics": [
148
212
 
149
- ],
150
- "difficulty": 4
213
+ ]
151
214
  },
152
215
  {
216
+ "uuid": "43df8921-f0c3-4a0c-9bdf-eb89405049ad",
153
217
  "slug": "word-count",
218
+ "core": false,
219
+ "unlocked_by": null,
220
+ "difficulty": 4,
154
221
  "topics": [
155
222
 
156
- ],
157
- "difficulty": 4
223
+ ]
158
224
  },
159
225
  {
226
+ "uuid": "df90c039-8629-497a-a809-5ba2d1f8d52f",
160
227
  "slug": "clock",
228
+ "core": false,
229
+ "unlocked_by": null,
230
+ "difficulty": 4,
161
231
  "topics": [
162
232
 
163
- ],
164
- "difficulty": 4
233
+ ]
165
234
  },
166
235
  {
236
+ "uuid": "51af2614-e349-4e90-b917-177a6017e786",
167
237
  "slug": "allergies",
238
+ "core": false,
239
+ "unlocked_by": null,
240
+ "difficulty": 4,
168
241
  "topics": [
169
242
 
170
- ],
171
- "difficulty": 4
243
+ ]
172
244
  },
173
245
  {
246
+ "uuid": "85e23906-6fd8-486a-add8-a6c932cef7e3",
174
247
  "slug": "all-your-base",
248
+ "core": false,
249
+ "unlocked_by": null,
250
+ "difficulty": 4,
175
251
  "topics": [
176
252
 
177
- ],
178
- "difficulty": 4
253
+ ]
179
254
  },
180
255
  {
256
+ "uuid": "9ca527d7-5065-4856-8c95-07deb664da7e",
181
257
  "slug": "series",
258
+ "core": false,
259
+ "unlocked_by": null,
260
+ "difficulty": 4,
182
261
  "topics": [
183
262
 
184
- ],
185
- "difficulty": 4
263
+ ]
186
264
  },
187
265
  {
266
+ "uuid": "be69c23b-7559-44fe-9e21-94a865199de7",
188
267
  "slug": "parallel-letter-frequency",
268
+ "core": false,
269
+ "unlocked_by": null,
270
+ "difficulty": 4,
189
271
  "topics": [
190
272
 
191
- ],
192
- "difficulty": 4
273
+ ]
193
274
  },
194
275
  {
276
+ "uuid": "d8ee01b3-307e-4835-a7cd-331e771111ae",
195
277
  "slug": "roman-numerals",
278
+ "core": false,
279
+ "unlocked_by": null,
280
+ "difficulty": 4,
196
281
  "topics": [
197
282
 
198
- ],
199
- "difficulty": 4
283
+ ]
200
284
  },
201
285
  {
286
+ "uuid": "b312ff0e-90e3-4dd8-99dc-df4a9deb1907",
202
287
  "slug": "largest-series-product",
288
+ "core": false,
289
+ "unlocked_by": null,
290
+ "difficulty": 5,
203
291
  "topics": [
204
292
 
205
- ],
206
- "difficulty": 5
293
+ ]
207
294
  },
208
295
  {
296
+ "uuid": "8ad0c97b-189d-46ac-bb72-2c72f1fe4728",
209
297
  "slug": "rotational-cipher",
298
+ "core": false,
299
+ "unlocked_by": null,
300
+ "difficulty": 5,
210
301
  "topics": [
211
302
 
212
- ],
213
- "difficulty": 5
303
+ ]
214
304
  },
215
305
  {
306
+ "uuid": "60fc4ea6-28b0-4914-bcc3-a0caefca3cb5",
216
307
  "slug": "etl",
308
+ "core": false,
309
+ "unlocked_by": null,
310
+ "difficulty": 6,
217
311
  "topics": [
218
312
 
219
- ],
220
- "difficulty": 6
313
+ ]
221
314
  },
222
315
  {
316
+ "uuid": "a7e2e89c-c599-4e30-a944-a9d4a98f2b94",
223
317
  "slug": "bank-account",
318
+ "core": false,
319
+ "unlocked_by": null,
320
+ "difficulty": 6,
224
321
  "topics": [
225
322
 
226
- ],
227
- "difficulty": 6
323
+ ]
228
324
  },
229
325
  {
326
+ "uuid": "e938c3e6-0b0f-498e-a3ec-47251f5bb55c",
230
327
  "slug": "luhn",
328
+ "core": false,
329
+ "unlocked_by": null,
330
+ "difficulty": 6,
231
331
  "topics": [
232
332
 
233
- ],
234
- "difficulty": 6
333
+ ]
235
334
  },
236
335
  {
336
+ "uuid": "249d0c9f-dadc-4168-ba9b-0c6bfe83618d",
237
337
  "slug": "meetup",
338
+ "core": false,
339
+ "unlocked_by": null,
340
+ "difficulty": 6,
238
341
  "topics": [
239
342
 
240
- ],
241
- "difficulty": 6
343
+ ]
242
344
  },
243
345
  {
346
+ "uuid": "058b48a9-03ec-43bc-88eb-9dbce8b79e59",
244
347
  "slug": "circular-buffer",
348
+ "core": false,
349
+ "unlocked_by": null,
350
+ "difficulty": 7,
245
351
  "topics": [
246
352
 
247
- ],
248
- "difficulty": 7
353
+ ]
249
354
  },
250
355
  {
356
+ "uuid": "2fedc6bf-6006-4c2d-bba7-9c66265b6f62",
251
357
  "slug": "beer-song",
358
+ "core": false,
359
+ "unlocked_by": null,
360
+ "difficulty": 7,
252
361
  "topics": [
253
362
 
254
- ],
255
- "difficulty": 7
363
+ ]
256
364
  },
257
365
  {
366
+ "uuid": "b6c242d3-40d5-484d-8466-1a32d2332288",
258
367
  "slug": "zipper",
368
+ "core": false,
369
+ "unlocked_by": null,
370
+ "difficulty": 8,
259
371
  "topics": [
260
372
 
261
- ],
262
- "difficulty": 8
373
+ ]
263
374
  },
264
375
  {
376
+ "uuid": "625ad6f2-c9e8-4129-a290-057209f941c5",
265
377
  "slug": "spiral-matrix",
378
+ "core": false,
379
+ "unlocked_by": null,
380
+ "difficulty": 8,
266
381
  "topics": [
267
382
 
268
- ],
269
- "difficulty": 8
383
+ ]
270
384
  }
271
385
  ],
272
- "deprecated": [
273
- "point-mutations",
274
- "binary",
275
- "trinary",
276
- "octal",
277
- "hexadecimal"
278
- ],
279
386
  "foregone": [
280
387
  "binary-search",
281
388
  "lens-person",