trackler 2.2.1.6 → 2.2.1.7

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 (236) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/README.md +27 -0
  4. data/tracks/coffeescript/config.json +1 -0
  5. data/tracks/coldfusion/config.json +1 -1
  6. data/tracks/crystal/README.md +27 -7
  7. data/tracks/crystal/config/maintainers.json +25 -0
  8. data/tracks/crystal/generator/spec/remote_data_file_spec.cr +1 -1
  9. data/tracks/crystal/generator/src/exercise_generator.cr +1 -1
  10. data/tracks/crystal/generator/src/remote_data_file.cr +2 -2
  11. data/tracks/csharp/config.json +1 -2
  12. data/tracks/csharp/config/maintainers.json +55 -0
  13. data/tracks/csharp/docs/EXERCISE_README_INSERT.md +1 -1
  14. data/tracks/csharp/exercises/accumulate/README.md +1 -1
  15. data/tracks/csharp/exercises/acronym/README.md +1 -1
  16. data/tracks/csharp/exercises/all-your-base/README.md +1 -1
  17. data/tracks/csharp/exercises/allergies/README.md +1 -1
  18. data/tracks/csharp/exercises/alphametics/README.md +1 -1
  19. data/tracks/csharp/exercises/anagram/README.md +1 -1
  20. data/tracks/csharp/exercises/atbash-cipher/README.md +1 -1
  21. data/tracks/csharp/exercises/bank-account/README.md +1 -1
  22. data/tracks/csharp/exercises/beer-song/README.md +1 -1
  23. data/tracks/csharp/exercises/binary-search-tree/README.md +1 -1
  24. data/tracks/csharp/exercises/binary-search/README.md +1 -1
  25. data/tracks/csharp/exercises/bob/README.md +1 -1
  26. data/tracks/csharp/exercises/book-store/README.md +1 -1
  27. data/tracks/csharp/exercises/bowling/README.md +1 -1
  28. data/tracks/csharp/exercises/bracket-push/README.md +1 -1
  29. data/tracks/csharp/exercises/change/README.md +1 -1
  30. data/tracks/csharp/exercises/circular-buffer/README.md +1 -1
  31. data/tracks/csharp/exercises/clock/README.md +1 -1
  32. data/tracks/csharp/exercises/connect/README.md +1 -1
  33. data/tracks/csharp/exercises/crypto-square/README.md +1 -1
  34. data/tracks/csharp/exercises/custom-set/README.md +1 -1
  35. data/tracks/csharp/exercises/diamond/README.md +1 -1
  36. data/tracks/csharp/exercises/difference-of-squares/README.md +1 -1
  37. data/tracks/csharp/exercises/diffie-hellman/README.md +1 -1
  38. data/tracks/csharp/exercises/dominoes/README.md +1 -1
  39. data/tracks/csharp/exercises/dot-dsl/README.md +1 -1
  40. data/tracks/csharp/exercises/error-handling/README.md +1 -1
  41. data/tracks/csharp/exercises/etl/README.md +1 -1
  42. data/tracks/csharp/exercises/flatten-array/README.md +1 -1
  43. data/tracks/csharp/exercises/food-chain/README.md +1 -1
  44. data/tracks/csharp/exercises/forth/README.md +1 -1
  45. data/tracks/csharp/exercises/gigasecond/README.md +1 -1
  46. data/tracks/csharp/exercises/go-counting/README.md +1 -1
  47. data/tracks/csharp/exercises/grade-school/README.md +1 -1
  48. data/tracks/csharp/exercises/grains/README.md +1 -1
  49. data/tracks/csharp/exercises/grep/README.md +1 -1
  50. data/tracks/csharp/exercises/hamming/README.md +1 -1
  51. data/tracks/csharp/exercises/hangman/README.md +1 -1
  52. data/tracks/csharp/exercises/hello-world/README.md +1 -1
  53. data/tracks/csharp/exercises/house/README.md +1 -1
  54. data/tracks/csharp/exercises/isogram/README.md +1 -1
  55. data/tracks/csharp/exercises/kindergarten-garden/README.md +1 -1
  56. data/tracks/csharp/exercises/largest-series-product/README.md +1 -1
  57. data/tracks/csharp/exercises/leap/README.md +1 -1
  58. data/tracks/csharp/exercises/ledger/README.md +1 -1
  59. data/tracks/csharp/exercises/linked-list/README.md +1 -1
  60. data/tracks/csharp/exercises/list-ops/README.md +1 -1
  61. data/tracks/csharp/exercises/luhn/README.md +1 -1
  62. data/tracks/csharp/exercises/markdown/README.md +1 -1
  63. data/tracks/csharp/exercises/matrix/README.md +1 -1
  64. data/tracks/csharp/exercises/meetup/README.md +1 -1
  65. data/tracks/csharp/exercises/minesweeper/README.md +1 -1
  66. data/tracks/csharp/exercises/nth-prime/README.md +1 -1
  67. data/tracks/csharp/exercises/nucleotide-count/README.md +1 -1
  68. data/tracks/csharp/exercises/ocr-numbers/README.md +1 -1
  69. data/tracks/csharp/exercises/palindrome-products/README.md +1 -1
  70. data/tracks/csharp/exercises/pangram/README.md +1 -1
  71. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -1
  72. data/tracks/csharp/exercises/pascals-triangle/README.md +1 -1
  73. data/tracks/csharp/exercises/perfect-numbers/README.md +1 -1
  74. data/tracks/csharp/exercises/phone-number/README.md +1 -1
  75. data/tracks/csharp/exercises/pig-latin/README.md +1 -1
  76. data/tracks/csharp/exercises/poker/README.md +1 -1
  77. data/tracks/csharp/exercises/pov/README.md +1 -1
  78. data/tracks/csharp/exercises/prime-factors/README.md +1 -1
  79. data/tracks/csharp/exercises/protein-translation/README.md +1 -1
  80. data/tracks/csharp/exercises/proverb/README.md +1 -1
  81. data/tracks/csharp/exercises/pythagorean-triplet/README.md +1 -1
  82. data/tracks/csharp/exercises/queen-attack/README.md +1 -1
  83. data/tracks/csharp/exercises/rail-fence-cipher/README.md +1 -1
  84. data/tracks/csharp/exercises/raindrops/README.md +1 -1
  85. data/tracks/csharp/exercises/react/README.md +1 -1
  86. data/tracks/csharp/exercises/rectangles/README.md +1 -1
  87. data/tracks/csharp/exercises/rna-transcription/README.md +1 -1
  88. data/tracks/csharp/exercises/robot-name/README.md +1 -1
  89. data/tracks/csharp/exercises/robot-simulator/README.md +1 -1
  90. data/tracks/csharp/exercises/roman-numerals/README.md +1 -1
  91. data/tracks/csharp/exercises/rotational-cipher/README.md +1 -1
  92. data/tracks/csharp/exercises/run-length-encoding/README.md +1 -1
  93. data/tracks/csharp/exercises/saddle-points/README.md +1 -1
  94. data/tracks/csharp/exercises/say/README.md +1 -1
  95. data/tracks/csharp/exercises/scale-generator/README.md +1 -1
  96. data/tracks/csharp/exercises/scrabble-score/README.md +1 -1
  97. data/tracks/csharp/exercises/secret-handshake/README.md +1 -1
  98. data/tracks/csharp/exercises/series/README.md +1 -1
  99. data/tracks/csharp/exercises/sgf-parsing/README.md +1 -1
  100. data/tracks/csharp/exercises/sieve/README.md +1 -1
  101. data/tracks/csharp/exercises/simple-cipher/README.md +1 -1
  102. data/tracks/csharp/exercises/simple-linked-list/README.md +1 -1
  103. data/tracks/csharp/exercises/space-age/README.md +1 -1
  104. data/tracks/csharp/exercises/strain/README.md +1 -1
  105. data/tracks/csharp/exercises/sublist/README.md +1 -1
  106. data/tracks/csharp/exercises/sum-of-multiples/README.md +1 -1
  107. data/tracks/csharp/exercises/tournament/README.md +1 -1
  108. data/tracks/csharp/exercises/transpose/README.md +1 -1
  109. data/tracks/csharp/exercises/tree-building/README.md +1 -1
  110. data/tracks/csharp/exercises/triangle/README.md +1 -1
  111. data/tracks/csharp/exercises/twelve-days/README.md +1 -1
  112. data/tracks/csharp/exercises/two-bucket/README.md +1 -1
  113. data/tracks/csharp/exercises/variable-length-quantity/README.md +1 -1
  114. data/tracks/csharp/exercises/word-count/README.md +1 -1
  115. data/tracks/csharp/exercises/word-search/README.md +1 -1
  116. data/tracks/csharp/exercises/wordy/README.md +1 -1
  117. data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -1
  118. data/tracks/csharp/exercises/zipper/README.md +1 -1
  119. data/tracks/d/config.json +1 -0
  120. data/tracks/dart/config/maintainers.json +15 -0
  121. data/tracks/ecmascript/config.json +76 -193
  122. data/tracks/ecmascript/exercises/twelve-days/README.md +66 -0
  123. data/tracks/ecmascript/exercises/twelve-days/example.js +53 -0
  124. data/tracks/ecmascript/exercises/twelve-days/package.json +68 -0
  125. data/tracks/ecmascript/exercises/twelve-days/twelve-days.spec.js +106 -0
  126. data/tracks/factor/config.json +1 -1
  127. data/tracks/fsharp/config/maintainers.json +35 -0
  128. data/tracks/go/config.json +82 -38
  129. data/tracks/go/config/maintainers.json +13 -22
  130. data/tracks/go/exercises/bowling/cases_test.go +11 -11
  131. data/tracks/go/exercises/forth/cases_test.go +7 -7
  132. data/tracks/go/exercises/forth/example.go +1 -1
  133. data/tracks/go/exercises/forth/forth_test.go +1 -1
  134. data/tracks/go/exercises/hamming/cases_test.go +7 -7
  135. data/tracks/go/exercises/hamming/hamming.go +1 -1
  136. data/tracks/go/exercises/phone-number/cases_test.go +2 -7
  137. data/tracks/go/exercises/phone-number/example.go +1 -1
  138. data/tracks/go/exercises/phone-number/phone_number_test.go +1 -1
  139. data/tracks/go/exercises/rna-transcription/cases_test.go +7 -7
  140. data/tracks/go/exercises/secret-handshake/cases_test.go +1 -1
  141. data/tracks/groovy/config.json +1 -0
  142. data/tracks/haxe/config.json +1 -1
  143. data/tracks/java/.travis.yml +1 -1
  144. data/tracks/java/config/maintainers.json +20 -0
  145. data/tracks/java/exercises/custom-set/src/test/java/CustomSetTest.java +1 -1
  146. data/tracks/java/exercises/word-count/src/test/java/WordCountTest.java +1 -1
  147. data/tracks/javascript/config.json +229 -247
  148. data/tracks/kotlin/config/maintainers.json +35 -0
  149. data/tracks/lfe/config/maintainers.json +15 -0
  150. data/tracks/lisp/config/maintainers.json +55 -0
  151. data/tracks/ocaml/config.json +0 -5
  152. data/tracks/ocaml/config/maintainers.json +25 -0
  153. data/tracks/perl5/config/maintainers.json +25 -0
  154. data/tracks/perl6/config/maintainers.json +25 -0
  155. data/tracks/pony/config/maintainers.json +15 -0
  156. data/tracks/pony/exercises/atbash-cipher/example.pony +2 -2
  157. data/tracks/pony/exercises/beer-song/example.pony +1 -1
  158. data/tracks/pony/exercises/bob/example.pony +1 -1
  159. data/tracks/pony/exercises/difference-of-squares/example.pony +1 -1
  160. data/tracks/pony/exercises/hamming/test.pony +12 -12
  161. data/tracks/pony/exercises/pascals-triangle/example.pony +1 -1
  162. data/tracks/pony/exercises/pascals-triangle/test.pony +6 -6
  163. data/tracks/pony/exercises/rna-transcription/test.pony +3 -3
  164. data/tracks/pony/exercises/roman-numerals/test.pony +3 -3
  165. data/tracks/purescript/config/maintainers.json +35 -0
  166. data/tracks/r/config.json +140 -81
  167. data/tracks/r/exercises/collatz-conjecture/README.md +43 -0
  168. data/tracks/r/exercises/collatz-conjecture/collatz-conjecture.R +3 -0
  169. data/tracks/r/exercises/collatz-conjecture/example.R +13 -0
  170. data/tracks/r/exercises/collatz-conjecture/test_collatz-conjecture.R +28 -0
  171. data/tracks/r/exercises/nucleotide-count/README.md +43 -0
  172. data/tracks/r/exercises/nucleotide-count/example.R +17 -0
  173. data/tracks/r/exercises/nucleotide-count/nucleotide-count.R +3 -0
  174. data/tracks/r/exercises/nucleotide-count/test_nucleotide-count.R +51 -0
  175. data/tracks/r/exercises/pangram/README.md +25 -0
  176. data/tracks/r/exercises/pangram/example.R +14 -0
  177. data/tracks/r/exercises/pangram/pangram.R +3 -0
  178. data/tracks/r/exercises/pangram/test_pangram.R +42 -0
  179. data/tracks/r/exercises/triangle/.meta/hints.md +4 -0
  180. data/tracks/r/exercises/triangle/README.md +41 -0
  181. data/tracks/r/exercises/triangle/example.R +23 -0
  182. data/tracks/r/exercises/triangle/test_triangle.R +72 -0
  183. data/tracks/r/exercises/triangle/triangle.R +3 -0
  184. data/tracks/rust/config.json +32 -1
  185. data/tracks/rust/config/maintainers.json +1 -6
  186. data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
  187. data/tracks/rust/exercises/beer-song/example.rs +1 -1
  188. data/tracks/rust/exercises/circular-buffer/example.rs +8 -10
  189. data/tracks/rust/exercises/circular-buffer/tests/circular-buffer.rs +2 -2
  190. data/tracks/rust/exercises/clock/.meta/hints.md +10 -0
  191. data/tracks/rust/exercises/clock/Cargo.lock +4 -0
  192. data/tracks/rust/exercises/clock/Cargo.toml +6 -0
  193. data/tracks/rust/exercises/clock/README.md +57 -0
  194. data/tracks/rust/exercises/clock/example.rs +32 -0
  195. data/tracks/{ocaml/exercises/point-mutations/example.ml → rust/exercises/clock/src/lib.rs} +0 -0
  196. data/tracks/rust/exercises/clock/tests/clock.rs +331 -0
  197. data/tracks/rust/exercises/custom-set/tests/custom-set.rs +3 -3
  198. data/tracks/rust/exercises/dominoes/example.rs +1 -1
  199. data/tracks/rust/exercises/grade-school/example.rs +1 -1
  200. data/tracks/rust/exercises/hamming/example.rs +1 -1
  201. data/tracks/rust/exercises/nth-prime/Cargo.lock +4 -0
  202. data/tracks/rust/exercises/nth-prime/Cargo.toml +6 -0
  203. data/tracks/rust/exercises/nth-prime/README.md +47 -0
  204. data/tracks/rust/exercises/nth-prime/example.rs +28 -0
  205. data/tracks/rust/exercises/nth-prime/src/lib.rs +0 -0
  206. data/tracks/rust/exercises/nth-prime/tests/nth-prime.rs +30 -0
  207. data/tracks/rust/exercises/parallel-letter-frequency/example.rs +1 -1
  208. data/tracks/rust/exercises/phone-number/example.rs +1 -1
  209. data/tracks/rust/exercises/pythagorean-triplet/Cargo.lock +4 -0
  210. data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +6 -0
  211. data/tracks/rust/exercises/pythagorean-triplet/README.md +56 -0
  212. data/tracks/rust/exercises/pythagorean-triplet/example.rs +11 -0
  213. data/tracks/rust/exercises/pythagorean-triplet/src/lib.rs +0 -0
  214. data/tracks/rust/exercises/pythagorean-triplet/tests/pythagorean-triplet.rs +6 -0
  215. data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +1 -1
  216. data/tracks/rust/exercises/robot-name/tests/robot-name.rs +2 -2
  217. data/tracks/rust/exercises/say/example.rs +4 -4
  218. data/tracks/rust/exercises/say/tests/say.rs +4 -4
  219. data/tracks/rust/exercises/tournament/example.rs +2 -2
  220. data/tracks/scala/config/maintainers.json +10 -6
  221. data/tracks/scala/exercises/bracket-push/example.scala +2 -2
  222. data/tracks/scala/exercises/bracket-push/src/test/scala/BracketPushTest.scala +74 -0
  223. data/tracks/scala/exercises/crypto-square/example.scala +9 -9
  224. data/tracks/scala/exercises/crypto-square/src/test/scala/CryptoSquareTest.scala +33 -41
  225. data/tracks/scala/testgen/src/main/scala/BracketPushTestGenerator.scala +9 -38
  226. data/tracks/scala/testgen/src/main/scala/CryptoSquareTestGenerator.scala +17 -0
  227. data/tracks/sml/config.json +1 -1
  228. data/tracks/swift/config/maintainers.json +35 -0
  229. data/tracks/swift/docs/ABOUT.md +15 -5
  230. data/tracks/vimscript/config/maintainers.json +35 -0
  231. metadata +58 -8
  232. data/tracks/ocaml/exercises/point-mutations/Makefile +0 -8
  233. data/tracks/ocaml/exercises/point-mutations/README.md +0 -81
  234. data/tracks/ocaml/exercises/point-mutations/dna.mli +0 -6
  235. data/tracks/scala/exercises/bracket-push/src/test/scala/BracketsTest.scala +0 -68
  236. data/tracks/scala/exercises/crypto-square/src/main/scala/CryptoSquare.scala +0 -11
@@ -0,0 +1,66 @@
1
+ # Twelve Days
2
+
3
+ Output the lyrics to 'The Twelve Days of Christmas'.
4
+
5
+ ```
6
+ On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.
7
+
8
+ On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.
9
+
10
+ On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
11
+
12
+ On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
13
+
14
+ On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
15
+
16
+ On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
17
+
18
+ On the seventh day of Christmas my true love gave to me, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
19
+
20
+ On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
21
+
22
+ On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
23
+
24
+ On the tenth day of Christmas my true love gave to me, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
25
+
26
+ On the eleventh day of Christmas my true love gave to me, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
27
+
28
+ On the twelfth day of Christmas my true love gave to me, twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.
29
+ ```
30
+
31
+
32
+ ## Setup
33
+
34
+ Go through the setup instructions for ECMAScript to
35
+ install the necessary dependencies:
36
+
37
+ http://exercism.io/languages/ecmascript
38
+
39
+ ## Requirements
40
+
41
+ Install assignment dependencies:
42
+
43
+ ```bash
44
+ $ npm install
45
+ ```
46
+
47
+ ## Making the test suite pass
48
+
49
+ Execute the tests with:
50
+
51
+ ```bash
52
+ $ npm test
53
+ ```
54
+
55
+ In the test suites all tests but the first have been skipped.
56
+
57
+ Once you get a test passing, you can enable the next one by
58
+ changing `xtest` to `test`.
59
+
60
+
61
+ ## Source
62
+
63
+ Wikipedia [http://en.wikipedia.org/wiki/The_Twelve_Days_of_Christmas_(song)](http://en.wikipedia.org/wiki/The_Twelve_Days_of_Christmas_(song))
64
+
65
+ ## Submitting Incomplete Solutions
66
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,53 @@
1
+ class TwelveDays {
2
+ constructor() {
3
+ this.verseList = [
4
+ 'On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.',
5
+ 'On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.',
6
+ 'On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
7
+ 'On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
8
+ 'On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
9
+ 'On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
10
+ 'On the seventh day of Christmas my true love gave to me, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
11
+ 'On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
12
+ 'On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
13
+ 'On the tenth day of Christmas my true love gave to me, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
14
+ 'On the eleventh day of Christmas my true love gave to me, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
15
+ 'On the twelfth day of Christmas my true love gave to me, twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.',
16
+ ];
17
+ }
18
+
19
+ startFromZero(oneIndexArray) {
20
+ const newArray = oneIndexArray.map(item => item - 1);
21
+ return newArray;
22
+ }
23
+
24
+ singleVerse(verseIndex) {
25
+ const verse = this.verseList[verseIndex].concat('\n');
26
+ return verse;
27
+ }
28
+
29
+ multiVerse(startIndex, endIndex) {
30
+ const filteredList = this.verseList.filter((verse, index) => {
31
+ if (index >= startIndex && index <= endIndex) {
32
+ return verse;
33
+ }
34
+ });
35
+ return filteredList.join('\n\n').concat('\n');
36
+ }
37
+
38
+ verse(...args) {
39
+ const indexArray = this.startFromZero(args);
40
+
41
+ if (args.length === 2) {
42
+ return this.multiVerse(indexArray[0], indexArray[1]);
43
+ }
44
+ return this.singleVerse(indexArray[0]);
45
+ }
46
+
47
+ sing() {
48
+ const song = this.verseList.join('\n\n').concat('\n');
49
+ return song;
50
+ }
51
+ }
52
+
53
+ export default TwelveDays;
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "xecmascript",
3
+ "version": "0.0.0",
4
+ "description": "Exercism exercises in ECMAScript 6.",
5
+ "author": "Katrina Owen",
6
+ "private": true,
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/exercism/xecmascript"
10
+ },
11
+ "devDependencies": {
12
+ "babel-jest": "^20.0.1",
13
+ "babel-plugin-transform-builtin-extend": "^1.1.2",
14
+ "babel-preset-env": "^1.4.0",
15
+ "eslint": "^3.19.0",
16
+ "eslint-config-airbnb": "^15.0.1",
17
+ "eslint-plugin-import": "^2.2.0",
18
+ "eslint-plugin-jsx-a11y": "^5.0.1",
19
+ "eslint-plugin-react": "^7.0.1",
20
+ "jest": "^20.0.1"
21
+ },
22
+ "jest": {
23
+ "modulePathIgnorePatterns": [
24
+ "package.json"
25
+ ]
26
+ },
27
+ "babel": {
28
+ "presets": [
29
+ "env"
30
+ ],
31
+ "plugins": [
32
+ [
33
+ "babel-plugin-transform-builtin-extend",
34
+ {
35
+ "globals": [
36
+ "Error"
37
+ ]
38
+ }
39
+ ]
40
+ ]
41
+ },
42
+ "scripts": {
43
+ "test": "jest --no-cache ./*",
44
+ "watch": "jest --no-cache --watch ./*",
45
+ "lint": "eslint .",
46
+ "lint-test": "eslint . && jest --no-cache ./* "
47
+ },
48
+ "eslintConfig": {
49
+ "parserOptions": {
50
+ "ecmaVersion": 6,
51
+ "sourceType": "module"
52
+ },
53
+ "env": {
54
+ "es6": true,
55
+ "node": true,
56
+ "jest": true
57
+ },
58
+ "extends": "airbnb",
59
+ "rules": {
60
+ "import/no-unresolved": "off",
61
+ "import/extensions": "off"
62
+ }
63
+ },
64
+ "licenses": [
65
+ "MIT"
66
+ ],
67
+ "dependencies": {}
68
+ }
@@ -0,0 +1,106 @@
1
+ import TwelveDays from './twelve-days.js';
2
+
3
+ describe('TwelveDays', () => {
4
+ let twelveDaysObject;
5
+
6
+ beforeEach(() => {
7
+ twelveDaysObject = new TwelveDays();
8
+ });
9
+
10
+ test('test verse one', () => {
11
+ const expectedVerseOne =
12
+ 'On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.\n';
13
+ expect(twelveDaysObject.verse(1)).toEqual(expectedVerseOne);
14
+ });
15
+
16
+ xtest('test verse two', () => {
17
+ const expectedVerseTwo =
18
+ 'On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.\n';
19
+ expect(twelveDaysObject.verse(2)).toEqual(expectedVerseTwo);
20
+ });
21
+
22
+ xtest('test verse three', () => {
23
+ const expectedVerseThree =
24
+ 'On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
25
+ expect(twelveDaysObject.verse(3)).toEqual(expectedVerseThree);
26
+ });
27
+
28
+ xtest('test verse four', () => {
29
+ const expectedVerseFour =
30
+ 'On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
31
+ expect(twelveDaysObject.verse(4)).toEqual(expectedVerseFour);
32
+ });
33
+
34
+ xtest('test verse five', () => {
35
+ const expectedVerseFive =
36
+ 'On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
37
+ expect(twelveDaysObject.verse(5)).toEqual(expectedVerseFive);
38
+ });
39
+
40
+ xtest('test verse six', () => {
41
+ const expectedVerseSix =
42
+ 'On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
43
+ expect(twelveDaysObject.verse(6)).toEqual(expectedVerseSix);
44
+ });
45
+
46
+ xtest('test verse seven', () => {
47
+ const expectedVerseSeven =
48
+ 'On the seventh day of Christmas my true love gave to me, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
49
+ expect(twelveDaysObject.verse(7)).toEqual(expectedVerseSeven);
50
+ });
51
+
52
+ xtest('test verse eight', () => {
53
+ const expectedVerseEight =
54
+ 'On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
55
+ expect(twelveDaysObject.verse(8)).toEqual(expectedVerseEight);
56
+ });
57
+
58
+ xtest('test verse nine', () => {
59
+ const expectedVerseNine =
60
+ 'On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
61
+ expect(twelveDaysObject.verse(9)).toEqual(expectedVerseNine);
62
+ });
63
+
64
+ xtest('test verse ten', () => {
65
+ const expectedVerseTen =
66
+ 'On the tenth day of Christmas my true love gave to me, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
67
+ expect(twelveDaysObject.verse(10)).toEqual(expectedVerseTen);
68
+ });
69
+
70
+ xtest('test verse eleven', () => {
71
+ const expectedVerseEleven =
72
+ 'On the eleventh day of Christmas my true love gave to me, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
73
+ expect(twelveDaysObject.verse(11)).toEqual(expectedVerseEleven);
74
+ });
75
+
76
+ xtest('test verse twelve', () => {
77
+ const expectedVerseTwelve =
78
+ 'On the twelfth day of Christmas my true love gave to me, twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
79
+ expect(twelveDaysObject.verse(12)).toEqual(expectedVerseTwelve);
80
+ });
81
+
82
+ xtest('test multiple verse', () => {
83
+ const expectedVerseOneToThree =
84
+ 'On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.\n\n' +
85
+ 'On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
86
+ 'On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
87
+ expect(twelveDaysObject.verse(1, 3)).toEqual(expectedVerseOneToThree);
88
+ });
89
+
90
+ xtest('test sing whole song', () => {
91
+ const expectedSong =
92
+ 'On the first day of Christmas my true love gave to me, a Partridge in a Pear Tree.\n\n' +
93
+ 'On the second day of Christmas my true love gave to me, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
94
+ 'On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
95
+ 'On the fourth day of Christmas my true love gave to me, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
96
+ 'On the fifth day of Christmas my true love gave to me, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
97
+ 'On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
98
+ 'On the seventh day of Christmas my true love gave to me, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
99
+ 'On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
100
+ 'On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
101
+ 'On the tenth day of Christmas my true love gave to me, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
102
+ 'On the eleventh day of Christmas my true love gave to me, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n\n' +
103
+ 'On the twelfth day of Christmas my true love gave to me, twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n';
104
+ expect(twelveDaysObject.sing()).toEqual(expectedSong);
105
+ });
106
+ });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "language": "Factor",
3
3
  "active": false,
4
- "test_pattern": "TODO",
4
+ "test_pattern": "-tests[.]factor",
5
5
  "exercises": [
6
6
  {
7
7
  "uuid": "c81c4175-f06b-404d-8c01-c4a6dba661d3",
@@ -0,0 +1,35 @@
1
+ {
2
+ "maintainers": [
3
+ {
4
+ "github_username": "ErikSchierboom",
5
+ "show_on_website": true,
6
+ "alumnus": false,
7
+ "name": "Erik Schierboom",
8
+ "bio": null,
9
+ "link_text": "My blog",
10
+ "link_url": "http://www.erikschierboom.com/",
11
+ "avatar_url": null
12
+ },
13
+ {
14
+ "github_username": "jwood803",
15
+ "show_on_website": false,
16
+ "alumnus": false,
17
+ "name": null,
18
+ "bio": null,
19
+ "link_text": null,
20
+ "link_url": null,
21
+ "avatar_url": null
22
+ },
23
+ {
24
+ "github_username": "robkeim",
25
+ "show_on_website": false,
26
+ "alumnus": false,
27
+ "name": null,
28
+ "bio": null,
29
+ "link_text": null,
30
+ "link_url": null,
31
+ "avatar_url": null
32
+ }
33
+ ],
34
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
35
+ }
@@ -528,9 +528,13 @@
528
528
  "slug": "diamond",
529
529
  "core": false,
530
530
  "unlocked_by": null,
531
- "difficulty": 1,
531
+ "difficulty": 4,
532
532
  "topics": [
533
-
533
+ "Strings",
534
+ "Text formatting",
535
+ "Algorithms",
536
+ "Control-flow (conditionals)",
537
+ "Control-flow (loops)"
534
538
  ]
535
539
  },
536
540
  {
@@ -538,9 +542,9 @@
538
542
  "slug": "react",
539
543
  "core": false,
540
544
  "unlocked_by": null,
541
- "difficulty": 1,
545
+ "difficulty": 9,
542
546
  "topics": [
543
-
547
+ "Reactive programming"
544
548
  ]
545
549
  },
546
550
  {
@@ -548,9 +552,11 @@
548
552
  "slug": "custom-set",
549
553
  "core": false,
550
554
  "unlocked_by": null,
551
- "difficulty": 1,
555
+ "difficulty": 4,
552
556
  "topics": [
553
-
557
+ "Sets",
558
+ "Control-flow (loops)",
559
+ "Filtering"
554
560
  ]
555
561
  },
556
562
  {
@@ -558,9 +564,12 @@
558
564
  "slug": "atbash-cipher",
559
565
  "core": false,
560
566
  "unlocked_by": null,
561
- "difficulty": 1,
567
+ "difficulty": 3,
562
568
  "topics": [
563
-
569
+ "Algorithms",
570
+ "Strings",
571
+ "Transforming",
572
+ "Cryptography"
564
573
  ]
565
574
  },
566
575
  {
@@ -568,9 +577,12 @@
568
577
  "slug": "phone-number",
569
578
  "core": false,
570
579
  "unlocked_by": null,
571
- "difficulty": 1,
580
+ "difficulty": 3,
572
581
  "topics": [
573
-
582
+ "Control-flow (conditionals)",
583
+ "Strings",
584
+ "Transforming",
585
+ "Text formatting"
574
586
  ]
575
587
  },
576
588
  {
@@ -578,9 +590,11 @@
578
590
  "slug": "strain",
579
591
  "core": false,
580
592
  "unlocked_by": null,
581
- "difficulty": 1,
593
+ "difficulty": 2,
582
594
  "topics": [
583
-
595
+ "Filtering",
596
+ "Control-flow (loops)",
597
+ "Arrays"
584
598
  ]
585
599
  },
586
600
  {
@@ -588,9 +602,11 @@
588
602
  "slug": "pig-latin",
589
603
  "core": false,
590
604
  "unlocked_by": null,
591
- "difficulty": 1,
605
+ "difficulty": 4,
592
606
  "topics": [
593
-
607
+ "Strings",
608
+ "Transforming",
609
+ "Control-flow (conditionals)"
594
610
  ]
595
611
  },
596
612
  {
@@ -598,9 +614,11 @@
598
614
  "slug": "prime-factors",
599
615
  "core": false,
600
616
  "unlocked_by": null,
601
- "difficulty": 1,
617
+ "difficulty": 3,
602
618
  "topics": [
603
-
619
+ "Mathematics",
620
+ "Algorithms",
621
+ "Integers"
604
622
  ]
605
623
  },
606
624
  {
@@ -620,9 +638,11 @@
620
638
  "slug": "nth-prime",
621
639
  "core": false,
622
640
  "unlocked_by": null,
623
- "difficulty": 1,
641
+ "difficulty": 3,
624
642
  "topics": [
625
-
643
+ "Mathematics",
644
+ "Algorithms",
645
+ "Integers"
626
646
  ]
627
647
  },
628
648
  {
@@ -630,9 +650,12 @@
630
650
  "slug": "diffie-hellman",
631
651
  "core": false,
632
652
  "unlocked_by": null,
633
- "difficulty": 1,
653
+ "difficulty": 5,
634
654
  "topics": [
635
-
655
+ "Cryptography",
656
+ "Integers",
657
+ "Algorithms",
658
+ "Transforming"
636
659
  ]
637
660
  },
638
661
  {
@@ -640,9 +663,11 @@
640
663
  "slug": "beer-song",
641
664
  "core": false,
642
665
  "unlocked_by": null,
643
- "difficulty": 1,
666
+ "difficulty": 3,
644
667
  "topics": [
645
-
668
+ "Strings",
669
+ "Text formatting",
670
+ "Control-flow (loops)"
646
671
  ]
647
672
  },
648
673
  {
@@ -650,9 +675,10 @@
650
675
  "slug": "ocr-numbers",
651
676
  "core": false,
652
677
  "unlocked_by": null,
653
- "difficulty": 1,
678
+ "difficulty": 7,
654
679
  "topics": [
655
-
680
+ "Parsing",
681
+ "Pattern recognition"
656
682
  ]
657
683
  },
658
684
  {
@@ -850,9 +876,15 @@
850
876
  "slug": "ledger",
851
877
  "core": false,
852
878
  "unlocked_by": null,
853
- "difficulty": 1,
879
+ "difficulty": 4,
854
880
  "topics": [
855
-
881
+ "Dates",
882
+ "Integers",
883
+ "Records",
884
+ "Refactoring",
885
+ "Sorting",
886
+ "Strings",
887
+ "Text formatting"
856
888
  ]
857
889
  },
858
890
  {
@@ -860,9 +892,14 @@
860
892
  "slug": "poker",
861
893
  "core": false,
862
894
  "unlocked_by": null,
863
- "difficulty": 1,
895
+ "difficulty": 5,
864
896
  "topics": [
865
-
897
+ "Equality",
898
+ "Games",
899
+ "Parsing",
900
+ "Pattern matching",
901
+ "Sequences",
902
+ "Strings"
866
903
  ]
867
904
  },
868
905
  {
@@ -870,9 +907,11 @@
870
907
  "slug": "variable-length-quantity",
871
908
  "core": false,
872
909
  "unlocked_by": null,
873
- "difficulty": 1,
910
+ "difficulty": 5,
874
911
  "topics": [
875
-
912
+ "Bitwise operations",
913
+ "Integers",
914
+ "Transforming"
876
915
  ]
877
916
  },
878
917
  {
@@ -880,9 +919,11 @@
880
919
  "slug": "forth",
881
920
  "core": false,
882
921
  "unlocked_by": null,
883
- "difficulty": 1,
922
+ "difficulty": 8,
884
923
  "topics": [
885
-
924
+ "Domain-specific languages",
925
+ "Parsing",
926
+ "Stacks"
886
927
  ]
887
928
  },
888
929
  {
@@ -890,11 +931,13 @@
890
931
  "slug": "change",
891
932
  "core": false,
892
933
  "unlocked_by": null,
893
- "difficulty": 1,
934
+ "difficulty": 5,
894
935
  "topics": [
895
- "Control-flow (loops)",
936
+ "Algorithms",
896
937
  "Arrays",
897
- "Algorithms"
938
+ "Control-flow (loops)",
939
+ "Mathematics",
940
+ "Searching"
898
941
  ]
899
942
  },
900
943
  {
@@ -902,10 +945,11 @@
902
945
  "slug": "bowling",
903
946
  "core": false,
904
947
  "unlocked_by": null,
905
- "difficulty": 1,
948
+ "difficulty": 5,
906
949
  "topics": [
907
- "Control-flow (conditionals)",
908
- "Arrays"
950
+ "Algorithms",
951
+ "Arrays",
952
+ "Control-flow (conditionals)"
909
953
  ]
910
954
  },
911
955
  {