trackler 2.2.1.40 → 2.2.1.41

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 (376) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/lib/trackler/version.rb +1 -1
  4. data/problem-specifications/exercises/dot-dsl/metadata.yml +1 -0
  5. data/problem-specifications/exercises/etl/metadata.yml +1 -0
  6. data/problem-specifications/exercises/isogram/canonical-data.json +3 -3
  7. data/problem-specifications/exercises/ocr-numbers/metadata.yml +1 -0
  8. data/problem-specifications/exercises/pascals-triangle/metadata.yml +1 -0
  9. data/problem-specifications/exercises/pov/metadata.yml +1 -0
  10. data/problem-specifications/exercises/rna-transcription/metadata.yml +1 -0
  11. data/problem-specifications/exercises/sgf-parsing/metadata.yml +1 -0
  12. data/tracks/c/exercises/all-your-base/src/example.c +14 -14
  13. data/tracks/c/exercises/all-your-base/src/example.h +2 -2
  14. data/tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon +1 -1
  15. data/tracks/ceylon/exercises/rna-transcription/source/rnatranscription/{RNAtest.ceylon → RNATest.ceylon} +0 -0
  16. data/tracks/cfml/.git +1 -0
  17. data/tracks/cfml/.gitignore +5 -0
  18. data/tracks/cfml/.travis.yml +18 -0
  19. data/tracks/cfml/CONTRIBUTING.md +10 -0
  20. data/tracks/cfml/LICENSE +21 -0
  21. data/tracks/cfml/README.md +92 -0
  22. data/tracks/cfml/bin/fetch-configlet +32 -0
  23. data/tracks/cfml/config/exercise_readme.go.tmpl +16 -0
  24. data/tracks/cfml/config/maintainers.json +13 -0
  25. data/tracks/cfml/config.json +223 -0
  26. data/tracks/cfml/docs/ABOUT.md +10 -0
  27. data/tracks/cfml/docs/EXERCISE_README_INSERT.md +15 -0
  28. data/tracks/cfml/docs/INSTALLATION.md +35 -0
  29. data/tracks/cfml/docs/LEARNING.md +37 -0
  30. data/tracks/cfml/docs/RESOURCES.md +29 -0
  31. data/tracks/cfml/docs/SNIPPET.txt +8 -0
  32. data/tracks/cfml/docs/TESTS.md +13 -0
  33. data/tracks/cfml/exercises/acronym/.meta/HINTS.md +0 -0
  34. data/tracks/cfml/exercises/acronym/Acronym.cfc +13 -0
  35. data/tracks/cfml/exercises/acronym/AcronymTest.cfc +43 -0
  36. data/tracks/cfml/exercises/acronym/Solution.cfc +22 -0
  37. data/tracks/cfml/exercises/acronym/SolutionTest.cfc +7 -0
  38. data/tracks/cfml/exercises/acronym/TestRunner.cfc +103 -0
  39. data/tracks/cfml/exercises/acronym/box.json +8 -0
  40. data/tracks/cfml/exercises/acronym/index.cfm +37 -0
  41. data/tracks/cfml/exercises/atbash-cipher/.meta/HINTS.md +0 -0
  42. data/tracks/cfml/exercises/atbash-cipher/AtbashCipher.cfc +14 -0
  43. data/tracks/cfml/exercises/atbash-cipher/AtbashCipherTest.cfc +71 -0
  44. data/tracks/cfml/exercises/atbash-cipher/Solution.cfc +56 -0
  45. data/tracks/cfml/exercises/atbash-cipher/SolutionTest.cfc +7 -0
  46. data/tracks/cfml/exercises/atbash-cipher/TestRunner.cfc +103 -0
  47. data/tracks/cfml/exercises/atbash-cipher/box.json +8 -0
  48. data/tracks/cfml/exercises/atbash-cipher/index.cfm +37 -0
  49. data/tracks/cfml/exercises/bob/.meta/HINTS.md +0 -0
  50. data/tracks/cfml/exercises/bob/Bob.cfc +13 -0
  51. data/tracks/cfml/exercises/bob/BobTest.cfc +115 -0
  52. data/tracks/cfml/exercises/bob/Solution.cfc +27 -0
  53. data/tracks/cfml/exercises/bob/SolutionTest.cfc +7 -0
  54. data/tracks/cfml/exercises/bob/TestRunner.cfc +103 -0
  55. data/tracks/cfml/exercises/bob/box.json +8 -0
  56. data/tracks/cfml/exercises/bob/index.cfm +37 -0
  57. data/tracks/cfml/exercises/diamond/.meta/HINTS.md +0 -0
  58. data/tracks/cfml/exercises/diamond/Diamond.cfc +13 -0
  59. data/tracks/cfml/exercises/diamond/DiamondTest.cfc +35 -0
  60. data/tracks/cfml/exercises/diamond/Solution.cfc +35 -0
  61. data/tracks/cfml/exercises/diamond/SolutionTest.cfc +7 -0
  62. data/tracks/cfml/exercises/diamond/TestRunner.cfc +103 -0
  63. data/tracks/cfml/exercises/diamond/box.json +8 -0
  64. data/tracks/cfml/exercises/diamond/index.cfm +37 -0
  65. data/tracks/cfml/exercises/difference-of-squares/.meta/HINTS.md +0 -0
  66. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquares.cfc +18 -0
  67. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquaresTest.cfc +63 -0
  68. data/tracks/cfml/exercises/difference-of-squares/Solution.cfc +28 -0
  69. data/tracks/cfml/exercises/difference-of-squares/SolutionTest.cfc +7 -0
  70. data/tracks/cfml/exercises/difference-of-squares/TestRunner.cfc +103 -0
  71. data/tracks/cfml/exercises/difference-of-squares/box.json +8 -0
  72. data/tracks/cfml/exercises/difference-of-squares/index.cfm +37 -0
  73. data/tracks/cfml/exercises/flatten-array/.meta/HINTS.md +0 -0
  74. data/tracks/cfml/exercises/flatten-array/FlattenArray.cfc +13 -0
  75. data/tracks/cfml/exercises/flatten-array/FlattenArrayTest.cfc +42 -0
  76. data/tracks/cfml/exercises/flatten-array/Solution.cfc +26 -0
  77. data/tracks/cfml/exercises/flatten-array/SolutionTest.cfc +7 -0
  78. data/tracks/cfml/exercises/flatten-array/TestRunner.cfc +103 -0
  79. data/tracks/cfml/exercises/flatten-array/box.json +8 -0
  80. data/tracks/cfml/exercises/flatten-array/index.cfm +37 -0
  81. data/tracks/cfml/exercises/gigasecond/.meta/HINTS.md +0 -0
  82. data/tracks/cfml/exercises/gigasecond/Gigasecond.cfc +13 -0
  83. data/tracks/cfml/exercises/gigasecond/GigasecondTest.cfc +39 -0
  84. data/tracks/cfml/exercises/gigasecond/Solution.cfc +16 -0
  85. data/tracks/cfml/exercises/gigasecond/SolutionTest.cfc +7 -0
  86. data/tracks/cfml/exercises/gigasecond/TestRunner.cfc +103 -0
  87. data/tracks/cfml/exercises/gigasecond/box.json +8 -0
  88. data/tracks/cfml/exercises/gigasecond/index.cfm +37 -0
  89. data/tracks/cfml/exercises/grains/.meta/HINTS.md +0 -0
  90. data/tracks/cfml/exercises/grains/Grains.cfc +14 -0
  91. data/tracks/cfml/exercises/grains/GrainsTest.cfc +63 -0
  92. data/tracks/cfml/exercises/grains/Solution.cfc +22 -0
  93. data/tracks/cfml/exercises/grains/SolutionTest.cfc +7 -0
  94. data/tracks/cfml/exercises/grains/TestRunner.cfc +103 -0
  95. data/tracks/cfml/exercises/grains/box.json +8 -0
  96. data/tracks/cfml/exercises/grains/index.cfm +37 -0
  97. data/tracks/cfml/exercises/hamming/.meta/HINTS.md +0 -0
  98. data/tracks/cfml/exercises/hamming/Hamming.cfc +13 -0
  99. data/tracks/cfml/exercises/hamming/HammingTest.cfc +75 -0
  100. data/tracks/cfml/exercises/hamming/Solution.cfc +25 -0
  101. data/tracks/cfml/exercises/hamming/SolutionTest.cfc +7 -0
  102. data/tracks/cfml/exercises/hamming/TestRunner.cfc +103 -0
  103. data/tracks/cfml/exercises/hamming/box.json +8 -0
  104. data/tracks/cfml/exercises/hamming/index.cfm +37 -0
  105. data/tracks/cfml/exercises/hello-world/HelloWorld.cfc +13 -0
  106. data/tracks/cfml/exercises/hello-world/HelloWorldTest.cfc +18 -0
  107. data/tracks/cfml/exercises/hello-world/Solution.cfc +13 -0
  108. data/tracks/cfml/exercises/hello-world/SolutionTest.cfc +7 -0
  109. data/tracks/cfml/exercises/hello-world/TestRunner.cfc +103 -0
  110. data/tracks/cfml/exercises/hello-world/box.json +8 -0
  111. data/tracks/cfml/exercises/hello-world/index.cfm +37 -0
  112. data/tracks/cfml/exercises/isogram/.meta/HINTS.md +0 -0
  113. data/tracks/cfml/exercises/isogram/Isogram.cfc +13 -0
  114. data/tracks/cfml/exercises/isogram/IsogramTest.cfc +55 -0
  115. data/tracks/cfml/exercises/isogram/Solution.cfc +23 -0
  116. data/tracks/cfml/exercises/isogram/SolutionTest.cfc +7 -0
  117. data/tracks/cfml/exercises/isogram/TestRunner.cfc +103 -0
  118. data/tracks/cfml/exercises/isogram/box.json +8 -0
  119. data/tracks/cfml/exercises/isogram/index.cfm +37 -0
  120. data/tracks/cfml/exercises/largest-series-product/.meta/HINTS.md +0 -0
  121. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProduct.cfc +13 -0
  122. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProductTest.cfc +75 -0
  123. data/tracks/cfml/exercises/largest-series-product/Solution.cfc +41 -0
  124. data/tracks/cfml/exercises/largest-series-product/SolutionTest.cfc +7 -0
  125. data/tracks/cfml/exercises/largest-series-product/TestRunner.cfc +103 -0
  126. data/tracks/cfml/exercises/largest-series-product/box.json +8 -0
  127. data/tracks/cfml/exercises/largest-series-product/index.cfm +37 -0
  128. data/tracks/cfml/exercises/leap/Leap.cfc +15 -0
  129. data/tracks/cfml/exercises/leap/LeapTest.cfc +39 -0
  130. data/tracks/cfml/exercises/leap/README.md +33 -0
  131. data/tracks/cfml/exercises/leap/Solution.cfc +19 -0
  132. data/tracks/cfml/exercises/leap/SolutionTest.cfc +7 -0
  133. data/tracks/cfml/exercises/leap/TestRunner.cfc +103 -0
  134. data/tracks/cfml/exercises/leap/box.json +8 -0
  135. data/tracks/cfml/exercises/leap/index.cfm +37 -0
  136. data/tracks/cfml/exercises/luhn/.meta/HINTS.md +0 -0
  137. data/tracks/cfml/exercises/luhn/Luhn.cfc +13 -0
  138. data/tracks/cfml/exercises/luhn/LuhnTest.cfc +67 -0
  139. data/tracks/cfml/exercises/luhn/Solution.cfc +38 -0
  140. data/tracks/cfml/exercises/luhn/SolutionTest.cfc +7 -0
  141. data/tracks/cfml/exercises/luhn/TestRunner.cfc +103 -0
  142. data/tracks/cfml/exercises/luhn/box.json +8 -0
  143. data/tracks/cfml/exercises/luhn/index.cfm +37 -0
  144. data/tracks/cfml/exercises/nth-prime/.meta/HINTS.md +0 -0
  145. data/tracks/cfml/exercises/nth-prime/NthPrime.cfc +13 -0
  146. data/tracks/cfml/exercises/nth-prime/NthPrimeTest.cfc +35 -0
  147. data/tracks/cfml/exercises/nth-prime/Solution.cfc +33 -0
  148. data/tracks/cfml/exercises/nth-prime/SolutionTest.cfc +7 -0
  149. data/tracks/cfml/exercises/nth-prime/TestRunner.cfc +103 -0
  150. data/tracks/cfml/exercises/nth-prime/box.json +8 -0
  151. data/tracks/cfml/exercises/nth-prime/index.cfm +37 -0
  152. data/tracks/cfml/exercises/pangram/.meta/HINTS.md +0 -0
  153. data/tracks/cfml/exercises/pangram/Pangram.cfc +13 -0
  154. data/tracks/cfml/exercises/pangram/PangramTest.cfc +55 -0
  155. data/tracks/cfml/exercises/pangram/Solution.cfc +21 -0
  156. data/tracks/cfml/exercises/pangram/SolutionTest.cfc +7 -0
  157. data/tracks/cfml/exercises/pangram/TestRunner.cfc +103 -0
  158. data/tracks/cfml/exercises/pangram/box.json +8 -0
  159. data/tracks/cfml/exercises/pangram/index.cfm +37 -0
  160. data/tracks/cfml/exercises/pig-latin/.meta/HINTS.md +0 -0
  161. data/tracks/cfml/exercises/pig-latin/PigLatin.cfc +13 -0
  162. data/tracks/cfml/exercises/pig-latin/PigLatinTest.cfc +115 -0
  163. data/tracks/cfml/exercises/pig-latin/Solution.cfc +30 -0
  164. data/tracks/cfml/exercises/pig-latin/SolutionTest.cfc +7 -0
  165. data/tracks/cfml/exercises/pig-latin/TestRunner.cfc +103 -0
  166. data/tracks/cfml/exercises/pig-latin/box.json +8 -0
  167. data/tracks/cfml/exercises/pig-latin/index.cfm +37 -0
  168. data/tracks/cfml/exercises/raindrops/.meta/HINTS.md +0 -0
  169. data/tracks/cfml/exercises/raindrops/Raindrops.cfc +13 -0
  170. data/tracks/cfml/exercises/raindrops/RaindropsTest.cfc +87 -0
  171. data/tracks/cfml/exercises/raindrops/Solution.cfc +33 -0
  172. data/tracks/cfml/exercises/raindrops/SolutionTest.cfc +7 -0
  173. data/tracks/cfml/exercises/raindrops/TestRunner.cfc +103 -0
  174. data/tracks/cfml/exercises/raindrops/box.json +8 -0
  175. data/tracks/cfml/exercises/raindrops/index.cfm +37 -0
  176. data/tracks/cfml/exercises/rna-transcription/.meta/HINTS.md +0 -0
  177. data/tracks/cfml/exercises/rna-transcription/RnaTranscription.cfc +13 -0
  178. data/tracks/cfml/exercises/rna-transcription/RnaTranscriptionTest.cfc +47 -0
  179. data/tracks/cfml/exercises/rna-transcription/Solution.cfc +35 -0
  180. data/tracks/cfml/exercises/rna-transcription/SolutionTest.cfc +7 -0
  181. data/tracks/cfml/exercises/rna-transcription/TestRunner.cfc +103 -0
  182. data/tracks/cfml/exercises/rna-transcription/box.json +8 -0
  183. data/tracks/cfml/exercises/rna-transcription/index.cfm +37 -0
  184. data/tracks/cfml/exercises/saddle-points/.meta/HINTS.md +0 -0
  185. data/tracks/cfml/exercises/saddle-points/SaddlePoints.cfc +13 -0
  186. data/tracks/cfml/exercises/saddle-points/SaddlePointsTest.cfc +35 -0
  187. data/tracks/cfml/exercises/saddle-points/Solution.cfc +59 -0
  188. data/tracks/cfml/exercises/saddle-points/SolutionTest.cfc +7 -0
  189. data/tracks/cfml/exercises/saddle-points/TestRunner.cfc +103 -0
  190. data/tracks/cfml/exercises/saddle-points/box.json +8 -0
  191. data/tracks/cfml/exercises/saddle-points/index.cfm +37 -0
  192. data/tracks/cfml/exercises/scrabble-score/.meta/HINTS.md +0 -0
  193. data/tracks/cfml/exercises/scrabble-score/ScrabbleScore.cfc +13 -0
  194. data/tracks/cfml/exercises/scrabble-score/ScrabbleScoreTest.cfc +59 -0
  195. data/tracks/cfml/exercises/scrabble-score/Solution.cfc +50 -0
  196. data/tracks/cfml/exercises/scrabble-score/SolutionTest.cfc +7 -0
  197. data/tracks/cfml/exercises/scrabble-score/TestRunner.cfc +103 -0
  198. data/tracks/cfml/exercises/scrabble-score/box.json +8 -0
  199. data/tracks/cfml/exercises/scrabble-score/index.cfm +37 -0
  200. data/tracks/cfml/exercises/secret-handshake/.meta/HINTS.md +0 -0
  201. data/tracks/cfml/exercises/secret-handshake/SecretHandshake.cfc +13 -0
  202. data/tracks/cfml/exercises/secret-handshake/SecretHandshakeTest.cfc +63 -0
  203. data/tracks/cfml/exercises/secret-handshake/Solution.cfc +31 -0
  204. data/tracks/cfml/exercises/secret-handshake/SolutionTest.cfc +7 -0
  205. data/tracks/cfml/exercises/secret-handshake/TestRunner.cfc +103 -0
  206. data/tracks/cfml/exercises/secret-handshake/box.json +8 -0
  207. data/tracks/cfml/exercises/secret-handshake/index.cfm +37 -0
  208. data/tracks/cfml/exercises/space-age/.meta/HINTS.md +0 -0
  209. data/tracks/cfml/exercises/space-age/Solution.cfc +28 -0
  210. data/tracks/cfml/exercises/space-age/SolutionTest.cfc +7 -0
  211. data/tracks/cfml/exercises/space-age/SpaceAge.cfc +13 -0
  212. data/tracks/cfml/exercises/space-age/SpaceAgeTest.cfc +47 -0
  213. data/tracks/cfml/exercises/space-age/TestRunner.cfc +103 -0
  214. data/tracks/cfml/exercises/space-age/box.json +8 -0
  215. data/tracks/cfml/exercises/space-age/index.cfm +37 -0
  216. data/tracks/cfml/exercises/sum-of-multiples/.meta/HINTS.md +0 -0
  217. data/tracks/cfml/exercises/sum-of-multiples/Solution.cfc +27 -0
  218. data/tracks/cfml/exercises/sum-of-multiples/SolutionTest.cfc +7 -0
  219. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiples.cfc +13 -0
  220. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiplesTest.cfc +63 -0
  221. data/tracks/cfml/exercises/sum-of-multiples/TestRunner.cfc +103 -0
  222. data/tracks/cfml/exercises/sum-of-multiples/box.json +8 -0
  223. data/tracks/cfml/exercises/sum-of-multiples/index.cfm +37 -0
  224. data/tracks/cfml/exercises/triangle/.meta/HINTS.md +0 -0
  225. data/tracks/cfml/exercises/triangle/Solution.cfc +53 -0
  226. data/tracks/cfml/exercises/triangle/SolutionTest.cfc +7 -0
  227. data/tracks/cfml/exercises/triangle/TestRunner.cfc +103 -0
  228. data/tracks/cfml/exercises/triangle/Triangle.cfc +18 -0
  229. data/tracks/cfml/exercises/triangle/TriangleTest.cfc +95 -0
  230. data/tracks/cfml/exercises/triangle/box.json +8 -0
  231. data/tracks/cfml/exercises/triangle/index.cfm +37 -0
  232. data/tracks/cfml/exercises/word-count/.meta/HINTS.md +0 -0
  233. data/tracks/cfml/exercises/word-count/Solution.cfc +22 -0
  234. data/tracks/cfml/exercises/word-count/SolutionTest.cfc +7 -0
  235. data/tracks/cfml/exercises/word-count/TestRunner.cfc +103 -0
  236. data/tracks/cfml/exercises/word-count/WordCount.cfc +13 -0
  237. data/tracks/cfml/exercises/word-count/WordCountTest.cfc +55 -0
  238. data/tracks/cfml/exercises/word-count/box.json +8 -0
  239. data/tracks/cfml/exercises/word-count/index.cfm +37 -0
  240. data/tracks/cfml/img/icon.png +0 -0
  241. data/tracks/cfml/tasks/GenerateTests.cfc +179 -0
  242. data/tracks/cfml/tasks/ScaffoldExercise.cfc +85 -0
  243. data/tracks/cfml/tasks/TestAllSolutions.cfc +24 -0
  244. data/tracks/cfml/tasks/exercise_template/.meta/HINTS.md +0 -0
  245. data/tracks/cfml/tasks/exercise_template/@@name@@.cfc +13 -0
  246. data/tracks/cfml/tasks/exercise_template/@@name@@Test.cfc +15 -0
  247. data/tracks/cfml/tasks/exercise_template/Solution.cfc +6 -0
  248. data/tracks/cfml/tasks/exercise_template/SolutionTest.cfc +7 -0
  249. data/tracks/cfml/tasks/exercise_template/TestRunner.cfc +103 -0
  250. data/tracks/cfml/tasks/exercise_template/box.json +8 -0
  251. data/tracks/cfml/tasks/exercise_template/index.cfm +37 -0
  252. data/tracks/coldfusion/docs/ABOUT.md +8 -6
  253. data/tracks/csharp/docs/GENERATORS.md +7 -0
  254. data/tracks/csharp/exercises/clock/ClockTest.cs +15 -15
  255. data/tracks/csharp/exercises/nucleotide-count/Example.cs +10 -11
  256. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs +2 -7
  257. data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +37 -47
  258. data/tracks/csharp/exercises/pig-latin/Example.cs +1 -1
  259. data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +19 -7
  260. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +7 -1
  261. data/tracks/csharp/exercises/tournament/Example.cs +1 -1
  262. data/tracks/csharp/exercises/tournament/TournamentTest.cs +151 -68
  263. data/tracks/csharp/exercises/triangle/Example.cs +26 -8
  264. data/tracks/csharp/exercises/triangle/Triangle.cs +16 -1
  265. data/tracks/csharp/exercises/triangle/TriangleTest.cs +44 -30
  266. data/tracks/csharp/generators/Exercise.cs +6 -1
  267. data/tracks/csharp/generators/Exercises/Clock.cs +17 -1
  268. data/tracks/csharp/generators/Exercises/NucleotideCount.cs +61 -0
  269. data/tracks/csharp/generators/Exercises/Tournament.cs +66 -0
  270. data/tracks/csharp/generators/Exercises/Triangle.cs +36 -0
  271. data/tracks/dart/config.json +15 -2
  272. data/tracks/dart/exercises/raindrops/lib/example.dart +23 -0
  273. data/tracks/dart/exercises/raindrops/lib/raindrops.dart +3 -0
  274. data/tracks/dart/exercises/raindrops/pubspec.lock +281 -0
  275. data/tracks/dart/exercises/raindrops/pubspec.yaml +3 -0
  276. data/tracks/dart/exercises/raindrops/test/raindrops_test.dart +94 -0
  277. data/tracks/delphi/exercises/pig-latin/uPigLatinExample.pas +1 -25
  278. data/tracks/haskell/config.json +9 -0
  279. data/tracks/haskell/exercises/acronym/README.md +0 -1
  280. data/tracks/haskell/exercises/all-your-base/README.md +1 -1
  281. data/tracks/haskell/exercises/allergies/README.md +0 -1
  282. data/tracks/haskell/exercises/alphametics/README.md +2 -2
  283. data/tracks/haskell/exercises/atbash-cipher/README.md +2 -1
  284. data/tracks/haskell/exercises/beer-song/README.md +1 -1
  285. data/tracks/haskell/exercises/binary/README.md +2 -0
  286. data/tracks/haskell/exercises/bowling/README.md +20 -6
  287. data/tracks/haskell/exercises/collatz-conjecture/README.md +1 -1
  288. data/tracks/haskell/exercises/connect/README.md +1 -1
  289. data/tracks/haskell/exercises/crypto-square/README.md +4 -4
  290. data/tracks/haskell/exercises/diamond/README.md +113 -0
  291. data/tracks/haskell/exercises/diamond/examples/success-standard/package.yaml +16 -0
  292. data/tracks/haskell/exercises/diamond/examples/success-standard/src/Diamond.hs +16 -0
  293. data/tracks/haskell/exercises/diamond/package.yaml +20 -0
  294. data/tracks/haskell/exercises/diamond/src/Diamond.hs +4 -0
  295. data/tracks/haskell/exercises/diamond/stack.yaml +1 -0
  296. data/tracks/haskell/exercises/diamond/test/Tests.hs +109 -0
  297. data/tracks/haskell/exercises/etl/README.md +3 -1
  298. data/tracks/haskell/exercises/food-chain/README.md +1 -1
  299. data/tracks/haskell/exercises/go-counting/README.md +1 -1
  300. data/tracks/haskell/exercises/grade-school/README.md +0 -1
  301. data/tracks/haskell/exercises/grains/README.md +0 -1
  302. data/tracks/haskell/exercises/house/README.md +1 -2
  303. data/tracks/haskell/exercises/isogram/README.md +2 -1
  304. data/tracks/haskell/exercises/kindergarten-garden/README.md +3 -3
  305. data/tracks/haskell/exercises/leap/README.md +1 -1
  306. data/tracks/haskell/exercises/linked-list/README.md +10 -10
  307. data/tracks/haskell/exercises/luhn/README.md +7 -7
  308. data/tracks/haskell/exercises/matrix/README.md +6 -4
  309. data/tracks/haskell/exercises/meetup/README.md +1 -2
  310. data/tracks/haskell/exercises/nucleotide-count/README.md +8 -22
  311. data/tracks/haskell/exercises/ocr-numbers/README.md +6 -6
  312. data/tracks/haskell/exercises/octal/README.md +6 -2
  313. data/tracks/haskell/exercises/palindrome-products/README.md +12 -6
  314. data/tracks/haskell/exercises/pangram/README.md +1 -1
  315. data/tracks/haskell/exercises/pascals-triangle/README.md +2 -2
  316. data/tracks/haskell/exercises/phone-number/README.md +3 -2
  317. data/tracks/haskell/exercises/pov/README.md +3 -3
  318. data/tracks/haskell/exercises/pythagorean-triplet/README.md +3 -3
  319. data/tracks/haskell/exercises/queen-attack/README.md +1 -1
  320. data/tracks/haskell/exercises/rna-transcription/README.md +1 -1
  321. data/tracks/haskell/exercises/roman-numerals/README.md +1 -1
  322. data/tracks/haskell/exercises/run-length-encoding/README.md +4 -4
  323. data/tracks/haskell/exercises/saddle-points/README.md +1 -1
  324. data/tracks/haskell/exercises/scrabble-score/README.md +3 -1
  325. data/tracks/haskell/exercises/secret-handshake/README.md +1 -1
  326. data/tracks/haskell/exercises/sgf-parsing/README.md +4 -4
  327. data/tracks/haskell/exercises/simple-cipher/README.md +1 -1
  328. data/tracks/haskell/exercises/spiral-matrix/README.md +2 -2
  329. data/tracks/haskell/exercises/triangle/README.md +9 -6
  330. data/tracks/haskell/exercises/trinary/README.md +1 -1
  331. data/tracks/haskell/exercises/word-count/README.md +1 -2
  332. data/tracks/haskell/exercises/wordy/README.md +0 -5
  333. data/tracks/java/config.json +56 -9
  334. data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +4 -4
  335. data/tracks/javascript/exercises/two-bucket/example.js +66 -69
  336. data/tracks/javascript/exercises/two-bucket/two-bucket.spec.js +18 -18
  337. data/tracks/julia/config.json +1 -0
  338. data/tracks/julia/docs/ABOUT.md +3 -8
  339. data/tracks/prolog/README.md +1 -1
  340. data/tracks/purescript/.travis.yml +1 -0
  341. data/tracks/purescript/README.md +9 -0
  342. data/tracks/purescript/bin/check-bower.sh +42 -0
  343. data/tracks/purescript/bin/test-separate.sh +46 -0
  344. data/tracks/python/README.md +2 -2
  345. data/tracks/python/exercises/all-your-base/all_your_base.py +2 -0
  346. data/tracks/python/exercises/atbash-cipher/atbash_cipher.py +2 -2
  347. data/tracks/python/exercises/complex-numbers/complex_numbers_test.py +2 -2
  348. data/tracks/python/exercises/complex-numbers/example.py +2 -2
  349. data/tracks/python/exercises/gigasecond/gigasecond.py +1 -1
  350. data/tracks/python/exercises/hamming/hamming.py +1 -1
  351. data/tracks/python/exercises/hexadecimal/hexadecimal.py +1 -1
  352. data/tracks/python/exercises/leap/leap.py +1 -1
  353. data/tracks/python/exercises/meetup/meetup.py +1 -1
  354. data/tracks/python/exercises/phone-number/example.py +4 -2
  355. data/tracks/python/exercises/phone-number/phone_number_test.py +47 -16
  356. data/tracks/python/exercises/pig-latin/pig_latin.py +1 -1
  357. data/tracks/python/exercises/scrabble-score/scrabble_score.py +1 -1
  358. data/tracks/python/exercises/wordy/wordy.py +1 -1
  359. data/tracks/scala/exercises/meetup/example.scala +29 -10
  360. data/tracks/scala/exercises/meetup/src/main/scala/Meetup.scala +23 -0
  361. data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +273 -183
  362. data/tracks/sml/config.json +13 -0
  363. data/tracks/sml/exercises/anagram/README.md +21 -5
  364. data/tracks/sml/exercises/anagram/anagram.sml +2 -6
  365. data/tracks/sml/exercises/anagram/example.sml +29 -24
  366. data/tracks/sml/exercises/anagram/test.sml +56 -50
  367. data/tracks/sml/exercises/anagram/testlib.sml +159 -0
  368. data/tracks/sml/exercises/diamond/README.md +89 -0
  369. data/tracks/sml/exercises/diamond/diamond.sml +2 -0
  370. data/tracks/sml/exercises/diamond/example.sml +25 -0
  371. data/tracks/sml/exercises/diamond/test.sml +27 -0
  372. data/tracks/sml/exercises/diamond/testlib.sml +159 -0
  373. data/tracks/sml/exercises/raindrops/raindrops.sml +2 -2
  374. data/tracks/sml/exercises/raindrops/test.sml +66 -95
  375. data/tracks/sml/exercises/raindrops/testlib.sml +159 -0
  376. metadata +265 -3
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.2.1.40
4
+ version: 2.2.1.41
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-10-03 00:00:00.000000000 Z
11
+ date: 2017-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1014,7 +1014,7 @@ files:
1014
1014
  - tracks/ceylon/exercises/rna-transcription/README.md
1015
1015
  - tracks/ceylon/exercises/rna-transcription/example/RNA.ceylon
1016
1016
  - tracks/ceylon/exercises/rna-transcription/source/rnatranscription/RNA.ceylon
1017
- - tracks/ceylon/exercises/rna-transcription/source/rnatranscription/RNAtest.ceylon
1017
+ - tracks/ceylon/exercises/rna-transcription/source/rnatranscription/RNATest.ceylon
1018
1018
  - tracks/ceylon/exercises/rna-transcription/source/rnatranscription/module.ceylon
1019
1019
  - tracks/ceylon/exercises/sieve/README.md
1020
1020
  - tracks/ceylon/exercises/sieve/example/Sieve.ceylon
@@ -1023,6 +1023,242 @@ files:
1023
1023
  - tracks/ceylon/exercises/sieve/source/sieve/SieveTest.ceylon
1024
1024
  - tracks/ceylon/exercises/sieve/source/sieve/module.ceylon
1025
1025
  - tracks/ceylon/img/icon.png
1026
+ - tracks/cfml/.git
1027
+ - tracks/cfml/.gitignore
1028
+ - tracks/cfml/.travis.yml
1029
+ - tracks/cfml/CONTRIBUTING.md
1030
+ - tracks/cfml/LICENSE
1031
+ - tracks/cfml/README.md
1032
+ - tracks/cfml/bin/fetch-configlet
1033
+ - tracks/cfml/config.json
1034
+ - tracks/cfml/config/exercise_readme.go.tmpl
1035
+ - tracks/cfml/config/maintainers.json
1036
+ - tracks/cfml/docs/ABOUT.md
1037
+ - tracks/cfml/docs/EXERCISE_README_INSERT.md
1038
+ - tracks/cfml/docs/INSTALLATION.md
1039
+ - tracks/cfml/docs/LEARNING.md
1040
+ - tracks/cfml/docs/RESOURCES.md
1041
+ - tracks/cfml/docs/SNIPPET.txt
1042
+ - tracks/cfml/docs/TESTS.md
1043
+ - tracks/cfml/exercises/acronym/.meta/HINTS.md
1044
+ - tracks/cfml/exercises/acronym/Acronym.cfc
1045
+ - tracks/cfml/exercises/acronym/AcronymTest.cfc
1046
+ - tracks/cfml/exercises/acronym/Solution.cfc
1047
+ - tracks/cfml/exercises/acronym/SolutionTest.cfc
1048
+ - tracks/cfml/exercises/acronym/TestRunner.cfc
1049
+ - tracks/cfml/exercises/acronym/box.json
1050
+ - tracks/cfml/exercises/acronym/index.cfm
1051
+ - tracks/cfml/exercises/atbash-cipher/.meta/HINTS.md
1052
+ - tracks/cfml/exercises/atbash-cipher/AtbashCipher.cfc
1053
+ - tracks/cfml/exercises/atbash-cipher/AtbashCipherTest.cfc
1054
+ - tracks/cfml/exercises/atbash-cipher/Solution.cfc
1055
+ - tracks/cfml/exercises/atbash-cipher/SolutionTest.cfc
1056
+ - tracks/cfml/exercises/atbash-cipher/TestRunner.cfc
1057
+ - tracks/cfml/exercises/atbash-cipher/box.json
1058
+ - tracks/cfml/exercises/atbash-cipher/index.cfm
1059
+ - tracks/cfml/exercises/bob/.meta/HINTS.md
1060
+ - tracks/cfml/exercises/bob/Bob.cfc
1061
+ - tracks/cfml/exercises/bob/BobTest.cfc
1062
+ - tracks/cfml/exercises/bob/Solution.cfc
1063
+ - tracks/cfml/exercises/bob/SolutionTest.cfc
1064
+ - tracks/cfml/exercises/bob/TestRunner.cfc
1065
+ - tracks/cfml/exercises/bob/box.json
1066
+ - tracks/cfml/exercises/bob/index.cfm
1067
+ - tracks/cfml/exercises/diamond/.meta/HINTS.md
1068
+ - tracks/cfml/exercises/diamond/Diamond.cfc
1069
+ - tracks/cfml/exercises/diamond/DiamondTest.cfc
1070
+ - tracks/cfml/exercises/diamond/Solution.cfc
1071
+ - tracks/cfml/exercises/diamond/SolutionTest.cfc
1072
+ - tracks/cfml/exercises/diamond/TestRunner.cfc
1073
+ - tracks/cfml/exercises/diamond/box.json
1074
+ - tracks/cfml/exercises/diamond/index.cfm
1075
+ - tracks/cfml/exercises/difference-of-squares/.meta/HINTS.md
1076
+ - tracks/cfml/exercises/difference-of-squares/DifferenceOfSquares.cfc
1077
+ - tracks/cfml/exercises/difference-of-squares/DifferenceOfSquaresTest.cfc
1078
+ - tracks/cfml/exercises/difference-of-squares/Solution.cfc
1079
+ - tracks/cfml/exercises/difference-of-squares/SolutionTest.cfc
1080
+ - tracks/cfml/exercises/difference-of-squares/TestRunner.cfc
1081
+ - tracks/cfml/exercises/difference-of-squares/box.json
1082
+ - tracks/cfml/exercises/difference-of-squares/index.cfm
1083
+ - tracks/cfml/exercises/flatten-array/.meta/HINTS.md
1084
+ - tracks/cfml/exercises/flatten-array/FlattenArray.cfc
1085
+ - tracks/cfml/exercises/flatten-array/FlattenArrayTest.cfc
1086
+ - tracks/cfml/exercises/flatten-array/Solution.cfc
1087
+ - tracks/cfml/exercises/flatten-array/SolutionTest.cfc
1088
+ - tracks/cfml/exercises/flatten-array/TestRunner.cfc
1089
+ - tracks/cfml/exercises/flatten-array/box.json
1090
+ - tracks/cfml/exercises/flatten-array/index.cfm
1091
+ - tracks/cfml/exercises/gigasecond/.meta/HINTS.md
1092
+ - tracks/cfml/exercises/gigasecond/Gigasecond.cfc
1093
+ - tracks/cfml/exercises/gigasecond/GigasecondTest.cfc
1094
+ - tracks/cfml/exercises/gigasecond/Solution.cfc
1095
+ - tracks/cfml/exercises/gigasecond/SolutionTest.cfc
1096
+ - tracks/cfml/exercises/gigasecond/TestRunner.cfc
1097
+ - tracks/cfml/exercises/gigasecond/box.json
1098
+ - tracks/cfml/exercises/gigasecond/index.cfm
1099
+ - tracks/cfml/exercises/grains/.meta/HINTS.md
1100
+ - tracks/cfml/exercises/grains/Grains.cfc
1101
+ - tracks/cfml/exercises/grains/GrainsTest.cfc
1102
+ - tracks/cfml/exercises/grains/Solution.cfc
1103
+ - tracks/cfml/exercises/grains/SolutionTest.cfc
1104
+ - tracks/cfml/exercises/grains/TestRunner.cfc
1105
+ - tracks/cfml/exercises/grains/box.json
1106
+ - tracks/cfml/exercises/grains/index.cfm
1107
+ - tracks/cfml/exercises/hamming/.meta/HINTS.md
1108
+ - tracks/cfml/exercises/hamming/Hamming.cfc
1109
+ - tracks/cfml/exercises/hamming/HammingTest.cfc
1110
+ - tracks/cfml/exercises/hamming/Solution.cfc
1111
+ - tracks/cfml/exercises/hamming/SolutionTest.cfc
1112
+ - tracks/cfml/exercises/hamming/TestRunner.cfc
1113
+ - tracks/cfml/exercises/hamming/box.json
1114
+ - tracks/cfml/exercises/hamming/index.cfm
1115
+ - tracks/cfml/exercises/hello-world/HelloWorld.cfc
1116
+ - tracks/cfml/exercises/hello-world/HelloWorldTest.cfc
1117
+ - tracks/cfml/exercises/hello-world/Solution.cfc
1118
+ - tracks/cfml/exercises/hello-world/SolutionTest.cfc
1119
+ - tracks/cfml/exercises/hello-world/TestRunner.cfc
1120
+ - tracks/cfml/exercises/hello-world/box.json
1121
+ - tracks/cfml/exercises/hello-world/index.cfm
1122
+ - tracks/cfml/exercises/isogram/.meta/HINTS.md
1123
+ - tracks/cfml/exercises/isogram/Isogram.cfc
1124
+ - tracks/cfml/exercises/isogram/IsogramTest.cfc
1125
+ - tracks/cfml/exercises/isogram/Solution.cfc
1126
+ - tracks/cfml/exercises/isogram/SolutionTest.cfc
1127
+ - tracks/cfml/exercises/isogram/TestRunner.cfc
1128
+ - tracks/cfml/exercises/isogram/box.json
1129
+ - tracks/cfml/exercises/isogram/index.cfm
1130
+ - tracks/cfml/exercises/largest-series-product/.meta/HINTS.md
1131
+ - tracks/cfml/exercises/largest-series-product/LargestSeriesProduct.cfc
1132
+ - tracks/cfml/exercises/largest-series-product/LargestSeriesProductTest.cfc
1133
+ - tracks/cfml/exercises/largest-series-product/Solution.cfc
1134
+ - tracks/cfml/exercises/largest-series-product/SolutionTest.cfc
1135
+ - tracks/cfml/exercises/largest-series-product/TestRunner.cfc
1136
+ - tracks/cfml/exercises/largest-series-product/box.json
1137
+ - tracks/cfml/exercises/largest-series-product/index.cfm
1138
+ - tracks/cfml/exercises/leap/Leap.cfc
1139
+ - tracks/cfml/exercises/leap/LeapTest.cfc
1140
+ - tracks/cfml/exercises/leap/README.md
1141
+ - tracks/cfml/exercises/leap/Solution.cfc
1142
+ - tracks/cfml/exercises/leap/SolutionTest.cfc
1143
+ - tracks/cfml/exercises/leap/TestRunner.cfc
1144
+ - tracks/cfml/exercises/leap/box.json
1145
+ - tracks/cfml/exercises/leap/index.cfm
1146
+ - tracks/cfml/exercises/luhn/.meta/HINTS.md
1147
+ - tracks/cfml/exercises/luhn/Luhn.cfc
1148
+ - tracks/cfml/exercises/luhn/LuhnTest.cfc
1149
+ - tracks/cfml/exercises/luhn/Solution.cfc
1150
+ - tracks/cfml/exercises/luhn/SolutionTest.cfc
1151
+ - tracks/cfml/exercises/luhn/TestRunner.cfc
1152
+ - tracks/cfml/exercises/luhn/box.json
1153
+ - tracks/cfml/exercises/luhn/index.cfm
1154
+ - tracks/cfml/exercises/nth-prime/.meta/HINTS.md
1155
+ - tracks/cfml/exercises/nth-prime/NthPrime.cfc
1156
+ - tracks/cfml/exercises/nth-prime/NthPrimeTest.cfc
1157
+ - tracks/cfml/exercises/nth-prime/Solution.cfc
1158
+ - tracks/cfml/exercises/nth-prime/SolutionTest.cfc
1159
+ - tracks/cfml/exercises/nth-prime/TestRunner.cfc
1160
+ - tracks/cfml/exercises/nth-prime/box.json
1161
+ - tracks/cfml/exercises/nth-prime/index.cfm
1162
+ - tracks/cfml/exercises/pangram/.meta/HINTS.md
1163
+ - tracks/cfml/exercises/pangram/Pangram.cfc
1164
+ - tracks/cfml/exercises/pangram/PangramTest.cfc
1165
+ - tracks/cfml/exercises/pangram/Solution.cfc
1166
+ - tracks/cfml/exercises/pangram/SolutionTest.cfc
1167
+ - tracks/cfml/exercises/pangram/TestRunner.cfc
1168
+ - tracks/cfml/exercises/pangram/box.json
1169
+ - tracks/cfml/exercises/pangram/index.cfm
1170
+ - tracks/cfml/exercises/pig-latin/.meta/HINTS.md
1171
+ - tracks/cfml/exercises/pig-latin/PigLatin.cfc
1172
+ - tracks/cfml/exercises/pig-latin/PigLatinTest.cfc
1173
+ - tracks/cfml/exercises/pig-latin/Solution.cfc
1174
+ - tracks/cfml/exercises/pig-latin/SolutionTest.cfc
1175
+ - tracks/cfml/exercises/pig-latin/TestRunner.cfc
1176
+ - tracks/cfml/exercises/pig-latin/box.json
1177
+ - tracks/cfml/exercises/pig-latin/index.cfm
1178
+ - tracks/cfml/exercises/raindrops/.meta/HINTS.md
1179
+ - tracks/cfml/exercises/raindrops/Raindrops.cfc
1180
+ - tracks/cfml/exercises/raindrops/RaindropsTest.cfc
1181
+ - tracks/cfml/exercises/raindrops/Solution.cfc
1182
+ - tracks/cfml/exercises/raindrops/SolutionTest.cfc
1183
+ - tracks/cfml/exercises/raindrops/TestRunner.cfc
1184
+ - tracks/cfml/exercises/raindrops/box.json
1185
+ - tracks/cfml/exercises/raindrops/index.cfm
1186
+ - tracks/cfml/exercises/rna-transcription/.meta/HINTS.md
1187
+ - tracks/cfml/exercises/rna-transcription/RnaTranscription.cfc
1188
+ - tracks/cfml/exercises/rna-transcription/RnaTranscriptionTest.cfc
1189
+ - tracks/cfml/exercises/rna-transcription/Solution.cfc
1190
+ - tracks/cfml/exercises/rna-transcription/SolutionTest.cfc
1191
+ - tracks/cfml/exercises/rna-transcription/TestRunner.cfc
1192
+ - tracks/cfml/exercises/rna-transcription/box.json
1193
+ - tracks/cfml/exercises/rna-transcription/index.cfm
1194
+ - tracks/cfml/exercises/saddle-points/.meta/HINTS.md
1195
+ - tracks/cfml/exercises/saddle-points/SaddlePoints.cfc
1196
+ - tracks/cfml/exercises/saddle-points/SaddlePointsTest.cfc
1197
+ - tracks/cfml/exercises/saddle-points/Solution.cfc
1198
+ - tracks/cfml/exercises/saddle-points/SolutionTest.cfc
1199
+ - tracks/cfml/exercises/saddle-points/TestRunner.cfc
1200
+ - tracks/cfml/exercises/saddle-points/box.json
1201
+ - tracks/cfml/exercises/saddle-points/index.cfm
1202
+ - tracks/cfml/exercises/scrabble-score/.meta/HINTS.md
1203
+ - tracks/cfml/exercises/scrabble-score/ScrabbleScore.cfc
1204
+ - tracks/cfml/exercises/scrabble-score/ScrabbleScoreTest.cfc
1205
+ - tracks/cfml/exercises/scrabble-score/Solution.cfc
1206
+ - tracks/cfml/exercises/scrabble-score/SolutionTest.cfc
1207
+ - tracks/cfml/exercises/scrabble-score/TestRunner.cfc
1208
+ - tracks/cfml/exercises/scrabble-score/box.json
1209
+ - tracks/cfml/exercises/scrabble-score/index.cfm
1210
+ - tracks/cfml/exercises/secret-handshake/.meta/HINTS.md
1211
+ - tracks/cfml/exercises/secret-handshake/SecretHandshake.cfc
1212
+ - tracks/cfml/exercises/secret-handshake/SecretHandshakeTest.cfc
1213
+ - tracks/cfml/exercises/secret-handshake/Solution.cfc
1214
+ - tracks/cfml/exercises/secret-handshake/SolutionTest.cfc
1215
+ - tracks/cfml/exercises/secret-handshake/TestRunner.cfc
1216
+ - tracks/cfml/exercises/secret-handshake/box.json
1217
+ - tracks/cfml/exercises/secret-handshake/index.cfm
1218
+ - tracks/cfml/exercises/space-age/.meta/HINTS.md
1219
+ - tracks/cfml/exercises/space-age/Solution.cfc
1220
+ - tracks/cfml/exercises/space-age/SolutionTest.cfc
1221
+ - tracks/cfml/exercises/space-age/SpaceAge.cfc
1222
+ - tracks/cfml/exercises/space-age/SpaceAgeTest.cfc
1223
+ - tracks/cfml/exercises/space-age/TestRunner.cfc
1224
+ - tracks/cfml/exercises/space-age/box.json
1225
+ - tracks/cfml/exercises/space-age/index.cfm
1226
+ - tracks/cfml/exercises/sum-of-multiples/.meta/HINTS.md
1227
+ - tracks/cfml/exercises/sum-of-multiples/Solution.cfc
1228
+ - tracks/cfml/exercises/sum-of-multiples/SolutionTest.cfc
1229
+ - tracks/cfml/exercises/sum-of-multiples/SumOfMultiples.cfc
1230
+ - tracks/cfml/exercises/sum-of-multiples/SumOfMultiplesTest.cfc
1231
+ - tracks/cfml/exercises/sum-of-multiples/TestRunner.cfc
1232
+ - tracks/cfml/exercises/sum-of-multiples/box.json
1233
+ - tracks/cfml/exercises/sum-of-multiples/index.cfm
1234
+ - tracks/cfml/exercises/triangle/.meta/HINTS.md
1235
+ - tracks/cfml/exercises/triangle/Solution.cfc
1236
+ - tracks/cfml/exercises/triangle/SolutionTest.cfc
1237
+ - tracks/cfml/exercises/triangle/TestRunner.cfc
1238
+ - tracks/cfml/exercises/triangle/Triangle.cfc
1239
+ - tracks/cfml/exercises/triangle/TriangleTest.cfc
1240
+ - tracks/cfml/exercises/triangle/box.json
1241
+ - tracks/cfml/exercises/triangle/index.cfm
1242
+ - tracks/cfml/exercises/word-count/.meta/HINTS.md
1243
+ - tracks/cfml/exercises/word-count/Solution.cfc
1244
+ - tracks/cfml/exercises/word-count/SolutionTest.cfc
1245
+ - tracks/cfml/exercises/word-count/TestRunner.cfc
1246
+ - tracks/cfml/exercises/word-count/WordCount.cfc
1247
+ - tracks/cfml/exercises/word-count/WordCountTest.cfc
1248
+ - tracks/cfml/exercises/word-count/box.json
1249
+ - tracks/cfml/exercises/word-count/index.cfm
1250
+ - tracks/cfml/img/icon.png
1251
+ - tracks/cfml/tasks/GenerateTests.cfc
1252
+ - tracks/cfml/tasks/ScaffoldExercise.cfc
1253
+ - tracks/cfml/tasks/TestAllSolutions.cfc
1254
+ - tracks/cfml/tasks/exercise_template/.meta/HINTS.md
1255
+ - tracks/cfml/tasks/exercise_template/@@name@@.cfc
1256
+ - tracks/cfml/tasks/exercise_template/@@name@@Test.cfc
1257
+ - tracks/cfml/tasks/exercise_template/Solution.cfc
1258
+ - tracks/cfml/tasks/exercise_template/SolutionTest.cfc
1259
+ - tracks/cfml/tasks/exercise_template/TestRunner.cfc
1260
+ - tracks/cfml/tasks/exercise_template/box.json
1261
+ - tracks/cfml/tasks/exercise_template/index.cfm
1026
1262
  - tracks/clojure/.git
1027
1263
  - tracks/clojure/.gitignore
1028
1264
  - tracks/clojure/.travis.yml
@@ -2768,6 +3004,7 @@ files:
2768
3004
  - tracks/csharp/generators/Exercises/Leap.cs
2769
3005
  - tracks/csharp/generators/Exercises/Luhn.cs
2770
3006
  - tracks/csharp/generators/Exercises/NthPrime.cs
3007
+ - tracks/csharp/generators/Exercises/NucleotideCount.cs
2771
3008
  - tracks/csharp/generators/Exercises/OcrNumbers.cs
2772
3009
  - tracks/csharp/generators/Exercises/Pangram.cs
2773
3010
  - tracks/csharp/generators/Exercises/PerfectNumbers.cs
@@ -2788,7 +3025,9 @@ files:
2788
3025
  - tracks/csharp/generators/Exercises/Sieve.cs
2789
3026
  - tracks/csharp/generators/Exercises/SpaceAge.cs
2790
3027
  - tracks/csharp/generators/Exercises/SumOfMultiples.cs
3028
+ - tracks/csharp/generators/Exercises/Tournament.cs
2791
3029
  - tracks/csharp/generators/Exercises/Transpose.cs
3030
+ - tracks/csharp/generators/Exercises/Triangle.cs
2792
3031
  - tracks/csharp/generators/Exercises/TwoBucket.cs
2793
3032
  - tracks/csharp/generators/Exercises/TwoFer.cs
2794
3033
  - tracks/csharp/generators/Exercises/WordCount.cs
@@ -2987,6 +3226,11 @@ files:
2987
3226
  - tracks/dart/exercises/leap/pubspec.lock
2988
3227
  - tracks/dart/exercises/leap/pubspec.yaml
2989
3228
  - tracks/dart/exercises/leap/test/leap_test.dart
3229
+ - tracks/dart/exercises/raindrops/lib/example.dart
3230
+ - tracks/dart/exercises/raindrops/lib/raindrops.dart
3231
+ - tracks/dart/exercises/raindrops/pubspec.lock
3232
+ - tracks/dart/exercises/raindrops/pubspec.yaml
3233
+ - tracks/dart/exercises/raindrops/test/raindrops_test.dart
2990
3234
  - tracks/dart/exercises/rna-transcription/README.md
2991
3235
  - tracks/dart/exercises/rna-transcription/lib/example.dart
2992
3236
  - tracks/dart/exercises/rna-transcription/lib/rna_transcription.dart
@@ -5913,6 +6157,13 @@ files:
5913
6157
  - tracks/haskell/exercises/custom-set/src/CustomSet.hs
5914
6158
  - tracks/haskell/exercises/custom-set/stack.yaml
5915
6159
  - tracks/haskell/exercises/custom-set/test/Tests.hs
6160
+ - tracks/haskell/exercises/diamond/README.md
6161
+ - tracks/haskell/exercises/diamond/examples/success-standard/package.yaml
6162
+ - tracks/haskell/exercises/diamond/examples/success-standard/src/Diamond.hs
6163
+ - tracks/haskell/exercises/diamond/package.yaml
6164
+ - tracks/haskell/exercises/diamond/src/Diamond.hs
6165
+ - tracks/haskell/exercises/diamond/stack.yaml
6166
+ - tracks/haskell/exercises/diamond/test/Tests.hs
5916
6167
  - tracks/haskell/exercises/difference-of-squares/README.md
5917
6168
  - tracks/haskell/exercises/difference-of-squares/examples/success-standard/package.yaml
5918
6169
  - tracks/haskell/exercises/difference-of-squares/examples/success-standard/src/Squares.hs
@@ -9692,7 +9943,9 @@ files:
9692
9943
  - tracks/purescript/.travis.yml
9693
9944
  - tracks/purescript/LICENSE
9694
9945
  - tracks/purescript/README.md
9946
+ - tracks/purescript/bin/check-bower.sh
9695
9947
  - tracks/purescript/bin/fetch-configlet
9948
+ - tracks/purescript/bin/test-separate.sh
9696
9949
  - tracks/purescript/bin/test.sh
9697
9950
  - tracks/purescript/bin/update-bower.sh
9698
9951
  - tracks/purescript/config.json
@@ -9860,6 +10113,7 @@ files:
9860
10113
  - tracks/python/exercises/acronym/acronym_test.py
9861
10114
  - tracks/python/exercises/acronym/example.py
9862
10115
  - tracks/python/exercises/all-your-base/README.md
10116
+ - tracks/python/exercises/all-your-base/all_your_base.py
9863
10117
  - tracks/python/exercises/all-your-base/all_your_base_test.py
9864
10118
  - tracks/python/exercises/all-your-base/example.py
9865
10119
  - tracks/python/exercises/allergies/README.md
@@ -11648,6 +11902,7 @@ files:
11648
11902
  - tracks/scala/exercises/meetup/build.sbt
11649
11903
  - tracks/scala/exercises/meetup/example.scala
11650
11904
  - tracks/scala/exercises/meetup/src/main/scala/.keep
11905
+ - tracks/scala/exercises/meetup/src/main/scala/Meetup.scala
11651
11906
  - tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala
11652
11907
  - tracks/scala/exercises/minesweeper/README.md
11653
11908
  - tracks/scala/exercises/minesweeper/build.sbt
@@ -12063,6 +12318,7 @@ files:
12063
12318
  - tracks/sml/exercises/anagram/anagram.sml
12064
12319
  - tracks/sml/exercises/anagram/example.sml
12065
12320
  - tracks/sml/exercises/anagram/test.sml
12321
+ - tracks/sml/exercises/anagram/testlib.sml
12066
12322
  - tracks/sml/exercises/atbash-cipher/README.md
12067
12323
  - tracks/sml/exercises/atbash-cipher/atbash-cipher.sml
12068
12324
  - tracks/sml/exercises/atbash-cipher/example.sml
@@ -12081,6 +12337,11 @@ files:
12081
12337
  - tracks/sml/exercises/collatz-conjecture/example.sml
12082
12338
  - tracks/sml/exercises/collatz-conjecture/test.sml
12083
12339
  - tracks/sml/exercises/collatz-conjecture/testlib.sml
12340
+ - tracks/sml/exercises/diamond/README.md
12341
+ - tracks/sml/exercises/diamond/diamond.sml
12342
+ - tracks/sml/exercises/diamond/example.sml
12343
+ - tracks/sml/exercises/diamond/test.sml
12344
+ - tracks/sml/exercises/diamond/testlib.sml
12084
12345
  - tracks/sml/exercises/difference-of-squares/README.md
12085
12346
  - tracks/sml/exercises/difference-of-squares/difference-of-squares.sml
12086
12347
  - tracks/sml/exercises/difference-of-squares/example.sml
@@ -12137,6 +12398,7 @@ files:
12137
12398
  - tracks/sml/exercises/raindrops/example.sml
12138
12399
  - tracks/sml/exercises/raindrops/raindrops.sml
12139
12400
  - tracks/sml/exercises/raindrops/test.sml
12401
+ - tracks/sml/exercises/raindrops/testlib.sml
12140
12402
  - tracks/sml/exercises/rna-transcription/README.md
12141
12403
  - tracks/sml/exercises/rna-transcription/example.sml
12142
12404
  - tracks/sml/exercises/rna-transcription/rna-transcription.sml