trackler 2.1.0.53 → 2.1.0.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1051) hide show
  1. checksums.yaml +4 -4
  2. data/bin/update +1 -1
  3. data/lib/trackler/version.rb +1 -1
  4. data/tracks/c/.travis.yml +1 -1
  5. data/tracks/c/config.json +9 -0
  6. data/tracks/c/exercises/all-your-base/makefile +15 -0
  7. data/tracks/c/exercises/all-your-base/src/all_your_base.h +6 -0
  8. data/tracks/c/exercises/all-your-base/src/example.c +41 -0
  9. data/tracks/c/exercises/all-your-base/src/example.h +12 -0
  10. data/tracks/c/exercises/all-your-base/test/test_all_your_base.c +202 -0
  11. data/tracks/c/exercises/all-your-base/test/vendor/unity.c +1300 -0
  12. data/tracks/c/exercises/all-your-base/test/vendor/unity.h +274 -0
  13. data/tracks/c/exercises/all-your-base/test/vendor/unity_internals.h +701 -0
  14. data/tracks/ceylon/.travis.yml +1 -1
  15. data/tracks/clojure/.travis.yml +1 -1
  16. data/tracks/clojure/exercises/rotational-cipher/src/example.clj +21 -15
  17. data/tracks/clojure/exercises/rotational-cipher/test/rotational_cipher_test.clj +14 -1
  18. data/tracks/cpp/.travis.yml +1 -1
  19. data/tracks/crystal/.gitignore +7 -2
  20. data/tracks/crystal/.travis.yml +1 -1
  21. data/tracks/crystal/Makefile +27 -10
  22. data/tracks/crystal/README.md +6 -6
  23. data/tracks/crystal/config.json +7 -0
  24. data/tracks/crystal/exercises/flatten-array/spec/flatten_array_spec.cr +28 -0
  25. data/tracks/crystal/exercises/flatten-array/src/example.cr +7 -0
  26. data/tracks/crystal/generator/generator.cr +20 -0
  27. data/tracks/crystal/generator/shard.lock +6 -0
  28. data/tracks/crystal/generator/shard.yml +9 -0
  29. data/tracks/crystal/{src/generator → generator}/spec/exercise_generator_spec.cr +2 -2
  30. data/tracks/crystal/{src/generator → generator}/spec/exercise_test_case_spec.cr +1 -1
  31. data/tracks/crystal/generator/spec/remote_data_file_spec.cr +58 -0
  32. data/tracks/crystal/{src/generator/exercises → generator/src}/exercise_generator.cr +10 -2
  33. data/tracks/crystal/{src/generator/exercises → generator/src}/exercise_test_case.cr +0 -0
  34. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/acronym.cr +2 -2
  35. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/binary.cr +2 -2
  36. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/difference_of_squares.cr +2 -2
  37. data/tracks/crystal/generator/src/generators/flatten_array.cr +43 -0
  38. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/forth.cr +2 -2
  39. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/hello_world.cr +2 -2
  40. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/pascals-triangle.cr +2 -2
  41. data/tracks/crystal/{src/generator/exercises → generator/src/generators}/run_length_encoding.cr +2 -2
  42. data/tracks/crystal/generator/src/remote_data_file.cr +57 -0
  43. data/tracks/crystal/{src/generator/exercises → generator/src}/templates/example.tt +0 -0
  44. data/tracks/csharp/.travis.yml +1 -1
  45. data/tracks/csharp/circle.yml +2 -2
  46. data/tracks/csharp/exercises/all-your-base/AllYourBaseTest.cs +14 -13
  47. data/tracks/csharp/exercises/allergies/Allergies.cs +1 -1
  48. data/tracks/csharp/exercises/allergies/AllergiesTest.cs +49 -46
  49. data/tracks/csharp/exercises/allergies/Example.cs +1 -1
  50. data/tracks/csharp/exercises/alphametics/AlphameticsTest.cs +9 -7
  51. data/tracks/csharp/exercises/anagram/Anagram.cs +2 -2
  52. data/tracks/csharp/exercises/anagram/AnagramTest.cs +100 -44
  53. data/tracks/csharp/exercises/anagram/Example.cs +6 -6
  54. data/tracks/csharp/exercises/binary-search/BinarySearch.cs +7 -2
  55. data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +47 -28
  56. data/tracks/csharp/exercises/binary-search/Example.cs +14 -18
  57. data/tracks/csharp/exercises/bracket-push/BracketPush.cs +16 -3
  58. data/tracks/csharp/exercises/bracket-push/BracketPushTest.cs +41 -25
  59. data/tracks/csharp/exercises/bracket-push/Example.cs +3 -3
  60. data/tracks/csharp/exercises/crypto-square/CryptoSquare.cs +8 -24
  61. data/tracks/csharp/exercises/crypto-square/CryptoSquareTest.cs +49 -64
  62. data/tracks/csharp/exercises/crypto-square/Example.cs +20 -38
  63. data/tracks/csharp/exercises/nth-prime/NthPrimeTest.cs +2 -1
  64. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbersTest.cs +3 -2
  65. data/tracks/csharp/exercises/wordy/WordyTest.cs +3 -2
  66. data/tracks/csharp/generators/.gitignore +2 -0
  67. data/tracks/csharp/generators/ExerciseCollection.cs +6 -6
  68. data/tracks/csharp/generators/Exercises/AllYourBase.cs +11 -2
  69. data/tracks/csharp/generators/Exercises/Allergies.cs +57 -0
  70. data/tracks/csharp/generators/Exercises/Alphametics.cs +33 -0
  71. data/tracks/csharp/generators/Exercises/Anagram.cs +26 -0
  72. data/tracks/csharp/generators/Exercises/BeerSong.cs +1 -1
  73. data/tracks/csharp/generators/Exercises/BinarySearch.cs +23 -0
  74. data/tracks/csharp/generators/Exercises/BookStore.cs +7 -3
  75. data/tracks/csharp/generators/Exercises/BracketPush.cs +14 -0
  76. data/tracks/csharp/generators/Exercises/CryptoSquare.cs +19 -0
  77. data/tracks/csharp/generators/Exercises/FoodChain.cs +1 -1
  78. data/tracks/csharp/generators/Exercises/NthPrime.cs +9 -0
  79. data/tracks/csharp/generators/Exercises/PerfectNumbers.cs +8 -0
  80. data/tracks/csharp/generators/Exercises/Transpose.cs +7 -3
  81. data/tracks/csharp/generators/Exercises/Wordy.cs +9 -0
  82. data/tracks/csharp/generators/Generators.csproj +2 -0
  83. data/tracks/csharp/generators/Input/CanonicalDataCase.cs +12 -3
  84. data/tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs +2 -5
  85. data/tracks/csharp/generators/Input/CanonicalDataFile.cs +28 -0
  86. data/tracks/csharp/generators/Input/CanonicalDataParser.cs +3 -13
  87. data/tracks/csharp/generators/Options.cs +12 -0
  88. data/tracks/csharp/generators/Output/BooleanTestMethodGenerator.cs +1 -1
  89. data/tracks/csharp/generators/Output/EqualityTestMethodGenerator.cs +18 -1
  90. data/tracks/csharp/generators/Output/ExceptionTestMethodGenerator.cs +6 -3
  91. data/tracks/csharp/generators/Output/TestClassFile.cs +1 -1
  92. data/tracks/csharp/generators/Output/TestMethod.cs +2 -0
  93. data/tracks/csharp/generators/Output/TestMethodGenerator.cs +23 -24
  94. data/tracks/csharp/generators/Output/ValueFormatter.cs +14 -16
  95. data/tracks/csharp/generators/Program.cs +6 -7
  96. data/tracks/dart/.travis.yml +1 -1
  97. data/tracks/dart/README.md +1 -1
  98. data/tracks/dart/tool/create-exercise +0 -0
  99. data/tracks/delphi/.travis.yml +1 -1
  100. data/tracks/delphi/config.json +9 -0
  101. data/tracks/delphi/docs/TESTS.md +2 -2
  102. data/tracks/delphi/exercises/wordy/Wordy.dpr +60 -0
  103. data/tracks/delphi/exercises/wordy/uWordyExample.pas +130 -0
  104. data/tracks/delphi/exercises/wordy/uWordyTests.pas +184 -0
  105. data/tracks/ecmascript/.travis.yml +1 -1
  106. data/tracks/ecmascript/Makefile +1 -1
  107. data/tracks/ecmascript/README.md +1 -1
  108. data/tracks/ecmascript/config.json +7 -0
  109. data/tracks/ecmascript/docs/EXERCISE_README_INSERT.md +3 -3
  110. data/tracks/ecmascript/docs/TESTS.md +3 -4
  111. data/tracks/ecmascript/exercises/accumulate/accumulate.spec.js +5 -5
  112. data/tracks/ecmascript/exercises/accumulate/package.json +8 -3
  113. data/tracks/ecmascript/exercises/acronym/acronym.spec.js +6 -6
  114. data/tracks/ecmascript/exercises/acronym/package.json +8 -3
  115. data/tracks/ecmascript/exercises/all-your-base/all-your-base.spec.js +25 -25
  116. data/tracks/ecmascript/exercises/all-your-base/package.json +8 -3
  117. data/tracks/ecmascript/exercises/allergies/allergies.spec.js +12 -12
  118. data/tracks/ecmascript/exercises/allergies/package.json +8 -3
  119. data/tracks/ecmascript/exercises/alphametics/alphametics.spec.js +95 -95
  120. data/tracks/ecmascript/exercises/alphametics/package.json +8 -3
  121. data/tracks/ecmascript/exercises/anagram/anagram.spec.js +11 -11
  122. data/tracks/ecmascript/exercises/anagram/package.json +8 -3
  123. data/tracks/ecmascript/exercises/atbash-cipher/atbash-cipher.spec.js +8 -8
  124. data/tracks/ecmascript/exercises/atbash-cipher/package.json +8 -3
  125. data/tracks/ecmascript/exercises/beer-song/beer-song.spec.js +6 -6
  126. data/tracks/ecmascript/exercises/beer-song/package.json +8 -3
  127. data/tracks/ecmascript/exercises/binary-search-tree/binary-search-tree.spec.js +9 -9
  128. data/tracks/ecmascript/exercises/binary-search-tree/package.json +8 -3
  129. data/tracks/ecmascript/exercises/binary-search/binary-search.spec.js +3 -3
  130. data/tracks/ecmascript/exercises/binary-search/package.json +8 -3
  131. data/tracks/ecmascript/exercises/binary/binary.spec.js +10 -10
  132. data/tracks/ecmascript/exercises/binary/package.json +8 -3
  133. data/tracks/ecmascript/exercises/bob/bob.spec.js +17 -17
  134. data/tracks/ecmascript/exercises/bob/package.json +8 -3
  135. data/tracks/ecmascript/exercises/bracket-push/bracket-push.spec.js +8 -8
  136. data/tracks/ecmascript/exercises/bracket-push/package.json +8 -3
  137. data/tracks/ecmascript/exercises/circular-buffer/circular-buffer.spec.js +11 -11
  138. data/tracks/ecmascript/exercises/circular-buffer/package.json +8 -3
  139. data/tracks/ecmascript/exercises/clock/clock.spec.js +50 -50
  140. data/tracks/ecmascript/exercises/clock/package.json +8 -3
  141. data/tracks/ecmascript/exercises/connect/connect.spec.js +10 -10
  142. data/tracks/ecmascript/exercises/connect/package.json +8 -3
  143. data/tracks/ecmascript/exercises/crypto-square/crypto-square.spec.js +10 -10
  144. data/tracks/ecmascript/exercises/crypto-square/package.json +8 -3
  145. data/tracks/ecmascript/exercises/custom-set/custom-set.spec.js +11 -11
  146. data/tracks/ecmascript/exercises/custom-set/package.json +8 -3
  147. data/tracks/ecmascript/exercises/diamond/diamond.spec.js +3 -3
  148. data/tracks/ecmascript/exercises/diamond/package.json +8 -3
  149. data/tracks/ecmascript/exercises/difference-of-squares/difference-of-squares.spec.js +9 -9
  150. data/tracks/ecmascript/exercises/difference-of-squares/package.json +8 -3
  151. data/tracks/ecmascript/exercises/diffie-hellman/diffie-hellman.spec.js +94 -0
  152. data/tracks/ecmascript/exercises/diffie-hellman/example.js +37 -0
  153. data/tracks/ecmascript/exercises/{package.json → diffie-hellman/package.json} +67 -14
  154. data/tracks/ecmascript/exercises/etl/etl.spec.js +4 -4
  155. data/tracks/ecmascript/exercises/etl/package.json +8 -3
  156. data/tracks/ecmascript/exercises/flatten-array/flatten-array.spec.js +9 -9
  157. data/tracks/ecmascript/exercises/flatten-array/package.json +67 -14
  158. data/tracks/ecmascript/exercises/food-chain/food-chain.spec.js +10 -10
  159. data/tracks/ecmascript/exercises/food-chain/package.json +8 -3
  160. data/tracks/ecmascript/exercises/gigasecond/gigasecond.spec.js +4 -4
  161. data/tracks/ecmascript/exercises/gigasecond/package.json +8 -3
  162. data/tracks/ecmascript/exercises/grade-school/grade-school.spec.js +9 -9
  163. data/tracks/ecmascript/exercises/grade-school/package.json +8 -3
  164. data/tracks/ecmascript/exercises/grains/big-integer.spec.js +5 -5
  165. data/tracks/ecmascript/exercises/grains/grains.spec.js +8 -8
  166. data/tracks/ecmascript/exercises/grains/package.json +8 -3
  167. data/tracks/ecmascript/exercises/hamming/hamming.spec.js +8 -8
  168. data/tracks/ecmascript/exercises/hamming/package.json +8 -3
  169. data/tracks/ecmascript/exercises/hello-world/hello-world.spec.js +1 -1
  170. data/tracks/ecmascript/exercises/hello-world/package.json +8 -3
  171. data/tracks/ecmascript/exercises/hexadecimal/hexadecimal.spec.js +10 -10
  172. data/tracks/ecmascript/exercises/hexadecimal/package.json +8 -3
  173. data/tracks/ecmascript/exercises/isogram/isogram.spec.js +10 -10
  174. data/tracks/ecmascript/exercises/isogram/package.json +8 -3
  175. data/tracks/ecmascript/exercises/kindergarten-garden/kindergarten-garden.spec.js +21 -21
  176. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +8 -3
  177. data/tracks/ecmascript/exercises/largest-series-product/largest-series-product.spec.js +12 -12
  178. data/tracks/ecmascript/exercises/largest-series-product/package.json +8 -3
  179. data/tracks/ecmascript/exercises/leap/leap.spec.js +4 -4
  180. data/tracks/ecmascript/exercises/leap/package.json +8 -3
  181. data/tracks/ecmascript/exercises/linked-list/linked-list.spec.js +11 -11
  182. data/tracks/ecmascript/exercises/linked-list/package.json +8 -3
  183. data/tracks/ecmascript/exercises/list-ops/list-ops.spec.js +17 -17
  184. data/tracks/ecmascript/exercises/list-ops/package.json +67 -14
  185. data/tracks/ecmascript/exercises/luhn/luhn.spec.js +6 -6
  186. data/tracks/ecmascript/exercises/luhn/package.json +8 -3
  187. data/tracks/ecmascript/exercises/matrix/matrix.spec.js +3 -3
  188. data/tracks/ecmascript/exercises/matrix/package.json +8 -3
  189. data/tracks/ecmascript/exercises/meetup/meetup.spec.js +13 -13
  190. data/tracks/ecmascript/exercises/meetup/package.json +8 -3
  191. data/tracks/ecmascript/exercises/nth-prime/nth-prime.spec.js +5 -5
  192. data/tracks/ecmascript/exercises/nth-prime/package.json +8 -3
  193. data/tracks/ecmascript/exercises/ocr-numbers/ocr-numbers.spec.js +16 -16
  194. data/tracks/ecmascript/exercises/ocr-numbers/package.json +8 -3
  195. data/tracks/ecmascript/exercises/octal/octal.spec.js +10 -10
  196. data/tracks/ecmascript/exercises/octal/package.json +8 -3
  197. data/tracks/ecmascript/exercises/palindrome-products/package.json +8 -3
  198. data/tracks/ecmascript/exercises/palindrome-products/palindrome-products.spec.js +5 -5
  199. data/tracks/ecmascript/exercises/pangram/package.json +8 -3
  200. data/tracks/ecmascript/exercises/pangram/pangram.spec.js +9 -9
  201. data/tracks/ecmascript/exercises/pascals-triangle/package.json +8 -3
  202. data/tracks/ecmascript/exercises/pascals-triangle/pascals-triangle.spec.js +6 -6
  203. data/tracks/ecmascript/exercises/perfect-numbers/package.json +8 -3
  204. data/tracks/ecmascript/exercises/perfect-numbers/perfect-numbers.spec.js +13 -13
  205. data/tracks/ecmascript/exercises/phone-number/package.json +8 -3
  206. data/tracks/ecmascript/exercises/phone-number/phone-number.spec.js +10 -10
  207. data/tracks/ecmascript/exercises/pig-latin/package.json +8 -3
  208. data/tracks/ecmascript/exercises/pig-latin/pig-latin.spec.js +11 -11
  209. data/tracks/ecmascript/exercises/prime-factors/package.json +8 -3
  210. data/tracks/ecmascript/exercises/prime-factors/prime-factors.spec.js +11 -11
  211. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +8 -3
  212. data/tracks/ecmascript/exercises/pythagorean-triplet/pythagorean-triplet.spec.js +7 -7
  213. data/tracks/ecmascript/exercises/queen-attack/package.json +8 -3
  214. data/tracks/ecmascript/exercises/queen-attack/queen-attack.spec.js +12 -12
  215. data/tracks/ecmascript/exercises/raindrops/package.json +8 -3
  216. data/tracks/ecmascript/exercises/raindrops/raindrops.spec.js +16 -16
  217. data/tracks/ecmascript/exercises/rna-transcription/package.json +8 -3
  218. data/tracks/ecmascript/exercises/rna-transcription/rna-transcription.spec.js +8 -8
  219. data/tracks/ecmascript/exercises/robot-name/package.json +8 -3
  220. data/tracks/ecmascript/exercises/robot-name/robot-name.spec.js +10 -10
  221. data/tracks/ecmascript/exercises/robot-simulator/package.json +8 -3
  222. data/tracks/ecmascript/exercises/robot-simulator/robot-simulator.spec.js +23 -23
  223. data/tracks/ecmascript/exercises/roman-numerals/package.json +8 -3
  224. data/tracks/ecmascript/exercises/roman-numerals/roman-numerals.spec.js +18 -18
  225. data/tracks/ecmascript/exercises/saddle-points/package.json +8 -3
  226. data/tracks/ecmascript/exercises/saddle-points/saddle-points.spec.js +8 -8
  227. data/tracks/ecmascript/exercises/say/package.json +8 -3
  228. data/tracks/ecmascript/exercises/say/say.spec.js +16 -16
  229. data/tracks/ecmascript/exercises/scrabble-score/package.json +8 -3
  230. data/tracks/ecmascript/exercises/scrabble-score/scrabble-score.spec.js +6 -6
  231. data/tracks/ecmascript/exercises/secret-handshake/package.json +8 -3
  232. data/tracks/ecmascript/exercises/secret-handshake/secret-handshake.spec.js +8 -8
  233. data/tracks/ecmascript/exercises/series/package.json +8 -3
  234. data/tracks/ecmascript/exercises/series/series.spec.js +11 -11
  235. data/tracks/ecmascript/exercises/sieve/package.json +8 -3
  236. data/tracks/ecmascript/exercises/sieve/sieve.spec.js +3 -3
  237. data/tracks/ecmascript/exercises/simple-cipher/package.json +8 -3
  238. data/tracks/ecmascript/exercises/simple-cipher/simple-cipher.spec.js +13 -13
  239. data/tracks/ecmascript/exercises/space-age/package.json +8 -3
  240. data/tracks/ecmascript/exercises/space-age/space-age.spec.js +10 -10
  241. data/tracks/ecmascript/exercises/strain/package.json +8 -3
  242. data/tracks/ecmascript/exercises/strain/strain.spec.js +12 -12
  243. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +8 -3
  244. data/tracks/ecmascript/exercises/sum-of-multiples/sum-of-multiples.spec.js +9 -9
  245. data/tracks/ecmascript/exercises/triangle/package.json +8 -3
  246. data/tracks/ecmascript/exercises/triangle/triangle.spec.js +15 -15
  247. data/tracks/ecmascript/exercises/trinary/package.json +8 -3
  248. data/tracks/ecmascript/exercises/trinary/trinary.spec.js +10 -10
  249. data/tracks/ecmascript/exercises/two-bucket/package.json +8 -3
  250. data/tracks/ecmascript/exercises/two-bucket/two-bucket.spec.js +4 -4
  251. data/tracks/ecmascript/exercises/word-count/package.json +8 -3
  252. data/tracks/ecmascript/exercises/word-count/word-count.spec.js +12 -12
  253. data/tracks/ecmascript/exercises/wordy/package.json +8 -3
  254. data/tracks/ecmascript/exercises/wordy/wordy.spec.js +16 -16
  255. data/tracks/ecmascript/package.json +8 -3
  256. data/tracks/elisp/.travis.yml +1 -1
  257. data/tracks/elixir/.travis.yml +1 -1
  258. data/tracks/elixir/config.json +11 -0
  259. data/tracks/elixir/exercises/dominoes/dominoes.exs +12 -0
  260. data/tracks/elixir/exercises/dominoes/dominoes_test.exs +80 -0
  261. data/tracks/elixir/exercises/dominoes/example.exs +40 -0
  262. data/tracks/elm/.travis.yml +1 -1
  263. data/tracks/elm/README.md +2 -0
  264. data/tracks/elm/bin/build.sh +1 -1
  265. data/tracks/elm/config.json +7 -0
  266. data/tracks/elm/docs/EXERCISE_README_INSERT.md +9 -0
  267. data/tracks/elm/docs/TESTS.md +8 -0
  268. data/tracks/elm/exercises/accumulate/package.json +1 -0
  269. data/tracks/elm/exercises/accumulate/tests/Tests.elm +13 -10
  270. data/tracks/elm/exercises/allergies/package.json +1 -0
  271. data/tracks/elm/exercises/allergies/tests/Tests.elm +37 -26
  272. data/tracks/elm/exercises/anagram/package.json +1 -0
  273. data/tracks/elm/exercises/anagram/tests/Tests.elm +95 -76
  274. data/tracks/elm/exercises/atbash-cipher/package.json +1 -0
  275. data/tracks/elm/exercises/atbash-cipher/tests/Tests.elm +31 -22
  276. data/tracks/elm/exercises/bob/package.json +1 -0
  277. data/tracks/elm/exercises/bob/tests/Tests.elm +114 -95
  278. data/tracks/elm/exercises/difference-of-squares/package.json +1 -0
  279. data/tracks/elm/exercises/difference-of-squares/tests/Tests.elm +27 -18
  280. data/tracks/elm/exercises/etl/Etl.elm +1 -0
  281. data/tracks/elm/exercises/etl/Etl.example.elm +15 -0
  282. data/tracks/elm/exercises/etl/elm-package.json +15 -0
  283. data/tracks/elm/exercises/etl/package.json +14 -0
  284. data/tracks/elm/exercises/etl/tests/Tests.elm +97 -0
  285. data/tracks/elm/exercises/etl/tests/elm-package.json +16 -0
  286. data/tracks/elm/exercises/gigasecond/package.json +1 -0
  287. data/tracks/elm/exercises/gigasecond/tests/Tests.elm +16 -12
  288. data/tracks/elm/exercises/grade-school/package.json +1 -0
  289. data/tracks/elm/exercises/grade-school/tests/Tests.elm +46 -41
  290. data/tracks/elm/exercises/grains/package.json +1 -0
  291. data/tracks/elm/exercises/grains/tests/Tests.elm +21 -14
  292. data/tracks/elm/exercises/hamming/package.json +1 -0
  293. data/tracks/elm/exercises/hamming/tests/Tests.elm +39 -26
  294. data/tracks/elm/exercises/hello-world/package.json +1 -0
  295. data/tracks/elm/exercises/hello-world/tests/Tests.elm +12 -6
  296. data/tracks/elm/exercises/largest-series-product/package.json +1 -0
  297. data/tracks/elm/exercises/largest-series-product/tests/Tests.elm +48 -32
  298. data/tracks/elm/exercises/leap/package.json +1 -0
  299. data/tracks/elm/exercises/leap/tests/Tests.elm +18 -12
  300. data/tracks/elm/exercises/list-ops/package.json +1 -0
  301. data/tracks/elm/exercises/list-ops/tests/Tests.elm +57 -38
  302. data/tracks/elm/exercises/nucleotide-count/package.json +1 -0
  303. data/tracks/elm/exercises/nucleotide-count/tests/Tests.elm +10 -8
  304. data/tracks/elm/exercises/pangram/package.json +1 -0
  305. data/tracks/elm/exercises/pangram/tests/Tests.elm +45 -36
  306. data/tracks/elm/exercises/phone-number/package.json +1 -0
  307. data/tracks/elm/exercises/phone-number/tests/Tests.elm +33 -22
  308. data/tracks/elm/exercises/raindrops/package.json +1 -0
  309. data/tracks/elm/exercises/raindrops/tests/Tests.elm +42 -28
  310. data/tracks/elm/exercises/rna-transcription/package.json +1 -0
  311. data/tracks/elm/exercises/rna-transcription/tests/Tests.elm +18 -12
  312. data/tracks/elm/exercises/robot-simulator/package.json +1 -0
  313. data/tracks/elm/exercises/robot-simulator/tests/Tests.elm +65 -47
  314. data/tracks/elm/exercises/roman-numerals/package.json +1 -0
  315. data/tracks/elm/exercises/roman-numerals/tests/Tests.elm +85 -68
  316. data/tracks/elm/exercises/run-length-encoding/package.json +1 -0
  317. data/tracks/elm/exercises/run-length-encoding/tests/Tests.elm +29 -22
  318. data/tracks/elm/exercises/say/package.json +1 -0
  319. data/tracks/elm/exercises/say/tests/Tests.elm +86 -70
  320. data/tracks/elm/exercises/scrabble-score/package.json +1 -0
  321. data/tracks/elm/exercises/scrabble-score/tests/Tests.elm +30 -20
  322. data/tracks/elm/exercises/series/package.json +1 -0
  323. data/tracks/elm/exercises/series/tests/Tests.elm +35 -28
  324. data/tracks/elm/exercises/space-age/package.json +1 -0
  325. data/tracks/elm/exercises/space-age/tests/Tests.elm +21 -14
  326. data/tracks/elm/exercises/strain/package.json +1 -0
  327. data/tracks/elm/exercises/strain/tests/Tests.elm +55 -44
  328. data/tracks/elm/exercises/sublist/package.json +1 -0
  329. data/tracks/elm/exercises/sublist/tests/Tests.elm +51 -34
  330. data/tracks/elm/exercises/sum-of-multiples/package.json +1 -0
  331. data/tracks/elm/exercises/sum-of-multiples/tests/Tests.elm +15 -10
  332. data/tracks/elm/exercises/triangle/package.json +1 -0
  333. data/tracks/elm/exercises/triangle/tests/Tests.elm +43 -28
  334. data/tracks/elm/exercises/word-count/package.json +1 -0
  335. data/tracks/elm/exercises/word-count/tests/Tests.elm +25 -20
  336. data/tracks/elm/package.json +0 -1
  337. data/tracks/erlang/.travis.yml +1 -1
  338. data/tracks/erlang/README.md +2 -2
  339. data/tracks/erlang/bin/journey-test.sh +1 -1
  340. data/tracks/erlang/config.json +7 -0
  341. data/tracks/erlang/docs/EXERCISE_README_INSERT.md +1 -1
  342. data/tracks/erlang/exercises/accumulate/.meta/readme.go.tmpl +17 -0
  343. data/tracks/erlang/exercises/accumulate/README.md +79 -0
  344. data/tracks/erlang/exercises/all-your-base/.meta/readme.go.tmpl +17 -0
  345. data/tracks/erlang/exercises/all-your-base/README.md +79 -0
  346. data/tracks/erlang/exercises/allergies/.meta/readme.go.tmpl +17 -0
  347. data/tracks/erlang/exercises/allergies/README.md +81 -0
  348. data/tracks/erlang/exercises/anagram/.meta/readme.go.tmpl +17 -0
  349. data/tracks/erlang/exercises/anagram/README.md +57 -0
  350. data/tracks/erlang/exercises/atbash-cipher/.meta/readme.go.tmpl +17 -0
  351. data/tracks/erlang/exercises/atbash-cipher/README.md +78 -0
  352. data/tracks/erlang/exercises/bank-account/.meta/readme.go.tmpl +17 -0
  353. data/tracks/erlang/exercises/bank-account/README.md +74 -0
  354. data/tracks/erlang/exercises/beer-song/.meta/readme.go.tmpl +17 -0
  355. data/tracks/erlang/exercises/beer-song/README.md +371 -0
  356. data/tracks/erlang/exercises/bob/.meta/readme.go.tmpl +17 -0
  357. data/tracks/erlang/exercises/bob/README.md +62 -0
  358. data/tracks/erlang/exercises/circular-buffer/.meta/readme.go.tmpl +17 -0
  359. data/tracks/erlang/exercises/circular-buffer/README.md +94 -0
  360. data/tracks/erlang/exercises/clock/.meta/readme.go.tmpl +17 -0
  361. data/tracks/erlang/exercises/clock/README.md +57 -0
  362. data/tracks/erlang/exercises/collatz-conjecture/.meta/readme.go.tmpl +17 -0
  363. data/tracks/erlang/exercises/collatz-conjecture/README.md +77 -0
  364. data/tracks/erlang/exercises/difference-of-squares/.meta/readme.go.tmpl +17 -0
  365. data/tracks/erlang/exercises/difference-of-squares/README.md +63 -0
  366. data/tracks/erlang/exercises/etl/.meta/readme.go.tmpl +17 -0
  367. data/tracks/erlang/exercises/etl/README.md +95 -0
  368. data/tracks/erlang/exercises/gigasecond/.meta/readme.go.tmpl +17 -0
  369. data/tracks/erlang/exercises/gigasecond/README.md +55 -0
  370. data/tracks/erlang/exercises/grade-school/.meta/readme.go.tmpl +17 -0
  371. data/tracks/erlang/exercises/grade-school/README.md +86 -0
  372. data/tracks/erlang/exercises/grains/.meta/readme.go.tmpl +17 -0
  373. data/tracks/erlang/exercises/grains/README.md +78 -0
  374. data/tracks/erlang/exercises/hamming/.meta/readme.go.tmpl +17 -0
  375. data/tracks/erlang/exercises/hamming/README.md +86 -0
  376. data/tracks/erlang/exercises/hello-world/.meta/readme.go.tmpl +17 -0
  377. data/tracks/erlang/exercises/hello-world/README.md +65 -0
  378. data/tracks/erlang/exercises/largest-series-product/.meta/readme.go.tmpl +17 -0
  379. data/tracks/erlang/exercises/largest-series-product/README.md +64 -0
  380. data/tracks/erlang/exercises/leap/.meta/readme.go.tmpl +17 -0
  381. data/tracks/erlang/exercises/leap/README.md +77 -0
  382. data/tracks/erlang/exercises/luhn/.meta/readme.go.tmpl +17 -0
  383. data/tracks/erlang/exercises/luhn/README.md +115 -0
  384. data/tracks/erlang/exercises/meetup/.meta/readme.go.tmpl +17 -0
  385. data/tracks/erlang/exercises/meetup/README.md +74 -0
  386. data/tracks/erlang/exercises/nucleotide-count/.meta/readme.go.tmpl +17 -0
  387. data/tracks/erlang/exercises/nucleotide-count/README.md +77 -0
  388. data/tracks/erlang/exercises/parallel-letter-frequency/.meta/readme.go.tmpl +17 -0
  389. data/tracks/erlang/exercises/parallel-letter-frequency/README.md +55 -0
  390. data/tracks/erlang/exercises/phone-number/.meta/readme.go.tmpl +17 -0
  391. data/tracks/erlang/exercises/phone-number/README.md +78 -0
  392. data/tracks/erlang/exercises/rna-transcription/.meta/readme.go.tmpl +17 -0
  393. data/tracks/erlang/exercises/rna-transcription/README.md +69 -0
  394. data/tracks/erlang/exercises/robot-simulator/.meta/readme.go.tmpl +17 -0
  395. data/tracks/erlang/exercises/robot-simulator/README.md +89 -0
  396. data/tracks/erlang/exercises/roman-numerals/.meta/readme.go.tmpl +17 -0
  397. data/tracks/erlang/exercises/roman-numerals/README.md +93 -0
  398. data/tracks/erlang/exercises/rotational-cipher/.meta/readme.go.tmpl +17 -0
  399. data/tracks/erlang/exercises/rotational-cipher/README.md +80 -0
  400. data/tracks/erlang/exercises/rotational-cipher/test/rotational_cipher_tests.erl +2 -2
  401. data/tracks/erlang/exercises/scrabble-score/.meta/readme.go.tmpl +17 -0
  402. data/tracks/erlang/exercises/scrabble-score/README.md +88 -0
  403. data/tracks/erlang/exercises/series/.meta/readme.go.tmpl +17 -0
  404. data/tracks/erlang/exercises/series/README.md +71 -0
  405. data/tracks/erlang/exercises/space-age/.meta/readme.go.tmpl +17 -0
  406. data/tracks/erlang/exercises/space-age/README.md +68 -0
  407. data/tracks/erlang/exercises/spiral-matrix/.meta/readme.go.tmpl +17 -0
  408. data/tracks/erlang/exercises/spiral-matrix/README.md +74 -0
  409. data/tracks/erlang/exercises/spiral-matrix/include/exercism.hrl +11 -0
  410. data/tracks/erlang/exercises/spiral-matrix/rebar.config +30 -0
  411. data/tracks/erlang/exercises/spiral-matrix/src/example.erl +26 -0
  412. data/tracks/erlang/exercises/spiral-matrix/src/spiral_matrix.app.src +9 -0
  413. data/tracks/erlang/exercises/spiral-matrix/test/spiral_matrix_tests.erl +43 -0
  414. data/tracks/erlang/exercises/strain/.meta/readme.go.tmpl +17 -0
  415. data/tracks/erlang/exercises/strain/README.md +84 -0
  416. data/tracks/erlang/exercises/sum-of-multiples/.meta/readme.go.tmpl +17 -0
  417. data/tracks/erlang/exercises/sum-of-multiples/README.md +62 -0
  418. data/tracks/erlang/exercises/triangle/.meta/readme.go.tmpl +17 -0
  419. data/tracks/erlang/exercises/triangle/README.md +70 -0
  420. data/tracks/erlang/exercises/word-count/.meta/readme.go.tmpl +17 -0
  421. data/tracks/erlang/exercises/word-count/README.md +63 -0
  422. data/tracks/erlang/exercises/zipper/.meta/readme.go.tmpl +17 -0
  423. data/tracks/erlang/exercises/zipper/README.md +75 -0
  424. data/tracks/factor/.travis.yml +1 -1
  425. data/tracks/fsharp/.travis.yml +2 -2
  426. data/tracks/go/config.json +4 -2
  427. data/tracks/go/exercises/clock/.meta/gen.go +6 -1
  428. data/tracks/go/exercises/clock/cases_test.go +20 -13
  429. data/tracks/go/exercises/clock/clock_test.go +6 -0
  430. data/tracks/groovy/.travis.yml +1 -1
  431. data/tracks/haskell/.travis.yml +2 -2
  432. data/tracks/haskell/exercises/accumulate/stack.yaml +1 -1
  433. data/tracks/haskell/exercises/acronym/stack.yaml +1 -1
  434. data/tracks/haskell/exercises/all-your-base/stack.yaml +1 -1
  435. data/tracks/haskell/exercises/allergies/stack.yaml +1 -1
  436. data/tracks/haskell/exercises/alphametics/stack.yaml +1 -1
  437. data/tracks/haskell/exercises/anagram/stack.yaml +1 -1
  438. data/tracks/haskell/exercises/atbash-cipher/stack.yaml +1 -1
  439. data/tracks/haskell/exercises/bank-account/stack.yaml +1 -1
  440. data/tracks/haskell/exercises/beer-song/stack.yaml +1 -1
  441. data/tracks/haskell/exercises/binary-search-tree/stack.yaml +1 -1
  442. data/tracks/haskell/exercises/binary/stack.yaml +1 -1
  443. data/tracks/haskell/exercises/bob/stack.yaml +1 -1
  444. data/tracks/haskell/exercises/bowling/stack.yaml +1 -1
  445. data/tracks/haskell/exercises/bracket-push/stack.yaml +1 -1
  446. data/tracks/haskell/exercises/change/stack.yaml +1 -1
  447. data/tracks/haskell/exercises/clock/stack.yaml +1 -1
  448. data/tracks/haskell/exercises/connect/stack.yaml +1 -1
  449. data/tracks/haskell/exercises/crypto-square/stack.yaml +1 -1
  450. data/tracks/haskell/exercises/custom-set/stack.yaml +1 -1
  451. data/tracks/haskell/exercises/difference-of-squares/stack.yaml +1 -1
  452. data/tracks/haskell/exercises/dominoes/stack.yaml +1 -1
  453. data/tracks/haskell/exercises/etl/stack.yaml +1 -1
  454. data/tracks/haskell/exercises/food-chain/stack.yaml +1 -1
  455. data/tracks/haskell/exercises/forth/stack.yaml +1 -1
  456. data/tracks/haskell/exercises/gigasecond/stack.yaml +1 -1
  457. data/tracks/haskell/exercises/go-counting/stack.yaml +1 -1
  458. data/tracks/haskell/exercises/grade-school/stack.yaml +1 -1
  459. data/tracks/haskell/exercises/grains/stack.yaml +1 -1
  460. data/tracks/haskell/exercises/hamming/stack.yaml +1 -1
  461. data/tracks/haskell/exercises/hello-world/stack.yaml +1 -1
  462. data/tracks/haskell/exercises/hexadecimal/stack.yaml +1 -1
  463. data/tracks/haskell/exercises/house/stack.yaml +1 -1
  464. data/tracks/haskell/exercises/kindergarten-garden/stack.yaml +1 -1
  465. data/tracks/haskell/exercises/largest-series-product/stack.yaml +1 -1
  466. data/tracks/haskell/exercises/leap/stack.yaml +1 -1
  467. data/tracks/haskell/exercises/lens-person/stack.yaml +1 -1
  468. data/tracks/haskell/exercises/linked-list/stack.yaml +1 -1
  469. data/tracks/haskell/exercises/list-ops/stack.yaml +1 -1
  470. data/tracks/haskell/exercises/luhn/stack.yaml +1 -1
  471. data/tracks/haskell/exercises/matrix/stack.yaml +1 -1
  472. data/tracks/haskell/exercises/meetup/stack.yaml +1 -1
  473. data/tracks/haskell/exercises/minesweeper/stack.yaml +1 -1
  474. data/tracks/haskell/exercises/nth-prime/stack.yaml +1 -1
  475. data/tracks/haskell/exercises/nucleotide-count/stack.yaml +1 -1
  476. data/tracks/haskell/exercises/ocr-numbers/stack.yaml +1 -1
  477. data/tracks/haskell/exercises/octal/stack.yaml +1 -1
  478. data/tracks/haskell/exercises/palindrome-products/stack.yaml +1 -1
  479. data/tracks/haskell/exercises/pangram/stack.yaml +1 -1
  480. data/tracks/haskell/exercises/parallel-letter-frequency/stack.yaml +1 -1
  481. data/tracks/haskell/exercises/pascals-triangle/stack.yaml +1 -1
  482. data/tracks/haskell/exercises/phone-number/stack.yaml +1 -1
  483. data/tracks/haskell/exercises/pig-latin/stack.yaml +1 -1
  484. data/tracks/haskell/exercises/pov/stack.yaml +1 -1
  485. data/tracks/haskell/exercises/prime-factors/stack.yaml +1 -1
  486. data/tracks/haskell/exercises/pythagorean-triplet/stack.yaml +1 -1
  487. data/tracks/haskell/exercises/queen-attack/stack.yaml +1 -1
  488. data/tracks/haskell/exercises/raindrops/stack.yaml +1 -1
  489. data/tracks/haskell/exercises/rna-transcription/stack.yaml +1 -1
  490. data/tracks/haskell/exercises/robot-name/stack.yaml +1 -1
  491. data/tracks/haskell/exercises/robot-simulator/stack.yaml +1 -1
  492. data/tracks/haskell/exercises/roman-numerals/stack.yaml +1 -1
  493. data/tracks/haskell/exercises/run-length-encoding/stack.yaml +1 -1
  494. data/tracks/haskell/exercises/saddle-points/stack.yaml +1 -1
  495. data/tracks/haskell/exercises/say/stack.yaml +1 -1
  496. data/tracks/haskell/exercises/scrabble-score/stack.yaml +1 -1
  497. data/tracks/haskell/exercises/secret-handshake/stack.yaml +1 -1
  498. data/tracks/haskell/exercises/series/stack.yaml +1 -1
  499. data/tracks/haskell/exercises/sgf-parsing/stack.yaml +1 -1
  500. data/tracks/haskell/exercises/sieve/stack.yaml +1 -1
  501. data/tracks/haskell/exercises/simple-cipher/stack.yaml +1 -1
  502. data/tracks/haskell/exercises/simple-linked-list/stack.yaml +1 -1
  503. data/tracks/haskell/exercises/space-age/stack.yaml +1 -1
  504. data/tracks/haskell/exercises/spiral-matrix/stack.yaml +1 -1
  505. data/tracks/haskell/exercises/strain/stack.yaml +1 -1
  506. data/tracks/haskell/exercises/sublist/stack.yaml +1 -1
  507. data/tracks/haskell/exercises/sum-of-multiples/stack.yaml +1 -1
  508. data/tracks/haskell/exercises/triangle/stack.yaml +1 -1
  509. data/tracks/haskell/exercises/trinary/stack.yaml +1 -1
  510. data/tracks/haskell/exercises/word-count/stack.yaml +1 -1
  511. data/tracks/haskell/exercises/wordy/stack.yaml +1 -1
  512. data/tracks/haskell/exercises/zebra-puzzle/stack.yaml +1 -1
  513. data/tracks/haskell/exercises/zipper/stack.yaml +1 -1
  514. data/tracks/idris/.travis.yml +1 -1
  515. data/tracks/java/.travis.yml +4 -2
  516. data/tracks/java/CONTRIBUTING.md +117 -0
  517. data/tracks/java/POLICIES.md +13 -11
  518. data/tracks/java/README.md +1 -111
  519. data/tracks/java/bin/README.md +3 -0
  520. data/tracks/java/bin/journey-test.sh +25 -12
  521. data/tracks/java/bin/unit-tests.sh +1 -2
  522. data/tracks/java/config.json +39 -7
  523. data/tracks/java/docs/RESOURCES.md +6 -0
  524. data/tracks/java/exercises/accumulate/.meta/readme.go.tmpl +17 -0
  525. data/tracks/java/exercises/accumulate/README.md +47 -0
  526. data/tracks/java/exercises/acronym/.meta/readme.go.tmpl +17 -0
  527. data/tracks/java/exercises/acronym/README.md +27 -0
  528. data/tracks/java/exercises/all-your-base/.meta/readme.go.tmpl +17 -0
  529. data/tracks/java/exercises/all-your-base/README.md +47 -0
  530. data/tracks/java/exercises/{binary-search/src/test → all-your-base/src/main}/java/.keep +0 -0
  531. data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +0 -4
  532. data/tracks/java/exercises/allergies/.meta/readme.go.tmpl +17 -0
  533. data/tracks/java/exercises/allergies/README.md +49 -0
  534. data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +17 -0
  535. data/tracks/java/exercises/anagram/README.md +25 -0
  536. data/tracks/java/exercises/{book-store/src/test → anagram/src/main}/java/.keep +0 -0
  537. data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +17 -0
  538. data/tracks/java/exercises/atbash-cipher/README.md +46 -0
  539. data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +17 -0
  540. data/tracks/java/exercises/bank-account/README.md +54 -0
  541. data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +17 -0
  542. data/tracks/java/exercises/beer-song/README.md +339 -0
  543. data/tracks/java/exercises/{list-ops → beer-song}/src/main/java/.keep +0 -0
  544. data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +17 -0
  545. data/tracks/java/exercises/binary-search-tree/README.md +72 -0
  546. data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +8 -8
  547. data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +17 -0
  548. data/tracks/java/exercises/binary-search/README.md +53 -0
  549. data/tracks/java/exercises/{sieve → binary-search}/src/main/java/.keep +0 -0
  550. data/tracks/java/exercises/binary/.meta/readme.go.tmpl +17 -0
  551. data/tracks/java/exercises/binary/README.md +47 -0
  552. data/tracks/java/exercises/bob/.meta/readme.go.tmpl +17 -0
  553. data/tracks/java/exercises/bob/README.md +30 -0
  554. data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +17 -0
  555. data/tracks/java/exercises/book-store/README.md +86 -0
  556. data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +17 -0
  557. data/tracks/java/exercises/bowling/README.md +65 -0
  558. data/tracks/java/exercises/bowling/build.gradle +18 -0
  559. data/tracks/java/exercises/bowling/src/example/java/BowlingGame.java +84 -0
  560. data/tracks/java/exercises/{twelve-days → bowling}/src/main/java/.keep +0 -0
  561. data/tracks/java/exercises/bowling/src/test/java/BowlingTest.java +291 -0
  562. data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +17 -0
  563. data/tracks/java/exercises/bracket-push/README.md +22 -0
  564. data/tracks/java/exercises/bracket-push/src/main/java/.keep +0 -0
  565. data/tracks/java/exercises/change/.meta/readme.go.tmpl +17 -0
  566. data/tracks/java/exercises/change/README.md +35 -0
  567. data/tracks/java/exercises/change/src/main/java/.keep +0 -0
  568. data/tracks/java/exercises/change/src/test/java/ChangeCalculatorTest.java +0 -4
  569. data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +17 -0
  570. data/tracks/java/exercises/circular-buffer/README.md +62 -0
  571. data/tracks/java/exercises/circular-buffer/build.gradle +18 -0
  572. data/tracks/java/exercises/circular-buffer/src/example/java/BufferIOException.java +6 -0
  573. data/tracks/java/exercises/circular-buffer/src/example/java/CircularBuffer.java +41 -0
  574. data/tracks/java/exercises/circular-buffer/src/main/java/BufferIOException.java +6 -0
  575. data/tracks/java/exercises/circular-buffer/src/test/java/CircularBufferTest.java +163 -0
  576. data/tracks/java/exercises/clock/.meta/readme.go.tmpl +17 -0
  577. data/tracks/java/exercises/clock/README.md +30 -0
  578. data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +17 -0
  579. data/tracks/java/exercises/collatz-conjecture/README.md +45 -0
  580. data/tracks/java/exercises/collatz-conjecture/src/main/java/.keep +0 -0
  581. data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +17 -0
  582. data/tracks/java/exercises/complex-numbers/README.md +23 -0
  583. data/tracks/java/exercises/complex-numbers/build.gradle +18 -0
  584. data/tracks/java/exercises/complex-numbers/src/example/java/ComplexNumber.java +57 -0
  585. data/tracks/java/exercises/complex-numbers/src/main/java/.keep +0 -0
  586. data/tracks/java/exercises/complex-numbers/src/test/java/ComplexNumberTest.java +262 -0
  587. data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +17 -0
  588. data/tracks/java/exercises/crypto-square/README.md +86 -0
  589. data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +17 -0
  590. data/tracks/java/exercises/custom-set/README.md +23 -0
  591. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +36 -36
  592. data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +17 -0
  593. data/tracks/java/exercises/diamond/README.md +71 -0
  594. data/tracks/java/exercises/diamond/src/main/java/.keep +0 -0
  595. data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +17 -0
  596. data/tracks/java/exercises/difference-of-squares/README.md +31 -0
  597. data/tracks/java/exercises/etl/.meta/readme.go.tmpl +17 -0
  598. data/tracks/java/exercises/etl/README.md +63 -0
  599. data/tracks/java/exercises/etl/src/main/java/Etl.java +1 -1
  600. data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +17 -0
  601. data/tracks/java/exercises/flatten-array/README.md +30 -0
  602. data/tracks/java/exercises/flatten-array/src/main/java/.keep +0 -0
  603. data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +17 -0
  604. data/tracks/java/exercises/food-chain/README.md +82 -0
  605. data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +17 -0
  606. data/tracks/java/exercises/gigasecond/README.md +23 -0
  607. data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +17 -0
  608. data/tracks/java/exercises/grade-school/README.md +54 -0
  609. data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +17 -0
  610. data/tracks/java/exercises/hamming/HINTS.md +12 -0
  611. data/tracks/java/exercises/hamming/README.md +68 -0
  612. data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +17 -0
  613. data/tracks/java/exercises/hello-world/README.md +39 -0
  614. data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +17 -0
  615. data/tracks/java/exercises/hexadecimal/README.md +26 -0
  616. data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +17 -0
  617. data/tracks/java/exercises/isogram/README.md +42 -0
  618. data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +17 -0
  619. data/tracks/java/exercises/kindergarten-garden/README.md +78 -0
  620. data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +17 -0
  621. data/tracks/java/exercises/largest-series-product/README.md +32 -0
  622. data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +0 -4
  623. data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +17 -0
  624. data/tracks/java/exercises/linked-list/README.md +46 -0
  625. data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +17 -0
  626. data/tracks/java/exercises/list-ops/HINTS.md +3 -0
  627. data/tracks/java/exercises/list-ops/README.md +27 -0
  628. data/tracks/java/exercises/list-ops/src/example/java/ListOps.java +43 -25
  629. data/tracks/java/exercises/list-ops/src/main/java/ListOps.java +44 -0
  630. data/tracks/java/exercises/list-ops/src/test/java/ListOpsTest.java +119 -249
  631. data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +17 -0
  632. data/tracks/java/exercises/luhn/README.md +83 -0
  633. data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +17 -0
  634. data/tracks/java/exercises/matrix/README.md +57 -0
  635. data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +17 -0
  636. data/tracks/java/exercises/meetup/README.md +42 -0
  637. data/tracks/java/exercises/meetup/src/test/java/MeetupTest.java +1 -2
  638. data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +17 -0
  639. data/tracks/java/exercises/minesweeper/README.md +42 -0
  640. data/tracks/java/exercises/minesweeper/src/main/java/.keep +0 -0
  641. data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +17 -0
  642. data/tracks/java/exercises/nth-prime/README.md +27 -0
  643. data/tracks/java/exercises/nth-prime/src/test/java/PrimeCalculatorTest.java +4 -4
  644. data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +17 -0
  645. data/tracks/java/exercises/nucleotide-count/README.md +45 -0
  646. data/tracks/java/exercises/nucleotide-count/src/main/java/.keep +0 -0
  647. data/tracks/java/exercises/nucleotide-count/src/test/java/NucleotideTest.java +3 -3
  648. data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +17 -0
  649. data/tracks/java/exercises/ocr-numbers/README.md +97 -0
  650. data/tracks/java/exercises/ocr-numbers/src/main/java/.keep +0 -0
  651. data/tracks/java/exercises/ocr-numbers/src/test/java/OpticalCharacterReaderTest.java +0 -4
  652. data/tracks/java/exercises/octal/.meta/readme.go.tmpl +17 -0
  653. data/tracks/java/exercises/octal/README.md +61 -0
  654. data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +17 -0
  655. data/tracks/java/exercises/palindrome-products/README.md +52 -0
  656. data/tracks/java/exercises/palindrome-products/src/test/java/PalindromeCalculatorTest.java +4 -4
  657. data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +17 -0
  658. data/tracks/java/exercises/pangram/README.md +27 -0
  659. data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +17 -0
  660. data/tracks/java/exercises/pascals-triangle/README.md +33 -0
  661. data/tracks/java/exercises/pascals-triangle/src/test/java/PascalsTriangleGeneratorTest.java +2 -2
  662. data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +17 -0
  663. data/tracks/java/exercises/perfect-numbers/README.md +36 -0
  664. data/tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java +0 -4
  665. data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +17 -0
  666. data/tracks/java/exercises/phone-number/README.md +46 -0
  667. data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +17 -0
  668. data/tracks/java/exercises/pig-latin/README.md +36 -0
  669. data/tracks/java/exercises/poker/.meta/readme.go.tmpl +17 -0
  670. data/tracks/java/exercises/poker/README.md +24 -0
  671. data/tracks/java/exercises/poker/src/example/java/Card.java +20 -20
  672. data/tracks/java/exercises/poker/src/example/java/Hand.java +96 -91
  673. data/tracks/java/exercises/poker/src/example/java/Poker.java +27 -20
  674. data/tracks/java/exercises/poker/src/main/java/.keep +0 -0
  675. data/tracks/java/exercises/poker/src/test/java/PokerTest.java +33 -34
  676. data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +17 -0
  677. data/tracks/java/exercises/prime-factors/README.md +48 -0
  678. data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +17 -0
  679. data/tracks/java/exercises/pythagorean-triplet/README.md +36 -0
  680. data/tracks/java/exercises/pythagorean-triplet/src/main/java/.keep +0 -0
  681. data/tracks/java/exercises/pythagorean-triplet/src/test/java/PythagoreanTripletTest.java +6 -6
  682. data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +17 -0
  683. data/tracks/java/exercises/queen-attack/README.md +45 -0
  684. data/tracks/java/exercises/queen-attack/src/main/java/.keep +0 -0
  685. data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +0 -4
  686. data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +17 -0
  687. data/tracks/java/exercises/raindrops/README.md +36 -0
  688. data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +17 -0
  689. data/tracks/java/exercises/rectangles/README.md +79 -0
  690. data/tracks/java/exercises/rectangles/src/main/java/.keep +0 -0
  691. data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +17 -0
  692. data/tracks/java/exercises/rna-transcription/README.md +37 -0
  693. data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +17 -0
  694. data/tracks/java/exercises/robot-name/README.md +34 -0
  695. data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +17 -0
  696. data/tracks/java/exercises/robot-simulator/README.md +46 -0
  697. data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +17 -0
  698. data/tracks/java/exercises/roman-numerals/README.md +61 -0
  699. data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +17 -0
  700. data/tracks/java/exercises/run-length-encoding/README.md +42 -0
  701. data/tracks/java/exercises/run-length-encoding/src/main/java/.keep +0 -0
  702. data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +17 -0
  703. data/tracks/java/exercises/saddle-points/README.md +45 -0
  704. data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +17 -0
  705. data/tracks/java/exercises/scrabble-score/README.md +56 -0
  706. data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +17 -0
  707. data/tracks/java/exercises/secret-handshake/README.md +47 -0
  708. data/tracks/java/exercises/series/.meta/readme.go.tmpl +17 -0
  709. data/tracks/java/exercises/series/README.md +39 -0
  710. data/tracks/java/exercises/series/src/main/java/.keep +0 -0
  711. data/tracks/java/exercises/series/src/test/java/SeriesTest.java +14 -14
  712. data/tracks/java/exercises/settings.gradle +5 -1
  713. data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +17 -0
  714. data/tracks/java/exercises/sieve/README.md +46 -0
  715. data/tracks/java/exercises/sieve/src/main/java/Sieve.java +11 -0
  716. data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +17 -0
  717. data/tracks/java/exercises/simple-cipher/README.md +109 -0
  718. data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +17 -0
  719. data/tracks/java/exercises/simple-linked-list/README.md +40 -0
  720. data/tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java +2 -2
  721. data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +17 -0
  722. data/tracks/java/exercises/space-age/README.md +36 -0
  723. data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +17 -0
  724. data/tracks/java/exercises/spiral-matrix/README.md +42 -0
  725. data/tracks/java/exercises/spiral-matrix/build.gradle +18 -0
  726. data/tracks/java/exercises/spiral-matrix/src/example/java/Coordinate.java +31 -0
  727. data/tracks/java/exercises/spiral-matrix/src/example/java/Direction.java +29 -0
  728. data/tracks/java/exercises/spiral-matrix/src/example/java/SpiralMatrixBuilder.java +29 -0
  729. data/tracks/java/exercises/spiral-matrix/src/main/java/.keep +0 -0
  730. data/tracks/java/exercises/spiral-matrix/src/test/java/SpiralMatrixBuilderTest.java +86 -0
  731. data/tracks/java/exercises/strain/.meta/readme.go.tmpl +17 -0
  732. data/tracks/java/exercises/strain/README.md +52 -0
  733. data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +17 -0
  734. data/tracks/java/exercises/sublist/README.md +33 -0
  735. data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +17 -0
  736. data/tracks/java/exercises/sum-of-multiples/README.md +30 -0
  737. data/tracks/java/exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java +12 -12
  738. data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +17 -0
  739. data/tracks/java/exercises/transpose/README.md +77 -0
  740. data/tracks/java/exercises/transpose/src/test/java/TransposeTest.java +11 -11
  741. data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +17 -0
  742. data/tracks/java/exercises/triangle/README.md +38 -0
  743. data/tracks/java/exercises/triangle/src/test/java/TriangleTest.java +6 -6
  744. data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +17 -0
  745. data/tracks/java/exercises/trinary/README.md +40 -0
  746. data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +17 -0
  747. data/tracks/java/exercises/twelve-days/README.md +47 -0
  748. data/tracks/java/exercises/twelve-days/src/main/java/TwelveDays.java +9 -0
  749. data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +17 -0
  750. data/tracks/java/exercises/two-fer/README.md +100 -0
  751. data/tracks/java/exercises/two-fer/src/test/java/TwoferTest.java +3 -3
  752. data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +17 -0
  753. data/tracks/java/exercises/word-count/README.md +31 -0
  754. data/tracks/java/exercises/word-count/src/main/java/.keep +0 -0
  755. data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +17 -0
  756. data/tracks/java/exercises/word-search/README.md +42 -0
  757. data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +17 -0
  758. data/tracks/java/exercises/wordy/README.md +75 -0
  759. data/tracks/java/exercises/wordy/src/main/java/.keep +0 -0
  760. data/tracks/java/exercises/wordy/src/test/java/WordProblemSolverTest.java +0 -4
  761. data/tracks/java/gradle/wrapper/gradle-wrapper.jar +0 -0
  762. data/tracks/java/gradle/wrapper/gradle-wrapper.properties +2 -2
  763. data/tracks/javascript/.travis.yml +1 -1
  764. data/tracks/javascript/config.json +9 -0
  765. data/tracks/javascript/exercises/bob/bob.spec.js +59 -30
  766. data/tracks/javascript/exercises/bob/example.js +2 -1
  767. data/tracks/javascript/exercises/list-ops/example.js +76 -0
  768. data/tracks/javascript/exercises/list-ops/list-ops.spec.js +168 -0
  769. data/tracks/kotlin/bin/README.md +3 -0
  770. data/tracks/kotlin/bin/journey-test.sh +1 -3
  771. data/tracks/kotlin/bin/unit-tests.sh +5 -1
  772. data/tracks/kotlin/config.json +63 -0
  773. data/tracks/kotlin/exercises/complex-numbers/build.gradle +28 -0
  774. data/tracks/kotlin/exercises/complex-numbers/src/example/kotlin/ComplexNumber.kt +28 -0
  775. data/tracks/kotlin/exercises/complex-numbers/src/main/kotlin/ComplexNumber.kt +1 -0
  776. data/tracks/kotlin/exercises/complex-numbers/src/test/kotlin/ComplexNumberTest.kt +266 -0
  777. data/tracks/kotlin/exercises/grains/build.gradle +28 -0
  778. data/tracks/kotlin/exercises/grains/src/example/kotlin/Board.kt +21 -0
  779. data/tracks/kotlin/exercises/grains/src/main/kotlin/.keep +0 -0
  780. data/tracks/kotlin/exercises/grains/src/test/kotlin/BoardTest.kt +91 -0
  781. data/tracks/kotlin/exercises/minesweeper/build.gradle +28 -0
  782. data/tracks/kotlin/exercises/minesweeper/src/example/kotlin/MinesweeperBoard.kt +54 -0
  783. data/tracks/kotlin/exercises/minesweeper/src/main/kotlin/.keep +0 -0
  784. data/tracks/kotlin/exercises/minesweeper/src/test/kotlin/MinesweeperBoardTest.kt +241 -0
  785. data/tracks/kotlin/exercises/prime-factors/build.gradle +28 -0
  786. data/tracks/kotlin/exercises/prime-factors/src/example/kotlin/PrimeFactorCalculator.kt +24 -0
  787. data/tracks/kotlin/exercises/prime-factors/src/main/kotlin/.keep +0 -0
  788. data/tracks/kotlin/exercises/prime-factors/src/test/kotlin/PrimeFactorCalculatorTest.kt +51 -0
  789. data/tracks/kotlin/exercises/robot-simulator/build.gradle +28 -0
  790. data/tracks/kotlin/exercises/robot-simulator/src/example/kotlin/GridPosition.kt +1 -0
  791. data/tracks/kotlin/exercises/robot-simulator/src/example/kotlin/Orientation.kt +1 -0
  792. data/tracks/kotlin/exercises/robot-simulator/src/example/kotlin/Robot.kt +34 -0
  793. data/tracks/kotlin/exercises/robot-simulator/src/main/kotlin/GridPosition.kt +1 -0
  794. data/tracks/kotlin/exercises/robot-simulator/src/main/kotlin/Orientation.kt +5 -0
  795. data/tracks/kotlin/exercises/robot-simulator/src/starterSource/kotlin/.keep +0 -0
  796. data/tracks/kotlin/exercises/robot-simulator/src/test/kotlin/RobotTest.kt +213 -0
  797. data/tracks/kotlin/exercises/saddle-points/build.gradle +28 -0
  798. data/tracks/kotlin/exercises/saddle-points/src/example/kotlin/Matrix.kt +31 -0
  799. data/tracks/kotlin/exercises/saddle-points/src/example/kotlin/MatrixCoordinate.kt +1 -0
  800. data/tracks/kotlin/exercises/saddle-points/src/main/kotlin/MatrixCoordinate.kt +1 -0
  801. data/tracks/kotlin/exercises/saddle-points/src/test/kotlin/MatrixTest.kt +80 -0
  802. data/tracks/kotlin/exercises/secret-handshake/build.gradle +28 -0
  803. data/tracks/kotlin/exercises/secret-handshake/src/example/kotlin/HandshakeCalculator.kt +21 -0
  804. data/tracks/kotlin/exercises/secret-handshake/src/example/kotlin/Signal.kt +1 -0
  805. data/tracks/kotlin/exercises/secret-handshake/src/main/kotlin/Signal.kt +5 -0
  806. data/tracks/kotlin/exercises/secret-handshake/src/test/kotlin/HandshakeCalculatorTest.kt +105 -0
  807. data/tracks/kotlin/exercises/settings.gradle +9 -0
  808. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +28 -0
  809. data/tracks/kotlin/exercises/spiral-matrix/src/example/kotlin/SpiralMatrix.kt +48 -0
  810. data/tracks/kotlin/exercises/spiral-matrix/src/main/kotlin/.keep +0 -0
  811. data/tracks/kotlin/exercises/spiral-matrix/src/test/kotlin/SpiralMatrixTest.kt +77 -0
  812. data/tracks/kotlin/exercises/sublist/build.gradle +28 -0
  813. data/tracks/kotlin/exercises/sublist/src/example/kotlin/Relationship.kt +5 -0
  814. data/tracks/kotlin/exercises/sublist/src/example/kotlin/Sublist.kt +19 -0
  815. data/tracks/kotlin/exercises/sublist/src/main/kotlin/Relationship.kt +5 -0
  816. data/tracks/kotlin/exercises/sublist/src/test/kotlin/SublistTest.kt +147 -0
  817. data/tracks/kotlin/gradle/wrapper/gradle-wrapper.jar +0 -0
  818. data/tracks/kotlin/gradle/wrapper/gradle-wrapper.properties +2 -2
  819. data/tracks/kotlin/gradlew +3 -3
  820. data/tracks/lfe/.travis.yml +1 -1
  821. data/tracks/lisp/.travis.yml +1 -1
  822. data/tracks/lisp/bin/xlisp-test.lisp +14 -12
  823. data/tracks/objective-c/.travis.yml +1 -1
  824. data/tracks/objective-c/config.json +11 -0
  825. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.h +5 -0
  826. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.m +46 -0
  827. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionTest.m +47 -0
  828. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +19 -0
  829. data/tracks/ocaml/.travis.yml +1 -1
  830. data/tracks/perl5/.travis.yml +1 -1
  831. data/tracks/perl5/bin/cpanfile +0 -1
  832. data/tracks/perl5/bin/exercise-gen.pl +12 -4
  833. data/tracks/perl6/.travis.yml +1 -1
  834. data/tracks/perl6/bin/exercise-gen.pl6 +11 -3
  835. data/tracks/php/.travis.yml +1 -1
  836. data/tracks/powershell/.travis.yml +1 -1
  837. data/tracks/purescript/.travis.yml +1 -1
  838. data/tracks/purescript/exercises/accumulate/test/Main.purs +2 -2
  839. data/tracks/purescript/exercises/hamming/src/Hamming.purs +3 -0
  840. data/tracks/python/README.md +1 -1
  841. data/tracks/r/.travis.yml +1 -1
  842. data/tracks/r/config.json +7 -0
  843. data/tracks/r/exercises/beer-song/beer-song.R +7 -0
  844. data/tracks/r/exercises/beer-song/example.R +32 -0
  845. data/tracks/r/exercises/beer-song/test_beer-song.R +288 -0
  846. data/tracks/racket/.travis.yml +1 -1
  847. data/tracks/racket/README.md +1 -1
  848. data/tracks/ruby/.travis.yml +0 -1
  849. data/tracks/ruby/bin/local-status-check +2 -3
  850. data/tracks/ruby/docs/EXERCISE_README_INSERT.md +0 -5
  851. data/tracks/ruby/exercises/accumulate/accumulate_test.rb +0 -1
  852. data/tracks/ruby/exercises/acronym/acronym_test.rb +0 -1
  853. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +0 -1
  854. data/tracks/ruby/exercises/allergies/allergies_test.rb +0 -1
  855. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +0 -1
  856. data/tracks/ruby/exercises/alphametics/alphametics_test.rb +0 -1
  857. data/tracks/ruby/exercises/anagram/anagram_test.rb +0 -1
  858. data/tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb +0 -1
  859. data/tracks/ruby/exercises/beer-song/beer_song_test.rb +0 -1
  860. data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +0 -1
  861. data/tracks/ruby/exercises/binary-search/binary_search_test.rb +0 -1
  862. data/tracks/ruby/exercises/binary/binary_test.rb +0 -1
  863. data/tracks/ruby/exercises/bob/bob_test.rb +0 -1
  864. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +0 -1
  865. data/tracks/ruby/exercises/bowling/bowling_test.rb +0 -1
  866. data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +0 -1
  867. data/tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb +0 -1
  868. data/tracks/ruby/exercises/clock/clock_test.rb +0 -1
  869. data/tracks/ruby/exercises/collatz-conjecture/collatz_conjecture_test.rb +0 -1
  870. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +0 -1
  871. data/tracks/ruby/exercises/connect/connect_test.rb +0 -1
  872. data/tracks/ruby/exercises/crypto-square/crypto_square_test.rb +0 -1
  873. data/tracks/ruby/exercises/custom-set/custom_set_test.rb +0 -1
  874. data/tracks/ruby/exercises/diamond/diamond_test.rb +0 -1
  875. data/tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb +0 -1
  876. data/tracks/ruby/exercises/dominoes/.meta/generator/dominoes_case.rb +1 -1
  877. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +0 -1
  878. data/tracks/ruby/exercises/dominoes/dominoes_test.rb +1 -2
  879. data/tracks/ruby/exercises/etl/etl_test.rb +0 -1
  880. data/tracks/ruby/exercises/flatten-array/flatten_array_test.rb +0 -1
  881. data/tracks/ruby/exercises/food-chain/food_chain_test.rb +0 -1
  882. data/tracks/ruby/exercises/gigasecond/gigasecond_test.rb +0 -1
  883. data/tracks/ruby/exercises/grade-school/grade_school_test.rb +0 -1
  884. data/tracks/ruby/exercises/grains/grains_test.rb +0 -1
  885. data/tracks/ruby/exercises/hamming/hamming_test.rb +0 -1
  886. data/tracks/ruby/exercises/hello-world/.meta/generator/test_template.erb +0 -1
  887. data/tracks/ruby/exercises/hello-world/hello_world_test.rb +0 -1
  888. data/tracks/ruby/exercises/hexadecimal/hexadecimal_test.rb +0 -1
  889. data/tracks/ruby/exercises/house/house_test.rb +0 -1
  890. data/tracks/ruby/exercises/isogram/isogram_test.rb +0 -1
  891. data/tracks/ruby/exercises/kindergarten-garden/kindergarten_garden_test.rb +0 -1
  892. data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +0 -1
  893. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +0 -1
  894. data/tracks/ruby/exercises/leap/leap_test.rb +0 -1
  895. data/tracks/ruby/exercises/linked-list/linked_list_test.rb +0 -1
  896. data/tracks/ruby/exercises/list-ops/list_ops_test.rb +0 -0
  897. data/tracks/ruby/exercises/luhn/luhn_test.rb +0 -1
  898. data/tracks/ruby/exercises/matrix/matrix_test.rb +0 -1
  899. data/tracks/ruby/exercises/meetup/meetup_test.rb +0 -1
  900. data/tracks/ruby/exercises/minesweeper/minesweeper_test.rb +0 -1
  901. data/tracks/ruby/exercises/nth-prime/nth_prime_test.rb +0 -1
  902. data/tracks/ruby/exercises/nucleotide-count/nucleotide_count_test.rb +0 -1
  903. data/tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb +0 -1
  904. data/tracks/ruby/exercises/octal/octal_test.rb +0 -1
  905. data/tracks/ruby/exercises/palindrome-products/palindrome_products_test.rb +0 -1
  906. data/tracks/ruby/exercises/pangram/pangram_test.rb +0 -1
  907. data/tracks/ruby/exercises/pascals-triangle/pascals_triangle_test.rb +0 -1
  908. data/tracks/ruby/exercises/perfect-numbers/perfect_numbers_test.rb +0 -0
  909. data/tracks/ruby/exercises/phone-number/phone_number_test.rb +0 -1
  910. data/tracks/ruby/exercises/pig-latin/pig_latin_test.rb +0 -1
  911. data/tracks/ruby/exercises/point-mutations/point_mutations_test.rb +0 -1
  912. data/tracks/ruby/exercises/poker/poker_test.rb +0 -1
  913. data/tracks/ruby/exercises/prime-factors/prime_factors_test.rb +0 -1
  914. data/tracks/ruby/exercises/protein-translation/protein_translation_test.rb +0 -1
  915. data/tracks/ruby/exercises/proverb/proverb_test.rb +0 -1
  916. data/tracks/ruby/exercises/pythagorean-triplet/pythagorean_triplet_test.rb +0 -1
  917. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +0 -1
  918. data/tracks/ruby/exercises/rail-fence-cipher/rail_fence_cipher_test.rb +0 -0
  919. data/tracks/ruby/exercises/raindrops/raindrops_test.rb +0 -1
  920. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +0 -1
  921. data/tracks/ruby/exercises/robot-name/robot_name_test.rb +0 -2
  922. data/tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb +0 -1
  923. data/tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb +0 -1
  924. data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +0 -1
  925. data/tracks/ruby/exercises/saddle-points/saddle_points_test.rb +0 -1
  926. data/tracks/ruby/exercises/say/say_test.rb +0 -1
  927. data/tracks/ruby/exercises/scale-generator/scale_generator_test.rb +0 -1
  928. data/tracks/ruby/exercises/scrabble-score/scrabble_score_test.rb +0 -1
  929. data/tracks/ruby/exercises/secret-handshake/secret_handshake_test.rb +0 -1
  930. data/tracks/ruby/exercises/series/series_test.rb +1 -2
  931. data/tracks/ruby/exercises/sieve/sieve_test.rb +0 -1
  932. data/tracks/ruby/exercises/simple-cipher/simple_cipher_test.rb +0 -1
  933. data/tracks/ruby/exercises/simple-linked-list/simple_linked_list_test.rb +0 -0
  934. data/tracks/ruby/exercises/space-age/.meta/generator/test_template.erb +0 -1
  935. data/tracks/ruby/exercises/space-age/space_age_test.rb +0 -1
  936. data/tracks/ruby/exercises/strain/strain_test.rb +0 -1
  937. data/tracks/ruby/exercises/sum-of-multiples/sum_of_multiples_test.rb +0 -1
  938. data/tracks/ruby/exercises/tournament/tournament_test.rb +0 -1
  939. data/tracks/ruby/exercises/transpose/transpose_test.rb +0 -1
  940. data/tracks/ruby/exercises/triangle/triangle_test.rb +1 -2
  941. data/tracks/ruby/exercises/trinary/trinary_test.rb +0 -1
  942. data/tracks/ruby/exercises/twelve-days/twelve_days_test.rb +0 -1
  943. data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +0 -1
  944. data/tracks/ruby/exercises/word-count/word_count_test.rb +0 -1
  945. data/tracks/ruby/exercises/wordy/wordy_test.rb +0 -1
  946. data/tracks/ruby/lib/generator/test_template.erb +0 -1
  947. data/tracks/ruby/test/fixtures/xruby/exercises/alpha-beta/.meta/generator/test_template.erb +0 -1
  948. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/test_template.erb +0 -1
  949. data/tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb +0 -1
  950. data/tracks/ruby/test/generator/implementation_test.rb +0 -1
  951. data/tracks/scala/.travis.yml +1 -1
  952. data/tracks/scala/config.json +7 -0
  953. data/tracks/scala/exercises/spiral-matrix/build.sbt +3 -0
  954. data/tracks/scala/exercises/spiral-matrix/example.scala +48 -0
  955. data/tracks/scala/exercises/spiral-matrix/src/main/scala/.keep +0 -0
  956. data/tracks/scala/exercises/spiral-matrix/src/test/scala/SpiralMatrixTest.scala +52 -0
  957. data/tracks/scala/testgen/src/main/scala/SpiralMatrixTestGenerator.scala +17 -0
  958. data/tracks/scheme/.travis.yml +1 -1
  959. data/tracks/smalltalk/.travis.yml +1 -1
  960. data/tracks/sml/.github/stale.yml +21 -0
  961. data/tracks/sml/.travis.yml +1 -1
  962. data/tracks/sml/SETUP.md +43 -0
  963. data/tracks/sml/docs/EXERCISE_README_INSERT.md +9 -26
  964. data/tracks/sml/docs/INSTALLATION.md +30 -0
  965. data/tracks/sml/docs/RESOURCES.md +33 -0
  966. data/tracks/sml/docs/TESTS.md +5 -0
  967. data/tracks/sml/exercises/accumulate/accumulate.sml +10 -0
  968. data/tracks/sml/exercises/accumulate/example.sml +2 -10
  969. data/tracks/sml/exercises/accumulate/test_accumulate.sml +53 -10
  970. data/tracks/sml/exercises/allergies/allergies.sml +17 -0
  971. data/tracks/sml/exercises/allergies/example.sml +23 -21
  972. data/tracks/sml/exercises/allergies/test_allergies.sml +129 -23
  973. data/tracks/sml/exercises/anagram/anagram.sml +6 -0
  974. data/tracks/sml/exercises/anagram/test_anagram.sml +49 -11
  975. data/tracks/sml/exercises/flatten-array/example.sml +4 -4
  976. data/tracks/sml/exercises/flatten-array/flatten-array.sml +6 -0
  977. data/tracks/sml/exercises/flatten-array/test_flatten_array.sml +53 -6
  978. data/tracks/sml/exercises/hamming/hamming.sml +3 -0
  979. data/tracks/sml/exercises/hamming/test_hamming.sml +57 -19
  980. data/tracks/sml/exercises/nth-prime/example.sml +7 -6
  981. data/tracks/sml/exercises/nth-prime/nth-prime.sml +2 -0
  982. data/tracks/sml/exercises/nth-prime/test_nth_prime.sml +67 -10
  983. data/tracks/swift/.gitignore +4 -0
  984. data/tracks/swift/.travis.yml +4 -4
  985. data/tracks/swift/Dangerfile +1 -1
  986. data/tracks/swift/allProjects.xcworkspace.source/contents.xcworkspacedata +4 -0
  987. data/tracks/swift/allProjects.xcworkspace.source/xcshareddata/xcschemes/AllTest.xcscheme +46 -0
  988. data/tracks/swift/allProjectsPopulateWorkspace.sh +35 -0
  989. data/tracks/swift/exercises/acronym/Sources/AcronymExample.swift +2 -4
  990. data/tracks/swift/exercises/crypto-square/Sources/CryptoSquareExample.swift +2 -4
  991. data/tracks/swift/exercises/custom-set/Sources/CustomSetExample.swift +2 -2
  992. data/tracks/swift/exercises/hamming/Sources/HammingExample.swift +2 -4
  993. data/tracks/swift/exercises/luhn/Sources/LuhnExample.swift +1 -1
  994. data/tracks/swift/exercises/nth-prime/Sources/NthPrimeExample.swift +2 -4
  995. data/tracks/swift/exercises/ocr-numbers/Sources/OcrNumbersExample.swift +1 -1
  996. data/tracks/swift/exercises/palindrome-products/Sources/PalindromeProductsExample.swift +1 -2
  997. data/tracks/swift/exercises/phone-number/Sources/PhoneNumberExample.swift +1 -1
  998. data/tracks/swift/exercises/poker/Sources/PokerExample.swift +11 -9
  999. data/tracks/swift/exercises/pythagorean-triplet/Sources/PythagoreanTripletExample.swift +1 -1
  1000. data/tracks/swift/exercises/pythagorean-triplet/Tests/PythagoreanTripletTests/PythagoreanTripletTests.swift +3 -3
  1001. data/tracks/swift/exercises/rna-transcription/Sources/RnaTranscriptionExample.swift +11 -3
  1002. data/tracks/swift/exercises/rna-transcription/Tests/RnaTranscriptionTests/RnaTranscriptionTests.swift +35 -5
  1003. data/tracks/swift/exercises/scrabble-score/Tests/ScrabbleScoreTests/ScrabbleScoreTests.swift +2 -2
  1004. data/tracks/swift/exercises/secret-handshake/Sources/SecretHandshakeExample.swift +2 -4
  1005. data/tracks/swift/exercises/series/Sources/SeriesExample.swift +5 -7
  1006. data/tracks/swift/exercises/sum-of-multiples/Sources/SumOfMultiplesExample.swift +3 -7
  1007. data/tracks/swift/exercises/transpose/Sources/TransposeExample.swift +1 -1
  1008. data/tracks/swift/exercises/triangle/Sources/TriangleExample.swift +2 -2
  1009. data/tracks/swift/exercises/word-count/Sources/WordCountExample.swift +2 -4
  1010. data/tracks/tcl/.travis.yml +1 -1
  1011. data/tracks/teco/.travis.yml +1 -1
  1012. data/tracks/typescript/.travis.yml +1 -1
  1013. data/tracks/vbnet/.travis.yml +1 -1
  1014. data/tracks/vimscript/.travis.yml +1 -1
  1015. data/tracks/vimscript/README.md +48 -4
  1016. data/tracks/vimscript/config.json +7 -0
  1017. data/tracks/vimscript/docs/EXERCISE_README_INSERT.md +5 -108
  1018. data/tracks/vimscript/exercises/pangram/example.vim +11 -0
  1019. data/tracks/vimscript/exercises/pangram/pangram.vader +52 -0
  1020. data/tracks/vimscript/exercises/pangram/pangram.vim +19 -0
  1021. data/tracks/vimscript/lib/generate.vim +13 -2
  1022. metadata +420 -49
  1023. data/tracks/crystal/src/generator/generate.cr +0 -15
  1024. data/tracks/csharp/generators/Properties/launchSettings.json +0 -7
  1025. data/tracks/java/exercises/all-your-base/src/main/java/BaseConverter.java +0 -5
  1026. data/tracks/java/exercises/anagram/src/main/java/Anagram.java +0 -2
  1027. data/tracks/java/exercises/beer-song/src/main/java/BeerSong.java +0 -3
  1028. data/tracks/java/exercises/binary-search/src/main/java/BinarySearch.java +0 -4
  1029. data/tracks/java/exercises/bracket-push/src/main/java/BracketChecker.java +0 -5
  1030. data/tracks/java/exercises/change/src/main/java/ChangeCalculator.java +0 -5
  1031. data/tracks/java/exercises/collatz-conjecture/src/main/java/CollatzCalculator.java +0 -7
  1032. data/tracks/java/exercises/diamond/src/main/java/DiamondPrinter.java +0 -5
  1033. data/tracks/java/exercises/flatten-array/src/main/java/Flattener.java +0 -5
  1034. data/tracks/java/exercises/kindergarten-garden/src/main/java/KindergartenGarden.java +0 -15
  1035. data/tracks/java/exercises/minesweeper/src/main/java/MinesweeperBoard.java +0 -5
  1036. data/tracks/java/exercises/nucleotide-count/src/main/java/DNA.java +0 -2
  1037. data/tracks/java/exercises/ocr-numbers/src/main/java/OpticalCharacterReader.java +0 -5
  1038. data/tracks/java/exercises/poker/src/main/java/Poker.java +0 -2
  1039. data/tracks/java/exercises/pythagorean-triplet/src/main/java/PythagoreanTriplet.java +0 -3
  1040. data/tracks/java/exercises/queen-attack/src/main/java/BoardCoordinate.java +0 -5
  1041. data/tracks/java/exercises/queen-attack/src/main/java/QueenAttackCalculator.java +0 -5
  1042. data/tracks/java/exercises/rectangles/src/main/java/RectangleCounter.java +0 -5
  1043. data/tracks/java/exercises/robot-simulator/src/main/java/Robot.java +0 -5
  1044. data/tracks/java/exercises/run-length-encoding/src/main/java/RunLengthEncoding.java +0 -9
  1045. data/tracks/java/exercises/saddle-points/src/main/java/Matrix.java +0 -5
  1046. data/tracks/java/exercises/series/src/main/java/Series.java +0 -3
  1047. data/tracks/java/exercises/sublist/src/main/java/RelationshipComputer.java +0 -5
  1048. data/tracks/java/exercises/word-count/src/main/java/WordCount.java +0 -2
  1049. data/tracks/java/exercises/wordy/src/main/java/WordProblemSolver.java +0 -5
  1050. data/tracks/ruby/bin/enable-executable +0 -19
  1051. data/tracks/ruby/bin/executable-tests-check +0 -14
@@ -0,0 +1,11 @@
1
+ function! IsPangram(sentence) abort
2
+ let dict = {}
3
+
4
+ for char in map(split(a:sentence, '\zs'), 'tolower(v:val)')
5
+ if char =~? '\a' && !has_key(dict, char)
6
+ let dict[char] = 1
7
+ endif
8
+ endfor
9
+
10
+ return len(dict) == 26
11
+ endfunction
@@ -0,0 +1,52 @@
1
+ "
2
+ " Version: 1.1.0
3
+ "
4
+
5
+ Before:
6
+ unlet! input expected
7
+
8
+ Execute (sentence empty):
9
+ let input = ""
10
+ let expected = 0
11
+ AssertEqual expected, IsPangram(input)
12
+
13
+ Execute (pangram with only lower case):
14
+ let input = "the quick brown fox jumps over the lazy dog"
15
+ let expected = 1
16
+ AssertEqual expected, IsPangram(input)
17
+
18
+ Execute (missing character 'x'):
19
+ let input = "a quick movement of the enemy will jeopardize five gunboats"
20
+ let expected = 0
21
+ AssertEqual expected, IsPangram(input)
22
+
23
+ Execute (another missing character 'x'):
24
+ let input = "the quick brown fish jumps over the lazy dog"
25
+ let expected = 0
26
+ AssertEqual expected, IsPangram(input)
27
+
28
+ Execute (pangram with underscores):
29
+ let input = "the_quick_brown_fox_jumps_over_the_lazy_dog"
30
+ let expected = 1
31
+ AssertEqual expected, IsPangram(input)
32
+
33
+ Execute (pangram with numbers):
34
+ let input = "the 1 quick brown fox jumps over the 2 lazy dogs"
35
+ let expected = 1
36
+ AssertEqual expected, IsPangram(input)
37
+
38
+ Execute (missing letters replaced by numbers):
39
+ let input = "7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog"
40
+ let expected = 0
41
+ AssertEqual expected, IsPangram(input)
42
+
43
+ Execute (pangram with mixed case and punctuation):
44
+ let input = "\"Five quacking Zephyrs jolt my wax bed.\""
45
+ let expected = 1
46
+ AssertEqual expected, IsPangram(input)
47
+
48
+ Execute (upper and lower case versions of the same character should not be counted separately):
49
+ let input = "the quick brown fox jumps over with lazy FX"
50
+ let expected = 0
51
+ AssertEqual expected, IsPangram(input)
52
+
@@ -0,0 +1,19 @@
1
+ "
2
+ " Determine if a sentence is a pangram.
3
+ "
4
+ " A pangram is a sentence using every letter of the alphabet at least once.
5
+ "
6
+ " The alphabet used consists of ASCII letters a to z, inclusive, and is case
7
+ " insensitive. Input will not contain non-ASCII symbols.
8
+ "
9
+ " Example:
10
+ "
11
+ " :echo IsPangram('The quick brown fox jumps over the lazy dog')
12
+ " 1
13
+ " :echo IsPangram('The quick brown fox jumps over the lazy do')
14
+ " 0
15
+ "
16
+
17
+ function! IsPangram(sentence) abort
18
+ " your code goes here
19
+ endfunction
@@ -7,7 +7,7 @@
7
7
  "
8
8
 
9
9
  function! s:data_url(slug) abort
10
- return printf('https://raw.githubusercontent.com/exercism/x-common/master/exercises/%s/canonical-data.json', a:slug)
10
+ return printf('https://raw.githubusercontent.com/exercism/problem-specifications/master/exercises/%s/canonical-data.json', a:slug)
11
11
  endfunction
12
12
 
13
13
  function! s:generate_header(data)
@@ -75,7 +75,18 @@ function! s:generate(slug) abort
75
75
  return
76
76
  endif
77
77
  %yank x
78
- let data = json_decode(substitute(@x, '\\', '\\\\', 'g'))
78
+ try
79
+ let data = json_decode(substitute(@x, '\\', '\\\\', 'g'))
80
+ catch
81
+ redraw
82
+ echohl ErrorMsg
83
+ echomsg 'JSON decoding failed.'
84
+ echomsg 'Trying again without backslash escaping.'
85
+ echomsg 'Check escaping in the generated tests!'
86
+ echohl None
87
+ call input('[press any key]')
88
+ let data = json_decode(@x)
89
+ endtry
79
90
  bwipeout!
80
91
  enew!
81
92
  setfiletype vader
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.53
4
+ version: 2.1.0.54
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-11 00:00:00.000000000 Z
11
+ date: 2017-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -606,6 +606,14 @@ files:
606
606
  - tracks/c/exercises/acronym/test/vendor/unity.c
607
607
  - tracks/c/exercises/acronym/test/vendor/unity.h
608
608
  - tracks/c/exercises/acronym/test/vendor/unity_internals.h
609
+ - tracks/c/exercises/all-your-base/makefile
610
+ - tracks/c/exercises/all-your-base/src/all_your_base.h
611
+ - tracks/c/exercises/all-your-base/src/example.c
612
+ - tracks/c/exercises/all-your-base/src/example.h
613
+ - tracks/c/exercises/all-your-base/test/test_all_your_base.c
614
+ - tracks/c/exercises/all-your-base/test/vendor/unity.c
615
+ - tracks/c/exercises/all-your-base/test/vendor/unity.h
616
+ - tracks/c/exercises/all-your-base/test/vendor/unity_internals.h
609
617
  - tracks/c/exercises/allergies/makefile
610
618
  - tracks/c/exercises/allergies/src/allergies.h
611
619
  - tracks/c/exercises/allergies/src/example.c
@@ -1444,6 +1452,8 @@ files:
1444
1452
  - tracks/crystal/exercises/difference-of-squares/spec/difference_of_squares_spec.cr
1445
1453
  - tracks/crystal/exercises/difference-of-squares/src/difference_of_squares.cr
1446
1454
  - tracks/crystal/exercises/difference-of-squares/src/example.cr
1455
+ - tracks/crystal/exercises/flatten-array/spec/flatten_array_spec.cr
1456
+ - tracks/crystal/exercises/flatten-array/src/example.cr
1447
1457
  - tracks/crystal/exercises/forth/spec/forth_spec.cr
1448
1458
  - tracks/crystal/exercises/forth/src/example.cr
1449
1459
  - tracks/crystal/exercises/forth/src/forth.cr
@@ -1486,20 +1496,25 @@ files:
1486
1496
  - tracks/crystal/exercises/sieve/spec/sieve_spec.cr
1487
1497
  - tracks/crystal/exercises/sieve/src/example.cr
1488
1498
  - tracks/crystal/exercises/sieve/src/sieve.cr
1499
+ - tracks/crystal/generator/generator.cr
1500
+ - tracks/crystal/generator/shard.lock
1501
+ - tracks/crystal/generator/shard.yml
1502
+ - tracks/crystal/generator/spec/exercise_generator_spec.cr
1503
+ - tracks/crystal/generator/spec/exercise_test_case_spec.cr
1504
+ - tracks/crystal/generator/spec/remote_data_file_spec.cr
1505
+ - tracks/crystal/generator/src/exercise_generator.cr
1506
+ - tracks/crystal/generator/src/exercise_test_case.cr
1507
+ - tracks/crystal/generator/src/generators/acronym.cr
1508
+ - tracks/crystal/generator/src/generators/binary.cr
1509
+ - tracks/crystal/generator/src/generators/difference_of_squares.cr
1510
+ - tracks/crystal/generator/src/generators/flatten_array.cr
1511
+ - tracks/crystal/generator/src/generators/forth.cr
1512
+ - tracks/crystal/generator/src/generators/hello_world.cr
1513
+ - tracks/crystal/generator/src/generators/pascals-triangle.cr
1514
+ - tracks/crystal/generator/src/generators/run_length_encoding.cr
1515
+ - tracks/crystal/generator/src/remote_data_file.cr
1516
+ - tracks/crystal/generator/src/templates/example.tt
1489
1517
  - tracks/crystal/img/icon.png
1490
- - tracks/crystal/src/generator/exercises/acronym.cr
1491
- - tracks/crystal/src/generator/exercises/binary.cr
1492
- - tracks/crystal/src/generator/exercises/difference_of_squares.cr
1493
- - tracks/crystal/src/generator/exercises/exercise_generator.cr
1494
- - tracks/crystal/src/generator/exercises/exercise_test_case.cr
1495
- - tracks/crystal/src/generator/exercises/forth.cr
1496
- - tracks/crystal/src/generator/exercises/hello_world.cr
1497
- - tracks/crystal/src/generator/exercises/pascals-triangle.cr
1498
- - tracks/crystal/src/generator/exercises/run_length_encoding.cr
1499
- - tracks/crystal/src/generator/exercises/templates/example.tt
1500
- - tracks/crystal/src/generator/generate.cr
1501
- - tracks/crystal/src/generator/spec/exercise_generator_spec.cr
1502
- - tracks/crystal/src/generator/spec/exercise_test_case_spec.cr
1503
1518
  - tracks/csharp/.git
1504
1519
  - tracks/csharp/.gitattributes
1505
1520
  - tracks/csharp/.gitignore
@@ -1976,14 +1991,21 @@ files:
1976
1991
  - tracks/csharp/exercises/zipper/Zipper.cs
1977
1992
  - tracks/csharp/exercises/zipper/Zipper.csproj
1978
1993
  - tracks/csharp/exercises/zipper/ZipperTest.cs
1994
+ - tracks/csharp/generators/.gitignore
1979
1995
  - tracks/csharp/generators/Exercise.cs
1980
1996
  - tracks/csharp/generators/ExerciseCollection.cs
1981
1997
  - tracks/csharp/generators/Exercises/Acronym.cs
1982
1998
  - tracks/csharp/generators/Exercises/AllYourBase.cs
1999
+ - tracks/csharp/generators/Exercises/Allergies.cs
2000
+ - tracks/csharp/generators/Exercises/Alphametics.cs
2001
+ - tracks/csharp/generators/Exercises/Anagram.cs
1983
2002
  - tracks/csharp/generators/Exercises/AtbashCipher.cs
1984
2003
  - tracks/csharp/generators/Exercises/BeerSong.cs
2004
+ - tracks/csharp/generators/Exercises/BinarySearch.cs
1985
2005
  - tracks/csharp/generators/Exercises/Bob.cs
1986
2006
  - tracks/csharp/generators/Exercises/BookStore.cs
2007
+ - tracks/csharp/generators/Exercises/BracketPush.cs
2008
+ - tracks/csharp/generators/Exercises/CryptoSquare.cs
1987
2009
  - tracks/csharp/generators/Exercises/FoodChain.cs
1988
2010
  - tracks/csharp/generators/Exercises/HelloWorld.cs
1989
2011
  - tracks/csharp/generators/Exercises/Isogram.cs
@@ -2004,7 +2026,9 @@ files:
2004
2026
  - tracks/csharp/generators/Input/CanonicalDataCase.cs
2005
2027
  - tracks/csharp/generators/Input/CanonicalDataCaseJsonConverter.cs
2006
2028
  - tracks/csharp/generators/Input/CanonicalDataCasesJsonConverter.cs
2029
+ - tracks/csharp/generators/Input/CanonicalDataFile.cs
2007
2030
  - tracks/csharp/generators/Input/CanonicalDataParser.cs
2031
+ - tracks/csharp/generators/Options.cs
2008
2032
  - tracks/csharp/generators/Output/BooleanTestMethodGenerator.cs
2009
2033
  - tracks/csharp/generators/Output/EqualityTestMethodGenerator.cs
2010
2034
  - tracks/csharp/generators/Output/ExceptionTestMethodGenerator.cs
@@ -2019,7 +2043,6 @@ files:
2019
2043
  - tracks/csharp/generators/Output/UnescapedValue.cs
2020
2044
  - tracks/csharp/generators/Output/ValueFormatter.cs
2021
2045
  - tracks/csharp/generators/Program.cs
2022
- - tracks/csharp/generators/Properties/launchSettings.json
2023
2046
  - tracks/csharp/generators/TestedMethodType.cs
2024
2047
  - tracks/csharp/generators/generate.ps1
2025
2048
  - tracks/csharp/generators/generate.sh
@@ -2259,6 +2282,9 @@ files:
2259
2282
  - tracks/delphi/exercises/two-fer/twofer.dpr
2260
2283
  - tracks/delphi/exercises/two-fer/utwoferExample.pas
2261
2284
  - tracks/delphi/exercises/two-fer/utwoferTest.pas
2285
+ - tracks/delphi/exercises/wordy/Wordy.dpr
2286
+ - tracks/delphi/exercises/wordy/uWordyExample.pas
2287
+ - tracks/delphi/exercises/wordy/uWordyTests.pas
2262
2288
  - tracks/delphi/img/.keep
2263
2289
  - tracks/delphi/img/icon.png
2264
2290
  - tracks/ecmascript/.babelrc
@@ -2340,6 +2366,9 @@ files:
2340
2366
  - tracks/ecmascript/exercises/difference-of-squares/difference-of-squares.spec.js
2341
2367
  - tracks/ecmascript/exercises/difference-of-squares/example.js
2342
2368
  - tracks/ecmascript/exercises/difference-of-squares/package.json
2369
+ - tracks/ecmascript/exercises/diffie-hellman/diffie-hellman.spec.js
2370
+ - tracks/ecmascript/exercises/diffie-hellman/example.js
2371
+ - tracks/ecmascript/exercises/diffie-hellman/package.json
2343
2372
  - tracks/ecmascript/exercises/etl/etl.spec.js
2344
2373
  - tracks/ecmascript/exercises/etl/example.js
2345
2374
  - tracks/ecmascript/exercises/etl/package.json
@@ -2406,7 +2435,6 @@ files:
2406
2435
  - tracks/ecmascript/exercises/octal/example.js
2407
2436
  - tracks/ecmascript/exercises/octal/octal.spec.js
2408
2437
  - tracks/ecmascript/exercises/octal/package.json
2409
- - tracks/ecmascript/exercises/package.json
2410
2438
  - tracks/ecmascript/exercises/palindrome-products/example.js
2411
2439
  - tracks/ecmascript/exercises/palindrome-products/package.json
2412
2440
  - tracks/ecmascript/exercises/palindrome-products/palindrome-products.spec.js
@@ -2658,6 +2686,9 @@ files:
2658
2686
  - tracks/elixir/exercises/diffie-hellman/diffie_hellman.exs
2659
2687
  - tracks/elixir/exercises/diffie-hellman/diffie_hellman_test.exs
2660
2688
  - tracks/elixir/exercises/diffie-hellman/example.exs
2689
+ - tracks/elixir/exercises/dominoes/dominoes.exs
2690
+ - tracks/elixir/exercises/dominoes/dominoes_test.exs
2691
+ - tracks/elixir/exercises/dominoes/example.exs
2661
2692
  - tracks/elixir/exercises/dot-dsl/dot.exs
2662
2693
  - tracks/elixir/exercises/dot-dsl/dot_dsl_test.exs
2663
2694
  - tracks/elixir/exercises/dot-dsl/example.exs
@@ -2907,6 +2938,12 @@ files:
2907
2938
  - tracks/elm/exercises/difference-of-squares/package.json
2908
2939
  - tracks/elm/exercises/difference-of-squares/tests/Tests.elm
2909
2940
  - tracks/elm/exercises/difference-of-squares/tests/elm-package.json
2941
+ - tracks/elm/exercises/etl/Etl.elm
2942
+ - tracks/elm/exercises/etl/Etl.example.elm
2943
+ - tracks/elm/exercises/etl/elm-package.json
2944
+ - tracks/elm/exercises/etl/package.json
2945
+ - tracks/elm/exercises/etl/tests/Tests.elm
2946
+ - tracks/elm/exercises/etl/tests/elm-package.json
2910
2947
  - tracks/elm/exercises/gigasecond/Gigasecond.elm
2911
2948
  - tracks/elm/exercises/gigasecond/Gigasecond.example.elm
2912
2949
  - tracks/elm/exercises/gigasecond/elm-package.json
@@ -3077,187 +3114,268 @@ files:
3077
3114
  - tracks/erlang/docs/INSTALLATION.md
3078
3115
  - tracks/erlang/docs/LEARNING.md
3079
3116
  - tracks/erlang/docs/TESTS.md
3117
+ - tracks/erlang/exercises/accumulate/.meta/readme.go.tmpl
3118
+ - tracks/erlang/exercises/accumulate/README.md
3080
3119
  - tracks/erlang/exercises/accumulate/include/exercism.hrl
3081
3120
  - tracks/erlang/exercises/accumulate/rebar.config
3082
3121
  - tracks/erlang/exercises/accumulate/src/accumulate.app.src
3083
3122
  - tracks/erlang/exercises/accumulate/src/example.erl
3084
3123
  - tracks/erlang/exercises/accumulate/test/accumulate_tests.erl
3124
+ - tracks/erlang/exercises/all-your-base/.meta/readme.go.tmpl
3125
+ - tracks/erlang/exercises/all-your-base/README.md
3085
3126
  - tracks/erlang/exercises/all-your-base/include/exercism.hrl
3086
3127
  - tracks/erlang/exercises/all-your-base/rebar.config
3087
3128
  - tracks/erlang/exercises/all-your-base/src/all_your_base.app.src
3088
3129
  - tracks/erlang/exercises/all-your-base/src/example.erl
3089
3130
  - tracks/erlang/exercises/all-your-base/test/all_your_base_tests.erl
3131
+ - tracks/erlang/exercises/allergies/.meta/readme.go.tmpl
3132
+ - tracks/erlang/exercises/allergies/README.md
3090
3133
  - tracks/erlang/exercises/allergies/include/exercism.hrl
3091
3134
  - tracks/erlang/exercises/allergies/rebar.config
3092
3135
  - tracks/erlang/exercises/allergies/src/allergies.app.src
3093
3136
  - tracks/erlang/exercises/allergies/src/example.erl
3094
3137
  - tracks/erlang/exercises/allergies/test/allergies_tests.erl
3138
+ - tracks/erlang/exercises/anagram/.meta/readme.go.tmpl
3139
+ - tracks/erlang/exercises/anagram/README.md
3095
3140
  - tracks/erlang/exercises/anagram/include/exercism.hrl
3096
3141
  - tracks/erlang/exercises/anagram/rebar.config
3097
3142
  - tracks/erlang/exercises/anagram/src/anagram.app.src
3098
3143
  - tracks/erlang/exercises/anagram/src/example.erl
3099
3144
  - tracks/erlang/exercises/anagram/test/anagram_tests.erl
3145
+ - tracks/erlang/exercises/atbash-cipher/.meta/readme.go.tmpl
3146
+ - tracks/erlang/exercises/atbash-cipher/README.md
3100
3147
  - tracks/erlang/exercises/atbash-cipher/include/exercism.hrl
3101
3148
  - tracks/erlang/exercises/atbash-cipher/rebar.config
3102
3149
  - tracks/erlang/exercises/atbash-cipher/src/atbash_cipher.app.src
3103
3150
  - tracks/erlang/exercises/atbash-cipher/src/example.erl
3104
3151
  - tracks/erlang/exercises/atbash-cipher/test/atbash_cipher_tests.erl
3152
+ - tracks/erlang/exercises/bank-account/.meta/readme.go.tmpl
3153
+ - tracks/erlang/exercises/bank-account/README.md
3105
3154
  - tracks/erlang/exercises/bank-account/include/exercism.hrl
3106
3155
  - tracks/erlang/exercises/bank-account/rebar.config
3107
3156
  - tracks/erlang/exercises/bank-account/src/bank_account.app.src
3108
3157
  - tracks/erlang/exercises/bank-account/src/example.erl
3109
3158
  - tracks/erlang/exercises/bank-account/test/bank_account_tests.erl
3159
+ - tracks/erlang/exercises/beer-song/.meta/readme.go.tmpl
3160
+ - tracks/erlang/exercises/beer-song/README.md
3110
3161
  - tracks/erlang/exercises/beer-song/include/exercism.hrl
3111
3162
  - tracks/erlang/exercises/beer-song/rebar.conf
3112
3163
  - tracks/erlang/exercises/beer-song/src/beer_song.app.src
3113
3164
  - tracks/erlang/exercises/beer-song/src/example.erl
3114
3165
  - tracks/erlang/exercises/beer-song/test/beer_song_tests.erl
3166
+ - tracks/erlang/exercises/bob/.meta/readme.go.tmpl
3167
+ - tracks/erlang/exercises/bob/README.md
3115
3168
  - tracks/erlang/exercises/bob/include/exercism.hrl
3116
3169
  - tracks/erlang/exercises/bob/rebar.config
3117
3170
  - tracks/erlang/exercises/bob/src/bob.app.src
3118
3171
  - tracks/erlang/exercises/bob/src/example.erl
3119
3172
  - tracks/erlang/exercises/bob/test/bob_tests.erl
3173
+ - tracks/erlang/exercises/circular-buffer/.meta/readme.go.tmpl
3174
+ - tracks/erlang/exercises/circular-buffer/README.md
3120
3175
  - tracks/erlang/exercises/circular-buffer/include/exercism.hrl
3121
3176
  - tracks/erlang/exercises/circular-buffer/rebar.config
3122
3177
  - tracks/erlang/exercises/circular-buffer/src/circular_buffer.app.src
3123
3178
  - tracks/erlang/exercises/circular-buffer/src/example.erl
3124
3179
  - tracks/erlang/exercises/circular-buffer/test/circular_buffer_tests.erl
3180
+ - tracks/erlang/exercises/clock/.meta/readme.go.tmpl
3181
+ - tracks/erlang/exercises/clock/README.md
3125
3182
  - tracks/erlang/exercises/clock/include/exercism.hrl
3126
3183
  - tracks/erlang/exercises/clock/rebar.config
3127
3184
  - tracks/erlang/exercises/clock/src/clock.app.src
3128
3185
  - tracks/erlang/exercises/clock/src/example.erl
3129
3186
  - tracks/erlang/exercises/clock/test/clock_tests.erl
3187
+ - tracks/erlang/exercises/collatz-conjecture/.meta/readme.go.tmpl
3188
+ - tracks/erlang/exercises/collatz-conjecture/README.md
3130
3189
  - tracks/erlang/exercises/collatz-conjecture/include/exercism.hrl
3131
3190
  - tracks/erlang/exercises/collatz-conjecture/rebar.config
3132
3191
  - tracks/erlang/exercises/collatz-conjecture/src/collatz_conjecture.app.src
3133
3192
  - tracks/erlang/exercises/collatz-conjecture/src/example.erl
3134
3193
  - tracks/erlang/exercises/collatz-conjecture/test/collatz_conjecture_tests.erl
3194
+ - tracks/erlang/exercises/difference-of-squares/.meta/readme.go.tmpl
3195
+ - tracks/erlang/exercises/difference-of-squares/README.md
3135
3196
  - tracks/erlang/exercises/difference-of-squares/include/exercism.hrl
3136
3197
  - tracks/erlang/exercises/difference-of-squares/rebar.config
3137
3198
  - tracks/erlang/exercises/difference-of-squares/src/difference_of_squares.app.src
3138
3199
  - tracks/erlang/exercises/difference-of-squares/src/example.erl
3139
3200
  - tracks/erlang/exercises/difference-of-squares/test/difference_of_squares_tests.erl
3201
+ - tracks/erlang/exercises/etl/.meta/readme.go.tmpl
3202
+ - tracks/erlang/exercises/etl/README.md
3140
3203
  - tracks/erlang/exercises/etl/include/exercism.hrl
3141
3204
  - tracks/erlang/exercises/etl/rebar.config
3142
3205
  - tracks/erlang/exercises/etl/src/etl.app.src
3143
3206
  - tracks/erlang/exercises/etl/src/example.erl
3144
3207
  - tracks/erlang/exercises/etl/test/etl_tests.erl
3208
+ - tracks/erlang/exercises/gigasecond/.meta/readme.go.tmpl
3209
+ - tracks/erlang/exercises/gigasecond/README.md
3145
3210
  - tracks/erlang/exercises/gigasecond/include/exercism.hrl
3146
3211
  - tracks/erlang/exercises/gigasecond/rebar.config
3147
3212
  - tracks/erlang/exercises/gigasecond/src/example.erl
3148
3213
  - tracks/erlang/exercises/gigasecond/src/gigasecond.app.src
3149
3214
  - tracks/erlang/exercises/gigasecond/test/gigasecond_tests.erl
3215
+ - tracks/erlang/exercises/grade-school/.meta/readme.go.tmpl
3216
+ - tracks/erlang/exercises/grade-school/README.md
3150
3217
  - tracks/erlang/exercises/grade-school/include/exercism.hrl
3151
3218
  - tracks/erlang/exercises/grade-school/rebar.config
3152
3219
  - tracks/erlang/exercises/grade-school/src/example.erl
3153
3220
  - tracks/erlang/exercises/grade-school/src/grade_school.app.src
3154
3221
  - tracks/erlang/exercises/grade-school/test/grade_school_tests.erl
3222
+ - tracks/erlang/exercises/grains/.meta/readme.go.tmpl
3223
+ - tracks/erlang/exercises/grains/README.md
3155
3224
  - tracks/erlang/exercises/grains/include/exercism.hrl
3156
3225
  - tracks/erlang/exercises/grains/rebar.config
3157
3226
  - tracks/erlang/exercises/grains/src/example.erl
3158
3227
  - tracks/erlang/exercises/grains/src/grains.app.src
3159
3228
  - tracks/erlang/exercises/grains/test/grains_tests.erl
3229
+ - tracks/erlang/exercises/hamming/.meta/readme.go.tmpl
3230
+ - tracks/erlang/exercises/hamming/README.md
3160
3231
  - tracks/erlang/exercises/hamming/include/exercism.hrl
3161
3232
  - tracks/erlang/exercises/hamming/rebar.config
3162
3233
  - tracks/erlang/exercises/hamming/src/example.erl
3163
3234
  - tracks/erlang/exercises/hamming/src/hamming.app.src
3164
3235
  - tracks/erlang/exercises/hamming/test/hamming_tests.erl
3236
+ - tracks/erlang/exercises/hello-world/.meta/readme.go.tmpl
3237
+ - tracks/erlang/exercises/hello-world/README.md
3165
3238
  - tracks/erlang/exercises/hello-world/include/exercism.hrl
3166
3239
  - tracks/erlang/exercises/hello-world/rebar.config
3167
3240
  - tracks/erlang/exercises/hello-world/src/example.erl
3168
3241
  - tracks/erlang/exercises/hello-world/src/hello_world.app.src
3169
3242
  - tracks/erlang/exercises/hello-world/test/hello_world_tests.erl
3243
+ - tracks/erlang/exercises/largest-series-product/.meta/readme.go.tmpl
3244
+ - tracks/erlang/exercises/largest-series-product/README.md
3170
3245
  - tracks/erlang/exercises/largest-series-product/include/exercism.hrl
3171
3246
  - tracks/erlang/exercises/largest-series-product/rebar.config
3172
3247
  - tracks/erlang/exercises/largest-series-product/src/example.erl
3173
3248
  - tracks/erlang/exercises/largest-series-product/src/largest_series_product.app.src
3174
3249
  - tracks/erlang/exercises/largest-series-product/test/largest_series_product_tests.erl
3250
+ - tracks/erlang/exercises/leap/.meta/readme.go.tmpl
3251
+ - tracks/erlang/exercises/leap/README.md
3175
3252
  - tracks/erlang/exercises/leap/include/exercism.hrl
3176
3253
  - tracks/erlang/exercises/leap/rebar.config
3177
3254
  - tracks/erlang/exercises/leap/src/example.erl
3178
3255
  - tracks/erlang/exercises/leap/src/leap.app.src
3179
3256
  - tracks/erlang/exercises/leap/test/leap_tests.erl
3257
+ - tracks/erlang/exercises/luhn/.meta/readme.go.tmpl
3258
+ - tracks/erlang/exercises/luhn/README.md
3180
3259
  - tracks/erlang/exercises/luhn/include/exercism.hrl
3181
3260
  - tracks/erlang/exercises/luhn/rebar.config
3182
3261
  - tracks/erlang/exercises/luhn/src/example.erl
3183
3262
  - tracks/erlang/exercises/luhn/src/luhn.app.src
3184
3263
  - tracks/erlang/exercises/luhn/test/luhn_tests.erl
3264
+ - tracks/erlang/exercises/meetup/.meta/readme.go.tmpl
3265
+ - tracks/erlang/exercises/meetup/README.md
3185
3266
  - tracks/erlang/exercises/meetup/include/exercism.hrl
3186
3267
  - tracks/erlang/exercises/meetup/rebar.config
3187
3268
  - tracks/erlang/exercises/meetup/src/example.erl
3188
3269
  - tracks/erlang/exercises/meetup/src/meetup.app.src
3189
3270
  - tracks/erlang/exercises/meetup/test/meetup_tests.erl
3271
+ - tracks/erlang/exercises/nucleotide-count/.meta/readme.go.tmpl
3272
+ - tracks/erlang/exercises/nucleotide-count/README.md
3190
3273
  - tracks/erlang/exercises/nucleotide-count/include/exercism.hrl
3191
3274
  - tracks/erlang/exercises/nucleotide-count/rebar.config
3192
3275
  - tracks/erlang/exercises/nucleotide-count/src/example.erl
3193
3276
  - tracks/erlang/exercises/nucleotide-count/src/nucleotide_count.app.src
3194
3277
  - tracks/erlang/exercises/nucleotide-count/test/nucleotide_count_tests.erl
3278
+ - tracks/erlang/exercises/parallel-letter-frequency/.meta/readme.go.tmpl
3279
+ - tracks/erlang/exercises/parallel-letter-frequency/README.md
3195
3280
  - tracks/erlang/exercises/parallel-letter-frequency/include/exercism.hrl
3196
3281
  - tracks/erlang/exercises/parallel-letter-frequency/rebar.config
3197
3282
  - tracks/erlang/exercises/parallel-letter-frequency/src/example.erl
3198
3283
  - tracks/erlang/exercises/parallel-letter-frequency/src/parallel_letter_frequency.app.src
3199
3284
  - tracks/erlang/exercises/parallel-letter-frequency/test/parallel_letter_frequency_tests.erl
3285
+ - tracks/erlang/exercises/phone-number/.meta/readme.go.tmpl
3286
+ - tracks/erlang/exercises/phone-number/README.md
3200
3287
  - tracks/erlang/exercises/phone-number/include/exercism.hrl
3201
3288
  - tracks/erlang/exercises/phone-number/rebar.config
3202
3289
  - tracks/erlang/exercises/phone-number/src/example.erl
3203
3290
  - tracks/erlang/exercises/phone-number/src/phone_number.app.src
3204
3291
  - tracks/erlang/exercises/phone-number/test/phone_number_tests.erl
3292
+ - tracks/erlang/exercises/rna-transcription/.meta/readme.go.tmpl
3293
+ - tracks/erlang/exercises/rna-transcription/README.md
3205
3294
  - tracks/erlang/exercises/rna-transcription/include/exercism.hrl
3206
3295
  - tracks/erlang/exercises/rna-transcription/rebar.config
3207
3296
  - tracks/erlang/exercises/rna-transcription/src/example.erl
3208
3297
  - tracks/erlang/exercises/rna-transcription/src/rna_transcription.app.src
3209
3298
  - tracks/erlang/exercises/rna-transcription/test/rna_transcription_tests.erl
3299
+ - tracks/erlang/exercises/robot-simulator/.meta/readme.go.tmpl
3210
3300
  - tracks/erlang/exercises/robot-simulator/HINTS.md
3301
+ - tracks/erlang/exercises/robot-simulator/README.md
3211
3302
  - tracks/erlang/exercises/robot-simulator/include/exercism.hrl
3212
3303
  - tracks/erlang/exercises/robot-simulator/rebar.config
3213
3304
  - tracks/erlang/exercises/robot-simulator/src/example.erl
3214
3305
  - tracks/erlang/exercises/robot-simulator/src/robot_simulator.app.src
3215
3306
  - tracks/erlang/exercises/robot-simulator/test/robot_simulator_tests.erl
3307
+ - tracks/erlang/exercises/roman-numerals/.meta/readme.go.tmpl
3308
+ - tracks/erlang/exercises/roman-numerals/README.md
3216
3309
  - tracks/erlang/exercises/roman-numerals/include/exercism.hrl
3217
3310
  - tracks/erlang/exercises/roman-numerals/rebar.config
3218
3311
  - tracks/erlang/exercises/roman-numerals/src/example.erl
3219
3312
  - tracks/erlang/exercises/roman-numerals/src/roman_numerals.app.src
3220
3313
  - tracks/erlang/exercises/roman-numerals/test/roman_numerals_tests.erl
3314
+ - tracks/erlang/exercises/rotational-cipher/.meta/readme.go.tmpl
3315
+ - tracks/erlang/exercises/rotational-cipher/README.md
3221
3316
  - tracks/erlang/exercises/rotational-cipher/include/exercism.hrl
3222
3317
  - tracks/erlang/exercises/rotational-cipher/rebar.config
3223
3318
  - tracks/erlang/exercises/rotational-cipher/src/example.erl
3224
3319
  - tracks/erlang/exercises/rotational-cipher/src/rotational_cipher.app.src
3225
3320
  - tracks/erlang/exercises/rotational-cipher/test/rotational_cipher_tests.erl
3321
+ - tracks/erlang/exercises/scrabble-score/.meta/readme.go.tmpl
3322
+ - tracks/erlang/exercises/scrabble-score/README.md
3226
3323
  - tracks/erlang/exercises/scrabble-score/include/exercism.hrl
3227
3324
  - tracks/erlang/exercises/scrabble-score/rebar.config
3228
3325
  - tracks/erlang/exercises/scrabble-score/src/example.erl
3229
3326
  - tracks/erlang/exercises/scrabble-score/src/scrabble_score.app.src
3230
3327
  - tracks/erlang/exercises/scrabble-score/test/scrabble_score_tests.erl
3328
+ - tracks/erlang/exercises/series/.meta/readme.go.tmpl
3329
+ - tracks/erlang/exercises/series/README.md
3231
3330
  - tracks/erlang/exercises/series/include/exercism.hrl
3232
3331
  - tracks/erlang/exercises/series/rebar.config
3233
3332
  - tracks/erlang/exercises/series/src/example.erl
3234
3333
  - tracks/erlang/exercises/series/src/series.app.src
3235
3334
  - tracks/erlang/exercises/series/test/series_tests.erl
3335
+ - tracks/erlang/exercises/space-age/.meta/readme.go.tmpl
3336
+ - tracks/erlang/exercises/space-age/README.md
3236
3337
  - tracks/erlang/exercises/space-age/include/exercism.hrl
3237
3338
  - tracks/erlang/exercises/space-age/rebar.config
3238
3339
  - tracks/erlang/exercises/space-age/src/example.erl
3239
3340
  - tracks/erlang/exercises/space-age/src/space_age.app.src
3240
3341
  - tracks/erlang/exercises/space-age/test/space_age_tests.erl
3342
+ - tracks/erlang/exercises/spiral-matrix/.meta/readme.go.tmpl
3343
+ - tracks/erlang/exercises/spiral-matrix/README.md
3344
+ - tracks/erlang/exercises/spiral-matrix/include/exercism.hrl
3345
+ - tracks/erlang/exercises/spiral-matrix/rebar.config
3346
+ - tracks/erlang/exercises/spiral-matrix/src/example.erl
3347
+ - tracks/erlang/exercises/spiral-matrix/src/spiral_matrix.app.src
3348
+ - tracks/erlang/exercises/spiral-matrix/test/spiral_matrix_tests.erl
3349
+ - tracks/erlang/exercises/strain/.meta/readme.go.tmpl
3350
+ - tracks/erlang/exercises/strain/README.md
3241
3351
  - tracks/erlang/exercises/strain/include/exercism.hrl
3242
3352
  - tracks/erlang/exercises/strain/rebar.config
3243
3353
  - tracks/erlang/exercises/strain/src/example.erl
3244
3354
  - tracks/erlang/exercises/strain/src/strain.app.src
3245
3355
  - tracks/erlang/exercises/strain/test/strain_tests.erl
3356
+ - tracks/erlang/exercises/sum-of-multiples/.meta/readme.go.tmpl
3357
+ - tracks/erlang/exercises/sum-of-multiples/README.md
3246
3358
  - tracks/erlang/exercises/sum-of-multiples/include/exercism.hrl
3247
3359
  - tracks/erlang/exercises/sum-of-multiples/rebar.config
3248
3360
  - tracks/erlang/exercises/sum-of-multiples/src/example.erl
3249
3361
  - tracks/erlang/exercises/sum-of-multiples/src/sum_of_multiples.app.src
3250
3362
  - tracks/erlang/exercises/sum-of-multiples/test/sum_of_multiples_tests.erl
3363
+ - tracks/erlang/exercises/triangle/.meta/readme.go.tmpl
3364
+ - tracks/erlang/exercises/triangle/README.md
3251
3365
  - tracks/erlang/exercises/triangle/include/exercism.hrl
3252
3366
  - tracks/erlang/exercises/triangle/rebar.config
3253
3367
  - tracks/erlang/exercises/triangle/src/example.erl
3254
3368
  - tracks/erlang/exercises/triangle/src/triangle.app.src
3255
3369
  - tracks/erlang/exercises/triangle/test/triangle_tests.erl
3370
+ - tracks/erlang/exercises/word-count/.meta/readme.go.tmpl
3371
+ - tracks/erlang/exercises/word-count/README.md
3256
3372
  - tracks/erlang/exercises/word-count/include/exercism.hrl
3257
3373
  - tracks/erlang/exercises/word-count/rebar.config
3258
3374
  - tracks/erlang/exercises/word-count/src/example.erl
3259
3375
  - tracks/erlang/exercises/word-count/src/word_count.app.src
3260
3376
  - tracks/erlang/exercises/word-count/test/word_count_tests.erl
3377
+ - tracks/erlang/exercises/zipper/.meta/readme.go.tmpl
3378
+ - tracks/erlang/exercises/zipper/README.md
3261
3379
  - tracks/erlang/exercises/zipper/hints/README.md
3262
3380
  - tracks/erlang/exercises/zipper/hints/hint_1.md
3263
3381
  - tracks/erlang/exercises/zipper/hints/hint_2.md
@@ -4550,6 +4668,7 @@ files:
4550
4668
  - tracks/java/_template/src/example/java/.keep
4551
4669
  - tracks/java/_template/src/main/java/.keep
4552
4670
  - tracks/java/_template/src/test/java/.keep
4671
+ - tracks/java/bin/README.md
4553
4672
  - tracks/java/bin/build-jq.sh
4554
4673
  - tracks/java/bin/fetch-configlet
4555
4674
  - tracks/java/bin/journey-test.sh
@@ -4560,332 +4679,499 @@ files:
4560
4679
  - tracks/java/docs/INSTALLATION.md
4561
4680
  - tracks/java/docs/LEARNING.md
4562
4681
  - tracks/java/docs/MAINTAINING.md
4682
+ - tracks/java/docs/RESOURCES.md
4563
4683
  - tracks/java/docs/TESTS.md
4564
4684
  - tracks/java/docs/img/eclipse-help-dropdown.png
4565
4685
  - tracks/java/docs/img/eclipse-mp-search-buildship-gradle.png
4566
4686
  - tracks/java/docs/img/mac-osx--idea-ce-run-unit-tests.png
4567
4687
  - tracks/java/docs/img/mac-osx--install-java-dialog.png
4688
+ - tracks/java/exercises/accumulate/.meta/readme.go.tmpl
4689
+ - tracks/java/exercises/accumulate/README.md
4568
4690
  - tracks/java/exercises/accumulate/build.gradle
4569
4691
  - tracks/java/exercises/accumulate/src/example/java/Accumulate.java
4570
4692
  - tracks/java/exercises/accumulate/src/main/java/.keep
4571
4693
  - tracks/java/exercises/accumulate/src/test/java/AccumulateTest.java
4694
+ - tracks/java/exercises/acronym/.meta/readme.go.tmpl
4695
+ - tracks/java/exercises/acronym/README.md
4572
4696
  - tracks/java/exercises/acronym/build.gradle
4573
4697
  - tracks/java/exercises/acronym/src/example/java/Acronym.java
4574
4698
  - tracks/java/exercises/acronym/src/main/java/Acronym.java
4575
4699
  - tracks/java/exercises/acronym/src/test/java/AcronymTest.java
4700
+ - tracks/java/exercises/all-your-base/.meta/readme.go.tmpl
4701
+ - tracks/java/exercises/all-your-base/README.md
4576
4702
  - tracks/java/exercises/all-your-base/build.gradle
4577
4703
  - tracks/java/exercises/all-your-base/src/example/java/BaseConverter.java
4578
- - tracks/java/exercises/all-your-base/src/main/java/BaseConverter.java
4704
+ - tracks/java/exercises/all-your-base/src/main/java/.keep
4579
4705
  - tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java
4706
+ - tracks/java/exercises/allergies/.meta/readme.go.tmpl
4707
+ - tracks/java/exercises/allergies/README.md
4580
4708
  - tracks/java/exercises/allergies/build.gradle
4581
4709
  - tracks/java/exercises/allergies/src/example/java/Allergen.java
4582
4710
  - tracks/java/exercises/allergies/src/example/java/Allergies.java
4583
4711
  - tracks/java/exercises/allergies/src/main/java/Allergen.java
4584
4712
  - tracks/java/exercises/allergies/src/test/java/AllergiesTest.java
4713
+ - tracks/java/exercises/anagram/.meta/readme.go.tmpl
4714
+ - tracks/java/exercises/anagram/README.md
4585
4715
  - tracks/java/exercises/anagram/build.gradle
4586
4716
  - tracks/java/exercises/anagram/src/example/java/Anagram.java
4587
- - tracks/java/exercises/anagram/src/main/java/Anagram.java
4717
+ - tracks/java/exercises/anagram/src/main/java/.keep
4588
4718
  - tracks/java/exercises/anagram/src/test/java/AnagramTest.java
4719
+ - tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl
4720
+ - tracks/java/exercises/atbash-cipher/README.md
4589
4721
  - tracks/java/exercises/atbash-cipher/build.gradle
4590
4722
  - tracks/java/exercises/atbash-cipher/src/example/java/Atbash.java
4591
4723
  - tracks/java/exercises/atbash-cipher/src/main/java/.keep
4592
4724
  - tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java
4725
+ - tracks/java/exercises/bank-account/.meta/readme.go.tmpl
4593
4726
  - tracks/java/exercises/bank-account/HINTS.md
4727
+ - tracks/java/exercises/bank-account/README.md
4594
4728
  - tracks/java/exercises/bank-account/build.gradle
4595
4729
  - tracks/java/exercises/bank-account/src/example/java/BankAccount.java
4596
4730
  - tracks/java/exercises/bank-account/src/example/java/BankAccountActionInvalidException.java
4597
4731
  - tracks/java/exercises/bank-account/src/main/java/BankAccountActionInvalidException.java
4598
4732
  - tracks/java/exercises/bank-account/src/test/java/BankAccountTest.java
4733
+ - tracks/java/exercises/beer-song/.meta/readme.go.tmpl
4734
+ - tracks/java/exercises/beer-song/README.md
4599
4735
  - tracks/java/exercises/beer-song/build.gradle
4600
4736
  - tracks/java/exercises/beer-song/src/example/java/BeerSong.java
4601
- - tracks/java/exercises/beer-song/src/main/java/BeerSong.java
4737
+ - tracks/java/exercises/beer-song/src/main/java/.keep
4602
4738
  - tracks/java/exercises/beer-song/src/test/java/BeerSongTest.java
4739
+ - tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl
4740
+ - tracks/java/exercises/binary-search-tree/README.md
4603
4741
  - tracks/java/exercises/binary-search-tree/build.gradle
4604
4742
  - tracks/java/exercises/binary-search-tree/src/example/java/BST.java
4605
4743
  - tracks/java/exercises/binary-search-tree/src/main/java/.keep
4606
4744
  - tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java
4745
+ - tracks/java/exercises/binary-search/.meta/readme.go.tmpl
4746
+ - tracks/java/exercises/binary-search/README.md
4607
4747
  - tracks/java/exercises/binary-search/build.gradle
4608
4748
  - tracks/java/exercises/binary-search/src/example/java/BinarySearch.java
4609
- - tracks/java/exercises/binary-search/src/main/java/BinarySearch.java
4610
- - tracks/java/exercises/binary-search/src/test/java/.keep
4749
+ - tracks/java/exercises/binary-search/src/main/java/.keep
4611
4750
  - tracks/java/exercises/binary-search/src/test/java/BinarySearchTest.java
4751
+ - tracks/java/exercises/binary/.meta/readme.go.tmpl
4752
+ - tracks/java/exercises/binary/README.md
4612
4753
  - tracks/java/exercises/binary/build.gradle
4613
4754
  - tracks/java/exercises/binary/src/example/java/Binary.java
4614
4755
  - tracks/java/exercises/binary/src/main/java/.keep
4615
4756
  - tracks/java/exercises/binary/src/test/java/BinaryTest.java
4757
+ - tracks/java/exercises/bob/.meta/readme.go.tmpl
4758
+ - tracks/java/exercises/bob/README.md
4616
4759
  - tracks/java/exercises/bob/build.gradle
4617
4760
  - tracks/java/exercises/bob/src/example/java/Bob.java
4618
4761
  - tracks/java/exercises/bob/src/main/java/.keep
4619
4762
  - tracks/java/exercises/bob/src/test/java/BobTest.java
4763
+ - tracks/java/exercises/book-store/.meta/readme.go.tmpl
4764
+ - tracks/java/exercises/book-store/README.md
4620
4765
  - tracks/java/exercises/book-store/build.gradle
4621
4766
  - tracks/java/exercises/book-store/src/example/java/.keep
4622
4767
  - tracks/java/exercises/book-store/src/example/java/BookStore.java
4623
4768
  - tracks/java/exercises/book-store/src/main/java/.keep
4624
- - tracks/java/exercises/book-store/src/test/java/.keep
4625
4769
  - tracks/java/exercises/book-store/src/test/java/BookStoreTest.java
4770
+ - tracks/java/exercises/bowling/.meta/readme.go.tmpl
4771
+ - tracks/java/exercises/bowling/README.md
4772
+ - tracks/java/exercises/bowling/build.gradle
4773
+ - tracks/java/exercises/bowling/src/example/java/BowlingGame.java
4774
+ - tracks/java/exercises/bowling/src/main/java/.keep
4775
+ - tracks/java/exercises/bowling/src/test/java/BowlingTest.java
4776
+ - tracks/java/exercises/bracket-push/.meta/readme.go.tmpl
4777
+ - tracks/java/exercises/bracket-push/README.md
4626
4778
  - tracks/java/exercises/bracket-push/build.gradle
4627
4779
  - tracks/java/exercises/bracket-push/src/example/java/BracketChecker.java
4628
- - tracks/java/exercises/bracket-push/src/main/java/BracketChecker.java
4780
+ - tracks/java/exercises/bracket-push/src/main/java/.keep
4629
4781
  - tracks/java/exercises/bracket-push/src/test/java/BracketCheckerTest.java
4630
4782
  - tracks/java/exercises/build.gradle
4783
+ - tracks/java/exercises/change/.meta/readme.go.tmpl
4784
+ - tracks/java/exercises/change/README.md
4631
4785
  - tracks/java/exercises/change/build.gradle
4632
4786
  - tracks/java/exercises/change/src/example/java/ChangeCalculator.java
4633
- - tracks/java/exercises/change/src/main/java/ChangeCalculator.java
4787
+ - tracks/java/exercises/change/src/main/java/.keep
4634
4788
  - tracks/java/exercises/change/src/test/java/ChangeCalculatorTest.java
4789
+ - tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl
4790
+ - tracks/java/exercises/circular-buffer/README.md
4791
+ - tracks/java/exercises/circular-buffer/build.gradle
4792
+ - tracks/java/exercises/circular-buffer/src/example/java/BufferIOException.java
4793
+ - tracks/java/exercises/circular-buffer/src/example/java/CircularBuffer.java
4794
+ - tracks/java/exercises/circular-buffer/src/main/java/BufferIOException.java
4795
+ - tracks/java/exercises/circular-buffer/src/test/java/CircularBufferTest.java
4796
+ - tracks/java/exercises/clock/.meta/readme.go.tmpl
4635
4797
  - tracks/java/exercises/clock/HINTS.md
4798
+ - tracks/java/exercises/clock/README.md
4636
4799
  - tracks/java/exercises/clock/build.gradle
4637
4800
  - tracks/java/exercises/clock/src/example/java/Clock.java
4638
4801
  - tracks/java/exercises/clock/src/main/java/.keep
4639
4802
  - tracks/java/exercises/clock/src/test/java/ClockAddTest.java
4640
4803
  - tracks/java/exercises/clock/src/test/java/ClockCreationTest.java
4641
4804
  - tracks/java/exercises/clock/src/test/java/ClockEqualTest.java
4805
+ - tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl
4806
+ - tracks/java/exercises/collatz-conjecture/README.md
4642
4807
  - tracks/java/exercises/collatz-conjecture/build.gradle
4643
4808
  - tracks/java/exercises/collatz-conjecture/src/example/java/CollatzCalculator.java
4644
- - tracks/java/exercises/collatz-conjecture/src/main/java/CollatzCalculator.java
4809
+ - tracks/java/exercises/collatz-conjecture/src/main/java/.keep
4645
4810
  - tracks/java/exercises/collatz-conjecture/src/test/java/CollatzCalculatorTest.java
4811
+ - tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl
4812
+ - tracks/java/exercises/complex-numbers/README.md
4813
+ - tracks/java/exercises/complex-numbers/build.gradle
4814
+ - tracks/java/exercises/complex-numbers/src/example/java/ComplexNumber.java
4815
+ - tracks/java/exercises/complex-numbers/src/main/java/.keep
4816
+ - tracks/java/exercises/complex-numbers/src/test/java/ComplexNumberTest.java
4817
+ - tracks/java/exercises/crypto-square/.meta/readme.go.tmpl
4818
+ - tracks/java/exercises/crypto-square/README.md
4646
4819
  - tracks/java/exercises/crypto-square/build.gradle
4647
4820
  - tracks/java/exercises/crypto-square/src/example/java/Crypto.java
4648
4821
  - tracks/java/exercises/crypto-square/src/main/java/.keep
4649
4822
  - tracks/java/exercises/crypto-square/src/test/java/CryptoSquareTest.java
4823
+ - tracks/java/exercises/custom-set/.meta/readme.go.tmpl
4824
+ - tracks/java/exercises/custom-set/README.md
4650
4825
  - tracks/java/exercises/custom-set/build.gradle
4651
4826
  - tracks/java/exercises/custom-set/src/example/java/CustomSet.java
4652
4827
  - tracks/java/exercises/custom-set/src/main/java/.keep
4653
4828
  - tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java
4829
+ - tracks/java/exercises/diamond/.meta/readme.go.tmpl
4830
+ - tracks/java/exercises/diamond/README.md
4654
4831
  - tracks/java/exercises/diamond/build.gradle
4655
4832
  - tracks/java/exercises/diamond/src/example/java/DiamondPrinter.java
4656
- - tracks/java/exercises/diamond/src/main/java/DiamondPrinter.java
4833
+ - tracks/java/exercises/diamond/src/main/java/.keep
4657
4834
  - tracks/java/exercises/diamond/src/test/java/DiamondPrinterTest.java
4835
+ - tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl
4836
+ - tracks/java/exercises/difference-of-squares/README.md
4658
4837
  - tracks/java/exercises/difference-of-squares/build.gradle
4659
4838
  - tracks/java/exercises/difference-of-squares/src/example/java/DifferenceOfSquaresCalculator.java
4660
4839
  - tracks/java/exercises/difference-of-squares/src/main/java/.keep
4661
4840
  - tracks/java/exercises/difference-of-squares/src/test/java/DifferenceOfSquaresCalculatorTest.java
4841
+ - tracks/java/exercises/etl/.meta/readme.go.tmpl
4842
+ - tracks/java/exercises/etl/README.md
4662
4843
  - tracks/java/exercises/etl/build.gradle
4663
4844
  - tracks/java/exercises/etl/src/example/java/Etl.java
4664
4845
  - tracks/java/exercises/etl/src/main/java/Etl.java
4665
4846
  - tracks/java/exercises/etl/src/test/java/EtlTest.java
4847
+ - tracks/java/exercises/flatten-array/.meta/readme.go.tmpl
4848
+ - tracks/java/exercises/flatten-array/README.md
4666
4849
  - tracks/java/exercises/flatten-array/build.gradle
4667
4850
  - tracks/java/exercises/flatten-array/src/example/java/Flattener.java
4668
- - tracks/java/exercises/flatten-array/src/main/java/Flattener.java
4851
+ - tracks/java/exercises/flatten-array/src/main/java/.keep
4669
4852
  - tracks/java/exercises/flatten-array/src/test/java/FlattenerTest.java
4853
+ - tracks/java/exercises/food-chain/.meta/readme.go.tmpl
4854
+ - tracks/java/exercises/food-chain/README.md
4670
4855
  - tracks/java/exercises/food-chain/build.gradle
4671
4856
  - tracks/java/exercises/food-chain/src/example/java/FoodChain.java
4672
4857
  - tracks/java/exercises/food-chain/src/main/java/.keep
4673
4858
  - tracks/java/exercises/food-chain/src/test/java/FoodChainTest.java
4859
+ - tracks/java/exercises/gigasecond/.meta/readme.go.tmpl
4860
+ - tracks/java/exercises/gigasecond/README.md
4674
4861
  - tracks/java/exercises/gigasecond/build.gradle
4675
4862
  - tracks/java/exercises/gigasecond/src/example/java/Gigasecond.java
4676
4863
  - tracks/java/exercises/gigasecond/src/main/java/Gigasecond.java
4677
4864
  - tracks/java/exercises/gigasecond/src/test/java/GigasecondTest.java
4865
+ - tracks/java/exercises/grade-school/.meta/readme.go.tmpl
4866
+ - tracks/java/exercises/grade-school/README.md
4678
4867
  - tracks/java/exercises/grade-school/build.gradle
4679
4868
  - tracks/java/exercises/grade-school/src/example/java/School.java
4680
4869
  - tracks/java/exercises/grade-school/src/main/java/.keep
4681
4870
  - tracks/java/exercises/grade-school/src/test/java/SchoolTest.java
4871
+ - tracks/java/exercises/hamming/.meta/readme.go.tmpl
4872
+ - tracks/java/exercises/hamming/HINTS.md
4873
+ - tracks/java/exercises/hamming/README.md
4682
4874
  - tracks/java/exercises/hamming/build.gradle
4683
4875
  - tracks/java/exercises/hamming/src/example/java/Hamming.java
4684
4876
  - tracks/java/exercises/hamming/src/main/java/Hamming.java
4685
4877
  - tracks/java/exercises/hamming/src/test/java/HammingTest.java
4878
+ - tracks/java/exercises/hello-world/.meta/readme.go.tmpl
4686
4879
  - tracks/java/exercises/hello-world/HINTS.md
4880
+ - tracks/java/exercises/hello-world/README.md
4687
4881
  - tracks/java/exercises/hello-world/TUTORIAL.md
4688
4882
  - tracks/java/exercises/hello-world/build.gradle
4689
4883
  - tracks/java/exercises/hello-world/src/example/java/Greeter.java
4690
4884
  - tracks/java/exercises/hello-world/src/main/java/Greeter.java
4691
4885
  - tracks/java/exercises/hello-world/src/test/java/GreeterTest.java
4886
+ - tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl
4887
+ - tracks/java/exercises/hexadecimal/README.md
4692
4888
  - tracks/java/exercises/hexadecimal/build.gradle
4693
4889
  - tracks/java/exercises/hexadecimal/src/example/java/Hexadecimal.java
4694
4890
  - tracks/java/exercises/hexadecimal/src/main/java/.keep
4695
4891
  - tracks/java/exercises/hexadecimal/src/test/java/HexadecimalTest.java
4892
+ - tracks/java/exercises/isogram/.meta/readme.go.tmpl
4696
4893
  - tracks/java/exercises/isogram/HINTS.md
4894
+ - tracks/java/exercises/isogram/README.md
4697
4895
  - tracks/java/exercises/isogram/build.gradle
4698
4896
  - tracks/java/exercises/isogram/src/example/java/IsogramChecker.java
4699
4897
  - tracks/java/exercises/isogram/src/main/java/.keep
4700
4898
  - tracks/java/exercises/isogram/src/test/java/IsogramCheckerTest.java
4899
+ - tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl
4900
+ - tracks/java/exercises/kindergarten-garden/README.md
4701
4901
  - tracks/java/exercises/kindergarten-garden/build.gradle
4702
4902
  - tracks/java/exercises/kindergarten-garden/src/example/java/KindergartenGarden.java
4703
4903
  - tracks/java/exercises/kindergarten-garden/src/example/java/Plant.java
4704
- - tracks/java/exercises/kindergarten-garden/src/main/java/KindergartenGarden.java
4705
4904
  - tracks/java/exercises/kindergarten-garden/src/main/java/Plant.java
4706
4905
  - tracks/java/exercises/kindergarten-garden/src/test/java/KindergartenGardenTest.java
4906
+ - tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl
4907
+ - tracks/java/exercises/largest-series-product/README.md
4707
4908
  - tracks/java/exercises/largest-series-product/build.gradle
4708
4909
  - tracks/java/exercises/largest-series-product/src/example/java/LargestSeriesProductCalculator.java
4709
4910
  - tracks/java/exercises/largest-series-product/src/main/java/LargestSeriesProductCalculator.java
4710
4911
  - tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java
4912
+ - tracks/java/exercises/linked-list/.meta/readme.go.tmpl
4913
+ - tracks/java/exercises/linked-list/README.md
4711
4914
  - tracks/java/exercises/linked-list/build.gradle
4712
4915
  - tracks/java/exercises/linked-list/src/example/java/DoublyLinkedList.java
4713
4916
  - tracks/java/exercises/linked-list/src/main/java/.keep
4714
4917
  - tracks/java/exercises/linked-list/src/test/java/DoublyLinkedListTest.java
4918
+ - tracks/java/exercises/list-ops/.meta/readme.go.tmpl
4919
+ - tracks/java/exercises/list-ops/HINTS.md
4920
+ - tracks/java/exercises/list-ops/README.md
4715
4921
  - tracks/java/exercises/list-ops/build.gradle
4716
4922
  - tracks/java/exercises/list-ops/src/example/java/ListOps.java
4717
- - tracks/java/exercises/list-ops/src/main/java/.keep
4923
+ - tracks/java/exercises/list-ops/src/main/java/ListOps.java
4718
4924
  - tracks/java/exercises/list-ops/src/test/java/ListOpsTest.java
4925
+ - tracks/java/exercises/luhn/.meta/readme.go.tmpl
4926
+ - tracks/java/exercises/luhn/README.md
4719
4927
  - tracks/java/exercises/luhn/build.gradle
4720
4928
  - tracks/java/exercises/luhn/src/example/java/LuhnValidator.java
4721
4929
  - tracks/java/exercises/luhn/src/main/java/LuhnValidator.java
4722
4930
  - tracks/java/exercises/luhn/src/test/java/LuhnValidatorTest.java
4931
+ - tracks/java/exercises/matrix/.meta/readme.go.tmpl
4932
+ - tracks/java/exercises/matrix/README.md
4723
4933
  - tracks/java/exercises/matrix/build.gradle
4724
4934
  - tracks/java/exercises/matrix/src/example/java/Matrix.java
4725
4935
  - tracks/java/exercises/matrix/src/main/java/.keep
4726
4936
  - tracks/java/exercises/matrix/src/test/java/MatrixTest.java
4937
+ - tracks/java/exercises/meetup/.meta/readme.go.tmpl
4938
+ - tracks/java/exercises/meetup/README.md
4727
4939
  - tracks/java/exercises/meetup/build.gradle
4728
4940
  - tracks/java/exercises/meetup/src/example/java/Meetup.java
4729
4941
  - tracks/java/exercises/meetup/src/example/java/MeetupSchedule.java
4730
4942
  - tracks/java/exercises/meetup/src/main/java/MeetupSchedule.java
4731
4943
  - tracks/java/exercises/meetup/src/test/java/MeetupTest.java
4944
+ - tracks/java/exercises/minesweeper/.meta/readme.go.tmpl
4945
+ - tracks/java/exercises/minesweeper/README.md
4732
4946
  - tracks/java/exercises/minesweeper/build.gradle
4733
4947
  - tracks/java/exercises/minesweeper/src/example/java/MinesweeperBoard.java
4734
- - tracks/java/exercises/minesweeper/src/main/java/MinesweeperBoard.java
4948
+ - tracks/java/exercises/minesweeper/src/main/java/.keep
4735
4949
  - tracks/java/exercises/minesweeper/src/test/java/MinesweeperBoardTest.java
4950
+ - tracks/java/exercises/nth-prime/.meta/readme.go.tmpl
4951
+ - tracks/java/exercises/nth-prime/README.md
4736
4952
  - tracks/java/exercises/nth-prime/build.gradle
4737
4953
  - tracks/java/exercises/nth-prime/src/example/java/PrimeCalculator.java
4738
4954
  - tracks/java/exercises/nth-prime/src/main/java/.keep
4739
4955
  - tracks/java/exercises/nth-prime/src/test/java/PrimeCalculatorTest.java
4956
+ - tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl
4957
+ - tracks/java/exercises/nucleotide-count/README.md
4740
4958
  - tracks/java/exercises/nucleotide-count/build.gradle
4741
4959
  - tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
4742
- - tracks/java/exercises/nucleotide-count/src/main/java/DNA.java
4960
+ - tracks/java/exercises/nucleotide-count/src/main/java/.keep
4743
4961
  - tracks/java/exercises/nucleotide-count/src/test/java/NucleotideTest.java
4962
+ - tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl
4963
+ - tracks/java/exercises/ocr-numbers/README.md
4744
4964
  - tracks/java/exercises/ocr-numbers/build.gradle
4745
4965
  - tracks/java/exercises/ocr-numbers/src/example/java/Digit.java
4746
4966
  - tracks/java/exercises/ocr-numbers/src/example/java/OpticalCharacterReader.java
4747
- - tracks/java/exercises/ocr-numbers/src/main/java/OpticalCharacterReader.java
4967
+ - tracks/java/exercises/ocr-numbers/src/main/java/.keep
4748
4968
  - tracks/java/exercises/ocr-numbers/src/test/java/OpticalCharacterReaderTest.java
4969
+ - tracks/java/exercises/octal/.meta/readme.go.tmpl
4970
+ - tracks/java/exercises/octal/README.md
4749
4971
  - tracks/java/exercises/octal/build.gradle
4750
4972
  - tracks/java/exercises/octal/src/example/java/Octal.java
4751
4973
  - tracks/java/exercises/octal/src/main/java/.keep
4752
4974
  - tracks/java/exercises/octal/src/test/java/OctalTest.java
4975
+ - tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl
4976
+ - tracks/java/exercises/palindrome-products/README.md
4753
4977
  - tracks/java/exercises/palindrome-products/build.gradle
4754
4978
  - tracks/java/exercises/palindrome-products/src/example/java/PalindromeCalculator.java
4755
4979
  - tracks/java/exercises/palindrome-products/src/main/java/.keep
4756
4980
  - tracks/java/exercises/palindrome-products/src/test/java/PalindromeCalculatorTest.java
4981
+ - tracks/java/exercises/pangram/.meta/readme.go.tmpl
4982
+ - tracks/java/exercises/pangram/README.md
4757
4983
  - tracks/java/exercises/pangram/build.gradle
4758
4984
  - tracks/java/exercises/pangram/src/example/java/PangramChecker.java
4759
4985
  - tracks/java/exercises/pangram/src/main/java/PangramChecker.java
4760
4986
  - tracks/java/exercises/pangram/src/test/java/PangramCheckerTest.java
4987
+ - tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl
4988
+ - tracks/java/exercises/pascals-triangle/README.md
4761
4989
  - tracks/java/exercises/pascals-triangle/build.gradle
4762
4990
  - tracks/java/exercises/pascals-triangle/src/example/java/PascalsTriangleGenerator.java
4763
4991
  - tracks/java/exercises/pascals-triangle/src/main/java/.keep
4764
4992
  - tracks/java/exercises/pascals-triangle/src/test/java/PascalsTriangleGeneratorTest.java
4993
+ - tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl
4994
+ - tracks/java/exercises/perfect-numbers/README.md
4765
4995
  - tracks/java/exercises/perfect-numbers/build.gradle
4766
4996
  - tracks/java/exercises/perfect-numbers/src/example/java/Classification.java
4767
4997
  - tracks/java/exercises/perfect-numbers/src/example/java/NaturalNumber.java
4768
4998
  - tracks/java/exercises/perfect-numbers/src/main/java/Classification.java
4769
4999
  - tracks/java/exercises/perfect-numbers/src/main/java/NaturalNumber.java
4770
5000
  - tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java
5001
+ - tracks/java/exercises/phone-number/.meta/readme.go.tmpl
5002
+ - tracks/java/exercises/phone-number/README.md
4771
5003
  - tracks/java/exercises/phone-number/build.gradle
4772
5004
  - tracks/java/exercises/phone-number/src/example/java/PhoneNumber.java
4773
5005
  - tracks/java/exercises/phone-number/src/main/java/.keep
4774
5006
  - tracks/java/exercises/phone-number/src/test/java/PhoneNumberTest.java
5007
+ - tracks/java/exercises/pig-latin/.meta/readme.go.tmpl
5008
+ - tracks/java/exercises/pig-latin/README.md
4775
5009
  - tracks/java/exercises/pig-latin/build.gradle
4776
5010
  - tracks/java/exercises/pig-latin/src/example/java/PigLatinTranslator.java
4777
5011
  - tracks/java/exercises/pig-latin/src/main/java/.keep
4778
5012
  - tracks/java/exercises/pig-latin/src/test/java/PigLatinTranslatorTest.java
5013
+ - tracks/java/exercises/poker/.meta/readme.go.tmpl
5014
+ - tracks/java/exercises/poker/README.md
4779
5015
  - tracks/java/exercises/poker/build.gradle
4780
5016
  - tracks/java/exercises/poker/src/example/java/Card.java
4781
5017
  - tracks/java/exercises/poker/src/example/java/Hand.java
4782
5018
  - tracks/java/exercises/poker/src/example/java/Poker.java
4783
- - tracks/java/exercises/poker/src/main/java/Poker.java
5019
+ - tracks/java/exercises/poker/src/main/java/.keep
4784
5020
  - tracks/java/exercises/poker/src/test/java/PokerTest.java
5021
+ - tracks/java/exercises/prime-factors/.meta/readme.go.tmpl
5022
+ - tracks/java/exercises/prime-factors/README.md
4785
5023
  - tracks/java/exercises/prime-factors/build.gradle
4786
5024
  - tracks/java/exercises/prime-factors/src/example/java/PrimeFactorsCalculator.java
4787
5025
  - tracks/java/exercises/prime-factors/src/main/java/.keep
4788
5026
  - tracks/java/exercises/prime-factors/src/test/java/PrimeFactorsCalculatorTest.java
5027
+ - tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl
5028
+ - tracks/java/exercises/pythagorean-triplet/README.md
4789
5029
  - tracks/java/exercises/pythagorean-triplet/build.gradle
4790
5030
  - tracks/java/exercises/pythagorean-triplet/src/example/java/PythagoreanTriplet.java
4791
- - tracks/java/exercises/pythagorean-triplet/src/main/java/PythagoreanTriplet.java
5031
+ - tracks/java/exercises/pythagorean-triplet/src/main/java/.keep
4792
5032
  - tracks/java/exercises/pythagorean-triplet/src/test/java/PythagoreanTripletTest.java
5033
+ - tracks/java/exercises/queen-attack/.meta/readme.go.tmpl
5034
+ - tracks/java/exercises/queen-attack/README.md
4793
5035
  - tracks/java/exercises/queen-attack/build.gradle
4794
5036
  - tracks/java/exercises/queen-attack/src/example/java/BoardCoordinate.java
4795
5037
  - tracks/java/exercises/queen-attack/src/example/java/QueenAttackCalculator.java
4796
- - tracks/java/exercises/queen-attack/src/main/java/BoardCoordinate.java
4797
- - tracks/java/exercises/queen-attack/src/main/java/QueenAttackCalculator.java
5038
+ - tracks/java/exercises/queen-attack/src/main/java/.keep
4798
5039
  - tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java
5040
+ - tracks/java/exercises/raindrops/.meta/readme.go.tmpl
5041
+ - tracks/java/exercises/raindrops/README.md
4799
5042
  - tracks/java/exercises/raindrops/build.gradle
4800
5043
  - tracks/java/exercises/raindrops/src/example/java/RaindropConverter.java
4801
5044
  - tracks/java/exercises/raindrops/src/main/java/RaindropConverter.java
4802
5045
  - tracks/java/exercises/raindrops/src/test/java/RaindropConverterTest.java
5046
+ - tracks/java/exercises/rectangles/.meta/readme.go.tmpl
5047
+ - tracks/java/exercises/rectangles/README.md
4803
5048
  - tracks/java/exercises/rectangles/build.gradle
4804
5049
  - tracks/java/exercises/rectangles/src/example/java/RectangleCounter.java
4805
- - tracks/java/exercises/rectangles/src/main/java/RectangleCounter.java
5050
+ - tracks/java/exercises/rectangles/src/main/java/.keep
4806
5051
  - tracks/java/exercises/rectangles/src/test/java/RectangleCounterTest.java
5052
+ - tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl
5053
+ - tracks/java/exercises/rna-transcription/README.md
4807
5054
  - tracks/java/exercises/rna-transcription/build.gradle
4808
5055
  - tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java
4809
5056
  - tracks/java/exercises/rna-transcription/src/main/java/RnaTranscription.java
4810
5057
  - tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java
5058
+ - tracks/java/exercises/robot-name/.meta/readme.go.tmpl
5059
+ - tracks/java/exercises/robot-name/README.md
4811
5060
  - tracks/java/exercises/robot-name/build.gradle
4812
5061
  - tracks/java/exercises/robot-name/src/example/java/Robot.java
4813
5062
  - tracks/java/exercises/robot-name/src/main/java/.keep
4814
5063
  - tracks/java/exercises/robot-name/src/test/java/RobotTest.java
5064
+ - tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl
5065
+ - tracks/java/exercises/robot-simulator/README.md
4815
5066
  - tracks/java/exercises/robot-simulator/build.gradle
4816
5067
  - tracks/java/exercises/robot-simulator/src/example/java/GridPosition.java
4817
5068
  - tracks/java/exercises/robot-simulator/src/example/java/Orientation.java
4818
5069
  - tracks/java/exercises/robot-simulator/src/example/java/Robot.java
4819
5070
  - tracks/java/exercises/robot-simulator/src/main/java/GridPosition.java
4820
5071
  - tracks/java/exercises/robot-simulator/src/main/java/Orientation.java
4821
- - tracks/java/exercises/robot-simulator/src/main/java/Robot.java
4822
5072
  - tracks/java/exercises/robot-simulator/src/test/java/RobotTest.java
5073
+ - tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl
5074
+ - tracks/java/exercises/roman-numerals/README.md
4823
5075
  - tracks/java/exercises/roman-numerals/build.gradle
4824
5076
  - tracks/java/exercises/roman-numerals/src/example/java/RomanNumeral.java
4825
5077
  - tracks/java/exercises/roman-numerals/src/main/java/.keep
4826
5078
  - tracks/java/exercises/roman-numerals/src/test/java/RomanNumeralsTest.java
5079
+ - tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl
5080
+ - tracks/java/exercises/run-length-encoding/README.md
4827
5081
  - tracks/java/exercises/run-length-encoding/build.gradle
4828
5082
  - tracks/java/exercises/run-length-encoding/src/example/java/RunLengthEncoding.java
4829
- - tracks/java/exercises/run-length-encoding/src/main/java/RunLengthEncoding.java
5083
+ - tracks/java/exercises/run-length-encoding/src/main/java/.keep
4830
5084
  - tracks/java/exercises/run-length-encoding/src/test/java/RunLengthEncodingTest.java
5085
+ - tracks/java/exercises/saddle-points/.meta/readme.go.tmpl
5086
+ - tracks/java/exercises/saddle-points/README.md
4831
5087
  - tracks/java/exercises/saddle-points/build.gradle
4832
5088
  - tracks/java/exercises/saddle-points/src/example/java/Matrix.java
4833
5089
  - tracks/java/exercises/saddle-points/src/example/java/MatrixCoordinate.java
4834
- - tracks/java/exercises/saddle-points/src/main/java/Matrix.java
4835
5090
  - tracks/java/exercises/saddle-points/src/main/java/MatrixCoordinate.java
4836
5091
  - tracks/java/exercises/saddle-points/src/test/java/MatrixTest.java
5092
+ - tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl
5093
+ - tracks/java/exercises/scrabble-score/README.md
4837
5094
  - tracks/java/exercises/scrabble-score/build.gradle
4838
5095
  - tracks/java/exercises/scrabble-score/src/example/java/Scrabble.java
4839
5096
  - tracks/java/exercises/scrabble-score/src/main/java/Scrabble.java
4840
5097
  - tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java
5098
+ - tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl
5099
+ - tracks/java/exercises/secret-handshake/README.md
4841
5100
  - tracks/java/exercises/secret-handshake/build.gradle
4842
5101
  - tracks/java/exercises/secret-handshake/src/example/java/HandshakeCalculator.java
4843
5102
  - tracks/java/exercises/secret-handshake/src/example/java/Signal.java
4844
5103
  - tracks/java/exercises/secret-handshake/src/main/java/HandshakeCalculator.java
4845
5104
  - tracks/java/exercises/secret-handshake/src/main/java/Signal.java
4846
5105
  - tracks/java/exercises/secret-handshake/src/test/java/HandshakeCalculatorTest.java
5106
+ - tracks/java/exercises/series/.meta/readme.go.tmpl
5107
+ - tracks/java/exercises/series/README.md
4847
5108
  - tracks/java/exercises/series/build.gradle
4848
5109
  - tracks/java/exercises/series/src/example/java/Series.java
4849
- - tracks/java/exercises/series/src/main/java/Series.java
5110
+ - tracks/java/exercises/series/src/main/java/.keep
4850
5111
  - tracks/java/exercises/series/src/test/java/SeriesTest.java
4851
5112
  - tracks/java/exercises/settings.gradle
5113
+ - tracks/java/exercises/sieve/.meta/readme.go.tmpl
5114
+ - tracks/java/exercises/sieve/README.md
4852
5115
  - tracks/java/exercises/sieve/build.gradle
4853
5116
  - tracks/java/exercises/sieve/src/example/java/Sieve.java
4854
- - tracks/java/exercises/sieve/src/main/java/.keep
5117
+ - tracks/java/exercises/sieve/src/main/java/Sieve.java
4855
5118
  - tracks/java/exercises/sieve/src/test/java/SieveTest.java
5119
+ - tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl
4856
5120
  - tracks/java/exercises/simple-cipher/HINTS.md
5121
+ - tracks/java/exercises/simple-cipher/README.md
4857
5122
  - tracks/java/exercises/simple-cipher/build.gradle
4858
5123
  - tracks/java/exercises/simple-cipher/src/example/java/Cipher.java
4859
5124
  - tracks/java/exercises/simple-cipher/src/main/java/.keep
4860
5125
  - tracks/java/exercises/simple-cipher/src/test/java/SimpleCipherStepOneTest.java
4861
5126
  - tracks/java/exercises/simple-cipher/src/test/java/SimpleCipherStepThreeTest.java
4862
5127
  - tracks/java/exercises/simple-cipher/src/test/java/SimpleCipherStepTwoTest.java
5128
+ - tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl
5129
+ - tracks/java/exercises/simple-linked-list/README.md
4863
5130
  - tracks/java/exercises/simple-linked-list/build.gradle
4864
5131
  - tracks/java/exercises/simple-linked-list/src/example/java/SimpleLinkedList.java
4865
5132
  - tracks/java/exercises/simple-linked-list/src/main/java/.keep
4866
5133
  - tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java
5134
+ - tracks/java/exercises/space-age/.meta/readme.go.tmpl
5135
+ - tracks/java/exercises/space-age/README.md
4867
5136
  - tracks/java/exercises/space-age/build.gradle
4868
5137
  - tracks/java/exercises/space-age/src/example/java/SpaceAge.java
4869
5138
  - tracks/java/exercises/space-age/src/main/java/SpaceAge.java
4870
5139
  - tracks/java/exercises/space-age/src/test/java/SpaceAgeTest.java
5140
+ - tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl
5141
+ - tracks/java/exercises/spiral-matrix/README.md
5142
+ - tracks/java/exercises/spiral-matrix/build.gradle
5143
+ - tracks/java/exercises/spiral-matrix/src/example/java/Coordinate.java
5144
+ - tracks/java/exercises/spiral-matrix/src/example/java/Direction.java
5145
+ - tracks/java/exercises/spiral-matrix/src/example/java/SpiralMatrixBuilder.java
5146
+ - tracks/java/exercises/spiral-matrix/src/main/java/.keep
5147
+ - tracks/java/exercises/spiral-matrix/src/test/java/SpiralMatrixBuilderTest.java
5148
+ - tracks/java/exercises/strain/.meta/readme.go.tmpl
5149
+ - tracks/java/exercises/strain/README.md
4871
5150
  - tracks/java/exercises/strain/build.gradle
4872
5151
  - tracks/java/exercises/strain/src/example/java/Strain.java
4873
5152
  - tracks/java/exercises/strain/src/main/java/.keep
4874
5153
  - tracks/java/exercises/strain/src/test/java/StrainTest.java
5154
+ - tracks/java/exercises/sublist/.meta/readme.go.tmpl
5155
+ - tracks/java/exercises/sublist/README.md
4875
5156
  - tracks/java/exercises/sublist/build.gradle
4876
5157
  - tracks/java/exercises/sublist/src/example/java/Relationship.java
4877
5158
  - tracks/java/exercises/sublist/src/example/java/RelationshipComputer.java
4878
5159
  - tracks/java/exercises/sublist/src/main/java/Relationship.java
4879
- - tracks/java/exercises/sublist/src/main/java/RelationshipComputer.java
4880
5160
  - tracks/java/exercises/sublist/src/test/java/RelationshipComputerTest.java
5161
+ - tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl
5162
+ - tracks/java/exercises/sum-of-multiples/README.md
4881
5163
  - tracks/java/exercises/sum-of-multiples/build.gradle
4882
5164
  - tracks/java/exercises/sum-of-multiples/src/example/java/SumOfMultiples.java
4883
5165
  - tracks/java/exercises/sum-of-multiples/src/main/java/SumOfMultiples.java
4884
5166
  - tracks/java/exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java
5167
+ - tracks/java/exercises/transpose/.meta/readme.go.tmpl
5168
+ - tracks/java/exercises/transpose/README.md
4885
5169
  - tracks/java/exercises/transpose/build.gradle
4886
5170
  - tracks/java/exercises/transpose/src/example/java/Transpose.java
4887
5171
  - tracks/java/exercises/transpose/src/main/java/.keep
4888
5172
  - tracks/java/exercises/transpose/src/test/java/TransposeTest.java
5173
+ - tracks/java/exercises/triangle/.meta/readme.go.tmpl
5174
+ - tracks/java/exercises/triangle/README.md
4889
5175
  - tracks/java/exercises/triangle/build.gradle
4890
5176
  - tracks/java/exercises/triangle/src/example/java/Triangle.java
4891
5177
  - tracks/java/exercises/triangle/src/example/java/TriangleException.java
@@ -4894,23 +5180,33 @@ files:
4894
5180
  - tracks/java/exercises/triangle/src/main/java/TriangleException.java
4895
5181
  - tracks/java/exercises/triangle/src/main/java/TriangleKind.java
4896
5182
  - tracks/java/exercises/triangle/src/test/java/TriangleTest.java
5183
+ - tracks/java/exercises/trinary/.meta/readme.go.tmpl
5184
+ - tracks/java/exercises/trinary/README.md
4897
5185
  - tracks/java/exercises/trinary/build.gradle
4898
5186
  - tracks/java/exercises/trinary/src/example/java/Trinary.java
4899
5187
  - tracks/java/exercises/trinary/src/main/java/.keep
4900
5188
  - tracks/java/exercises/trinary/src/test/java/TrinaryTest.java
5189
+ - tracks/java/exercises/twelve-days/.meta/readme.go.tmpl
5190
+ - tracks/java/exercises/twelve-days/README.md
4901
5191
  - tracks/java/exercises/twelve-days/build.gradle
4902
5192
  - tracks/java/exercises/twelve-days/src/example/java/TwelveDays.java
4903
- - tracks/java/exercises/twelve-days/src/main/java/.keep
5193
+ - tracks/java/exercises/twelve-days/src/main/java/TwelveDays.java
4904
5194
  - tracks/java/exercises/twelve-days/src/test/java/TwelveDaysTest.java
5195
+ - tracks/java/exercises/two-fer/.meta/readme.go.tmpl
4905
5196
  - tracks/java/exercises/two-fer/HINTS.md
5197
+ - tracks/java/exercises/two-fer/README.md
4906
5198
  - tracks/java/exercises/two-fer/build.gradle
4907
5199
  - tracks/java/exercises/two-fer/src/example/java/Twofer.java
4908
5200
  - tracks/java/exercises/two-fer/src/main/java/Twofer.java
4909
5201
  - tracks/java/exercises/two-fer/src/test/java/TwoferTest.java
5202
+ - tracks/java/exercises/word-count/.meta/readme.go.tmpl
5203
+ - tracks/java/exercises/word-count/README.md
4910
5204
  - tracks/java/exercises/word-count/build.gradle
4911
5205
  - tracks/java/exercises/word-count/src/example/java/WordCount.java
4912
- - tracks/java/exercises/word-count/src/main/java/WordCount.java
5206
+ - tracks/java/exercises/word-count/src/main/java/.keep
4913
5207
  - tracks/java/exercises/word-count/src/test/java/WordCountTest.java
5208
+ - tracks/java/exercises/word-search/.meta/readme.go.tmpl
5209
+ - tracks/java/exercises/word-search/README.md
4914
5210
  - tracks/java/exercises/word-search/build.gradle
4915
5211
  - tracks/java/exercises/word-search/src/example/java/Pair.java
4916
5212
  - tracks/java/exercises/word-search/src/example/java/WordLocation.java
@@ -4918,9 +5214,11 @@ files:
4918
5214
  - tracks/java/exercises/word-search/src/main/java/Pair.java
4919
5215
  - tracks/java/exercises/word-search/src/main/java/WordLocation.java
4920
5216
  - tracks/java/exercises/word-search/src/test/java/WordSearcherTest.java
5217
+ - tracks/java/exercises/wordy/.meta/readme.go.tmpl
5218
+ - tracks/java/exercises/wordy/README.md
4921
5219
  - tracks/java/exercises/wordy/build.gradle
4922
5220
  - tracks/java/exercises/wordy/src/example/java/WordProblemSolver.java
4923
- - tracks/java/exercises/wordy/src/main/java/WordProblemSolver.java
5221
+ - tracks/java/exercises/wordy/src/main/java/.keep
4924
5222
  - tracks/java/exercises/wordy/src/test/java/WordProblemSolverTest.java
4925
5223
  - tracks/java/gradle/wrapper/gradle-wrapper.jar
4926
5224
  - tracks/java/gradle/wrapper/gradle-wrapper.properties
@@ -5024,6 +5322,8 @@ files:
5024
5322
  - tracks/javascript/exercises/leap/leap.spec.js
5025
5323
  - tracks/javascript/exercises/linked-list/example.js
5026
5324
  - tracks/javascript/exercises/linked-list/linked-list.spec.js
5325
+ - tracks/javascript/exercises/list-ops/example.js
5326
+ - tracks/javascript/exercises/list-ops/list-ops.spec.js
5027
5327
  - tracks/javascript/exercises/luhn/example.js
5028
5328
  - tracks/javascript/exercises/luhn/luhn.spec.js
5029
5329
  - tracks/javascript/exercises/matrix/example.js
@@ -5219,6 +5519,7 @@ files:
5219
5519
  - tracks/kotlin/_template/src/example/kotlin/.keep
5220
5520
  - tracks/kotlin/_template/src/main/kotlin/.keep
5221
5521
  - tracks/kotlin/_template/src/test/kotlin/.keep
5522
+ - tracks/kotlin/bin/README.md
5222
5523
  - tracks/kotlin/bin/build-jq.sh
5223
5524
  - tracks/kotlin/bin/fetch-configlet
5224
5525
  - tracks/kotlin/bin/journey-test.sh
@@ -5297,6 +5598,10 @@ files:
5297
5598
  - tracks/kotlin/exercises/collatz-conjecture/src/example/kotlin/CollatzCalculator.kt
5298
5599
  - tracks/kotlin/exercises/collatz-conjecture/src/main/kotlin/.keep
5299
5600
  - tracks/kotlin/exercises/collatz-conjecture/src/test/kotlin/CollatzCalculatorTest.kt
5601
+ - tracks/kotlin/exercises/complex-numbers/build.gradle
5602
+ - tracks/kotlin/exercises/complex-numbers/src/example/kotlin/ComplexNumber.kt
5603
+ - tracks/kotlin/exercises/complex-numbers/src/main/kotlin/ComplexNumber.kt
5604
+ - tracks/kotlin/exercises/complex-numbers/src/test/kotlin/ComplexNumberTest.kt
5300
5605
  - tracks/kotlin/exercises/diamond/build.gradle
5301
5606
  - tracks/kotlin/exercises/diamond/src/example/kotlin/DiamondPrinter.kt
5302
5607
  - tracks/kotlin/exercises/diamond/src/main/kotlin/DiamondPrinter.kt
@@ -5322,6 +5627,10 @@ files:
5322
5627
  - tracks/kotlin/exercises/grade-school/src/main/kotlin/.keep
5323
5628
  - tracks/kotlin/exercises/grade-school/src/test/kotlin/SchoolTest.kt
5324
5629
  - tracks/kotlin/exercises/gradle.properties
5630
+ - tracks/kotlin/exercises/grains/build.gradle
5631
+ - tracks/kotlin/exercises/grains/src/example/kotlin/Board.kt
5632
+ - tracks/kotlin/exercises/grains/src/main/kotlin/.keep
5633
+ - tracks/kotlin/exercises/grains/src/test/kotlin/BoardTest.kt
5325
5634
  - tracks/kotlin/exercises/hamming/build.gradle
5326
5635
  - tracks/kotlin/exercises/hamming/src/example/kotlin/Hamming.kt
5327
5636
  - tracks/kotlin/exercises/hamming/src/main/kotlin/.keep
@@ -5362,6 +5671,10 @@ files:
5362
5671
  - tracks/kotlin/exercises/luhn/src/example/kotlin/Luhn.kt
5363
5672
  - tracks/kotlin/exercises/luhn/src/main/kotlin/.keep
5364
5673
  - tracks/kotlin/exercises/luhn/src/test/kotlin/LuhnTest.kt
5674
+ - tracks/kotlin/exercises/minesweeper/build.gradle
5675
+ - tracks/kotlin/exercises/minesweeper/src/example/kotlin/MinesweeperBoard.kt
5676
+ - tracks/kotlin/exercises/minesweeper/src/main/kotlin/.keep
5677
+ - tracks/kotlin/exercises/minesweeper/src/test/kotlin/MinesweeperBoardTest.kt
5365
5678
  - tracks/kotlin/exercises/nth-prime/build.gradle
5366
5679
  - tracks/kotlin/exercises/nth-prime/src/example/kotlin/Prime.kt
5367
5680
  - tracks/kotlin/exercises/nth-prime/src/main/kotlin/.keep
@@ -5390,6 +5703,10 @@ files:
5390
5703
  - tracks/kotlin/exercises/pig-latin/src/example/kotlin/PigLatin.kt
5391
5704
  - tracks/kotlin/exercises/pig-latin/src/main/kotlin/.keep
5392
5705
  - tracks/kotlin/exercises/pig-latin/src/test/kotlin/PigLatinTest.kt
5706
+ - tracks/kotlin/exercises/prime-factors/build.gradle
5707
+ - tracks/kotlin/exercises/prime-factors/src/example/kotlin/PrimeFactorCalculator.kt
5708
+ - tracks/kotlin/exercises/prime-factors/src/main/kotlin/.keep
5709
+ - tracks/kotlin/exercises/prime-factors/src/test/kotlin/PrimeFactorCalculatorTest.kt
5393
5710
  - tracks/kotlin/exercises/raindrops/build.gradle
5394
5711
  - tracks/kotlin/exercises/raindrops/src/example/kotlin/Raindrops.kt
5395
5712
  - tracks/kotlin/exercises/raindrops/src/main/kotlin/.keep
@@ -5406,14 +5723,32 @@ files:
5406
5723
  - tracks/kotlin/exercises/robot-name/src/example/kotlin/Robot.kt
5407
5724
  - tracks/kotlin/exercises/robot-name/src/main/kotlin/.keep
5408
5725
  - tracks/kotlin/exercises/robot-name/src/test/kotlin/RobotTest.kt
5726
+ - tracks/kotlin/exercises/robot-simulator/build.gradle
5727
+ - tracks/kotlin/exercises/robot-simulator/src/example/kotlin/GridPosition.kt
5728
+ - tracks/kotlin/exercises/robot-simulator/src/example/kotlin/Orientation.kt
5729
+ - tracks/kotlin/exercises/robot-simulator/src/example/kotlin/Robot.kt
5730
+ - tracks/kotlin/exercises/robot-simulator/src/main/kotlin/GridPosition.kt
5731
+ - tracks/kotlin/exercises/robot-simulator/src/main/kotlin/Orientation.kt
5732
+ - tracks/kotlin/exercises/robot-simulator/src/starterSource/kotlin/.keep
5733
+ - tracks/kotlin/exercises/robot-simulator/src/test/kotlin/RobotTest.kt
5409
5734
  - tracks/kotlin/exercises/roman-numerals/build.gradle
5410
5735
  - tracks/kotlin/exercises/roman-numerals/src/example/kotlin/RomanNumeral.kt
5411
5736
  - tracks/kotlin/exercises/roman-numerals/src/main/kotlin/.keep
5412
5737
  - tracks/kotlin/exercises/roman-numerals/src/test/kotlin/RomanNumeralTest.kt
5738
+ - tracks/kotlin/exercises/saddle-points/build.gradle
5739
+ - tracks/kotlin/exercises/saddle-points/src/example/kotlin/Matrix.kt
5740
+ - tracks/kotlin/exercises/saddle-points/src/example/kotlin/MatrixCoordinate.kt
5741
+ - tracks/kotlin/exercises/saddle-points/src/main/kotlin/MatrixCoordinate.kt
5742
+ - tracks/kotlin/exercises/saddle-points/src/test/kotlin/MatrixTest.kt
5413
5743
  - tracks/kotlin/exercises/scrabble-score/build.gradle
5414
5744
  - tracks/kotlin/exercises/scrabble-score/src/example/kotlin/Scrabble.kt
5415
5745
  - tracks/kotlin/exercises/scrabble-score/src/main/kotlin/.keep
5416
5746
  - tracks/kotlin/exercises/scrabble-score/src/test/kotlin/ScrabbleScoreTest.kt
5747
+ - tracks/kotlin/exercises/secret-handshake/build.gradle
5748
+ - tracks/kotlin/exercises/secret-handshake/src/example/kotlin/HandshakeCalculator.kt
5749
+ - tracks/kotlin/exercises/secret-handshake/src/example/kotlin/Signal.kt
5750
+ - tracks/kotlin/exercises/secret-handshake/src/main/kotlin/Signal.kt
5751
+ - tracks/kotlin/exercises/secret-handshake/src/test/kotlin/HandshakeCalculatorTest.kt
5417
5752
  - tracks/kotlin/exercises/series/build.gradle
5418
5753
  - tracks/kotlin/exercises/series/src/example/kotlin/Series.kt
5419
5754
  - tracks/kotlin/exercises/series/src/main/kotlin/.keep
@@ -5434,10 +5769,19 @@ files:
5434
5769
  - tracks/kotlin/exercises/space-age/src/example/kotlin/SpaceAge.kt
5435
5770
  - tracks/kotlin/exercises/space-age/src/main/kotlin/.keep
5436
5771
  - tracks/kotlin/exercises/space-age/src/test/kotlin/SpaceAgeTest.kt
5772
+ - tracks/kotlin/exercises/spiral-matrix/build.gradle
5773
+ - tracks/kotlin/exercises/spiral-matrix/src/example/kotlin/SpiralMatrix.kt
5774
+ - tracks/kotlin/exercises/spiral-matrix/src/main/kotlin/.keep
5775
+ - tracks/kotlin/exercises/spiral-matrix/src/test/kotlin/SpiralMatrixTest.kt
5437
5776
  - tracks/kotlin/exercises/strain/build.gradle
5438
5777
  - tracks/kotlin/exercises/strain/src/example/kotlin/Strain.kt
5439
5778
  - tracks/kotlin/exercises/strain/src/main/kotlin/.keep
5440
5779
  - tracks/kotlin/exercises/strain/src/test/kotlin/StrainTest.kt
5780
+ - tracks/kotlin/exercises/sublist/build.gradle
5781
+ - tracks/kotlin/exercises/sublist/src/example/kotlin/Relationship.kt
5782
+ - tracks/kotlin/exercises/sublist/src/example/kotlin/Sublist.kt
5783
+ - tracks/kotlin/exercises/sublist/src/main/kotlin/Relationship.kt
5784
+ - tracks/kotlin/exercises/sublist/src/test/kotlin/SublistTest.kt
5441
5785
  - tracks/kotlin/exercises/sum-of-multiples/build.gradle
5442
5786
  - tracks/kotlin/exercises/sum-of-multiples/src/example/kotlin/SumOfMultiples.kt
5443
5787
  - tracks/kotlin/exercises/sum-of-multiples/src/main/kotlin/.keep
@@ -6154,6 +6498,9 @@ files:
6154
6498
  - tracks/objective-c/exercises/raindrops/RaindropsExample.h
6155
6499
  - tracks/objective-c/exercises/raindrops/RaindropsExample.m
6156
6500
  - tracks/objective-c/exercises/raindrops/RaindropsTest.m
6501
+ - tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.h
6502
+ - tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.m
6503
+ - tracks/objective-c/exercises/rna-transcription/RNATranscriptionTest.m
6157
6504
  - tracks/objective-c/exercises/robot-name/RobotNameExample.h
6158
6505
  - tracks/objective-c/exercises/robot-name/RobotNameExample.m
6159
6506
  - tracks/objective-c/exercises/robot-name/RobotNameTest.m
@@ -7107,6 +7454,7 @@ files:
7107
7454
  - tracks/purescript/exercises/etl/test/Main.purs
7108
7455
  - tracks/purescript/exercises/hamming/bower.json
7109
7456
  - tracks/purescript/exercises/hamming/examples/src/Hamming.purs
7457
+ - tracks/purescript/exercises/hamming/src/Hamming.purs
7110
7458
  - tracks/purescript/exercises/hamming/test/Main.purs
7111
7459
  - tracks/purescript/exercises/hello-world/bower.json
7112
7460
  - tracks/purescript/exercises/hello-world/examples/src/HelloWorld.purs
@@ -7450,6 +7798,9 @@ files:
7450
7798
  - tracks/r/exercises/anagram/anagram.R
7451
7799
  - tracks/r/exercises/anagram/example.R
7452
7800
  - tracks/r/exercises/anagram/test_anagram.R
7801
+ - tracks/r/exercises/beer-song/beer-song.R
7802
+ - tracks/r/exercises/beer-song/example.R
7803
+ - tracks/r/exercises/beer-song/test_beer-song.R
7453
7804
  - tracks/r/exercises/bob/bob.R
7454
7805
  - tracks/r/exercises/bob/example.R
7455
7806
  - tracks/r/exercises/bob/test_bob.R
@@ -7617,8 +7968,6 @@ files:
7617
7968
  - tracks/ruby/LICENSE
7618
7969
  - tracks/ruby/README.md
7619
7970
  - tracks/ruby/Rakefile
7620
- - tracks/ruby/bin/enable-executable
7621
- - tracks/ruby/bin/executable-tests-check
7622
7971
  - tracks/ruby/bin/fetch-configlet
7623
7972
  - tracks/ruby/bin/generate
7624
7973
  - tracks/ruby/bin/local-status-check
@@ -8651,6 +9000,10 @@ files:
8651
9000
  - tracks/scala/exercises/space-age/example.scala
8652
9001
  - tracks/scala/exercises/space-age/src/main/scala/SpaceAge.scala
8653
9002
  - tracks/scala/exercises/space-age/src/test/scala/SpaceAgeTest.scala
9003
+ - tracks/scala/exercises/spiral-matrix/build.sbt
9004
+ - tracks/scala/exercises/spiral-matrix/example.scala
9005
+ - tracks/scala/exercises/spiral-matrix/src/main/scala/.keep
9006
+ - tracks/scala/exercises/spiral-matrix/src/test/scala/SpiralMatrixTest.scala
8654
9007
  - tracks/scala/exercises/strain/build.sbt
8655
9008
  - tracks/scala/exercises/strain/example.scala
8656
9009
  - tracks/scala/exercises/strain/src/main/scala/Strain.scala
@@ -8727,6 +9080,7 @@ files:
8727
9080
  - tracks/scala/testgen/src/main/scala/ScrabbleScoreTestGenerator.scala
8728
9081
  - tracks/scala/testgen/src/main/scala/SecretHandshakeTestGenerator.scala
8729
9082
  - tracks/scala/testgen/src/main/scala/SieveTestGenerator.scala
9083
+ - tracks/scala/testgen/src/main/scala/SpiralMatrixTestGenerator.scala
8730
9084
  - tracks/scala/testgen/src/main/scala/SumOfMultiplesTestGenerator.scala
8731
9085
  - tracks/scala/testgen/src/main/scala/TestBuilder.scala
8732
9086
  - tracks/scala/testgen/src/main/scala/TriangleTestGenerator.scala
@@ -8807,26 +9161,37 @@ files:
8807
9161
  - tracks/smalltalk/exercises/.keep
8808
9162
  - tracks/smalltalk/img/.keep
8809
9163
  - tracks/sml/.git
9164
+ - tracks/sml/.github/stale.yml
8810
9165
  - tracks/sml/.gitignore
8811
9166
  - tracks/sml/.travis.yml
8812
9167
  - tracks/sml/LICENSE
8813
9168
  - tracks/sml/README.md
9169
+ - tracks/sml/SETUP.md
8814
9170
  - tracks/sml/bin/fetch-configlet
8815
9171
  - tracks/sml/config.json
8816
9172
  - tracks/sml/docs/EXERCISE_README_INSERT.md
9173
+ - tracks/sml/docs/INSTALLATION.md
9174
+ - tracks/sml/docs/RESOURCES.md
9175
+ - tracks/sml/docs/TESTS.md
9176
+ - tracks/sml/exercises/accumulate/accumulate.sml
8817
9177
  - tracks/sml/exercises/accumulate/example.sml
8818
9178
  - tracks/sml/exercises/accumulate/test_accumulate.sml
9179
+ - tracks/sml/exercises/allergies/allergies.sml
8819
9180
  - tracks/sml/exercises/allergies/example.sml
8820
9181
  - tracks/sml/exercises/allergies/test_allergies.sml
9182
+ - tracks/sml/exercises/anagram/anagram.sml
8821
9183
  - tracks/sml/exercises/anagram/example.sml
8822
9184
  - tracks/sml/exercises/anagram/test_anagram.sml
8823
9185
  - tracks/sml/exercises/binary/example.sml
8824
9186
  - tracks/sml/exercises/binary/test_binary.sml
8825
9187
  - tracks/sml/exercises/flatten-array/example.sml
9188
+ - tracks/sml/exercises/flatten-array/flatten-array.sml
8826
9189
  - tracks/sml/exercises/flatten-array/test_flatten_array.sml
8827
9190
  - tracks/sml/exercises/hamming/example.sml
9191
+ - tracks/sml/exercises/hamming/hamming.sml
8828
9192
  - tracks/sml/exercises/hamming/test_hamming.sml
8829
9193
  - tracks/sml/exercises/nth-prime/example.sml
9194
+ - tracks/sml/exercises/nth-prime/nth-prime.sml
8830
9195
  - tracks/sml/exercises/nth-prime/test_nth_prime.sml
8831
9196
  - tracks/sml/exercises/raindrops/example.sml
8832
9197
  - tracks/sml/exercises/raindrops/raindrops.sml
@@ -8841,6 +9206,9 @@ files:
8841
9206
  - tracks/swift/LICENSE
8842
9207
  - tracks/swift/Package.swift
8843
9208
  - tracks/swift/README.md
9209
+ - tracks/swift/allProjects.xcworkspace.source/contents.xcworkspacedata
9210
+ - tracks/swift/allProjects.xcworkspace.source/xcshareddata/xcschemes/AllTest.xcscheme
9211
+ - tracks/swift/allProjectsPopulateWorkspace.sh
8844
9212
  - tracks/swift/bin/fetch-configlet
8845
9213
  - tracks/swift/circle.yml
8846
9214
  - tracks/swift/config.json
@@ -9556,6 +9924,9 @@ files:
9556
9924
  - tracks/vimscript/exercises/nucleotide-count/example.vim
9557
9925
  - tracks/vimscript/exercises/nucleotide-count/nucleotide_count.vader
9558
9926
  - tracks/vimscript/exercises/nucleotide-count/nucleotide_count.vim
9927
+ - tracks/vimscript/exercises/pangram/example.vim
9928
+ - tracks/vimscript/exercises/pangram/pangram.vader
9929
+ - tracks/vimscript/exercises/pangram/pangram.vim
9559
9930
  - tracks/vimscript/exercises/phone-number/example.vim
9560
9931
  - tracks/vimscript/exercises/phone-number/phone_number.vader
9561
9932
  - tracks/vimscript/exercises/phone-number/phone_number.vim