trackler 2.2.1.128 → 2.2.1.129

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/bracket-push/canonical-data.json +9 -1
  4. data/tracks/bash/config.json +3 -3
  5. data/tracks/ceylon/exercises/bracket-push/source/bracketpush/BracketsTest.ceylon +3 -1
  6. data/tracks/crystal/exercises/difference-of-squares/spec/difference_of_squares_spec.cr +9 -9
  7. data/tracks/csharp/config.json +12 -0
  8. data/tracks/csharp/exercises/Exercises.sln +7 -1
  9. data/tracks/csharp/exercises/yacht/Example.cs +71 -0
  10. data/tracks/csharp/exercises/yacht/README.md +34 -0
  11. data/tracks/csharp/exercises/yacht/Yacht.cs +26 -0
  12. data/tracks/csharp/exercises/yacht/Yacht.csproj +18 -0
  13. data/tracks/csharp/exercises/yacht/YachtTest.cs +162 -0
  14. data/tracks/csharp/generators/Exercises/Yacht.cs +20 -0
  15. data/tracks/dart/exercises/leap/lib/example.dart +4 -8
  16. data/tracks/dart/exercises/leap/lib/leap.dart +1 -1
  17. data/tracks/dart/exercises/leap/test/leap_test.dart +14 -16
  18. data/tracks/delphi/config.json +11 -0
  19. data/tracks/delphi/exercises/bracket-push/BracketPush.dpr +60 -0
  20. data/tracks/delphi/exercises/bracket-push/README.md +31 -0
  21. data/tracks/delphi/exercises/bracket-push/uBracketPushExample.pas +40 -0
  22. data/tracks/delphi/exercises/bracket-push/uBracketPushTest.pas +158 -0
  23. data/tracks/fsharp/config.json +18 -6
  24. data/tracks/fsharp/exercises/Exercises.sln +7 -1
  25. data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +2 -2
  26. data/tracks/fsharp/exercises/acronym/Acronym.fsproj +2 -2
  27. data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +2 -2
  28. data/tracks/fsharp/exercises/allergies/Allergies.fsproj +2 -2
  29. data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +2 -2
  30. data/tracks/fsharp/exercises/anagram/Anagram.fsproj +2 -2
  31. data/tracks/fsharp/exercises/armstrong-numbers/ArmstrongNumbers.fsproj +2 -2
  32. data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +2 -2
  33. data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +2 -2
  34. data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +2 -2
  35. data/tracks/fsharp/exercises/binary/Binary.fsproj +2 -2
  36. data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +2 -2
  37. data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +2 -2
  38. data/tracks/fsharp/exercises/bob/Bob.fsproj +2 -2
  39. data/tracks/fsharp/exercises/book-store/BookStore.fsproj +2 -2
  40. data/tracks/fsharp/exercises/bowling/Bowling.fsproj +2 -2
  41. data/tracks/fsharp/exercises/bowling/BowlingTest.fs +15 -1
  42. data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +2 -2
  43. data/tracks/fsharp/exercises/change/Change.fsproj +2 -2
  44. data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +2 -2
  45. data/tracks/fsharp/exercises/circular-buffer/CircularBufferTest.fs +1 -1
  46. data/tracks/fsharp/exercises/clock/Clock.fsproj +2 -2
  47. data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjecture.fsproj +2 -2
  48. data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fsproj +2 -2
  49. data/tracks/fsharp/exercises/connect/Connect.fsproj +2 -2
  50. data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +2 -2
  51. data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +2 -2
  52. data/tracks/fsharp/exercises/diamond/Diamond.fsproj +2 -2
  53. data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +2 -2
  54. data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +2 -2
  55. data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +2 -2
  56. data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +2 -2
  57. data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +2 -2
  58. data/tracks/fsharp/exercises/etl/Etl.fsproj +2 -2
  59. data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +2 -2
  60. data/tracks/fsharp/exercises/forth/Forth.fsproj +2 -2
  61. data/tracks/fsharp/exercises/forth/ForthTest.fs +1 -1
  62. data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +2 -2
  63. data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +2 -2
  64. data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +2 -2
  65. data/tracks/fsharp/exercises/grains/Grains.fsproj +2 -2
  66. data/tracks/fsharp/exercises/grains/GrainsTest.fs +1 -1
  67. data/tracks/fsharp/exercises/grep/Grep.fsproj +2 -2
  68. data/tracks/fsharp/exercises/grep/GrepTest.fs +1 -1
  69. data/tracks/fsharp/exercises/hamming/Hamming.fsproj +2 -2
  70. data/tracks/fsharp/exercises/hangman/Hangman.fsproj +2 -2
  71. data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +2 -2
  72. data/tracks/fsharp/exercises/hexadecimal/Hexadecimal.fsproj +2 -2
  73. data/tracks/fsharp/exercises/house/Example.fs +2 -2
  74. data/tracks/fsharp/exercises/house/House.fsproj +2 -2
  75. data/tracks/fsharp/exercises/house/HouseTest.fs +28 -211
  76. data/tracks/fsharp/exercises/isbn-verifier/IsbnVerifier.fsproj +2 -2
  77. data/tracks/fsharp/exercises/isbn-verifier/IsbnVerifierTest.fs +2 -2
  78. data/tracks/fsharp/exercises/isogram/Isogram.fsproj +2 -2
  79. data/tracks/fsharp/exercises/isogram/IsogramTest.fs +1 -1
  80. data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +2 -2
  81. data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +2 -2
  82. data/tracks/fsharp/exercises/leap/Leap.fsproj +2 -2
  83. data/tracks/fsharp/exercises/ledger/Ledger.fsproj +2 -2
  84. data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +2 -2
  85. data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +2 -2
  86. data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +2 -2
  87. data/tracks/fsharp/exercises/list-ops/ListOpsTest.fs +1 -1
  88. data/tracks/fsharp/exercises/luhn/Luhn.fsproj +2 -2
  89. data/tracks/fsharp/exercises/markdown/Markdown.fsproj +2 -2
  90. data/tracks/fsharp/exercises/matrix/Matrix.fsproj +2 -2
  91. data/tracks/fsharp/exercises/meetup/Meetup.fsproj +2 -2
  92. data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +2 -2
  93. data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +2 -2
  94. data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +2 -2
  95. data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +2 -2
  96. data/tracks/fsharp/exercises/octal/Octal.fsproj +2 -2
  97. data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +2 -2
  98. data/tracks/fsharp/exercises/pangram/Pangram.fsproj +2 -2
  99. data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +2 -2
  100. data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +2 -2
  101. data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +2 -2
  102. data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +2 -2
  103. data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +2 -2
  104. data/tracks/fsharp/exercises/poker/Poker.fsproj +2 -2
  105. data/tracks/fsharp/exercises/pov/Pov.fsproj +2 -2
  106. data/tracks/fsharp/exercises/pov/PovTest.fs +2 -2
  107. data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +2 -2
  108. data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +2 -2
  109. data/tracks/fsharp/exercises/proverb/Proverb.fsproj +2 -2
  110. data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +2 -2
  111. data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +2 -2
  112. data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +2 -2
  113. data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +2 -2
  114. data/tracks/fsharp/exercises/rational-numbers/RationalNumbers.fsproj +2 -2
  115. data/tracks/fsharp/exercises/react/Example.fs +1 -1
  116. data/tracks/fsharp/exercises/react/React.fsproj +2 -2
  117. data/tracks/fsharp/exercises/react/ReactTest.fs +14 -1
  118. data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +2 -2
  119. data/tracks/fsharp/exercises/reverse-string/ReverseString.fsproj +2 -2
  120. data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +2 -2
  121. data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +2 -2
  122. data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +2 -2
  123. data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +2 -2
  124. data/tracks/fsharp/exercises/rotational-cipher/RotationalCipher.fsproj +2 -2
  125. data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +2 -2
  126. data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +2 -2
  127. data/tracks/fsharp/exercises/say/Say.fsproj +2 -2
  128. data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +2 -2
  129. data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +2 -2
  130. data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +2 -2
  131. data/tracks/fsharp/exercises/series/Series.fsproj +2 -2
  132. data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +2 -2
  133. data/tracks/fsharp/exercises/sieve/Sieve.fsproj +2 -2
  134. data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +2 -2
  135. data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +2 -2
  136. data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +2 -2
  137. data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrix.fsproj +2 -2
  138. data/tracks/fsharp/exercises/strain/Strain.fsproj +2 -2
  139. data/tracks/fsharp/exercises/sublist/Sublist.fsproj +2 -2
  140. data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +2 -2
  141. data/tracks/fsharp/exercises/tournament/Tournament.fsproj +2 -2
  142. data/tracks/fsharp/exercises/transpose/Transpose.fsproj +2 -2
  143. data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +2 -2
  144. data/tracks/fsharp/exercises/triangle/Triangle.fsproj +2 -2
  145. data/tracks/fsharp/exercises/trinary/Trinary.fsproj +2 -2
  146. data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +2 -2
  147. data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +2 -2
  148. data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +2 -2
  149. data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +2 -2
  150. data/tracks/fsharp/exercises/word-count/WordCount.fsproj +2 -2
  151. data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +2 -2
  152. data/tracks/fsharp/exercises/word-search/WordSearchTest.fs +1 -1
  153. data/tracks/fsharp/exercises/wordy/Wordy.fsproj +2 -2
  154. data/tracks/fsharp/exercises/yacht/Example.fs +65 -0
  155. data/tracks/fsharp/exercises/yacht/Program.fs +1 -0
  156. data/tracks/fsharp/exercises/yacht/README.md +34 -0
  157. data/tracks/fsharp/exercises/yacht/Yacht.fs +17 -0
  158. data/tracks/fsharp/exercises/yacht/Yacht.fsproj +23 -0
  159. data/tracks/fsharp/exercises/yacht/YachtTest.fs +113 -0
  160. data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +2 -2
  161. data/tracks/fsharp/exercises/zipper/Zipper.fsproj +2 -2
  162. data/tracks/fsharp/generators/CanonicalData.fs +2 -20
  163. data/tracks/fsharp/generators/Common.fs +1 -1
  164. data/tracks/fsharp/generators/Generators.fs +24 -11
  165. data/tracks/fsharp/generators/Generators.fsproj +4 -4
  166. data/tracks/fsharp/generators/Options.fs +1 -1
  167. data/tracks/haskell/exercises/bracket-push/package.yaml +1 -1
  168. data/tracks/haskell/exercises/bracket-push/test/Tests.hs +4 -0
  169. data/tracks/java/config.json +13 -0
  170. data/tracks/java/exercises/dominoes/.meta/src/reference/java/ChainNotFoundException.java +5 -0
  171. data/tracks/java/exercises/dominoes/.meta/src/reference/java/Domino.java +30 -0
  172. data/tracks/java/exercises/dominoes/.meta/src/reference/java/Dominoes.java +67 -0
  173. data/tracks/java/exercises/dominoes/.meta/version +2 -0
  174. data/tracks/java/exercises/dominoes/README.md +29 -0
  175. data/tracks/java/exercises/dominoes/build.gradle +18 -0
  176. data/tracks/java/exercises/dominoes/src/main/java/ChainNotFoundException.java +5 -0
  177. data/tracks/java/exercises/dominoes/src/main/java/Domino.java +30 -0
  178. data/tracks/java/exercises/dominoes/src/test/java/DominoesTest.java +230 -0
  179. data/tracks/java/exercises/settings.gradle +1 -0
  180. data/tracks/javascript/.eslintignore +0 -1
  181. data/tracks/javascript/exercises/simple-cipher/example.js +4 -6
  182. data/tracks/javascript/exercises/simple-cipher/simple-cipher.spec.js +7 -3
  183. data/tracks/php/config.json +7 -7
  184. data/tracks/python/config.json +195 -188
  185. data/tracks/python/exercises/alphametics/alphametics_test.py +1 -0
  186. data/tracks/python/exercises/bank-account/README.md +20 -1
  187. data/tracks/python/exercises/go-counting/README.md +2 -0
  188. data/tracks/python/test/check-exercises.py +1 -1
  189. data/tracks/rust/_test/ensure-stubs-compile.sh +5 -0
  190. data/tracks/rust/config/exercise_readme.go.tmpl +1 -1
  191. data/tracks/rust/config.json +10 -0
  192. data/tracks/rust/exercises/accumulate/README.md +1 -1
  193. data/tracks/rust/exercises/acronym/README.md +1 -1
  194. data/tracks/rust/exercises/all-your-base/README.md +1 -1
  195. data/tracks/rust/exercises/all-your-base/example.rs +15 -5
  196. data/tracks/rust/exercises/all-your-base/src/lib.rs +8 -1
  197. data/tracks/rust/exercises/all-your-base/tests/all-your-base.rs +10 -5
  198. data/tracks/rust/exercises/allergies/README.md +1 -1
  199. data/tracks/rust/exercises/alphametics/README.md +1 -1
  200. data/tracks/rust/exercises/anagram/README.md +1 -1
  201. data/tracks/rust/exercises/armstrong-numbers/.gitignore +3 -0
  202. data/tracks/rust/exercises/armstrong-numbers/Cargo.toml +3 -0
  203. data/tracks/rust/exercises/armstrong-numbers/README.md +51 -0
  204. data/tracks/rust/exercises/armstrong-numbers/example.rs +7 -0
  205. data/tracks/rust/exercises/armstrong-numbers/src/lib.rs +3 -0
  206. data/tracks/rust/exercises/armstrong-numbers/tests/armstrong-numbers.rs +49 -0
  207. data/tracks/rust/exercises/atbash-cipher/README.md +1 -1
  208. data/tracks/rust/exercises/beer-song/README.md +1 -1
  209. data/tracks/rust/exercises/binary-search/README.md +1 -1
  210. data/tracks/rust/exercises/bob/README.md +1 -1
  211. data/tracks/rust/exercises/book-store/README.md +1 -1
  212. data/tracks/rust/exercises/bowling/README.md +1 -1
  213. data/tracks/rust/exercises/bowling/example.rs +13 -8
  214. data/tracks/rust/exercises/bowling/src/lib.rs +22 -0
  215. data/tracks/rust/exercises/bowling/tests/bowling.rs +31 -31
  216. data/tracks/rust/exercises/bracket-push/README.md +1 -1
  217. data/tracks/rust/exercises/circular-buffer/README.md +1 -1
  218. data/tracks/rust/exercises/clock/README.md +1 -1
  219. data/tracks/rust/exercises/collatz-conjecture/README.md +1 -1
  220. data/tracks/rust/exercises/crypto-square/README.md +1 -1
  221. data/tracks/rust/exercises/crypto-square/example.rs +11 -3
  222. data/tracks/rust/exercises/crypto-square/tests/crypto-square.rs +8 -16
  223. data/tracks/rust/exercises/custom-set/README.md +1 -1
  224. data/tracks/rust/exercises/custom-set/example.rs +17 -17
  225. data/tracks/rust/exercises/custom-set/tests/custom-set.rs +84 -84
  226. data/tracks/rust/exercises/decimal/README.md +1 -1
  227. data/tracks/rust/exercises/difference-of-squares/README.md +1 -1
  228. data/tracks/rust/exercises/diffie-hellman/README.md +1 -1
  229. data/tracks/rust/exercises/dominoes/README.md +1 -1
  230. data/tracks/rust/exercises/etl/README.md +1 -1
  231. data/tracks/rust/exercises/forth/README.md +1 -1
  232. data/tracks/rust/exercises/gigasecond/README.md +1 -1
  233. data/tracks/rust/exercises/grade-school/README.md +1 -1
  234. data/tracks/rust/exercises/grains/README.md +1 -1
  235. data/tracks/rust/exercises/hamming/README.md +1 -1
  236. data/tracks/rust/exercises/hello-world/README.md +1 -1
  237. data/tracks/rust/exercises/hexadecimal/README.md +1 -1
  238. data/tracks/rust/exercises/isbn-verifier/README.md +1 -1
  239. data/tracks/rust/exercises/isogram/README.md +1 -1
  240. data/tracks/rust/exercises/largest-series-product/README.md +1 -1
  241. data/tracks/rust/exercises/largest-series-product/example.rs +10 -4
  242. data/tracks/rust/exercises/largest-series-product/src/lib.rs +9 -0
  243. data/tracks/rust/exercises/largest-series-product/tests/largest-series-product.rs +3 -3
  244. data/tracks/rust/exercises/leap/README.md +1 -1
  245. data/tracks/rust/exercises/luhn/README.md +1 -1
  246. data/tracks/rust/exercises/luhn-from/README.md +1 -1
  247. data/tracks/rust/exercises/luhn-trait/README.md +1 -1
  248. data/tracks/rust/exercises/macros/.meta/ALLOWED_TO_NOT_COMPILE +2 -0
  249. data/tracks/rust/exercises/macros/README.md +1 -1
  250. data/tracks/rust/exercises/minesweeper/README.md +1 -1
  251. data/tracks/rust/exercises/nth-prime/README.md +1 -1
  252. data/tracks/rust/exercises/nucleotide-codons/README.md +1 -1
  253. data/tracks/rust/exercises/nucleotide-count/README.md +1 -1
  254. data/tracks/rust/exercises/ocr-numbers/README.md +1 -1
  255. data/tracks/rust/exercises/ocr-numbers/example.rs +14 -6
  256. data/tracks/rust/exercises/ocr-numbers/src/lib.rs +7 -1
  257. data/tracks/rust/exercises/ocr-numbers/tests/ocr-numbers.rs +2 -2
  258. data/tracks/rust/exercises/pangram/README.md +1 -1
  259. data/tracks/rust/exercises/parallel-letter-frequency/README.md +1 -1
  260. data/tracks/rust/exercises/pascals-triangle/README.md +1 -1
  261. data/tracks/rust/exercises/perfect-numbers/README.md +1 -1
  262. data/tracks/rust/exercises/phone-number/README.md +1 -1
  263. data/tracks/rust/exercises/pig-latin/README.md +1 -1
  264. data/tracks/rust/exercises/poker/README.md +1 -1
  265. data/tracks/rust/exercises/prime-factors/README.md +1 -1
  266. data/tracks/rust/exercises/protein-translation/README.md +1 -1
  267. data/tracks/rust/exercises/proverb/README.md +1 -1
  268. data/tracks/rust/exercises/pythagorean-triplet/README.md +1 -1
  269. data/tracks/rust/exercises/queen-attack/README.md +1 -1
  270. data/tracks/rust/exercises/raindrops/README.md +1 -1
  271. data/tracks/rust/exercises/react/README.md +1 -1
  272. data/tracks/rust/exercises/react/example.rs +27 -18
  273. data/tracks/rust/exercises/react/src/lib.rs +25 -10
  274. data/tracks/rust/exercises/react/tests/react.rs +113 -83
  275. data/tracks/rust/exercises/rectangles/README.md +1 -1
  276. data/tracks/rust/exercises/reverse-string/README.md +1 -1
  277. data/tracks/rust/exercises/rna-transcription/README.md +1 -1
  278. data/tracks/rust/exercises/robot-name/README.md +1 -1
  279. data/tracks/rust/exercises/robot-simulator/README.md +1 -1
  280. data/tracks/rust/exercises/roman-numerals/README.md +1 -1
  281. data/tracks/rust/exercises/rotational-cipher/README.md +1 -1
  282. data/tracks/rust/exercises/run-length-encoding/README.md +1 -1
  283. data/tracks/rust/exercises/saddle-points/README.md +1 -1
  284. data/tracks/rust/exercises/say/README.md +1 -1
  285. data/tracks/rust/exercises/scrabble-score/README.md +1 -1
  286. data/tracks/rust/exercises/series/README.md +1 -1
  287. data/tracks/rust/exercises/sieve/README.md +1 -1
  288. data/tracks/rust/exercises/simple-linked-list/README.md +1 -1
  289. data/tracks/rust/exercises/space-age/README.md +1 -1
  290. data/tracks/rust/exercises/sublist/README.md +1 -1
  291. data/tracks/rust/exercises/sum-of-multiples/README.md +1 -1
  292. data/tracks/rust/exercises/tournament/README.md +1 -1
  293. data/tracks/rust/exercises/triangle/README.md +1 -1
  294. data/tracks/rust/exercises/two-bucket/README.md +1 -1
  295. data/tracks/rust/exercises/variable-length-quantity/README.md +1 -1
  296. data/tracks/rust/exercises/word-count/README.md +1 -1
  297. data/tracks/rust/exercises/wordy/README.md +1 -1
  298. data/tracks/typescript/config.json +11 -0
  299. data/tracks/typescript/exercises/list-ops/README.md +35 -0
  300. data/tracks/typescript/exercises/list-ops/list-ops.example.ts +80 -0
  301. data/tracks/typescript/exercises/list-ops/list-ops.test.ts +117 -0
  302. data/tracks/typescript/exercises/list-ops/list-ops.ts +0 -0
  303. data/tracks/typescript/exercises/list-ops/package.json +36 -0
  304. data/tracks/typescript/exercises/list-ops/tsconfig.json +22 -0
  305. data/tracks/typescript/exercises/list-ops/tslint.json +127 -0
  306. data/tracks/typescript/exercises/list-ops/yarn.lock +2624 -0
  307. metadata +42 -3
  308. data/tracks/dart/exercises/leap/pubspec.lock +0 -293
@@ -6,7 +6,7 @@
6
6
  {
7
7
  "uuid": "f458c48a-4a05-4809-9168-8edd55179349",
8
8
  "slug": "hello-world",
9
- "core": false,
9
+ "core": true,
10
10
  "unlocked_by": null,
11
11
  "difficulty": 1,
12
12
  "topics": [
@@ -18,7 +18,7 @@
18
18
  {
19
19
  "uuid": "b6acda85-5f62-4d9c-bb4f-42b7a360355a",
20
20
  "slug": "leap",
21
- "core": false,
21
+ "core": true,
22
22
  "unlocked_by": null,
23
23
  "difficulty": 1,
24
24
  "topics": [
@@ -41,7 +41,7 @@
41
41
  "uuid": "d1a98c79-d3cc-4035-baab-0e334d2b6a57",
42
42
  "slug": "isogram",
43
43
  "core": false,
44
- "unlocked_by": null,
44
+ "unlocked_by": "two-fer",
45
45
  "difficulty": 1,
46
46
  "topics": [
47
47
  "conditionals",
@@ -54,7 +54,7 @@
54
54
  "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10",
55
55
  "slug": "pangram",
56
56
  "core": false,
57
- "unlocked_by": null,
57
+ "unlocked_by": "hello-world",
58
58
  "difficulty": 1,
59
59
  "topics": [
60
60
  "loops",
@@ -84,7 +84,7 @@
84
84
  "uuid": "7961c852-c87a-44b0-b152-efea3ac8555c",
85
85
  "slug": "isbn-verifier",
86
86
  "core": false,
87
- "unlocked_by": null,
87
+ "unlocked_by": "bob",
88
88
  "difficulty": 1,
89
89
  "topics": [
90
90
  "type_conversion",
@@ -98,7 +98,7 @@
98
98
  "uuid": "8648fa0c-d85f-471b-a3ae-0f8c05222c89",
99
99
  "slug": "hamming",
100
100
  "core": false,
101
- "unlocked_by": null,
101
+ "unlocked_by": "hello-world",
102
102
  "difficulty": 1,
103
103
  "topics": [
104
104
  "conditionals",
@@ -115,7 +115,7 @@
115
115
  "uuid": "04316811-0bc3-4377-8ff5-5a300ba41d61",
116
116
  "slug": "word-count",
117
117
  "core": false,
118
- "unlocked_by": null,
118
+ "unlocked_by": "bob",
119
119
  "difficulty": 3,
120
120
  "topics": [
121
121
  "strings",
@@ -139,7 +139,7 @@
139
139
  {
140
140
  "uuid": "009a80e2-7901-4d3b-9af2-cdcbcc0b49ae",
141
141
  "slug": "bob",
142
- "core": false,
142
+ "core": true,
143
143
  "unlocked_by": null,
144
144
  "difficulty": 1,
145
145
  "topics": [
@@ -152,7 +152,7 @@
152
152
  "uuid": "505e7bdb-e18d-45fd-9849-0bf33492efd9",
153
153
  "slug": "run-length-encoding",
154
154
  "core": false,
155
- "unlocked_by": null,
155
+ "unlocked_by": "markdown",
156
156
  "difficulty": 1,
157
157
  "topics": [
158
158
  "strings",
@@ -164,7 +164,7 @@
164
164
  "uuid": "a5aff23f-7829-403f-843a-d3312dca31e8",
165
165
  "slug": "meetup",
166
166
  "core": false,
167
- "unlocked_by": null,
167
+ "unlocked_by": "list-ops",
168
168
  "difficulty": 1,
169
169
  "topics": [
170
170
  "strings",
@@ -178,7 +178,7 @@
178
178
  "uuid": "e9b0defc-dac5-11e7-9296-cec278b6b50a",
179
179
  "slug": "armstrong-numbers",
180
180
  "core": false,
181
- "unlocked_by": null,
181
+ "unlocked_by": "sum-of-multiples",
182
182
  "difficulty": 1,
183
183
  "topics": [
184
184
  "mathematics",
@@ -190,7 +190,7 @@
190
190
  "uuid": "4c408aab-80b9-475d-9c06-b01cd0fcd08f",
191
191
  "slug": "rotational-cipher",
192
192
  "core": false,
193
- "unlocked_by": null,
193
+ "unlocked_by": "bob",
194
194
  "difficulty": 1,
195
195
  "topics": [
196
196
  "strings",
@@ -202,17 +202,17 @@
202
202
  "uuid": "913b6099-d75a-4c27-8243-476081752c31",
203
203
  "slug": "difference-of-squares",
204
204
  "core": false,
205
- "unlocked_by": null,
205
+ "unlocked_by": "leap",
206
206
  "difficulty": 1,
207
207
  "topics": [
208
- "mathematics"
208
+ "mathematics"
209
209
  ]
210
210
  },
211
211
  {
212
212
  "uuid": "43eaf8bd-0b4d-4ea9-850a-773f013325ef",
213
213
  "slug": "anagram",
214
214
  "core": false,
215
- "unlocked_by": null,
215
+ "unlocked_by": "bob",
216
216
  "difficulty": 1,
217
217
  "topics": [
218
218
  "strings",
@@ -224,20 +224,21 @@
224
224
  {
225
225
  "uuid": "83627e35-4689-4d9b-a81b-284c2c084466",
226
226
  "slug": "allergies",
227
- "core": false,
227
+ "core": true,
228
228
  "unlocked_by": null,
229
229
  "difficulty": 1,
230
230
  "topics": [
231
231
  "classes",
232
232
  "mathematics",
233
- "bitwise_operations"
233
+ "bitwise_operations",
234
+ "enumerations"
234
235
  ]
235
236
  },
236
237
  {
237
238
  "uuid": "aa4c2e85-b8f8-4309-9708-d8ff805054c2",
238
239
  "slug": "series",
239
240
  "core": false,
240
- "unlocked_by": null,
241
+ "unlocked_by": "sum-of-multiples",
241
242
  "difficulty": 1,
242
243
  "topics": [
243
244
  "algorithms",
@@ -250,7 +251,7 @@
250
251
  "uuid": "ca474c47-57bb-4995-bf9a-b6937479de29",
251
252
  "slug": "robot-simulator",
252
253
  "core": false,
253
- "unlocked_by": null,
254
+ "unlocked_by": "clock",
254
255
  "difficulty": 1,
255
256
  "topics": [
256
257
  "algorithms",
@@ -265,20 +266,21 @@
265
266
  "uuid": "ad0192e6-7742-4922-a53e-791e25eb9ba3",
266
267
  "slug": "sieve",
267
268
  "core": false,
268
- "unlocked_by": null,
269
+ "unlocked_by": "binary-search",
269
270
  "difficulty": 1,
270
271
  "topics": [
271
272
  "algorithms",
272
273
  "conditionals",
273
274
  "lists",
274
- "loops"
275
+ "loops",
276
+ "mathematics"
275
277
  ]
276
278
  },
277
279
  {
278
280
  "uuid": "02b91a90-244d-479e-a039-0e1d328c0be9",
279
281
  "slug": "atbash-cipher",
280
282
  "core": false,
281
- "unlocked_by": null,
283
+ "unlocked_by": "grade-school",
282
284
  "difficulty": 1,
283
285
  "topics": [
284
286
  "algorithms",
@@ -290,7 +292,7 @@
290
292
  {
291
293
  "uuid": "6e0caa0a-6a1a-4f03-bf0f-e07711f4b069",
292
294
  "slug": "sum-of-multiples",
293
- "core": false,
295
+ "core": true,
294
296
  "unlocked_by": null,
295
297
  "difficulty": 1,
296
298
  "topics": [
@@ -302,7 +304,7 @@
302
304
  "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd",
303
305
  "slug": "acronym",
304
306
  "core": false,
305
- "unlocked_by": null,
307
+ "unlocked_by": "two-fer",
306
308
  "difficulty": 1,
307
309
  "topics": [
308
310
  "strings",
@@ -313,7 +315,7 @@
313
315
  "uuid": "2f86ce8e-47c7-4858-89fc-e7729feb0f2f",
314
316
  "slug": "say",
315
317
  "core": false,
316
- "unlocked_by": null,
318
+ "unlocked_by": "kindergarten-garden",
317
319
  "difficulty": 1,
318
320
  "topics": [
319
321
  "loops",
@@ -326,18 +328,18 @@
326
328
  "uuid": "21624a3e-6e43-4c0e-94b0-dee5cdaaf2aa",
327
329
  "slug": "largest-series-product",
328
330
  "core": false,
329
- "unlocked_by": null,
331
+ "unlocked_by": "leap",
330
332
  "difficulty": 1,
331
333
  "topics": [
332
- "loops",
333
- "logic",
334
- "conditionals"
334
+ "loops",
335
+ "logic",
336
+ "conditionals"
335
337
  ]
336
338
  },
337
339
  {
338
340
  "uuid": "42a2916c-ef03-44ac-b6d8-7eda375352c2",
339
341
  "slug": "kindergarten-garden",
340
- "core": false,
342
+ "core": true,
341
343
  "unlocked_by": null,
342
344
  "difficulty": 1,
343
345
  "topics": [
@@ -345,12 +347,12 @@
345
347
  "classes",
346
348
  "optional_values",
347
349
  "variables"
348
- ]
350
+ ]
349
351
  },
350
352
  {
351
353
  "uuid": "aadde1a8-ed7a-4242-bfc0-6dddfd382cf3",
352
354
  "slug": "grade-school",
353
- "core": false,
355
+ "core": true,
354
356
  "unlocked_by": null,
355
357
  "difficulty": 1,
356
358
  "topics": [
@@ -366,7 +368,7 @@
366
368
  "uuid": "07481204-fe88-4aa2-995e-d40d1ae15070",
367
369
  "slug": "flatten-array",
368
370
  "core": false,
369
- "unlocked_by": null,
371
+ "unlocked_by": "grade-school",
370
372
  "difficulty": 1,
371
373
  "topics": [
372
374
  "recursion",
@@ -379,7 +381,7 @@
379
381
  "uuid": "bffe2007-717a-44ee-b628-b9c86a5001e8",
380
382
  "slug": "roman-numerals",
381
383
  "core": false,
382
- "unlocked_by": null,
384
+ "unlocked_by": "list-ops",
383
385
  "difficulty": 1,
384
386
  "topics": [
385
387
  "conditionals",
@@ -407,7 +409,7 @@
407
409
  "uuid": "a24e6d34-9952-44f4-a0cd-02c7fedb4875",
408
410
  "slug": "grains",
409
411
  "core": false,
410
- "unlocked_by": null,
412
+ "unlocked_by": "leap",
411
413
  "difficulty": 1,
412
414
  "topics": [
413
415
  "bitwise_operations",
@@ -420,7 +422,7 @@
420
422
  "uuid": "34dde040-672e-472f-bf2e-b87b6f9933c0",
421
423
  "slug": "luhn",
422
424
  "core": false,
423
- "unlocked_by": null,
425
+ "unlocked_by": "markdown",
424
426
  "difficulty": 1,
425
427
  "topics": [
426
428
  "mathematics",
@@ -435,7 +437,7 @@
435
437
  "uuid": "a3b24ef2-303a-494e-8804-e52a67ef406b",
436
438
  "slug": "etl",
437
439
  "core": false,
438
- "unlocked_by": null,
440
+ "unlocked_by": "grade-school",
439
441
  "difficulty": 1,
440
442
  "topics": [
441
443
  "loops",
@@ -447,7 +449,7 @@
447
449
  "uuid": "41dd9178-76b4-4f78-b71a-b5ff8d12645b",
448
450
  "slug": "prime-factors",
449
451
  "core": false,
450
- "unlocked_by": null,
452
+ "unlocked_by": "leap",
451
453
  "difficulty": 1,
452
454
  "topics": [
453
455
  "mathematics",
@@ -460,7 +462,7 @@
460
462
  "uuid": "a5bc16da-8d55-4840-9523-686aebbaaa7e",
461
463
  "slug": "pig-latin",
462
464
  "core": false,
463
- "unlocked_by": null,
465
+ "unlocked_by": "book-store",
464
466
  "difficulty": 1,
465
467
  "topics": [
466
468
  "strings",
@@ -474,7 +476,7 @@
474
476
  "uuid": "09b2f396-00d7-4d89-ac47-5c444e00dd99",
475
477
  "slug": "simple-cipher",
476
478
  "core": false,
477
- "unlocked_by": null,
479
+ "unlocked_by": "list-ops",
478
480
  "difficulty": 1,
479
481
  "topics": [
480
482
  "cryptography",
@@ -486,20 +488,20 @@
486
488
  "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe",
487
489
  "slug": "scrabble-score",
488
490
  "core": false,
489
- "unlocked_by": null,
491
+ "unlocked_by": "sum-of-multiples",
490
492
  "difficulty": 1,
491
493
  "topics": [
492
- "loops",
493
- "strings",
494
- "games",
495
- "maps"
494
+ "loops",
495
+ "strings",
496
+ "games",
497
+ "maps"
496
498
  ]
497
499
  },
498
500
  {
499
501
  "uuid": "e8685468-8006-480f-87c6-6295700def38",
500
502
  "slug": "crypto-square",
501
503
  "core": false,
502
- "unlocked_by": null,
504
+ "unlocked_by": "allergies",
503
505
  "difficulty": 1,
504
506
  "topics": [
505
507
  "strings",
@@ -511,7 +513,7 @@
511
513
  "uuid": "cc5eb848-09bc-458c-8fb6-3a17687cb4eb",
512
514
  "slug": "sublist",
513
515
  "core": false,
514
- "unlocked_by": null,
516
+ "unlocked_by": "grade-school",
515
517
  "difficulty": 1,
516
518
  "topics": [
517
519
  "lists",
@@ -523,7 +525,7 @@
523
525
  "uuid": "7b53865e-a981-46e0-8e47-6f8e1f3854b3",
524
526
  "slug": "pythagorean-triplet",
525
527
  "core": false,
526
- "unlocked_by": null,
528
+ "unlocked_by": "leap",
527
529
  "difficulty": 1,
528
530
  "topics": [
529
531
  "conditionals",
@@ -545,7 +547,7 @@
545
547
  "uuid": "77ee3b0e-a4e9-4257-bcfc-ff2c8f1477ab",
546
548
  "slug": "circular-buffer",
547
549
  "core": false,
548
- "unlocked_by": null,
550
+ "unlocked_by": "markdown",
549
551
  "difficulty": 1,
550
552
  "topics": [
551
553
  "algorithms",
@@ -559,7 +561,7 @@
559
561
  "uuid": "bf30b17f-6b71-4bb5-815a-88f8181b89ae",
560
562
  "slug": "robot-name",
561
563
  "core": false,
562
- "unlocked_by": null,
564
+ "unlocked_by": "hello-world",
563
565
  "difficulty": 1,
564
566
  "topics": [
565
567
  "regular_expressions",
@@ -573,7 +575,7 @@
573
575
  "uuid": "b564927a-f08f-4287-9e8d-9bd5daa7081f",
574
576
  "slug": "matrix",
575
577
  "core": false,
576
- "unlocked_by": null,
578
+ "unlocked_by": "kindergarten-garden",
577
579
  "difficulty": 1,
578
580
  "topics": [
579
581
  "loops",
@@ -586,32 +588,32 @@
586
588
  "uuid": "6434cc19-1ea3-43dd-9580-72267ec76b80",
587
589
  "slug": "rail-fence-cipher",
588
590
  "core": false,
589
- "unlocked_by": null,
591
+ "unlocked_by": "book-store",
590
592
  "difficulty": 1,
591
593
  "topics": [
592
- "algorithms",
593
- "cryptography",
594
- "text_formatting",
595
- "lists"
594
+ "algorithms",
595
+ "cryptography",
596
+ "text_formatting",
597
+ "lists"
596
598
  ]
597
599
  },
598
600
  {
599
601
  "uuid": "a20924d2-fe6d-4714-879f-3239feb9d2f2",
600
602
  "slug": "nth-prime",
601
603
  "core": false,
602
- "unlocked_by": null,
604
+ "unlocked_by": "book-store",
603
605
  "difficulty": 1,
604
606
  "topics": [
605
- "algorithms",
606
- "mathematics",
607
- "loops",
608
- "lists"
607
+ "algorithms",
608
+ "mathematics",
609
+ "loops",
610
+ "lists"
609
611
  ]
610
612
  },
611
613
  {
612
614
  "uuid": "71c96c5f-f3b6-4358-a9c6-fc625e2edda2",
613
615
  "slug": "saddle-points",
614
- "core": false,
616
+ "core": true,
615
617
  "unlocked_by": null,
616
618
  "difficulty": 1,
617
619
  "topics": [
@@ -628,7 +630,7 @@
628
630
  "uuid": "b7984882-65df-4993-a878-7872c776592a",
629
631
  "slug": "beer-song",
630
632
  "core": false,
631
- "unlocked_by": null,
633
+ "unlocked_by": "bob",
632
634
  "difficulty": 1,
633
635
  "topics": [
634
636
  "loops",
@@ -640,10 +642,10 @@
640
642
  "uuid": "c23ae7a3-3095-4608-8720-ee9ce8938f26",
641
643
  "slug": "perfect-numbers",
642
644
  "core": false,
643
- "unlocked_by": null,
645
+ "unlocked_by": "leap",
644
646
  "difficulty": 1,
645
647
  "topics": [
646
- "algorithms",
648
+ "algorithms",
647
649
  "loops",
648
650
  "mathematics",
649
651
  "logic"
@@ -653,7 +655,7 @@
653
655
  "uuid": "0d5b2a0e-31ff-4c8c-a155-0406f7dca3ae",
654
656
  "slug": "secret-handshake",
655
657
  "core": false,
656
- "unlocked_by": null,
658
+ "unlocked_by": "sum-of-multiples",
657
659
  "difficulty": 1,
658
660
  "topics": [
659
661
  "conditionals",
@@ -666,23 +668,11 @@
666
668
  "transforming"
667
669
  ]
668
670
  },
669
- {
670
- "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02",
671
- "slug": "bank-account",
672
- "core": false,
673
- "unlocked_by": null,
674
- "difficulty": 4,
675
- "topics": [
676
- "classes",
677
- "concurrency",
678
- "conditionals"
679
- ]
680
- },
681
671
  {
682
672
  "uuid": "d41238ce-359c-4a9a-81ea-ca5d2c4bb50d",
683
673
  "slug": "twelve-days",
684
674
  "core": false,
685
- "unlocked_by": null,
675
+ "unlocked_by": "bob",
686
676
  "difficulty": 1,
687
677
  "topics": [
688
678
  "strings",
@@ -694,7 +684,7 @@
694
684
  "uuid": "fa795dcc-d390-4e98-880c-6e8e638485e3",
695
685
  "slug": "palindrome-products",
696
686
  "core": false,
697
- "unlocked_by": null,
687
+ "unlocked_by": "saddle-points",
698
688
  "difficulty": 1,
699
689
  "topics": [
700
690
  "mathematics",
@@ -705,7 +695,7 @@
705
695
  "uuid": "45229a7c-6703-4240-8287-16645881a043",
706
696
  "slug": "bracket-push",
707
697
  "core": false,
708
- "unlocked_by": null,
698
+ "unlocked_by": "bob",
709
699
  "difficulty": 1,
710
700
  "topics": [
711
701
  "recursion",
@@ -718,7 +708,7 @@
718
708
  "uuid": "7e768b54-4591-4a30-9ddb-66ca13400ca3",
719
709
  "slug": "minesweeper",
720
710
  "core": false,
721
- "unlocked_by": null,
711
+ "unlocked_by": "kindergarten-garden",
722
712
  "difficulty": 1,
723
713
  "topics": [
724
714
  "lists",
@@ -732,7 +722,7 @@
732
722
  "uuid": "b280c252-5320-4e53-8294-1385d564eb02",
733
723
  "slug": "queen-attack",
734
724
  "core": false,
735
- "unlocked_by": null,
725
+ "unlocked_by": "clock",
736
726
  "difficulty": 1,
737
727
  "topics": [
738
728
  "exception_handling",
@@ -747,7 +737,7 @@
747
737
  "uuid": "af50bb9a-e400-49ce-966f-016c31720be1",
748
738
  "slug": "wordy",
749
739
  "core": false,
750
- "unlocked_by": null,
740
+ "unlocked_by": "kindergarten-garden",
751
741
  "difficulty": 1,
752
742
  "topics": [
753
743
  "logic",
@@ -763,7 +753,7 @@
763
753
  "uuid": "f384c6f8-987d-41a2-b504-e50506585526",
764
754
  "slug": "phone-number",
765
755
  "core": false,
766
- "unlocked_by": null,
756
+ "unlocked_by": "sum-of-multiples",
767
757
  "difficulty": 1,
768
758
  "topics": [
769
759
  "pattern_matching",
@@ -776,7 +766,7 @@
776
766
  "uuid": "98ca48ed-5818-442c-bce1-308c8b3b3b77",
777
767
  "slug": "ocr-numbers",
778
768
  "core": false,
779
- "unlocked_by": null,
769
+ "unlocked_by": "kindergarten-garden",
780
770
  "difficulty": 1,
781
771
  "topics": [
782
772
  "lists",
@@ -788,7 +778,7 @@
788
778
  "uuid": "7c2e93ae-d265-4481-b583-a496608c6031",
789
779
  "slug": "house",
790
780
  "core": false,
791
- "unlocked_by": null,
781
+ "unlocked_by": "allergies",
792
782
  "difficulty": 1,
793
783
  "topics": [
794
784
  "recursion",
@@ -801,21 +791,21 @@
801
791
  "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31",
802
792
  "slug": "triangle",
803
793
  "core": false,
804
- "unlocked_by": null,
794
+ "unlocked_by": "leap",
805
795
  "difficulty": 1,
806
796
  "topics": [
807
- "conditionals",
808
- "pattern_matching",
809
- "classes",
810
- "mathematics",
811
- "object_oriented_programming"
797
+ "conditionals",
798
+ "pattern_matching",
799
+ "classes",
800
+ "mathematics",
801
+ "object_oriented_programming"
812
802
  ]
813
803
  },
814
804
  {
815
805
  "uuid": "a9c2fbda-a1e4-42dd-842f-4de5bb361b91",
816
806
  "slug": "dot-dsl",
817
807
  "core": false,
818
- "unlocked_by": null,
808
+ "unlocked_by": "clock",
819
809
  "difficulty": 5,
820
810
  "topics": [
821
811
  "equality",
@@ -832,7 +822,7 @@
832
822
  "uuid": "dc6e61a2-e9b9-4406-ba5c-188252afbba1",
833
823
  "slug": "transpose",
834
824
  "core": false,
835
- "unlocked_by": null,
825
+ "unlocked_by": "markdown",
836
826
  "difficulty": 1,
837
827
  "topics": [
838
828
  "strings",
@@ -844,21 +834,21 @@
844
834
  "uuid": "aeaed0e4-0973-4035-8bc5-07480849048f",
845
835
  "slug": "tree-building",
846
836
  "core": false,
847
- "unlocked_by": null,
837
+ "unlocked_by": "allergies",
848
838
  "difficulty": 3,
849
839
  "topics": [
850
- "refactoring",
851
- "sorting",
852
- "trees",
853
- "records",
854
- "maps"
840
+ "refactoring",
841
+ "sorting",
842
+ "trees",
843
+ "records",
844
+ "maps"
855
845
  ]
856
846
  },
857
847
  {
858
848
  "uuid": "dcc0ee26-e384-4bd4-8c4b-613fa0bb8188",
859
849
  "slug": "poker",
860
850
  "core": false,
861
- "unlocked_by": null,
851
+ "unlocked_by": "kindergarten-garden",
862
852
  "difficulty": 1,
863
853
  "topics": [
864
854
  "lists",
@@ -871,7 +861,7 @@
871
861
  "uuid": "7e1d90d5-dbc9-47e0-8e26-c3ff83b73c2b",
872
862
  "slug": "zebra-puzzle",
873
863
  "core": false,
874
- "unlocked_by": null,
864
+ "unlocked_by": "book-store",
875
865
  "difficulty": 1,
876
866
  "topics": [
877
867
  "logic"
@@ -881,7 +871,7 @@
881
871
  "uuid": "4bebdd8d-a032-4993-85c5-7cc74fc89312",
882
872
  "slug": "rectangles",
883
873
  "core": false,
884
- "unlocked_by": null,
874
+ "unlocked_by": "kindergarten-garden",
885
875
  "difficulty": 1,
886
876
  "topics": [
887
877
  "algorithms",
@@ -892,7 +882,7 @@
892
882
  {
893
883
  "uuid": "a8288e93-93c5-4e0f-896c-2a376f6f6e5e",
894
884
  "slug": "binary-search",
895
- "core": false,
885
+ "core": true,
896
886
  "unlocked_by": null,
897
887
  "difficulty": 1,
898
888
  "topics": [
@@ -906,7 +896,7 @@
906
896
  {
907
897
  "uuid": "818c6472-b734-4ff4-8016-ce540141faec",
908
898
  "slug": "list-ops",
909
- "core": false,
899
+ "core": true,
910
900
  "unlocked_by": null,
911
901
  "difficulty": 1,
912
902
  "topics": [
@@ -923,7 +913,7 @@
923
913
  {
924
914
  "uuid": "4899b2ef-675f-4d14-b68a-1a457de91276",
925
915
  "slug": "book-store",
926
- "core": false,
916
+ "core": true,
927
917
  "unlocked_by": null,
928
918
  "difficulty": 1,
929
919
  "topics": [
@@ -933,22 +923,22 @@
933
923
  ]
934
924
  },
935
925
  {
936
- "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301",
937
- "slug": "simple-linked-list",
938
- "core": false,
939
- "unlocked_by": null,
940
- "difficulty": 1,
941
- "topics": [
942
- "lists",
943
- "algorithms",
944
- "conditionals"
945
- ]
926
+ "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301",
927
+ "slug": "simple-linked-list",
928
+ "core": false,
929
+ "unlocked_by": "clock",
930
+ "difficulty": 1,
931
+ "topics": [
932
+ "lists",
933
+ "algorithms",
934
+ "conditionals"
935
+ ]
946
936
  },
947
937
  {
948
938
  "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665",
949
939
  "slug": "linked-list",
950
940
  "core": false,
951
- "unlocked_by": "simple-linked-list",
941
+ "unlocked_by": "clock",
952
942
  "difficulty": 3,
953
943
  "topics": [
954
944
  "lists",
@@ -961,7 +951,7 @@
961
951
  "slug": "rational-numbers",
962
952
  "core": false,
963
953
  "unlocked_by": null,
964
- "difficulty": 2,
954
+ "difficulty": 5,
965
955
  "topics": [
966
956
  "equality",
967
957
  "classes",
@@ -973,7 +963,7 @@
973
963
  "uuid": "a7bc6837-59e4-46a1-89a2-a5aa44f5e66e",
974
964
  "slug": "diamond",
975
965
  "core": false,
976
- "unlocked_by": null,
966
+ "unlocked_by": "saddle-points",
977
967
  "difficulty": 1,
978
968
  "topics": [
979
969
  "strings",
@@ -985,7 +975,7 @@
985
975
  "uuid": "aa4332bd-fc38-47a4-8bff-e1b660798418",
986
976
  "slug": "variable-length-quantity",
987
977
  "core": false,
988
- "unlocked_by": null,
978
+ "unlocked_by": "allergies",
989
979
  "difficulty": 1,
990
980
  "topics": [
991
981
  "algorithms",
@@ -997,7 +987,7 @@
997
987
  "uuid": "a2ff75f9-8b2c-4c4b-975d-913711def9ab",
998
988
  "slug": "all-your-base",
999
989
  "core": false,
1000
- "unlocked_by": null,
990
+ "unlocked_by": "list-ops",
1001
991
  "difficulty": 4,
1002
992
  "topics": [
1003
993
  "integers",
@@ -1007,7 +997,7 @@
1007
997
  {
1008
998
  "uuid": "459fda78-851e-4bb0-a416-953528f46bd7",
1009
999
  "slug": "clock",
1010
- "core": false,
1000
+ "core": true,
1011
1001
  "unlocked_by": null,
1012
1002
  "difficulty": 2,
1013
1003
  "topics": [
@@ -1022,7 +1012,7 @@
1022
1012
  "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91",
1023
1013
  "slug": "grep",
1024
1014
  "core": false,
1025
- "unlocked_by": null,
1015
+ "unlocked_by": "markdown",
1026
1016
  "difficulty": 4,
1027
1017
  "topics": [
1028
1018
  "files",
@@ -1034,7 +1024,7 @@
1034
1024
  "uuid": "ca970fee-71b4-41e1-a5c3-b23bf574eb33",
1035
1025
  "slug": "bowling",
1036
1026
  "core": false,
1037
- "unlocked_by": null,
1027
+ "unlocked_by": "markdown",
1038
1028
  "difficulty": 5,
1039
1029
  "topics": [
1040
1030
  "classes",
@@ -1046,7 +1036,7 @@
1046
1036
  "uuid": "dc2917d5-aaa9-43d9-b9f4-a32919fdbe18",
1047
1037
  "slug": "word-search",
1048
1038
  "core": false,
1049
- "unlocked_by": null,
1039
+ "unlocked_by": "markdown",
1050
1040
  "difficulty": 6,
1051
1041
  "topics": [
1052
1042
  "strings",
@@ -1057,7 +1047,7 @@
1057
1047
  "uuid": "66466141-485c-470d-b73b-0a3d5a957c3d",
1058
1048
  "slug": "alphametics",
1059
1049
  "core": false,
1060
- "unlocked_by": null,
1050
+ "unlocked_by": "book-store",
1061
1051
  "difficulty": 6,
1062
1052
  "topics": [
1063
1053
  "mathematics",
@@ -1069,7 +1059,7 @@
1069
1059
  "uuid": "49377a3f-38ba-4d61-b94c-a54cfc9034d0",
1070
1060
  "slug": "tournament",
1071
1061
  "core": false,
1072
- "unlocked_by": null,
1062
+ "unlocked_by": "kindergarten-garden",
1073
1063
  "difficulty": 1,
1074
1064
  "topics": [
1075
1065
  "loops",
@@ -1082,7 +1072,7 @@
1082
1072
  "uuid": "8cd58325-61fc-46fd-85f9-425b4c41f3de",
1083
1073
  "slug": "scale-generator",
1084
1074
  "core": false,
1085
- "unlocked_by": null,
1075
+ "unlocked_by": "kindergarten-garden",
1086
1076
  "difficulty": 3,
1087
1077
  "topics": [
1088
1078
  "strings",
@@ -1093,7 +1083,7 @@
1093
1083
  "uuid": "c89243f3-703e-4fe0-8e43-f200eedf2825",
1094
1084
  "slug": "protein-translation",
1095
1085
  "core": false,
1096
- "unlocked_by": null,
1086
+ "unlocked_by": "two-fer",
1097
1087
  "difficulty": 3,
1098
1088
  "topics": [
1099
1089
  "strings",
@@ -1104,7 +1094,7 @@
1104
1094
  "uuid": "889df88a-767d-490f-92c4-552d8ec9de34",
1105
1095
  "slug": "change",
1106
1096
  "core": false,
1107
- "unlocked_by": null,
1097
+ "unlocked_by": "binary-search",
1108
1098
  "difficulty": 4,
1109
1099
  "topics": [
1110
1100
  "loops",
@@ -1115,7 +1105,7 @@
1115
1105
  {
1116
1106
  "uuid": "4177de10-f767-4306-b45d-5e9c08ef4753",
1117
1107
  "slug": "two-fer",
1118
- "core": false,
1108
+ "core": true,
1119
1109
  "unlocked_by": null,
1120
1110
  "difficulty": 1,
1121
1111
  "topics": [
@@ -1128,7 +1118,7 @@
1128
1118
  "uuid": "f5503274-ac23-11e7-abc4-cec278b6b50a",
1129
1119
  "slug": "connect",
1130
1120
  "core": false,
1131
- "unlocked_by": null,
1121
+ "unlocked_by": "kindergarten-garden",
1132
1122
  "difficulty": 1,
1133
1123
  "topics": [
1134
1124
  "parsing",
@@ -1139,34 +1129,36 @@
1139
1129
  "uuid": "33f689ee-1d9c-4908-a71c-f84bff3510df",
1140
1130
  "slug": "collatz-conjecture",
1141
1131
  "core": false,
1142
- "unlocked_by": null,
1132
+ "unlocked_by": "sum-of-multiples",
1143
1133
  "difficulty": 1,
1144
1134
  "topics": [
1145
- "loops"
1135
+ "loops",
1136
+ "mathematics"
1146
1137
  ]
1147
1138
  },
1148
1139
  {
1149
1140
  "uuid": "d4ddeb18-ac22-11e7-abc4-cec278b6b50a",
1150
1141
  "slug": "go-counting",
1151
1142
  "core": false,
1152
- "unlocked_by": null,
1143
+ "unlocked_by": "saddle-points",
1153
1144
  "difficulty": 4,
1154
1145
  "topics": [
1155
1146
  "parsing",
1156
1147
  "tuples",
1157
- "optional_values",
1158
- "classes"
1148
+ "classes",
1149
+ "control-flow"
1159
1150
  ]
1160
1151
  },
1161
1152
  {
1162
1153
  "uuid": "7f4d5743-7ab8-42ca-b393-767f7e9a4e97",
1163
1154
  "slug": "complex-numbers",
1164
1155
  "core": false,
1165
- "unlocked_by": null,
1156
+ "unlocked_by": "leap",
1166
1157
  "difficulty": 6,
1167
1158
  "topics": [
1168
1159
  "tuples",
1169
- "mathematics"
1160
+ "mathematics",
1161
+ "equality"
1170
1162
  ]
1171
1163
  },
1172
1164
  {
@@ -1183,29 +1175,31 @@
1183
1175
  "uuid": "6f530d0c-d13e-4270-b120-e42c16691a66",
1184
1176
  "slug": "two-bucket",
1185
1177
  "core": false,
1186
- "unlocked_by": null,
1178
+ "unlocked_by": "saddle-points",
1187
1179
  "difficulty": 5,
1188
1180
  "topics": [
1189
1181
  "algorithms",
1190
1182
  "loops",
1191
- "conditionals"
1183
+ "conditionals",
1184
+ "control-flow"
1192
1185
  ]
1193
1186
  },
1194
1187
  {
1195
1188
  "uuid": "88610b9a-6d3e-4924-a092-6d2f907ed4e2",
1196
1189
  "slug": "markdown",
1197
- "core": false,
1190
+ "core": true,
1198
1191
  "unlocked_by": null,
1199
1192
  "difficulty": 3,
1200
1193
  "topics": [
1201
- "refactoring"
1194
+ "refactoring",
1195
+ "text_formatting"
1202
1196
  ]
1203
1197
  },
1204
1198
  {
1205
1199
  "uuid": "14e1dfe3-a45c-40c1-bf61-2e4f0cca5579",
1206
1200
  "slug": "forth",
1207
1201
  "core": false,
1208
- "unlocked_by": null,
1202
+ "unlocked_by": "markdown",
1209
1203
  "difficulty": 5,
1210
1204
  "topics": [
1211
1205
  "parsing",
@@ -1216,7 +1210,7 @@
1216
1210
  "uuid": "f229746e-5ea9-4774-b3e0-9b9c2ebf9558",
1217
1211
  "slug": "food-chain",
1218
1212
  "core": false,
1219
- "unlocked_by": null,
1213
+ "unlocked_by": "allergies",
1220
1214
  "difficulty": 4,
1221
1215
  "topics": [
1222
1216
  "algorithms",
@@ -1228,19 +1222,19 @@
1228
1222
  "uuid": "569210ea-71c1-4fd2-941e-6bf0d953019e",
1229
1223
  "slug": "zipper",
1230
1224
  "core": false,
1231
- "unlocked_by": null,
1225
+ "unlocked_by": "markdown",
1232
1226
  "difficulty": 8,
1233
1227
  "topics": [
1234
- "recursion",
1235
- "searching",
1236
- "trees"
1228
+ "recursion",
1229
+ "searching",
1230
+ "trees"
1237
1231
  ]
1238
1232
  },
1239
1233
  {
1240
1234
  "uuid": "0dac0feb-e1c8-497e-9a1b-e96e0523eea6",
1241
1235
  "slug": "error-handling",
1242
1236
  "core": false,
1243
- "unlocked_by": null,
1237
+ "unlocked_by": "bob",
1244
1238
  "difficulty": 3,
1245
1239
  "topics": [
1246
1240
  "exception_handling"
@@ -1250,7 +1244,7 @@
1250
1244
  "uuid": "54995590-65eb-4178-a527-0d7b1526a843",
1251
1245
  "slug": "dominoes",
1252
1246
  "core": false,
1253
- "unlocked_by": null,
1247
+ "unlocked_by": "binary-search",
1254
1248
  "difficulty": 7,
1255
1249
  "topics": [
1256
1250
  "tuples",
@@ -1261,7 +1255,7 @@
1261
1255
  "uuid": "d98b1080-36d4-4357-b12a-685d204856bf",
1262
1256
  "slug": "pov",
1263
1257
  "core": false,
1264
- "unlocked_by": null,
1258
+ "unlocked_by": "markdown",
1265
1259
  "difficulty": 9,
1266
1260
  "topics": [
1267
1261
  "graphs",
@@ -1274,20 +1268,21 @@
1274
1268
  "uuid": "4c0d0d6b-347e-40ae-9b51-08555fe76cb9",
1275
1269
  "slug": "react",
1276
1270
  "core": false,
1277
- "unlocked_by": null,
1271
+ "unlocked_by": "saddle-points",
1278
1272
  "difficulty": 8,
1279
1273
  "topics": [
1280
1274
  "events",
1281
- "reactive_programming"
1275
+ "reactive_programming",
1276
+ "callbacks"
1282
1277
  ]
1283
1278
  },
1284
1279
  {
1285
1280
  "uuid": "df7cd9b9-283a-4466-accf-98c4a7609450",
1286
1281
  "slug": "binary-search-tree",
1287
1282
  "core": false,
1288
- "unlocked_by": null,
1283
+ "unlocked_by": "grade-school",
1289
1284
  "difficulty": 4,
1290
- "topics":[
1285
+ "topics": [
1291
1286
  "recursion",
1292
1287
  "classes",
1293
1288
  "trees",
@@ -1296,37 +1291,49 @@
1296
1291
  ]
1297
1292
  },
1298
1293
  {
1299
- "uuid": "bb07c236-062c-2980-483a-a221e4724445dcd6f32",
1300
- "slug": "custom-set",
1301
- "core": false,
1302
- "unlocked_by": null,
1303
- "difficulty": 5,
1304
- "topics": [
1305
- "sets"
1306
- ]
1307
- },
1308
- {
1309
- "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2",
1310
- "slug": "spiral-matrix",
1311
- "core": false,
1312
- "unlocked_by": null,
1313
- "difficulty": 2,
1314
- "topics": [
1315
- "algorithms",
1316
- "control-flow",
1317
- "lists"
1318
- ]
1319
- },
1320
- {
1321
- "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed",
1322
- "slug": "sgf-parsing",
1323
- "core": false,
1324
- "unlocked_by": null,
1325
- "difficulty": 7,
1326
- "topics": [
1327
- "parsing",
1328
- "trees"
1329
- ]
1294
+ "uuid": "bb07c236-062c-2980-483a-a221e4724445dcd6f32",
1295
+ "slug": "custom-set",
1296
+ "core": false,
1297
+ "unlocked_by": "book-store",
1298
+ "difficulty": 5,
1299
+ "topics": [
1300
+ "sets"
1301
+ ]
1302
+ },
1303
+ {
1304
+ "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2",
1305
+ "slug": "spiral-matrix",
1306
+ "core": false,
1307
+ "unlocked_by": "saddle-points",
1308
+ "difficulty": 2,
1309
+ "topics": [
1310
+ "algorithms",
1311
+ "control-flow",
1312
+ "lists"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed",
1317
+ "slug": "sgf-parsing",
1318
+ "core": false,
1319
+ "unlocked_by": null,
1320
+ "difficulty": 7,
1321
+ "topics": [
1322
+ "parsing",
1323
+ "trees"
1324
+ ]
1325
+ },
1326
+ {
1327
+ "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02",
1328
+ "slug": "bank-account",
1329
+ "core": false,
1330
+ "unlocked_by": null,
1331
+ "difficulty": 4,
1332
+ "topics": [
1333
+ "classes",
1334
+ "concurrency",
1335
+ "conditionals"
1336
+ ]
1330
1337
  },
1331
1338
  {
1332
1339
  "uuid": "e7351e8e-d3ff-4621-b818-cd55cf05bffd",