trackler 2.2.1.6 → 2.2.1.7

Sign up to get free protection for your applications and to get access to all the features.
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
  {