trackler 2.2.0.0 → 2.2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/CONTRIBUTING.md +1 -1
  4. data/tracks/bash/.travis.yml +1 -1
  5. data/tracks/bash/config.json +30 -3
  6. data/tracks/c/README.md +1 -1
  7. data/tracks/c/config.json +131 -39
  8. data/tracks/ceylon/README.md +6 -6
  9. data/tracks/ceylon/config.json +21 -3
  10. data/tracks/chapel/.travis.yml +1 -1
  11. data/tracks/clojurescript/.travis.yml +1 -1
  12. data/tracks/clojurescript/README.md +6 -6
  13. data/tracks/clojurescript/exercises/.keep +0 -0
  14. data/tracks/coffeescript/.travis.yml +1 -1
  15. data/tracks/coldfusion/.travis.yml +1 -1
  16. data/tracks/coq/.travis.yml +1 -1
  17. data/tracks/cpp/CMakeLists.txt +1 -0
  18. data/tracks/cpp/README.md +1 -1
  19. data/tracks/cpp/config.json +8 -0
  20. data/tracks/cpp/exercises/atbash-cipher/CMakeLists.txt +52 -0
  21. data/tracks/cpp/exercises/atbash-cipher/atbash_cipher_test.cpp +68 -0
  22. data/tracks/cpp/exercises/atbash-cipher/example.cpp +54 -0
  23. data/tracks/cpp/exercises/atbash-cipher/example.h +13 -0
  24. data/tracks/csharp/config.json +315 -6
  25. data/tracks/d/.travis.yml +1 -1
  26. data/tracks/dart/README.md +2 -2
  27. data/tracks/dart/config.json +21 -3
  28. data/tracks/delphi/README.md +1 -1
  29. data/tracks/delphi/config.json +83 -1
  30. data/tracks/ecmascript/config.json +10 -0
  31. data/tracks/ecmascript/exercises/accumulate/accumulate.spec.js +3 -9
  32. data/tracks/ecmascript/exercises/acronym/acronym.spec.js +2 -2
  33. data/tracks/ecmascript/exercises/all-your-base/all-your-base.spec.js +131 -133
  34. data/tracks/ecmascript/exercises/all-your-base/example.js +1 -3
  35. data/tracks/ecmascript/exercises/allergies/allergies.spec.js +8 -10
  36. data/tracks/ecmascript/exercises/allergies/example.js +3 -5
  37. data/tracks/ecmascript/exercises/alphametics/alphametics.spec.js +61 -63
  38. data/tracks/ecmascript/exercises/alphametics/example.js +99 -99
  39. data/tracks/ecmascript/exercises/anagram/anagram.spec.js +35 -37
  40. data/tracks/ecmascript/exercises/anagram/example.js +1 -3
  41. data/tracks/ecmascript/exercises/atbash-cipher/atbash-cipher.spec.js +1 -3
  42. data/tracks/ecmascript/exercises/atbash-cipher/example.js +3 -3
  43. data/tracks/ecmascript/exercises/beer-song/beer-song.spec.js +0 -2
  44. data/tracks/ecmascript/exercises/beer-song/example.js +9 -9
  45. data/tracks/ecmascript/exercises/binary/binary.spec.js +1 -2
  46. data/tracks/ecmascript/exercises/binary/example.js +3 -3
  47. data/tracks/ecmascript/exercises/binary-search/binary-search.spec.js +1 -3
  48. data/tracks/ecmascript/exercises/binary-search-tree/binary-search-tree.spec.js +13 -15
  49. data/tracks/ecmascript/exercises/binary-search-tree/example.js +2 -2
  50. data/tracks/ecmascript/exercises/bob/bob.spec.js +1 -3
  51. data/tracks/ecmascript/exercises/bob/example.js +3 -3
  52. data/tracks/ecmascript/exercises/bracket-push/example.js +2 -2
  53. data/tracks/ecmascript/exercises/circular-buffer/circular-buffer.spec.js +10 -12
  54. data/tracks/ecmascript/exercises/circular-buffer/example.js +12 -11
  55. data/tracks/ecmascript/exercises/clock/clock.spec.js +0 -8
  56. data/tracks/ecmascript/exercises/clock/example.js +11 -11
  57. data/tracks/ecmascript/exercises/connect/connect.spec.js +75 -77
  58. data/tracks/ecmascript/exercises/connect/example.js +27 -29
  59. data/tracks/ecmascript/exercises/crypto-square/crypto-square.spec.js +11 -11
  60. data/tracks/ecmascript/exercises/crypto-square/example.js +11 -10
  61. data/tracks/ecmascript/exercises/custom-set/custom-set.spec.js +2 -4
  62. data/tracks/ecmascript/exercises/custom-set/example.js +1 -1
  63. data/tracks/ecmascript/exercises/diamond/diamond.spec.js +20 -21
  64. data/tracks/ecmascript/exercises/diamond/example.js +12 -13
  65. data/tracks/ecmascript/exercises/difference-of-squares/difference-of-squares.spec.js +0 -5
  66. data/tracks/ecmascript/exercises/diffie-hellman/diffie-hellman.spec.js +7 -28
  67. data/tracks/ecmascript/exercises/etl/etl.spec.js +36 -18
  68. data/tracks/ecmascript/exercises/etl/example.js +3 -3
  69. data/tracks/ecmascript/exercises/flatten-array/example.js +1 -1
  70. data/tracks/ecmascript/exercises/flatten-array/flatten-array.spec.js +2 -3
  71. data/tracks/ecmascript/exercises/food-chain/example.js +12 -12
  72. data/tracks/ecmascript/exercises/food-chain/food-chain.spec.js +0 -1
  73. data/tracks/ecmascript/exercises/gigasecond/example.js +1 -1
  74. data/tracks/ecmascript/exercises/gigasecond/gigasecond.spec.js +0 -1
  75. data/tracks/ecmascript/exercises/grade-school/grade-school.spec.js +18 -19
  76. data/tracks/ecmascript/exercises/grains/grains.spec.js +0 -1
  77. data/tracks/ecmascript/exercises/hamming/example.js +3 -3
  78. data/tracks/ecmascript/exercises/hamming/hamming.spec.js +5 -6
  79. data/tracks/ecmascript/exercises/hello-world/example.js +1 -1
  80. data/tracks/ecmascript/exercises/hello-world/hello-world.spec.js +1 -1
  81. data/tracks/ecmascript/exercises/hexadecimal/example.js +2 -2
  82. data/tracks/ecmascript/exercises/hexadecimal/hexadecimal.spec.js +9 -11
  83. data/tracks/ecmascript/exercises/isogram/isogram.spec.js +22 -23
  84. data/tracks/ecmascript/exercises/kindergarten-garden/example.js +7 -7
  85. data/tracks/ecmascript/exercises/kindergarten-garden/kindergarten-garden.spec.js +0 -5
  86. data/tracks/ecmascript/exercises/largest-series-product/example.js +4 -8
  87. data/tracks/ecmascript/exercises/largest-series-product/largest-series-product.spec.js +5 -7
  88. data/tracks/ecmascript/exercises/leap/leap.spec.js +4 -6
  89. data/tracks/ecmascript/exercises/linked-list/example.js +2 -2
  90. data/tracks/ecmascript/exercises/list-ops/example.js +19 -19
  91. data/tracks/ecmascript/exercises/list-ops/list-ops.spec.js +2 -18
  92. data/tracks/ecmascript/exercises/luhn/example.js +1 -1
  93. data/tracks/ecmascript/exercises/luhn/luhn.spec.js +1 -3
  94. data/tracks/ecmascript/exercises/matrix/example.js +2 -4
  95. data/tracks/ecmascript/exercises/matrix/matrix.spec.js +0 -2
  96. data/tracks/ecmascript/exercises/meetup/example.js +12 -15
  97. data/tracks/ecmascript/exercises/meetup/meetup.spec.js +0 -2
  98. data/tracks/ecmascript/exercises/minesweeper/example.js +60 -0
  99. data/tracks/ecmascript/exercises/minesweeper/minesweeper.spec.js +174 -0
  100. data/tracks/ecmascript/exercises/minesweeper/package.json +69 -0
  101. data/tracks/ecmascript/exercises/nth-prime/example.js +3 -2
  102. data/tracks/ecmascript/exercises/nth-prime/nth-prime.spec.js +0 -1
  103. data/tracks/ecmascript/exercises/ocr-numbers/example.js +3 -3
  104. data/tracks/ecmascript/exercises/ocr-numbers/ocr-numbers.spec.js +16 -18
  105. data/tracks/ecmascript/exercises/octal/example.js +1 -1
  106. data/tracks/ecmascript/exercises/octal/octal.spec.js +0 -2
  107. data/tracks/ecmascript/exercises/palindrome-products/example.js +14 -11
  108. data/tracks/ecmascript/exercises/palindrome-products/palindrome-products.spec.js +15 -18
  109. data/tracks/ecmascript/exercises/pangram/example.js +6 -5
  110. data/tracks/ecmascript/exercises/pangram/pangram.spec.js +10 -12
  111. data/tracks/ecmascript/exercises/pascals-triangle/example.js +2 -2
  112. data/tracks/ecmascript/exercises/pascals-triangle/pascals-triangle.spec.js +6 -8
  113. data/tracks/ecmascript/exercises/perfect-numbers/example.js +3 -5
  114. data/tracks/ecmascript/exercises/perfect-numbers/perfect-numbers.spec.js +0 -10
  115. data/tracks/ecmascript/exercises/phone-number/example.js +2 -2
  116. data/tracks/ecmascript/exercises/phone-number/phone-number.spec.js +0 -2
  117. data/tracks/ecmascript/exercises/pig-latin/example.js +4 -4
  118. data/tracks/ecmascript/exercises/pig-latin/pig-latin.spec.js +0 -1
  119. data/tracks/ecmascript/exercises/prime-factors/example.js +2 -2
  120. data/tracks/ecmascript/exercises/prime-factors/prime-factors.spec.js +0 -2
  121. data/tracks/ecmascript/exercises/pythagorean-triplet/pythagorean-triplet.spec.js +3 -11
  122. data/tracks/ecmascript/exercises/queen-attack/example.js +17 -17
  123. data/tracks/ecmascript/exercises/queen-attack/queen-attack.spec.js +7 -8
  124. data/tracks/ecmascript/exercises/raindrops/example.js +1 -1
  125. data/tracks/ecmascript/exercises/raindrops/raindrops.spec.js +1 -2
  126. data/tracks/ecmascript/exercises/rna-transcription/example.js +5 -5
  127. data/tracks/ecmascript/exercises/rna-transcription/rna-transcription.spec.js +4 -5
  128. data/tracks/ecmascript/exercises/robot-name/example.js +6 -6
  129. data/tracks/ecmascript/exercises/robot-name/robot-name.spec.js +10 -11
  130. data/tracks/ecmascript/exercises/robot-simulator/example.js +1 -1
  131. data/tracks/ecmascript/exercises/robot-simulator/robot-simulator.spec.js +31 -32
  132. data/tracks/ecmascript/exercises/roman-numerals/example.js +16 -16
  133. data/tracks/ecmascript/exercises/saddle-points/saddle-points.spec.js +3 -3
  134. data/tracks/ecmascript/exercises/say/example.js +25 -25
  135. data/tracks/ecmascript/exercises/say/say.spec.js +2 -3
  136. data/tracks/ecmascript/exercises/scrabble-score/example.js +27 -9
  137. data/tracks/ecmascript/exercises/scrabble-score/scrabble-score.spec.js +6 -7
  138. data/tracks/ecmascript/exercises/secret-handshake/example.js +2 -3
  139. data/tracks/ecmascript/exercises/secret-handshake/secret-handshake.spec.js +3 -5
  140. data/tracks/ecmascript/exercises/series/series.spec.js +1 -3
  141. data/tracks/ecmascript/exercises/sieve/example.js +4 -3
  142. data/tracks/ecmascript/exercises/sieve/sieve.spec.js +0 -2
  143. data/tracks/ecmascript/exercises/simple-cipher/example.js +8 -9
  144. data/tracks/ecmascript/exercises/simple-cipher/simple-cipher.spec.js +4 -4
  145. data/tracks/ecmascript/exercises/space-age/example.js +1 -1
  146. data/tracks/ecmascript/exercises/space-age/space-age.spec.js +9 -11
  147. data/tracks/ecmascript/exercises/strain/example.js +4 -4
  148. data/tracks/ecmascript/exercises/strain/strain.spec.js +14 -16
  149. data/tracks/ecmascript/exercises/sum-of-multiples/example.js +4 -4
  150. data/tracks/ecmascript/exercises/triangle/triangle.spec.js +2 -4
  151. data/tracks/ecmascript/exercises/trinary/example.js +3 -3
  152. data/tracks/ecmascript/exercises/trinary/trinary.spec.js +0 -2
  153. data/tracks/ecmascript/exercises/two-bucket/example.js +30 -27
  154. data/tracks/ecmascript/exercises/two-bucket/two-bucket.spec.js +4 -8
  155. data/tracks/ecmascript/exercises/word-count/example.js +2 -2
  156. data/tracks/ecmascript/exercises/word-count/word-count.spec.js +2 -3
  157. data/tracks/ecmascript/exercises/wordy/example.js +6 -6
  158. data/tracks/ecmascript/exercises/wordy/wordy.spec.js +2 -4
  159. data/tracks/factor/config.json +15 -6
  160. data/tracks/fortran/.travis.yml +1 -1
  161. data/tracks/fsharp/config.json +312 -10
  162. data/tracks/go/README.md +1 -1
  163. data/tracks/go/config.json +523 -155
  164. data/tracks/haskell/README.md +2 -2
  165. data/tracks/haskell/config.json +256 -7
  166. data/tracks/haxe/.travis.yml +1 -1
  167. data/tracks/haxe/Makefile +2 -2
  168. data/tracks/haxe/config.json +8 -5
  169. data/tracks/java/CONTRIBUTING.md +2 -2
  170. data/tracks/java/config.json +277 -17
  171. data/tracks/java/exercises/rotational-cipher/build.gradle +17 -0
  172. data/tracks/java/exercises/rotational-cipher/src/example/java/RotationalCipher.java +37 -0
  173. data/tracks/java/exercises/rotational-cipher/src/main/java/.keep +0 -0
  174. data/tracks/java/exercises/rotational-cipher/src/test/java/RotationalCipherTest.java +81 -0
  175. data/tracks/java/exercises/settings.gradle +1 -0
  176. data/tracks/java/exercises/twelve-days/src/main/java/TwelveDays.java +4 -0
  177. data/tracks/julia/.travis.yml +1 -1
  178. data/tracks/julia/README.md +1 -1
  179. data/tracks/kotlin/README.md +2 -2
  180. data/tracks/kotlin/exercises/hello-world/TUTORIAL.md +3 -3
  181. data/tracks/lisp/config.json +97 -3
  182. data/tracks/lisp/exercises/pascals-triangle/example.lisp +21 -0
  183. data/tracks/lisp/exercises/pascals-triangle/pascal.lisp +7 -0
  184. data/tracks/lisp/exercises/pascals-triangle/pascals-triangle-test.lisp +34 -0
  185. data/tracks/lua/.travis.yml +1 -1
  186. data/tracks/lua/README.md +1 -1
  187. data/tracks/mips/.travis.yml +1 -1
  188. data/tracks/mips/config.json +56 -17
  189. data/tracks/nasm/.travis.yml +1 -1
  190. data/tracks/nim/.travis.yml +1 -1
  191. data/tracks/ocaml/README.md +3 -3
  192. data/tracks/ocaml/config.json +130 -4
  193. data/tracks/perl5/docs/TESTS.md +40 -26
  194. data/tracks/plsql/.travis.yml +1 -1
  195. data/tracks/plsql/config.json +40 -13
  196. data/tracks/pony/.travis.yml +1 -1
  197. data/tracks/pony/bin/install-deps +4 -3
  198. data/tracks/prolog/.travis.yml +1 -1
  199. data/tracks/r/README.md +5 -5
  200. data/tracks/r/config.json +102 -30
  201. data/tracks/rust/.travis.yml +1 -1
  202. data/tracks/rust/config.json +172 -4
  203. data/tracks/rust/docs/EXERCISE_README_INSERT.md +1 -1
  204. data/tracks/sml/config.json +26 -3
  205. data/tracks/vimscript/config.json +60 -3
  206. metadata +16 -1
data/tracks/d/.travis.yml CHANGED
@@ -3,6 +3,6 @@ language: d
3
3
  install:
4
4
  - bin/fetch-configlet
5
5
  script:
6
- - bin/configlet .
6
+ - bin/configlet lint .
7
7
  - bin/test-all-exercises
8
8
  sudo: false
@@ -62,11 +62,11 @@ Please keep the following in mind:
62
62
  - Exercises should use only the Dart core libraries.
63
63
 
64
64
  - Please do not add a README or README.md file to the exercise directory. The READMEs are constructed using shared metadata, which lives in the
65
- [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repository. Further explanation can be found in [fixing-exercise-readmes](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/exercise-readmes.md)
65
+ [exercism/problem-specifications](https://github.com/exercism/problem-specifications) repository. Further explanation can be found in [fixing-exercise-readmes](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/readmes.md)
66
66
 
67
67
  - Each exercise should have a test suite, an example solution, a template file for the real implementation and ... (anything else that needs to go with each exercise for this track). The CI build expects files to be named using the following convention: (describe the Dart convention for naming the various files that make up an exercise).
68
68
 
69
69
  - Please do not commit any configuration files or directories inside the exercise other than ...
70
70
 
71
- - Be sure to add it to the appropriate place in the `config.json` file. Also, please run `bin/fetch-configlet && bin/configlet` to ensure the exercise is configured correctly.
71
+ - Be sure to add it to the appropriate place in the `config.json` file. Also, please run `bin/fetch-configlet && bin/configlet lint .` to ensure the exercise is configured correctly.
72
72
 
@@ -6,7 +6,10 @@
6
6
  "test_pattern": "_test\\.dart$",
7
7
  "exercises": [
8
8
  {
9
+ "uuid": "93ed6692-5f4e-477d-9bce-9e76999e1f1f",
9
10
  "slug": "hello-world",
11
+ "core": false,
12
+ "unlocked_by": null,
10
13
  "difficulty": 1,
11
14
  "topics": [
12
15
  "Control-flow (conditionals)",
@@ -16,7 +19,10 @@
16
19
  ]
17
20
  },
18
21
  {
22
+ "uuid": "d06437d7-e5d0-4fe1-a22f-883d3c35f7eb",
19
23
  "slug": "leap",
24
+ "core": false,
25
+ "unlocked_by": null,
20
26
  "difficulty": 1,
21
27
  "topics": [
22
28
  "Booleans",
@@ -25,7 +31,10 @@
25
31
  ]
26
32
  },
27
33
  {
34
+ "uuid": "d4fed623-39da-43f8-8d34-8c9e68c67217",
28
35
  "slug": "hamming",
36
+ "core": false,
37
+ "unlocked_by": null,
29
38
  "difficulty": 1,
30
39
  "topics": [
31
40
  "Control-flow (loops)",
@@ -35,7 +44,10 @@
35
44
  ]
36
45
  },
37
46
  {
47
+ "uuid": "69ef6894-ffd5-431b-ab3e-9f20d8d5741c",
38
48
  "slug": "rna-transcription",
49
+ "core": false,
50
+ "unlocked_by": null,
39
51
  "difficulty": 1,
40
52
  "topics": [
41
53
  "Strings",
@@ -43,7 +55,10 @@
43
55
  ]
44
56
  },
45
57
  {
58
+ "uuid": "8b67deea-286c-4c99-b1f0-9493cfd445f9",
46
59
  "slug": "bob",
60
+ "core": false,
61
+ "unlocked_by": null,
47
62
  "difficulty": 1,
48
63
  "topics": [
49
64
  "Control flow (conditionals)",
@@ -55,23 +70,26 @@
55
70
  ]
56
71
  },
57
72
  {
73
+ "uuid": "a356c21f-2de3-49a8-a9f1-962d8c9e84c1",
58
74
  "slug": "gigasecond",
75
+ "core": false,
76
+ "unlocked_by": null,
59
77
  "difficulty": 1,
60
78
  "topics": [
61
79
  "Time"
62
80
  ]
63
81
  },
64
82
  {
83
+ "uuid": "6e251bc8-aa24-46df-b7d4-25a6c22fdce7",
65
84
  "slug": "difference-of-squares",
85
+ "core": false,
86
+ "unlocked_by": null,
66
87
  "difficulty": 1,
67
88
  "topics": [
68
89
  "Integers",
69
90
  "Mathematics"
70
91
  ]
71
92
  }
72
- ],
73
- "deprecated": [
74
-
75
93
  ],
76
94
  "foregone": [
77
95
 
@@ -6,5 +6,5 @@ Exercism exercises in Delphi Pascal.
6
6
 
7
7
  ## Contributing Guide
8
8
 
9
- Please see the [contributing guide](https://github.com/exercism/problem-specifications/blob/master/CONTRIBUTING.md).
9
+ Please see the [contributing guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
10
10
 
@@ -5,14 +5,20 @@
5
5
  "active": true,
6
6
  "exercises": [
7
7
  {
8
+ "uuid": "e3b0af0d-7ecd-43c8-a394-91ef2cf4d7d0",
8
9
  "slug": "hello-world",
10
+ "core": false,
11
+ "unlocked_by": null,
9
12
  "difficulty": 1,
10
13
  "topics": [
11
14
  "Text formatting"
12
15
  ]
13
16
  },
14
17
  {
18
+ "uuid": "0c75f779-dbf1-43f7-8f36-2e8d34fec410",
15
19
  "slug": "two-fer",
20
+ "core": false,
21
+ "unlocked_by": null,
16
22
  "difficulty": 1,
17
23
  "topics": [
18
24
  "Text formatting",
@@ -20,7 +26,10 @@
20
26
  ]
21
27
  },
22
28
  {
29
+ "uuid": "b3f7e56b-8a69-4b7f-bbb8-5fbcfa357eba",
23
30
  "slug": "bob",
31
+ "core": false,
32
+ "unlocked_by": null,
24
33
  "difficulty": 1,
25
34
  "topics": [
26
35
  "Strings",
@@ -28,14 +37,20 @@
28
37
  ]
29
38
  },
30
39
  {
40
+ "uuid": "761e0143-163c-48ed-8bb3-5ad6a59fb69d",
31
41
  "slug": "leap",
42
+ "core": false,
43
+ "unlocked_by": null,
32
44
  "difficulty": 1,
33
45
  "topics": [
34
46
  "Integers"
35
47
  ]
36
48
  },
37
49
  {
50
+ "uuid": "72022a7f-ff34-4a9b-b710-546eebd094e1",
38
51
  "slug": "rna-transcription",
52
+ "core": false,
53
+ "unlocked_by": null,
39
54
  "difficulty": 1,
40
55
  "topics": [
41
56
  "Strings",
@@ -43,7 +58,10 @@
43
58
  ]
44
59
  },
45
60
  {
61
+ "uuid": "cf22573e-9099-4df5-86d6-02e9bf42784d",
46
62
  "slug": "raindrops",
63
+ "core": false,
64
+ "unlocked_by": null,
47
65
  "difficulty": 2,
48
66
  "topics": [
49
67
  "Text formatting",
@@ -51,7 +69,10 @@
51
69
  ]
52
70
  },
53
71
  {
72
+ "uuid": "6bc985bc-f04f-41de-9582-e0d51ea8df54",
54
73
  "slug": "hamming",
74
+ "core": false,
75
+ "unlocked_by": null,
55
76
  "difficulty": 2,
56
77
  "topics": [
57
78
  "Strings",
@@ -59,14 +80,20 @@
59
80
  ]
60
81
  },
61
82
  {
83
+ "uuid": "746fdc7b-8d7f-4df1-8d68-7af5d5c63396",
62
84
  "slug": "bank-account",
85
+ "core": false,
86
+ "unlocked_by": null,
63
87
  "difficulty": 2,
64
88
  "topics": [
65
89
  "Classes"
66
90
  ]
67
91
  },
68
92
  {
93
+ "uuid": "a77d309f-ddd6-4700-b300-347fb7e1d916",
69
94
  "slug": "nucleotide-count",
95
+ "core": false,
96
+ "unlocked_by": null,
70
97
  "difficulty": 2,
71
98
  "topics": [
72
99
  "Dictionaries",
@@ -74,7 +101,10 @@
74
101
  ]
75
102
  },
76
103
  {
104
+ "uuid": "3cc7a1b6-b613-4cf1-9318-fd2e48eac6a4",
77
105
  "slug": "etl",
106
+ "core": false,
107
+ "unlocked_by": null,
78
108
  "difficulty": 2,
79
109
  "topics": [
80
110
  "Dictionaries",
@@ -83,7 +113,10 @@
83
113
  ]
84
114
  },
85
115
  {
116
+ "uuid": "dbf6dfed-b3c1-4bac-8d86-4584c1d9f08c",
86
117
  "slug": "grains",
118
+ "core": false,
119
+ "unlocked_by": null,
87
120
  "difficulty": 2,
88
121
  "topics": [
89
122
  "Integers",
@@ -91,7 +124,10 @@
91
124
  ]
92
125
  },
93
126
  {
127
+ "uuid": "b30fbfa4-8568-467c-bf50-9d9fd49d3af2",
94
128
  "slug": "collatz-conjecture",
129
+ "core": false,
130
+ "unlocked_by": null,
95
131
  "difficulty": 2,
96
132
  "topics": [
97
133
  "Algorithms",
@@ -100,7 +136,10 @@
100
136
  ]
101
137
  },
102
138
  {
139
+ "uuid": "76754970-3b28-45f6-8f36-10f063b3f846",
103
140
  "slug": "beer-song",
141
+ "core": false,
142
+ "unlocked_by": null,
104
143
  "difficulty": 3,
105
144
  "topics": [
106
145
  "Text formatting",
@@ -108,7 +147,10 @@
108
147
  ]
109
148
  },
110
149
  {
150
+ "uuid": "4d8b5c36-3562-41a6-aaca-b5229059a009",
111
151
  "slug": "phone-number",
152
+ "core": false,
153
+ "unlocked_by": null,
112
154
  "difficulty": 3,
113
155
  "topics": [
114
156
  "Parsing",
@@ -116,14 +158,20 @@
116
158
  ]
117
159
  },
118
160
  {
161
+ "uuid": "95ca4105-b3f7-42f8-a07d-8d912056ed26",
119
162
  "slug": "perfect-numbers",
163
+ "core": false,
164
+ "unlocked_by": null,
120
165
  "difficulty": 3,
121
166
  "topics": [
122
167
  "Integers"
123
168
  ]
124
169
  },
125
170
  {
171
+ "uuid": "c89324f8-8f40-4e99-9ce2-4bf11d4d91d5",
126
172
  "slug": "binary-search",
173
+ "core": false,
174
+ "unlocked_by": null,
127
175
  "difficulty": 3,
128
176
  "topics": [
129
177
  "Searching",
@@ -132,7 +180,10 @@
132
180
  ]
133
181
  },
134
182
  {
183
+ "uuid": "6488fc37-7bd4-4854-8043-8b261554695d",
135
184
  "slug": "clock",
185
+ "core": false,
186
+ "unlocked_by": null,
136
187
  "difficulty": 3,
137
188
  "topics": [
138
189
  "Time",
@@ -140,7 +191,10 @@
140
191
  ]
141
192
  },
142
193
  {
194
+ "uuid": "6404ad71-4f20-4f5b-8530-8ba1578e9550",
143
195
  "slug": "triangle",
196
+ "core": false,
197
+ "unlocked_by": null,
144
198
  "difficulty": 3,
145
199
  "topics": [
146
200
  "Integers",
@@ -148,7 +202,10 @@
148
202
  ]
149
203
  },
150
204
  {
205
+ "uuid": "fcaf9a85-579b-4607-8d2c-b6353664502d",
151
206
  "slug": "allergies",
207
+ "core": false,
208
+ "unlocked_by": null,
152
209
  "difficulty": 4,
153
210
  "topics": [
154
211
  "Bitwise operations",
@@ -156,7 +213,10 @@
156
213
  ]
157
214
  },
158
215
  {
216
+ "uuid": "4fd252a7-520a-416d-b976-a8f4cf3c4516",
159
217
  "slug": "saddle-points",
218
+ "core": false,
219
+ "unlocked_by": null,
160
220
  "difficulty": 4,
161
221
  "topics": [
162
222
  "Matrices",
@@ -165,7 +225,10 @@
165
225
  ]
166
226
  },
167
227
  {
228
+ "uuid": "51b2fe3e-996c-41f2-86cd-c6666898c850",
168
229
  "slug": "circular-buffer",
230
+ "core": false,
231
+ "unlocked_by": null,
169
232
  "difficulty": 5,
170
233
  "topics": [
171
234
  "Queues",
@@ -173,7 +236,10 @@
173
236
  ]
174
237
  },
175
238
  {
239
+ "uuid": "0648988c-0916-4651-897a-349c94c32ca8",
176
240
  "slug": "minesweeper",
241
+ "core": false,
242
+ "unlocked_by": null,
177
243
  "difficulty": 5,
178
244
  "topics": [
179
245
  "Parsing",
@@ -181,7 +247,10 @@
181
247
  ]
182
248
  },
183
249
  {
250
+ "uuid": "b4d9cd9c-bdc7-4485-bcce-80e4303fad51",
184
251
  "slug": "roman-numerals",
252
+ "core": false,
253
+ "unlocked_by": null,
185
254
  "difficulty": 5,
186
255
  "topics": [
187
256
  "Control-flow (loops)",
@@ -189,7 +258,10 @@
189
258
  ]
190
259
  },
191
260
  {
261
+ "uuid": "f823e453-90c1-4f9f-ab73-d560ca3675f0",
192
262
  "slug": "bowling",
263
+ "core": false,
264
+ "unlocked_by": null,
193
265
  "difficulty": 6,
194
266
  "topics": [
195
267
  "Algorithms",
@@ -197,11 +269,18 @@
197
269
  ]
198
270
  },
199
271
  {
272
+ "uuid": "d83a653b-da78-4f49-9ab2-3cc947825a2b",
200
273
  "slug": "book-store",
201
- "difficulty": 6
274
+ "core": false,
275
+ "unlocked_by": null,
276
+ "difficulty": 6,
277
+ "topics": null
202
278
  },
203
279
  {
280
+ "uuid": "f522e311-2d29-4fe2-a91c-5357ff85fde6",
204
281
  "slug": "wordy",
282
+ "core": false,
283
+ "unlocked_by": null,
205
284
  "difficulty": 7,
206
285
  "topics": [
207
286
  "Parsing",
@@ -210,7 +289,10 @@
210
289
  ]
211
290
  },
212
291
  {
292
+ "uuid": "250c222d-3d29-42fd-8695-bc9fc33db6f5",
213
293
  "slug": "poker",
294
+ "core": false,
295
+ "unlocked_by": null,
214
296
  "difficulty": 7,
215
297
  "topics": [
216
298
  "Parsing",
@@ -469,6 +469,16 @@
469
469
  "topics": [
470
470
  ]
471
471
  },
472
+ {
473
+ "slug": "minesweeper",
474
+ "difficulty": 7,
475
+ "topics": [
476
+ "games",
477
+ "arrays",
478
+ "algorithms",
479
+ "Matrices"
480
+ ]
481
+ },
472
482
  {
473
483
  "slug": "alphametics",
474
484
  "difficulty": 7,
@@ -1,9 +1,8 @@
1
1
  import accumulate from './accumulate';
2
2
 
3
3
  describe('accumulate()', () => {
4
-
5
4
  test('accumulation empty', () => {
6
- const accumulator = (e) => e * e;
5
+ const accumulator = e => e * e;
7
6
  expect(accumulate([], accumulator)).toEqual([]);
8
7
  });
9
8
 
@@ -14,7 +13,7 @@ describe('accumulate()', () => {
14
13
  });
15
14
 
16
15
  xtest('accumulate upcases', () => {
17
- const accumulator = word => word.toUpperCase();
16
+ const accumulator = word => word.toUpperCase();
18
17
  const result = accumulate('hello world'.split(/\s/), accumulator);
19
18
  expect(result).toEqual(['HELLO', 'WORLD']);
20
19
  });
@@ -26,13 +25,8 @@ describe('accumulate()', () => {
26
25
  });
27
26
 
28
27
  xtest('accumulate recursively', () => {
29
- const result = accumulate('a b c'.split(/\s/), char => {
30
- return accumulate('1 2 3'.split(/\s/), digit => {
31
- return char + digit;
32
- });
33
- });
28
+ const result = accumulate('a b c'.split(/\s/), char => accumulate('1 2 3'.split(/\s/), digit => char + digit));
34
29
 
35
30
  expect(result).toEqual([['a1', 'a2', 'a3'], ['b1', 'b2', 'b3'], ['c1', 'c2', 'c3']]);
36
31
  });
37
-
38
32
  });
@@ -1,6 +1,6 @@
1
1
  import Acronyms from './acronym';
2
2
 
3
- describe('Acronyms are produced from', ()=>{
3
+ describe('Acronyms are produced from', () => {
4
4
  test('title cased phrases', () => {
5
5
  expect(Acronyms.parse('Portable Network Graphics')).toEqual('PNG');
6
6
  });
@@ -9,7 +9,7 @@ describe('Acronyms are produced from', ()=>{
9
9
  expect(Acronyms.parse('Ruby on Rails')).toEqual('ROR');
10
10
  });
11
11
 
12
- xtest('inconsistently cased phrases', ()=>{
12
+ xtest('inconsistently cased phrases', () => {
13
13
  expect(Acronyms.parse('HyperText Markup Language')).toEqual('HTML');
14
14
  });
15
15