trackler 2.2.0.2 → 2.2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,48 @@
1
+ # Gigasecond
2
+
3
+ Calculate the moment when someone has lived for 10^9 seconds.
4
+
5
+ A gigasecond is 10^9 (1,000,000,000) seconds.
6
+
7
+ ## Running tests
8
+
9
+ Execute the tests with:
10
+
11
+ ```bash
12
+ $ elixir bob_test.exs
13
+ ```
14
+
15
+ (Replace `bob_test.exs` with the name of the test file.)
16
+
17
+ ### Pending tests
18
+
19
+ In the test suites, all but the first test have been skipped.
20
+
21
+ Once you get a test passing, you can unskip the next one by
22
+ commenting out the relevant `@tag :pending` with a `#` symbol.
23
+
24
+ For example:
25
+
26
+ ```elixir
27
+ # @tag :pending
28
+ test "shouting" do
29
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
30
+ end
31
+ ```
32
+
33
+ Or, you can enable all the tests by commenting out the
34
+ `ExUnit.configure` line in the test suite.
35
+
36
+ ```elixir
37
+ # ExUnit.configure exclude: :pending, trace: true
38
+ ```
39
+
40
+ For more detailed information about the Elixir track, please
41
+ see the [help page](http://exercism.io/languages/elixir).
42
+
43
+ ## Source
44
+
45
+ Chapter 9 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=09](http://pine.fm/LearnToProgram/?Chapter=09)
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,79 @@
1
+ # Grade School
2
+
3
+ Given students' names along with the grade that they are in, create a roster
4
+ for the school.
5
+
6
+ In the end, you should be able to:
7
+
8
+ - Add a student's name to the roster for a grade
9
+ - "Add Jim to grade 2."
10
+ - "OK."
11
+ - Get a list of all students enrolled in a grade
12
+ - "Which students are in grade 2?"
13
+ - "We've only got Jim just now."
14
+ - Get a sorted list of all students in all grades. Grades should sort
15
+ as 1, 2, 3, etc., and students within a grade should be sorted
16
+ alphabetically by name.
17
+ - "Who all is enrolled in school right now?"
18
+ - "Grade 1: Anna, Barb, and Charlie. Grade 2: Alex, Peter, and Zoe.
19
+ Grade 3…"
20
+
21
+ Note that all our students only have one name. (It's a small town, what
22
+ do you want?)
23
+
24
+
25
+ ## For bonus points
26
+
27
+ Did you get the tests passing and the code clean? If you want to, these
28
+ are some additional things you could try:
29
+
30
+ - If you're working in a language with mutable data structures and your
31
+ implementation allows outside code to mutate the school's internal DB
32
+ directly, see if you can prevent this. Feel free to introduce additional
33
+ tests.
34
+
35
+ Then please share your thoughts in a comment on the submission. Did this
36
+ experiment make the code better? Worse? Did you learn anything from it?
37
+
38
+ ## Running tests
39
+
40
+ Execute the tests with:
41
+
42
+ ```bash
43
+ $ elixir bob_test.exs
44
+ ```
45
+
46
+ (Replace `bob_test.exs` with the name of the test file.)
47
+
48
+ ### Pending tests
49
+
50
+ In the test suites, all but the first test have been skipped.
51
+
52
+ Once you get a test passing, you can unskip the next one by
53
+ commenting out the relevant `@tag :pending` with a `#` symbol.
54
+
55
+ For example:
56
+
57
+ ```elixir
58
+ # @tag :pending
59
+ test "shouting" do
60
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
61
+ end
62
+ ```
63
+
64
+ Or, you can enable all the tests by commenting out the
65
+ `ExUnit.configure` line in the test suite.
66
+
67
+ ```elixir
68
+ # ExUnit.configure exclude: :pending, trace: true
69
+ ```
70
+
71
+ For more detailed information about the Elixir track, please
72
+ see the [help page](http://exercism.io/languages/elixir).
73
+
74
+ ## Source
75
+
76
+ A pairing session with Phil Battos at gSchool [http://gschool.it](http://gschool.it)
77
+
78
+ ## Submitting Incomplete Solutions
79
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,71 @@
1
+ # Grains
2
+
3
+ Calculate the number of grains of wheat on a chessboard given that the number
4
+ on each square doubles.
5
+
6
+ There once was a wise servant who saved the life of a prince. The king
7
+ promised to pay whatever the servant could dream up. Knowing that the
8
+ king loved chess, the servant told the king he would like to have grains
9
+ of wheat. One grain on the first square of a chess board. Two grains on
10
+ the next. Four on the third, and so on.
11
+
12
+ There are 64 squares on a chessboard.
13
+
14
+ Write code that shows:
15
+ - how many grains were on each square, and
16
+ - the total number of grains
17
+
18
+
19
+ ## For bonus points
20
+
21
+ Did you get the tests passing and the code clean? If you want to, these
22
+ are some additional things you could try:
23
+
24
+ - Optimize for speed.
25
+ - Optimize for readability.
26
+
27
+ Then please share your thoughts in a comment on the submission. Did this
28
+ experiment make the code better? Worse? Did you learn anything from it?
29
+
30
+ ## Running tests
31
+
32
+ Execute the tests with:
33
+
34
+ ```bash
35
+ $ elixir bob_test.exs
36
+ ```
37
+
38
+ (Replace `bob_test.exs` with the name of the test file.)
39
+
40
+ ### Pending tests
41
+
42
+ In the test suites, all but the first test have been skipped.
43
+
44
+ Once you get a test passing, you can unskip the next one by
45
+ commenting out the relevant `@tag :pending` with a `#` symbol.
46
+
47
+ For example:
48
+
49
+ ```elixir
50
+ # @tag :pending
51
+ test "shouting" do
52
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
53
+ end
54
+ ```
55
+
56
+ Or, you can enable all the tests by commenting out the
57
+ `ExUnit.configure` line in the test suite.
58
+
59
+ ```elixir
60
+ # ExUnit.configure exclude: :pending, trace: true
61
+ ```
62
+
63
+ For more detailed information about the Elixir track, please
64
+ see the [help page](http://exercism.io/languages/elixir).
65
+
66
+ ## Source
67
+
68
+ JavaRanch Cattle Drive, exercise 6 [http://www.javaranch.com/grains.jsp](http://www.javaranch.com/grains.jsp)
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,108 @@
1
+ # Grep
2
+
3
+ Search a file for lines matching a regular expression pattern. Return the line
4
+ number and contents of each matching line.
5
+
6
+ The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
7
+ that match a user-provided search query (known as the *pattern*).
8
+
9
+ The `grep` command takes three arguments:
10
+
11
+ 1. The pattern used to match lines in a file.
12
+ 2. Zero or more flags to customize the matching behavior.
13
+ 3. One or more files in which to search for matching lines.
14
+
15
+ Your task is to implement the `grep` function, which should read the contents
16
+ of the specified files, find the lines that match the specified pattern
17
+ and then output those lines as a single string. Note that the lines should
18
+ be output in the order in which they were found, with the first matching line
19
+ in the first file being output first.
20
+
21
+ As an example, suppose there is a file named "input.txt" with the following contents:
22
+
23
+ <pre>
24
+ hello
25
+ world
26
+ hello again
27
+ </pre>
28
+
29
+ If we were to call `grep "hello" input.txt`, the returned string should be:
30
+
31
+ <pre>
32
+ hello
33
+ hello again
34
+ </pre>
35
+
36
+ ### Flags
37
+
38
+ As said earlier, the `grep` command should also support the following flags:
39
+
40
+ - `-n` Print the line numbers of each matching line.
41
+ - `-l` Print only the names of files that contain at least one matching line.
42
+ - `-i` Match line using a case-insensitive comparison.
43
+ - `-v` Invert the program -- collect all lines that fail to match the pattern.
44
+ - `-x` Only match entire lines, instead of lines that contain a match.
45
+
46
+ If we run `grep -n "hello" input.txt`, the `-n` flag will require the matching
47
+ lines to be prefixed with its line number:
48
+
49
+ <pre>
50
+ 1:hello
51
+ 3:hello again
52
+ </pre>
53
+
54
+ And if we run `grep -i "HELLO" input.txt`, we'll do a case-insensitive match,
55
+ and the output will be:
56
+
57
+ <pre>
58
+ hello
59
+ hello again
60
+ </pre>
61
+
62
+ The `grep` command should support multiple flags at once.
63
+
64
+ For example, running `grep -l -v "hello" file1.txt file2.txt` should
65
+ print the names of files that do not contain the string "hello".
66
+
67
+ ## Running tests
68
+
69
+ Execute the tests with:
70
+
71
+ ```bash
72
+ $ elixir bob_test.exs
73
+ ```
74
+
75
+ (Replace `bob_test.exs` with the name of the test file.)
76
+
77
+ ### Pending tests
78
+
79
+ In the test suites, all but the first test have been skipped.
80
+
81
+ Once you get a test passing, you can unskip the next one by
82
+ commenting out the relevant `@tag :pending` with a `#` symbol.
83
+
84
+ For example:
85
+
86
+ ```elixir
87
+ # @tag :pending
88
+ test "shouting" do
89
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
90
+ end
91
+ ```
92
+
93
+ Or, you can enable all the tests by commenting out the
94
+ `ExUnit.configure` line in the test suite.
95
+
96
+ ```elixir
97
+ # ExUnit.configure exclude: :pending, trace: true
98
+ ```
99
+
100
+ For more detailed information about the Elixir track, please
101
+ see the [help page](http://exercism.io/languages/elixir).
102
+
103
+ ## Source
104
+
105
+ Conversation with Nate Foster. [http://www.cs.cornell.edu/Courses/cs3110/2014sp/hw/0/ps0.pdf](http://www.cs.cornell.edu/Courses/cs3110/2014sp/hw/0/ps0.pdf)
106
+
107
+ ## Submitting Incomplete Solutions
108
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,79 @@
1
+ # Hamming
2
+
3
+ Calculate the Hamming difference between two DNA strands.
4
+
5
+ A mutation is simply a mistake that occurs during the creation or
6
+ copying of a nucleic acid, in particular DNA. Because nucleic acids are
7
+ vital to cellular functions, mutations tend to cause a ripple effect
8
+ throughout the cell. Although mutations are technically mistakes, a very
9
+ rare mutation may equip the cell with a beneficial attribute. In fact,
10
+ the macro effects of evolution are attributable by the accumulated
11
+ result of beneficial microscopic mutations over many generations.
12
+
13
+ The simplest and most common type of nucleic acid mutation is a point
14
+ mutation, which replaces one base with another at a single nucleotide.
15
+
16
+ By counting the number of differences between two homologous DNA strands
17
+ taken from different genomes with a common ancestor, we get a measure of
18
+ the minimum number of point mutations that could have occurred on the
19
+ evolutionary path between the two strands.
20
+
21
+ This is called the 'Hamming distance'.
22
+
23
+ It is found by comparing two DNA strands and counting how many of the
24
+ nucleotides are different from their equivalent in the other string.
25
+
26
+ GAGCCTACTAACGGGAT
27
+ CATCGTAATGACGGCCT
28
+ ^ ^ ^ ^ ^ ^^
29
+
30
+ The Hamming distance between these two DNA strands is 7.
31
+
32
+ # Implementation notes
33
+
34
+ The Hamming distance is only defined for sequences of equal length. This means
35
+ that based on the definition, each language could deal with getting sequences
36
+ of equal length differently.
37
+
38
+ ## Running tests
39
+
40
+ Execute the tests with:
41
+
42
+ ```bash
43
+ $ elixir bob_test.exs
44
+ ```
45
+
46
+ (Replace `bob_test.exs` with the name of the test file.)
47
+
48
+ ### Pending tests
49
+
50
+ In the test suites, all but the first test have been skipped.
51
+
52
+ Once you get a test passing, you can unskip the next one by
53
+ commenting out the relevant `@tag :pending` with a `#` symbol.
54
+
55
+ For example:
56
+
57
+ ```elixir
58
+ # @tag :pending
59
+ test "shouting" do
60
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
61
+ end
62
+ ```
63
+
64
+ Or, you can enable all the tests by commenting out the
65
+ `ExUnit.configure` line in the test suite.
66
+
67
+ ```elixir
68
+ # ExUnit.configure exclude: :pending, trace: true
69
+ ```
70
+
71
+ For more detailed information about the Elixir track, please
72
+ see the [help page](http://exercism.io/languages/elixir).
73
+
74
+ ## Source
75
+
76
+ The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
77
+
78
+ ## Submitting Incomplete Solutions
79
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,58 @@
1
+ # Hello World
2
+
3
+ The classical introductory exercise. Just say "Hello, World!".
4
+
5
+ ["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
6
+ the traditional first program for beginning programming in a new language
7
+ or environment.
8
+
9
+ The objectives are simple:
10
+
11
+ - Write a function that returns the string "Hello, World!".
12
+ - Run the test suite and make sure that it succeeds.
13
+ - Submit your solution and check it at the website.
14
+
15
+ If everything goes well, you will be ready to fetch your first real exercise.
16
+
17
+ ## Running tests
18
+
19
+ Execute the tests with:
20
+
21
+ ```bash
22
+ $ elixir bob_test.exs
23
+ ```
24
+
25
+ (Replace `bob_test.exs` with the name of the test file.)
26
+
27
+ ### Pending tests
28
+
29
+ In the test suites, all but the first test have been skipped.
30
+
31
+ Once you get a test passing, you can unskip the next one by
32
+ commenting out the relevant `@tag :pending` with a `#` symbol.
33
+
34
+ For example:
35
+
36
+ ```elixir
37
+ # @tag :pending
38
+ test "shouting" do
39
+ assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
40
+ end
41
+ ```
42
+
43
+ Or, you can enable all the tests by commenting out the
44
+ `ExUnit.configure` line in the test suite.
45
+
46
+ ```elixir
47
+ # ExUnit.configure exclude: :pending, trace: true
48
+ ```
49
+
50
+ For more detailed information about the Elixir track, please
51
+ see the [help page](http://exercism.io/languages/elixir).
52
+
53
+ ## Source
54
+
55
+ This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
56
+
57
+ ## Submitting Incomplete Solutions
58
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.