trackler 2.2.0.2 → 2.2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
  3. data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
  4. data/lib/trackler/track.rb +1 -1
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
  7. data/tracks/csharp/exercises/accumulate/README.md +44 -0
  8. data/tracks/csharp/exercises/acronym/README.md +21 -0
  9. data/tracks/csharp/exercises/all-your-base/README.md +41 -0
  10. data/tracks/csharp/exercises/allergies/README.md +46 -0
  11. data/tracks/csharp/exercises/alphametics/README.md +48 -0
  12. data/tracks/csharp/exercises/anagram/README.md +19 -0
  13. data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
  14. data/tracks/csharp/exercises/bank-account/README.md +41 -0
  15. data/tracks/csharp/exercises/beer-song/README.md +336 -0
  16. data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
  17. data/tracks/csharp/exercises/binary-search/README.md +47 -0
  18. data/tracks/csharp/exercises/bob/README.md +24 -0
  19. data/tracks/csharp/exercises/book-store/README.md +80 -0
  20. data/tracks/csharp/exercises/bowling/README.md +59 -0
  21. data/tracks/csharp/exercises/bracket-push/README.md +16 -0
  22. data/tracks/csharp/exercises/change/README.md +29 -0
  23. data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
  24. data/tracks/csharp/exercises/clock/README.md +25 -0
  25. data/tracks/csharp/exercises/connect/README.md +40 -0
  26. data/tracks/csharp/exercises/crypto-square/README.md +80 -0
  27. data/tracks/csharp/exercises/custom-set/README.md +23 -0
  28. data/tracks/csharp/exercises/diamond/README.md +75 -0
  29. data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
  30. data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
  31. data/tracks/csharp/exercises/dominoes/README.md +24 -0
  32. data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
  33. data/tracks/csharp/exercises/error-handling/README.md +19 -0
  34. data/tracks/csharp/exercises/etl/README.md +57 -0
  35. data/tracks/csharp/exercises/flatten-array/README.md +24 -0
  36. data/tracks/csharp/exercises/food-chain/README.md +80 -0
  37. data/tracks/csharp/exercises/forth/README.md +39 -0
  38. data/tracks/csharp/exercises/gigasecond/README.md +17 -0
  39. data/tracks/csharp/exercises/go-counting/README.md +43 -0
  40. data/tracks/csharp/exercises/grade-school/README.md +48 -0
  41. data/tracks/csharp/exercises/grains/README.md +40 -0
  42. data/tracks/csharp/exercises/grep/README.md +77 -0
  43. data/tracks/csharp/exercises/hamming/README.md +48 -0
  44. data/tracks/csharp/exercises/hangman/README.md +32 -0
  45. data/tracks/csharp/exercises/hello-world/README.md +27 -0
  46. data/tracks/csharp/exercises/house/README.md +123 -0
  47. data/tracks/csharp/exercises/isogram/README.md +25 -0
  48. data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
  49. data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
  50. data/tracks/csharp/exercises/leap/README.md +39 -0
  51. data/tracks/csharp/exercises/ledger/README.md +24 -0
  52. data/tracks/csharp/exercises/linked-list/README.md +40 -0
  53. data/tracks/csharp/exercises/list-ops/README.md +19 -0
  54. data/tracks/csharp/exercises/luhn/README.md +77 -0
  55. data/tracks/csharp/exercises/markdown/README.md +28 -0
  56. data/tracks/csharp/exercises/matrix/README.md +51 -0
  57. data/tracks/csharp/exercises/meetup/README.md +36 -0
  58. data/tracks/csharp/exercises/minesweeper/README.md +36 -0
  59. data/tracks/csharp/exercises/nth-prime/README.md +29 -0
  60. data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
  61. data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
  62. data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
  63. data/tracks/csharp/exercises/pangram/README.md +21 -0
  64. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
  65. data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
  66. data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
  67. data/tracks/csharp/exercises/phone-number/README.md +40 -0
  68. data/tracks/csharp/exercises/pig-latin/README.md +30 -0
  69. data/tracks/csharp/exercises/poker/README.md +18 -0
  70. data/tracks/csharp/exercises/pov/README.md +52 -0
  71. data/tracks/csharp/exercises/prime-factors/README.md +42 -0
  72. data/tracks/csharp/exercises/protein-translation/README.md +55 -0
  73. data/tracks/csharp/exercises/proverb/README.md +28 -0
  74. data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
  75. data/tracks/csharp/exercises/queen-attack/README.md +39 -0
  76. data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
  77. data/tracks/csharp/exercises/raindrops/README.md +30 -0
  78. data/tracks/csharp/exercises/react/README.md +29 -0
  79. data/tracks/csharp/exercises/rectangles/README.md +73 -0
  80. data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
  81. data/tracks/csharp/exercises/robot-name/README.md +28 -0
  82. data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
  83. data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
  84. data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
  85. data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
  86. data/tracks/csharp/exercises/saddle-points/README.md +44 -0
  87. data/tracks/csharp/exercises/say/README.md +75 -0
  88. data/tracks/csharp/exercises/scale-generator/README.md +66 -0
  89. data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
  90. data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
  91. data/tracks/csharp/exercises/series/README.md +33 -0
  92. data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
  93. data/tracks/csharp/exercises/sieve/README.md +40 -0
  94. data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
  95. data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
  96. data/tracks/csharp/exercises/space-age/README.md +30 -0
  97. data/tracks/csharp/exercises/strain/README.md +46 -0
  98. data/tracks/csharp/exercises/sublist/README.md +32 -0
  99. data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
  100. data/tracks/csharp/exercises/tournament/README.md +74 -0
  101. data/tracks/csharp/exercises/transpose/README.md +71 -0
  102. data/tracks/csharp/exercises/tree-building/README.md +36 -0
  103. data/tracks/csharp/exercises/triangle/README.md +32 -0
  104. data/tracks/csharp/exercises/twelve-days/README.md +45 -0
  105. data/tracks/csharp/exercises/two-bucket/README.md +42 -0
  106. data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
  107. data/tracks/csharp/exercises/word-count/README.md +25 -0
  108. data/tracks/csharp/exercises/word-search/README.md +43 -0
  109. data/tracks/csharp/exercises/wordy/README.md +73 -0
  110. data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
  111. data/tracks/csharp/exercises/zipper/README.md +41 -0
  112. data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
  113. data/tracks/dart/exercises/bob/README.md +18 -0
  114. data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
  115. data/tracks/dart/exercises/gigasecond/README.md +11 -0
  116. data/tracks/dart/exercises/hamming/README.md +42 -0
  117. data/tracks/dart/exercises/hello-world/README.md +21 -0
  118. data/tracks/dart/exercises/leap/README.md +33 -0
  119. data/tracks/dart/exercises/rna-transcription/README.md +25 -0
  120. data/tracks/delphi/config.json +25 -32
  121. data/tracks/elixir/config.json +255 -3
  122. data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
  123. data/tracks/elixir/exercises/accumulate/README.md +72 -0
  124. data/tracks/elixir/exercises/acronym/README.md +52 -0
  125. data/tracks/elixir/exercises/all-your-base/README.md +72 -0
  126. data/tracks/elixir/exercises/allergies/README.md +74 -0
  127. data/tracks/elixir/exercises/anagram/README.md +50 -0
  128. data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
  129. data/tracks/elixir/exercises/bank-account/README.md +67 -0
  130. data/tracks/elixir/exercises/beer-song/README.md +364 -0
  131. data/tracks/elixir/exercises/binary-search/README.md +78 -0
  132. data/tracks/elixir/exercises/binary/README.md +72 -0
  133. data/tracks/elixir/exercises/bob/README.md +55 -0
  134. data/tracks/elixir/exercises/bowling/README.md +90 -0
  135. data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
  136. data/tracks/elixir/exercises/bowling/example.exs +4 -4
  137. data/tracks/elixir/exercises/bracket-push/README.md +47 -0
  138. data/tracks/elixir/exercises/change/README.md +60 -0
  139. data/tracks/elixir/exercises/clock/README.md +50 -0
  140. data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
  141. data/tracks/elixir/exercises/connect/README.md +71 -0
  142. data/tracks/elixir/exercises/crypto-square/README.md +111 -0
  143. data/tracks/elixir/exercises/custom-set/README.md +48 -0
  144. data/tracks/elixir/exercises/diamond/README.md +96 -0
  145. data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
  146. data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
  147. data/tracks/elixir/exercises/dominoes/README.md +55 -0
  148. data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
  149. data/tracks/elixir/exercises/etl/README.md +88 -0
  150. data/tracks/elixir/exercises/flatten-array/README.md +55 -0
  151. data/tracks/elixir/exercises/forth/README.md +66 -0
  152. data/tracks/elixir/exercises/gigasecond/README.md +48 -0
  153. data/tracks/elixir/exercises/grade-school/README.md +79 -0
  154. data/tracks/elixir/exercises/grains/README.md +71 -0
  155. data/tracks/elixir/exercises/grep/README.md +108 -0
  156. data/tracks/elixir/exercises/hamming/README.md +79 -0
  157. data/tracks/elixir/exercises/hello-world/README.md +58 -0
  158. data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
  159. data/tracks/elixir/exercises/isogram/README.md +56 -0
  160. data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
  161. data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
  162. data/tracks/elixir/exercises/leap/README.md +70 -0
  163. data/tracks/elixir/exercises/list-ops/README.md +47 -0
  164. data/tracks/elixir/exercises/luhn/README.md +108 -0
  165. data/tracks/elixir/exercises/markdown/README.md +55 -0
  166. data/tracks/elixir/exercises/matrix/README.md +82 -0
  167. data/tracks/elixir/exercises/meetup/README.md +67 -0
  168. data/tracks/elixir/exercises/minesweeper/README.md +67 -0
  169. data/tracks/elixir/exercises/nth-prime/README.md +52 -0
  170. data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
  171. data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
  172. data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
  173. data/tracks/elixir/exercises/pangram/README.md +52 -0
  174. data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
  175. data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
  176. data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
  177. data/tracks/elixir/exercises/phone-number/README.md +71 -0
  178. data/tracks/elixir/exercises/pig-latin/README.md +61 -0
  179. data/tracks/elixir/exercises/poker/README.md +49 -0
  180. data/tracks/elixir/exercises/prime-factors/README.md +73 -0
  181. data/tracks/elixir/exercises/protein-translation/README.md +86 -0
  182. data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
  183. data/tracks/elixir/exercises/queen-attack/README.md +70 -0
  184. data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
  185. data/tracks/elixir/exercises/raindrops/README.md +61 -0
  186. data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
  187. data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
  188. data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
  189. data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
  190. data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
  191. data/tracks/elixir/exercises/saddle-points/README.md +70 -0
  192. data/tracks/elixir/exercises/say/README.md +106 -0
  193. data/tracks/elixir/exercises/scale-generator/README.md +97 -0
  194. data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
  195. data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
  196. data/tracks/elixir/exercises/series/README.md +64 -0
  197. data/tracks/elixir/exercises/sieve/README.md +71 -0
  198. data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
  199. data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
  200. data/tracks/elixir/exercises/space-age/README.md +61 -0
  201. data/tracks/elixir/exercises/strain/README.md +80 -0
  202. data/tracks/elixir/exercises/sublist/README.md +58 -0
  203. data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
  204. data/tracks/elixir/exercises/tournament/README.md +110 -0
  205. data/tracks/elixir/exercises/triangle/README.md +63 -0
  206. data/tracks/elixir/exercises/twelve-days/README.md +72 -0
  207. data/tracks/elixir/exercises/word-count/README.md +56 -0
  208. data/tracks/elixir/exercises/wordy/README.md +100 -0
  209. data/tracks/elixir/exercises/zipper/README.md +68 -0
  210. data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
  211. data/tracks/fsharp/exercises/accumulate/README.md +40 -0
  212. data/tracks/fsharp/exercises/acronym/README.md +15 -0
  213. data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
  214. data/tracks/fsharp/exercises/allergies/README.md +37 -0
  215. data/tracks/fsharp/exercises/alphametics/README.md +41 -0
  216. data/tracks/fsharp/exercises/anagram/README.md +13 -0
  217. data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
  218. data/tracks/fsharp/exercises/bank-account/README.md +30 -0
  219. data/tracks/fsharp/exercises/beer-song/README.md +331 -0
  220. data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
  221. data/tracks/fsharp/exercises/binary-search/README.md +41 -0
  222. data/tracks/fsharp/exercises/bob/README.md +18 -0
  223. data/tracks/fsharp/exercises/book-store/README.md +74 -0
  224. data/tracks/fsharp/exercises/bowling/README.md +53 -0
  225. data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
  226. data/tracks/fsharp/exercises/change/README.md +23 -0
  227. data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
  228. data/tracks/fsharp/exercises/clock/README.md +13 -0
  229. data/tracks/fsharp/exercises/connect/README.md +34 -0
  230. data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
  231. data/tracks/fsharp/exercises/custom-set/README.md +11 -0
  232. data/tracks/fsharp/exercises/diamond/README.md +62 -0
  233. data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
  234. data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
  235. data/tracks/fsharp/exercises/dominoes/README.md +18 -0
  236. data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
  237. data/tracks/fsharp/exercises/error-handling/README.md +13 -0
  238. data/tracks/fsharp/exercises/etl/README.md +51 -0
  239. data/tracks/fsharp/exercises/food-chain/README.md +74 -0
  240. data/tracks/fsharp/exercises/forth/README.md +29 -0
  241. data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
  242. data/tracks/fsharp/exercises/go-counting/README.md +37 -0
  243. data/tracks/fsharp/exercises/grade-school/README.md +47 -0
  244. data/tracks/fsharp/exercises/grains/README.md +39 -0
  245. data/tracks/fsharp/exercises/grep/README.md +71 -0
  246. data/tracks/fsharp/exercises/hamming/README.md +42 -0
  247. data/tracks/fsharp/exercises/hangman/README.md +21 -0
  248. data/tracks/fsharp/exercises/hello-world/README.md +21 -0
  249. data/tracks/fsharp/exercises/house/README.md +117 -0
  250. data/tracks/fsharp/exercises/isogram/README.md +19 -0
  251. data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
  252. data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
  253. data/tracks/fsharp/exercises/leap/README.md +33 -0
  254. data/tracks/fsharp/exercises/ledger/README.md +18 -0
  255. data/tracks/fsharp/exercises/lens-person/README.md +15 -0
  256. data/tracks/fsharp/exercises/linked-list/README.md +50 -0
  257. data/tracks/fsharp/exercises/list-ops/README.md +10 -0
  258. data/tracks/fsharp/exercises/luhn/README.md +71 -0
  259. data/tracks/fsharp/exercises/markdown/README.md +18 -0
  260. data/tracks/fsharp/exercises/matrix/README.md +45 -0
  261. data/tracks/fsharp/exercises/meetup/README.md +30 -0
  262. data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
  263. data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
  264. data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
  265. data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
  266. data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
  267. data/tracks/fsharp/exercises/pangram/README.md +15 -0
  268. data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
  269. data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
  270. data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
  271. data/tracks/fsharp/exercises/phone-number/README.md +34 -0
  272. data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
  273. data/tracks/fsharp/exercises/poker/README.md +15 -0
  274. data/tracks/fsharp/exercises/pov/README.md +46 -0
  275. data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
  276. data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
  277. data/tracks/fsharp/exercises/proverb/README.md +22 -0
  278. data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
  279. data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
  280. data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
  281. data/tracks/fsharp/exercises/raindrops/README.md +27 -0
  282. data/tracks/fsharp/exercises/react/README.md +19 -0
  283. data/tracks/fsharp/exercises/rectangles/README.md +67 -0
  284. data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
  285. data/tracks/fsharp/exercises/robot-name/README.md +22 -0
  286. data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
  287. data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
  288. data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
  289. data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
  290. data/tracks/fsharp/exercises/say/README.md +69 -0
  291. data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
  292. data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
  293. data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
  294. data/tracks/fsharp/exercises/series/README.md +27 -0
  295. data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
  296. data/tracks/fsharp/exercises/sieve/README.md +34 -0
  297. data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
  298. data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
  299. data/tracks/fsharp/exercises/space-age/README.md +28 -0
  300. data/tracks/fsharp/exercises/strain/README.md +40 -0
  301. data/tracks/fsharp/exercises/sublist/README.md +21 -0
  302. data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
  303. data/tracks/fsharp/exercises/tournament/README.md +68 -0
  304. data/tracks/fsharp/exercises/transpose/README.md +65 -0
  305. data/tracks/fsharp/exercises/tree-building/README.md +30 -0
  306. data/tracks/fsharp/exercises/triangle/README.md +26 -0
  307. data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
  308. data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
  309. data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
  310. data/tracks/fsharp/exercises/word-count/README.md +19 -0
  311. data/tracks/fsharp/exercises/word-search/README.md +30 -0
  312. data/tracks/fsharp/exercises/wordy/README.md +68 -0
  313. data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
  314. data/tracks/fsharp/exercises/zipper/README.md +31 -0
  315. data/tracks/haskell/README.md +2 -2
  316. data/tracks/javascript/config.json +232 -4
  317. data/tracks/kotlin/config.json +8 -1
  318. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
  319. data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
  320. data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
  321. data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
  322. data/tracks/kotlin/exercises/settings.gradle +1 -0
  323. data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
  324. data/tracks/powershell/exercises/hamming/README.md +42 -0
  325. data/tracks/powershell/exercises/hello-world/README.md +21 -0
  326. data/tracks/purescript/README.md +4 -4
  327. data/tracks/scala/config.json +266 -6
  328. data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
  329. data/tracks/scala/exercises/accumulate/README.md +46 -0
  330. data/tracks/scala/exercises/acronym/README.md +26 -0
  331. data/tracks/scala/exercises/all-your-base/README.md +46 -0
  332. data/tracks/scala/exercises/allergies/README.md +48 -0
  333. data/tracks/scala/exercises/alphametics/README.md +46 -0
  334. data/tracks/scala/exercises/anagram/README.md +24 -0
  335. data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
  336. data/tracks/scala/exercises/bank-account/README.md +54 -0
  337. data/tracks/scala/exercises/beer-song/README.md +338 -0
  338. data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
  339. data/tracks/scala/exercises/binary-search/README.md +52 -0
  340. data/tracks/scala/exercises/binary/README.md +46 -0
  341. data/tracks/scala/exercises/bob/README.md +29 -0
  342. data/tracks/scala/exercises/book-store/README.md +85 -0
  343. data/tracks/scala/exercises/bowling/README.md +64 -0
  344. data/tracks/scala/exercises/bracket-push/README.md +21 -0
  345. data/tracks/scala/exercises/change/README.md +34 -0
  346. data/tracks/scala/exercises/clock/README.md +24 -0
  347. data/tracks/scala/exercises/connect/README.md +53 -0
  348. data/tracks/scala/exercises/crypto-square/README.md +85 -0
  349. data/tracks/scala/exercises/custom-set/README.md +22 -0
  350. data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
  351. data/tracks/scala/exercises/dominoes/README.md +29 -0
  352. data/tracks/scala/exercises/etl/README.md +62 -0
  353. data/tracks/scala/exercises/food-chain/README.md +81 -0
  354. data/tracks/scala/exercises/forth/README.md +40 -0
  355. data/tracks/scala/exercises/gigasecond/README.md +26 -0
  356. data/tracks/scala/exercises/grade-school/README.md +53 -0
  357. data/tracks/scala/exercises/grains/README.md +45 -0
  358. data/tracks/scala/exercises/hamming/README.md +112 -0
  359. data/tracks/scala/exercises/hello-world/README.md +38 -0
  360. data/tracks/scala/exercises/hexadecimal/README.md +25 -0
  361. data/tracks/scala/exercises/house/README.md +124 -0
  362. data/tracks/scala/exercises/isogram/README.md +30 -0
  363. data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
  364. data/tracks/scala/exercises/largest-series-product/README.md +31 -0
  365. data/tracks/scala/exercises/leap/README.md +50 -0
  366. data/tracks/scala/exercises/lens-person/README.md +11 -7
  367. data/tracks/scala/exercises/linked-list/README.md +45 -0
  368. data/tracks/scala/exercises/luhn/README.md +82 -0
  369. data/tracks/scala/exercises/matrix/README.md +56 -0
  370. data/tracks/scala/exercises/meetup/README.md +41 -0
  371. data/tracks/scala/exercises/minesweeper/README.md +41 -0
  372. data/tracks/scala/exercises/nth-prime/README.md +26 -0
  373. data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
  374. data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
  375. data/tracks/scala/exercises/octal/README.md +60 -0
  376. data/tracks/scala/exercises/palindrome-products/README.md +51 -0
  377. data/tracks/scala/exercises/pangram/README.md +26 -0
  378. data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
  379. data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
  380. data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
  381. data/tracks/scala/exercises/phone-number/README.md +56 -0
  382. data/tracks/scala/exercises/pig-latin/README.md +35 -0
  383. data/tracks/scala/exercises/prime-factors/README.md +47 -0
  384. data/tracks/scala/exercises/protein-translation/README.md +60 -0
  385. data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
  386. data/tracks/scala/exercises/queen-attack/README.md +44 -0
  387. data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
  388. data/tracks/scala/exercises/raindrops/README.md +35 -0
  389. data/tracks/scala/exercises/rna-transcription/README.md +36 -0
  390. data/tracks/scala/exercises/robot-name/README.md +40 -0
  391. data/tracks/scala/exercises/robot-simulator/README.md +45 -0
  392. data/tracks/scala/exercises/roman-numerals/README.md +72 -0
  393. data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
  394. data/tracks/scala/exercises/saddle-points/README.md +44 -0
  395. data/tracks/scala/exercises/say/README.md +80 -0
  396. data/tracks/scala/exercises/scrabble-score/README.md +55 -0
  397. data/tracks/scala/exercises/secret-handshake/README.md +46 -0
  398. data/tracks/scala/exercises/series/README.md +38 -0
  399. data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
  400. data/tracks/scala/exercises/sieve/README.md +45 -0
  401. data/tracks/scala/exercises/simple-cipher/README.md +101 -0
  402. data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
  403. data/tracks/scala/exercises/space-age/README.md +35 -0
  404. data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
  405. data/tracks/scala/exercises/strain/README.md +51 -0
  406. data/tracks/scala/exercises/sublist/README.md +32 -0
  407. data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
  408. data/tracks/scala/exercises/triangle/README.md +37 -0
  409. data/tracks/scala/exercises/trinary/README.md +39 -0
  410. data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
  411. data/tracks/scala/exercises/word-count/README.md +30 -0
  412. data/tracks/scala/exercises/wordy/README.md +74 -0
  413. data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
  414. data/tracks/scala/exercises/zipper/README.md +42 -0
  415. metadata +401 -1
@@ -0,0 +1,50 @@
1
+ # Clock
2
+
3
+ Implement a clock that handles times without dates.
4
+
5
+ You should be able to add and subtract minutes to it.
6
+
7
+ Two clocks that represent the same time should be equal to each other.
8
+
9
+ ## Running tests
10
+
11
+ Execute the tests with:
12
+
13
+ ```bash
14
+ $ elixir bob_test.exs
15
+ ```
16
+
17
+ (Replace `bob_test.exs` with the name of the test file.)
18
+
19
+ ### Pending tests
20
+
21
+ In the test suites, all but the first test have been skipped.
22
+
23
+ Once you get a test passing, you can unskip the next one by
24
+ commenting out the relevant `@tag :pending` with a `#` symbol.
25
+
26
+ For example:
27
+
28
+ ```elixir
29
+ # @tag :pending
30
+ test "shouting" do
31
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
32
+ end
33
+ ```
34
+
35
+ Or, you can enable all the tests by commenting out the
36
+ `ExUnit.configure` line in the test suite.
37
+
38
+ ```elixir
39
+ # ExUnit.configure exclude: :pending, trace: true
40
+ ```
41
+
42
+ For more detailed information about the Elixir track, please
43
+ see the [help page](http://exercism.io/languages/elixir).
44
+
45
+ ## Source
46
+
47
+ Pairing session with Erin Drummond [https://twitter.com/ebdrummond](https://twitter.com/ebdrummond)
48
+
49
+ ## Submitting Incomplete Solutions
50
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,70 @@
1
+ # Collatz Conjecture
2
+
3
+ The Collatz Conjecture or 3x+1 problem can be summarized as follows:
4
+
5
+ Take any positive integer n. If n is even, divide n by 2 to get n / 2. If n is
6
+ odd, multiply n by 3 and add 1 to get 3n + 1. Repeat the process indefinitely.
7
+ The conjecture states that no matter which number you start with, you will
8
+ always reach 1 eventually.
9
+
10
+ Given a number n, return the number of steps required to reach 1.
11
+
12
+ ## Examples
13
+ Starting with n = 12, the steps would be as follows:
14
+
15
+ 0. 12
16
+ 1. 6
17
+ 2. 3
18
+ 3. 10
19
+ 4. 5
20
+ 5. 16
21
+ 6. 8
22
+ 7. 4
23
+ 8. 2
24
+ 9. 1
25
+
26
+ Resulting in 9 steps. So for input n = 12, the return value would be 9.
27
+
28
+
29
+ ## Running tests
30
+
31
+ Execute the tests with:
32
+
33
+ ```bash
34
+ $ elixir bob_test.exs
35
+ ```
36
+
37
+ (Replace `bob_test.exs` with the name of the test file.)
38
+
39
+ ### Pending tests
40
+
41
+ In the test suites, all but the first test have been skipped.
42
+
43
+ Once you get a test passing, you can unskip the next one by
44
+ commenting out the relevant `@tag :pending` with a `#` symbol.
45
+
46
+ For example:
47
+
48
+ ```elixir
49
+ # @tag :pending
50
+ test "shouting" do
51
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
52
+ end
53
+ ```
54
+
55
+ Or, you can enable all the tests by commenting out the
56
+ `ExUnit.configure` line in the test suite.
57
+
58
+ ```elixir
59
+ # ExUnit.configure exclude: :pending, trace: true
60
+ ```
61
+
62
+ For more detailed information about the Elixir track, please
63
+ see the [help page](http://exercism.io/languages/elixir).
64
+
65
+ ## Source
66
+
67
+ An unsolved problem in mathematics named after mathematician Lothar Collatz [https://en.wikipedia.org/wiki/3x_%2B_1_problem](https://en.wikipedia.org/wiki/3x_%2B_1_problem)
68
+
69
+ ## Submitting Incomplete Solutions
70
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,71 @@
1
+ # Connect
2
+
3
+ Compute the result for a game of Hex / Polygon.
4
+
5
+ The abstract boardgame known as
6
+ [Hex](https://en.wikipedia.org/wiki/Hex_%28board_game%29) / Polygon /
7
+ CON-TAC-TIX is quite simple in rules, though complex in practice. Two players
8
+ place stones on a rhombus with hexagonal fields. The player to connect his/her
9
+ stones to the opposite side first wins. The four sides of the rhombus are
10
+ divided between the two players (i.e. one player gets assigned a side and the
11
+ side directly opposite it and the other player gets assigned the two other
12
+ sides).
13
+
14
+ Your goal is to build a program that given a simple representation of a board
15
+ computes the winner (or lack thereof). Note that all games need not be "fair".
16
+ (For example, players may have mismatched piece counts.)
17
+
18
+ The boards look like this (with spaces added for readability, which won't be in
19
+ the representation passed to your code):
20
+
21
+ ```
22
+ . O . X .
23
+ . X X O .
24
+ O O O X .
25
+ . X O X O
26
+ X O O O X
27
+ ```
28
+
29
+ "Player `O`" plays from top to bottom, "Player `X`" plays from left to right. In
30
+ the above example `O` has made a connection from left to right but nobody has
31
+ won since `O` didn't connect top and bottom.
32
+
33
+ ## Running tests
34
+
35
+ Execute the tests with:
36
+
37
+ ```bash
38
+ $ elixir bob_test.exs
39
+ ```
40
+
41
+ (Replace `bob_test.exs` with the name of the test file.)
42
+
43
+ ### Pending tests
44
+
45
+ In the test suites, all but the first test have been skipped.
46
+
47
+ Once you get a test passing, you can unskip the next one by
48
+ commenting out the relevant `@tag :pending` with a `#` symbol.
49
+
50
+ For example:
51
+
52
+ ```elixir
53
+ # @tag :pending
54
+ test "shouting" do
55
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
56
+ end
57
+ ```
58
+
59
+ Or, you can enable all the tests by commenting out the
60
+ `ExUnit.configure` line in the test suite.
61
+
62
+ ```elixir
63
+ # ExUnit.configure exclude: :pending, trace: true
64
+ ```
65
+
66
+ For more detailed information about the Elixir track, please
67
+ see the [help page](http://exercism.io/languages/elixir).
68
+
69
+
70
+ ## Submitting Incomplete Solutions
71
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,111 @@
1
+ # Crypto Square
2
+
3
+ Implement the classic method for composing secret messages called a square code.
4
+
5
+ Given an English text, output the encoded version of that text.
6
+
7
+ First, the input is normalized: the spaces and punctuation are removed
8
+ from the English text and the message is downcased.
9
+
10
+ Then, the normalized characters are broken into rows. These rows can be
11
+ regarded as forming a rectangle when printed with intervening newlines.
12
+
13
+ For example, the sentence
14
+
15
+ > If man was meant to stay on the ground, god would have given us roots.
16
+
17
+ is normalized to:
18
+
19
+ > ifmanwasmeanttostayonthegroundgodwouldhavegivenusroots
20
+
21
+ The plaintext should be organized in to a rectangle. The size of the
22
+ rectangle (`r x c`) should be decided by the length of the message,
23
+ such that `c >= r` and `c - r <= 1`, where `c` is the number of columns
24
+ and `r` is the number of rows.
25
+
26
+ Our normalized text is 54 characters long, dictating a rectangle with
27
+ `c = 8` and `r = 7`:
28
+
29
+ ```plain
30
+ ifmanwas
31
+ meanttos
32
+ tayonthe
33
+ groundgo
34
+ dwouldha
35
+ vegivenu
36
+ sroots
37
+ ```
38
+
39
+ The coded message is obtained by reading down the columns going left to
40
+ right.
41
+
42
+ The message above is coded as:
43
+
44
+ ```plain
45
+ imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau
46
+ ```
47
+
48
+ Output the encoded text in chunks. Phrases that fill perfect squares
49
+ `(r X r)` should be output in `r`-length chunks separated by spaces.
50
+ Imperfect squares will have `n` empty spaces. Those spaces should be distributed evenly across the last `n` rows.
51
+
52
+ ```plain
53
+ imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau
54
+ ```
55
+
56
+ Notice that were we to stack these, we could visually decode the
57
+ cyphertext back in to the original message:
58
+
59
+ ```plain
60
+ imtgdvs
61
+ fearwer
62
+ mayoogo
63
+ anouuio
64
+ ntnnlvt
65
+ wttddes
66
+ aohghn
67
+ sseoau
68
+ ```
69
+
70
+ ## Running tests
71
+
72
+ Execute the tests with:
73
+
74
+ ```bash
75
+ $ elixir bob_test.exs
76
+ ```
77
+
78
+ (Replace `bob_test.exs` with the name of the test file.)
79
+
80
+ ### Pending tests
81
+
82
+ In the test suites, all but the first test have been skipped.
83
+
84
+ Once you get a test passing, you can unskip the next one by
85
+ commenting out the relevant `@tag :pending` with a `#` symbol.
86
+
87
+ For example:
88
+
89
+ ```elixir
90
+ # @tag :pending
91
+ test "shouting" do
92
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
93
+ end
94
+ ```
95
+
96
+ Or, you can enable all the tests by commenting out the
97
+ `ExUnit.configure` line in the test suite.
98
+
99
+ ```elixir
100
+ # ExUnit.configure exclude: :pending, trace: true
101
+ ```
102
+
103
+ For more detailed information about the Elixir track, please
104
+ see the [help page](http://exercism.io/languages/elixir).
105
+
106
+ ## Source
107
+
108
+ J Dalbey's Programming Practice problems [http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html](http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html)
109
+
110
+ ## Submitting Incomplete Solutions
111
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,48 @@
1
+ # Custom Set
2
+
3
+ Create a custom set type.
4
+
5
+ Sometimes it is necessary to define a custom data structure of some
6
+ type, like a set. In this exercise you will define your own set. How it
7
+ works internally doesn't matter, as long as it behaves like a set of
8
+ unique elements.
9
+
10
+ ## Running tests
11
+
12
+ Execute the tests with:
13
+
14
+ ```bash
15
+ $ elixir bob_test.exs
16
+ ```
17
+
18
+ (Replace `bob_test.exs` with the name of the test file.)
19
+
20
+ ### Pending tests
21
+
22
+ In the test suites, all but the first test have been skipped.
23
+
24
+ Once you get a test passing, you can unskip the next one by
25
+ commenting out the relevant `@tag :pending` with a `#` symbol.
26
+
27
+ For example:
28
+
29
+ ```elixir
30
+ # @tag :pending
31
+ test "shouting" do
32
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
33
+ end
34
+ ```
35
+
36
+ Or, you can enable all the tests by commenting out the
37
+ `ExUnit.configure` line in the test suite.
38
+
39
+ ```elixir
40
+ # ExUnit.configure exclude: :pending, trace: true
41
+ ```
42
+
43
+ For more detailed information about the Elixir track, please
44
+ see the [help page](http://exercism.io/languages/elixir).
45
+
46
+
47
+ ## Submitting Incomplete Solutions
48
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,96 @@
1
+ # Diamond
2
+
3
+ The diamond kata takes as its input a letter, and outputs it in a diamond
4
+ shape. Given a letter, it prints a diamond starting with 'A', with the
5
+ supplied letter at the widest point.
6
+
7
+ ## Requirements
8
+
9
+ * The first row contains one 'A'.
10
+ * The last row contains one 'A'.
11
+ * All rows, except the first and last, have exactly two identical letters.
12
+ * All rows have as many trailing spaces as leading spaces. (This might be 0).
13
+ * The diamond is horizontally symmetric.
14
+ * The diamond is vertically symmetric.
15
+ * The diamond has a square shape (width equals height).
16
+ * The letters form a diamond shape.
17
+ * The top half has the letters in ascending order.
18
+ * The bottom half has the letters in descending order.
19
+ * The four corners (containing the spaces) are triangles.
20
+
21
+ ## Examples
22
+
23
+ In the following examples, spaces are indicated by `·` characters.
24
+
25
+ Diamond for letter 'A':
26
+
27
+ ```plain
28
+ A
29
+ ```
30
+
31
+ Diamond for letter 'C':
32
+
33
+ ```plain
34
+ ··A··
35
+ ·B·B·
36
+ C···C
37
+ ·B·B·
38
+ ··A··
39
+ ```
40
+
41
+ Diamond for letter 'E':
42
+
43
+ ```plain
44
+ ····A····
45
+ ···B·B···
46
+ ··C···C··
47
+ ·D·····D·
48
+ E·······E
49
+ ·D·····D·
50
+ ··C···C··
51
+ ···B·B···
52
+ ····A····
53
+ ```
54
+
55
+ ## Running tests
56
+
57
+ Execute the tests with:
58
+
59
+ ```bash
60
+ $ elixir bob_test.exs
61
+ ```
62
+
63
+ (Replace `bob_test.exs` with the name of the test file.)
64
+
65
+ ### Pending tests
66
+
67
+ In the test suites, all but the first test have been skipped.
68
+
69
+ Once you get a test passing, you can unskip the next one by
70
+ commenting out the relevant `@tag :pending` with a `#` symbol.
71
+
72
+ For example:
73
+
74
+ ```elixir
75
+ # @tag :pending
76
+ test "shouting" do
77
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
78
+ end
79
+ ```
80
+
81
+ Or, you can enable all the tests by commenting out the
82
+ `ExUnit.configure` line in the test suite.
83
+
84
+ ```elixir
85
+ # ExUnit.configure exclude: :pending, trace: true
86
+ ```
87
+
88
+ For more detailed information about the Elixir track, please
89
+ see the [help page](http://exercism.io/languages/elixir).
90
+
91
+ ## Source
92
+
93
+ Seb Rose [http://claysnow.co.uk/recycling-tests-in-tdd/](http://claysnow.co.uk/recycling-tests-in-tdd/)
94
+
95
+ ## Submitting Incomplete Solutions
96
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.