trackler 2.0.6.28 → 2.0.6.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/all-your-base/metadata.yml +1 -1
  3. data/common/exercises/allergies/metadata.yml +1 -1
  4. data/common/exercises/anagram/metadata.yml +1 -1
  5. data/common/exercises/beer-song/metadata.yml +1 -1
  6. data/common/exercises/binary-search-tree/metadata.yml +1 -1
  7. data/common/exercises/binary-search/metadata.yml +1 -1
  8. data/common/exercises/binary/metadata.yml +1 -1
  9. data/common/exercises/change/description.md +3 -3
  10. data/common/exercises/change/metadata.yml +1 -1
  11. data/common/exercises/crypto-square/description.md +1 -2
  12. data/common/exercises/etl/description.md +2 -2
  13. data/common/exercises/flatten-array/metadata.yml +1 -1
  14. data/common/exercises/food-chain/description.md +4 -5
  15. data/common/exercises/food-chain/metadata.yml +1 -1
  16. data/common/exercises/gigasecond/metadata.yml +1 -1
  17. data/common/exercises/grade-school/metadata.yml +1 -1
  18. data/common/exercises/grains/description.md +1 -1
  19. data/common/exercises/grains/metadata.yml +1 -1
  20. data/common/exercises/hamming/metadata.yml +1 -1
  21. data/common/exercises/hello-world/metadata.yml +1 -1
  22. data/common/exercises/hexadecimal/metadata.yml +1 -1
  23. data/common/exercises/house/metadata.yml +1 -1
  24. data/common/exercises/kindergarten-garden/metadata.yml +1 -1
  25. data/common/exercises/largest-series-product/metadata.yml +1 -1
  26. data/common/exercises/leap/metadata.yml +1 -1
  27. data/common/exercises/luhn/description.md +1 -1
  28. data/common/exercises/luhn/metadata.yml +1 -1
  29. data/common/exercises/matrix/metadata.yml +1 -1
  30. data/common/exercises/minesweeper/metadata.yml +1 -1
  31. data/common/exercises/nth-prime/metadata.yml +1 -1
  32. data/common/exercises/ocr-numbers/metadata.yml +1 -1
  33. data/common/exercises/octal/metadata.yml +1 -1
  34. data/common/exercises/paasio/metadata.yml +1 -1
  35. data/common/exercises/palindrome-products/description.md +30 -2
  36. data/common/exercises/palindrome-products/metadata.yml +1 -1
  37. data/common/exercises/parallel-letter-frequency/metadata.yml +1 -1
  38. data/common/exercises/pascals-triangle/metadata.yml +1 -1
  39. data/common/exercises/phone-number/metadata.yml +1 -1
  40. data/common/exercises/point-mutations/metadata.yml +1 -1
  41. data/common/exercises/protein-translation/description.md +1 -1
  42. data/common/exercises/protein-translation/metadata.yml +1 -1
  43. data/common/exercises/proverb/metadata.yml +1 -1
  44. data/common/exercises/queen-attack/metadata.yml +1 -1
  45. data/common/exercises/raindrops/metadata.yml +1 -1
  46. data/common/exercises/rna-transcription/metadata.yml +1 -1
  47. data/common/exercises/robot-name/metadata.yml +1 -1
  48. data/common/exercises/saddle-points/metadata.yml +1 -1
  49. data/common/exercises/say/metadata.yml +1 -1
  50. data/common/exercises/scale-generator/description.md +3 -4
  51. data/common/exercises/scale-generator/metadata.yml +1 -1
  52. data/common/exercises/scrabble-score/metadata.yml +1 -1
  53. data/common/exercises/secret-handshake/metadata.yml +1 -1
  54. data/common/exercises/series/metadata.yml +1 -1
  55. data/common/exercises/sieve/metadata.yml +1 -1
  56. data/common/exercises/space-age/metadata.yml +1 -1
  57. data/common/exercises/sum-of-multiples/description.md +2 -2
  58. data/common/exercises/sum-of-multiples/metadata.yml +1 -1
  59. data/common/exercises/transpose/description.md +1 -1
  60. data/common/exercises/transpose/metadata.yml +1 -1
  61. data/common/exercises/triangle/metadata.yml +1 -1
  62. data/common/exercises/trinary/metadata.yml +1 -1
  63. data/common/exercises/twelve-days/metadata.yml +1 -1
  64. data/common/exercises/two-bucket/description.md +1 -1
  65. data/common/exercises/two-bucket/metadata.yml +1 -1
  66. data/common/exercises/word-count/metadata.yml +1 -1
  67. data/common/exercises/zebra-puzzle/metadata.yml +1 -1
  68. data/lib/trackler/version.rb +1 -1
  69. data/tracks/erlang/.gitignore +2 -0
  70. data/tracks/erlang/.travis.yml +8 -4
  71. data/tracks/erlang/Makefile +16 -0
  72. data/tracks/erlang/README.md +77 -1
  73. data/tracks/erlang/_test/bootstrap.sh +17 -4
  74. data/tracks/erlang/_test/check-exercises.escript +64 -24
  75. data/tracks/erlang/config.json +63 -63
  76. data/tracks/erlang/docs/INSTALLATION.md +18 -0
  77. data/tracks/erlang/docs/TESTS.md +1 -3
  78. data/tracks/erlang/exercises/accumulate/include/exercism.hrl +6 -0
  79. data/tracks/erlang/exercises/accumulate/rebar.conf +30 -0
  80. data/tracks/erlang/exercises/accumulate/src/accumulate.app.src +9 -0
  81. data/tracks/erlang/exercises/accumulate/{example.erl → src/example.erl} +3 -2
  82. data/tracks/erlang/exercises/accumulate/test/accumulate_tests.erl +27 -0
  83. data/tracks/erlang/exercises/allergies/include/exercism.hrl +6 -0
  84. data/tracks/erlang/exercises/allergies/rebar.conf +30 -0
  85. data/tracks/erlang/exercises/allergies/src/allergies.app.src +9 -0
  86. data/tracks/erlang/exercises/allergies/{example.erl → src/example.erl} +9 -10
  87. data/tracks/erlang/exercises/allergies/{allergies_tests.erl → test/allergies_tests.erl} +17 -20
  88. data/tracks/erlang/exercises/anagram/include/exercism.hrl +6 -0
  89. data/tracks/erlang/exercises/anagram/rebar.conf +32 -0
  90. data/tracks/erlang/exercises/anagram/src/anagram.app.src +9 -0
  91. data/tracks/erlang/exercises/anagram/{example.erl → src/example.erl} +2 -1
  92. data/tracks/erlang/exercises/anagram/test/anagram_tests.erl +43 -0
  93. data/tracks/erlang/exercises/atbash-cipher/include/exercism.hrl +6 -0
  94. data/tracks/erlang/exercises/atbash-cipher/rebar.conf +30 -0
  95. data/tracks/erlang/exercises/atbash-cipher/src/atbash_cipher.app.src +9 -0
  96. data/tracks/erlang/exercises/atbash-cipher/{example.erl → src/example.erl} +1 -1
  97. data/tracks/erlang/exercises/atbash-cipher/{atbash_cipher_tests.erl → test/atbash_cipher_tests.erl} +6 -2
  98. data/tracks/erlang/exercises/bank-account/include/exercism.hrl +6 -0
  99. data/tracks/erlang/exercises/bank-account/rebar.conf +30 -0
  100. data/tracks/erlang/exercises/bank-account/src/bank_account.app.src +9 -0
  101. data/tracks/erlang/exercises/bank-account/{example.erl → src/example.erl} +1 -1
  102. data/tracks/erlang/exercises/bank-account/test/bank_account_tests.erl +98 -0
  103. data/tracks/erlang/exercises/beer-song/include/exercism.hrl +6 -0
  104. data/tracks/erlang/exercises/beer-song/rebar.conf +30 -0
  105. data/tracks/erlang/exercises/beer-song/src/beer_song.app.src +9 -0
  106. data/tracks/erlang/exercises/beer-song/{example.erl → src/example.erl} +1 -1
  107. data/tracks/erlang/exercises/beer-song/{beer_song_tests.erl → test/beer_song_tests.erl} +9 -9
  108. data/tracks/erlang/exercises/binary/include/exercism.hrl +6 -0
  109. data/tracks/erlang/exercises/binary/rebar.conf +30 -0
  110. data/tracks/erlang/exercises/binary/src/binary.app.src +9 -0
  111. data/tracks/erlang/exercises/binary/{example.erl → src/example.erl} +1 -1
  112. data/tracks/erlang/exercises/binary/{binary_string_tests.erl → test/binary_string_tests.erl} +7 -3
  113. data/tracks/erlang/exercises/bob/include/exercism.hrl +6 -0
  114. data/tracks/erlang/exercises/bob/rebar.conf +30 -0
  115. data/tracks/erlang/exercises/bob/src/bob.app.src +9 -0
  116. data/tracks/erlang/exercises/bob/{example.erl → src/example.erl} +1 -1
  117. data/tracks/erlang/exercises/bob/{bob_tests.erl → test/bob_tests.erl} +4 -4
  118. data/tracks/erlang/exercises/circular-buffer/include/exercism.hrl +6 -0
  119. data/tracks/erlang/exercises/circular-buffer/rebar.conf +30 -0
  120. data/tracks/erlang/exercises/circular-buffer/src/circular_buffer.app.src +9 -0
  121. data/tracks/erlang/exercises/circular-buffer/{example.erl → src/example.erl} +1 -34
  122. data/tracks/erlang/exercises/circular-buffer/test/circular_buffer_tests.erl +58 -0
  123. data/tracks/erlang/exercises/clock/include/exercism.hrl +6 -0
  124. data/tracks/erlang/exercises/clock/rebar.conf +30 -0
  125. data/tracks/erlang/exercises/clock/src/clock.app.src +9 -0
  126. data/tracks/erlang/exercises/clock/{example.erl → src/example.erl} +1 -1
  127. data/tracks/erlang/exercises/clock/{clock_tests.erl → test/clock_tests.erl} +51 -48
  128. data/tracks/erlang/exercises/difference-of-squares/include/exercism.hrl +6 -0
  129. data/tracks/erlang/exercises/difference-of-squares/rebar.conf +30 -0
  130. data/tracks/erlang/exercises/difference-of-squares/src/difference_of_squares.app.src +9 -0
  131. data/tracks/erlang/exercises/difference-of-squares/{example.erl → src/example.erl} +1 -1
  132. data/tracks/erlang/exercises/difference-of-squares/{difference_of_squares_tests.erl → test/difference_of_squares_tests.erl} +7 -3
  133. data/tracks/erlang/exercises/etl/include/exercism.hrl +6 -0
  134. data/tracks/erlang/exercises/etl/rebar.conf +30 -0
  135. data/tracks/erlang/exercises/etl/src/etl.app.src +9 -0
  136. data/tracks/erlang/exercises/etl/{example.erl → src/example.erl} +1 -2
  137. data/tracks/erlang/exercises/etl/{etl_tests.erl → test/etl_tests.erl} +3 -4
  138. data/tracks/erlang/exercises/gigasecond/include/exercism.hrl +6 -0
  139. data/tracks/erlang/exercises/gigasecond/rebar.conf +30 -0
  140. data/tracks/erlang/exercises/gigasecond/{example.erl → src/example.erl} +1 -2
  141. data/tracks/erlang/exercises/gigasecond/src/gigasecond.app.src +9 -0
  142. data/tracks/erlang/exercises/gigasecond/test/gigasecond_tests.erl +22 -0
  143. data/tracks/erlang/exercises/grade-school/include/exercism.hrl +6 -0
  144. data/tracks/erlang/exercises/grade-school/rebar.conf +30 -0
  145. data/tracks/erlang/exercises/grade-school/{example.erl → src/example.erl} +1 -1
  146. data/tracks/erlang/exercises/grade-school/src/grade_school.app.src +9 -0
  147. data/tracks/erlang/exercises/grade-school/test/grade_school_tests.erl +47 -0
  148. data/tracks/erlang/exercises/grains/include/exercism.hrl +6 -0
  149. data/tracks/erlang/exercises/grains/rebar.conf +30 -0
  150. data/tracks/erlang/exercises/grains/{example.erl → src/example.erl} +1 -2
  151. data/tracks/erlang/exercises/grains/src/grains.app.src +9 -0
  152. data/tracks/erlang/exercises/grains/test/grains_tests.erl +32 -0
  153. data/tracks/erlang/exercises/hamming/include/exercism.hrl +6 -0
  154. data/tracks/erlang/exercises/hamming/rebar.conf +30 -0
  155. data/tracks/erlang/exercises/hamming/{example.erl → src/example.erl} +1 -1
  156. data/tracks/erlang/exercises/hamming/src/hamming.app.src +9 -0
  157. data/tracks/erlang/exercises/hamming/test/hamming_tests.erl +24 -0
  158. data/tracks/erlang/exercises/hello-world/include/exercism.hrl +6 -0
  159. data/tracks/erlang/exercises/hello-world/rebar.conf +30 -0
  160. data/tracks/erlang/exercises/hello-world/{example.erl → src/example.erl} +1 -1
  161. data/tracks/erlang/exercises/hello-world/src/hello_world.app.src +9 -0
  162. data/tracks/erlang/exercises/hello-world/test/hello_world_tests.erl +18 -0
  163. data/tracks/erlang/exercises/largest-series-product/include/exercism.hrl +6 -0
  164. data/tracks/erlang/exercises/largest-series-product/rebar.conf +30 -0
  165. data/tracks/erlang/exercises/largest-series-product/{example.erl → src/example.erl} +1 -1
  166. data/tracks/erlang/exercises/largest-series-product/src/largest_series_product.app.src +9 -0
  167. data/tracks/erlang/exercises/largest-series-product/test/largest_series_product_tests.erl +57 -0
  168. data/tracks/erlang/exercises/leap/include/exercism.hrl +6 -0
  169. data/tracks/erlang/exercises/leap/rebar.conf +30 -0
  170. data/tracks/erlang/exercises/leap/{example.erl → src/example.erl} +1 -1
  171. data/tracks/erlang/exercises/leap/src/leap.app.src +9 -0
  172. data/tracks/erlang/exercises/leap/test/leap_tests.erl +18 -0
  173. data/tracks/erlang/exercises/luhn/include/exercism.hrl +6 -0
  174. data/tracks/erlang/exercises/luhn/rebar.conf +30 -0
  175. data/tracks/erlang/exercises/luhn/{example.erl → src/example.erl} +1 -1
  176. data/tracks/erlang/exercises/luhn/src/luhn.app.src +9 -0
  177. data/tracks/erlang/exercises/luhn/test/luhn_tests.erl +18 -0
  178. data/tracks/erlang/exercises/meetup/include/exercism.hrl +6 -0
  179. data/tracks/erlang/exercises/meetup/rebar.conf +30 -0
  180. data/tracks/erlang/exercises/meetup/{example.erl → src/example.erl} +1 -2
  181. data/tracks/erlang/exercises/meetup/src/meetup.app.src +9 -0
  182. data/tracks/erlang/exercises/meetup/{meetup_tests.erl → test/meetup_tests.erl} +94 -95
  183. data/tracks/erlang/exercises/nucleotide-count/include/exercism.hrl +6 -0
  184. data/tracks/erlang/exercises/nucleotide-count/rebar.conf +30 -0
  185. data/tracks/erlang/exercises/nucleotide-count/{example.erl → src/example.erl} +1 -1
  186. data/tracks/erlang/exercises/nucleotide-count/src/nucleotide_count.app.src +9 -0
  187. data/tracks/erlang/exercises/nucleotide-count/test/dna_tests.erl +30 -0
  188. data/tracks/erlang/exercises/parallel-letter-frequency/include/exercism.hrl +6 -0
  189. data/tracks/erlang/exercises/parallel-letter-frequency/rebar.conf +30 -0
  190. data/tracks/erlang/exercises/parallel-letter-frequency/{example.erl → src/example.erl} +1 -1
  191. data/tracks/erlang/exercises/parallel-letter-frequency/src/parallel_letter_frequency.app.src +9 -0
  192. data/tracks/erlang/exercises/parallel-letter-frequency/{parallel_letter_frequency_tests.erl → test/parallel_letter_frequency_tests.erl} +6 -2
  193. data/tracks/erlang/exercises/phone-number/include/exercism.hrl +6 -0
  194. data/tracks/erlang/exercises/phone-number/rebar.conf +30 -0
  195. data/tracks/erlang/exercises/phone-number/{example.erl → src/example.erl} +1 -1
  196. data/tracks/erlang/exercises/phone-number/src/phone_number.app.src +9 -0
  197. data/tracks/erlang/exercises/phone-number/test/phone_tests.erl +28 -0
  198. data/tracks/erlang/exercises/rna-transcription/include/exercism.hrl +6 -0
  199. data/tracks/erlang/exercises/rna-transcription/rebar.conf +30 -0
  200. data/tracks/erlang/exercises/rna-transcription/{example.erl → src/example.erl} +1 -1
  201. data/tracks/erlang/exercises/rna-transcription/src/rna_transcription.app.src +9 -0
  202. data/tracks/erlang/exercises/rna-transcription/test/rna_transcription_tests.erl +24 -0
  203. data/tracks/erlang/exercises/robot-simulator/include/exercism.hrl +6 -0
  204. data/tracks/erlang/exercises/robot-simulator/rebar.conf +30 -0
  205. data/tracks/erlang/exercises/robot-simulator/{example.erl → src/example.erl} +1 -1
  206. data/tracks/erlang/exercises/robot-simulator/src/robot_simulator.app.src +9 -0
  207. data/tracks/erlang/exercises/robot-simulator/test/robot_simulator_tests.erl +100 -0
  208. data/tracks/erlang/exercises/roman-numerals/include/exercism.hrl +6 -0
  209. data/tracks/erlang/exercises/roman-numerals/rebar.conf +30 -0
  210. data/tracks/erlang/exercises/roman-numerals/{example.erl → src/example.erl} +1 -1
  211. data/tracks/erlang/exercises/roman-numerals/src/roman_numerals.app.src +9 -0
  212. data/tracks/erlang/exercises/roman-numerals/{roman_numerals_tests.erl → test/roman_numerals_tests.erl} +3 -4
  213. data/tracks/erlang/exercises/scrabble-score/include/exercism.hrl +6 -0
  214. data/tracks/erlang/exercises/scrabble-score/rebar.conf +30 -0
  215. data/tracks/erlang/exercises/scrabble-score/{example.erl → src/example.erl} +2 -2
  216. data/tracks/erlang/exercises/scrabble-score/src/scrabble_score.app.src +9 -0
  217. data/tracks/erlang/exercises/scrabble-score/{scrabble_score_tests.erl → test/scrabble_score_tests.erl} +5 -1
  218. data/tracks/erlang/exercises/series/include/exercism.hrl +6 -0
  219. data/tracks/erlang/exercises/series/rebar.conf +30 -0
  220. data/tracks/erlang/exercises/series/{example.erl → src/example.erl} +1 -1
  221. data/tracks/erlang/exercises/series/src/series.app.src +9 -0
  222. data/tracks/erlang/exercises/series/test/series_tests.erl +10 -0
  223. data/tracks/erlang/exercises/space-age/include/exercism.hrl +6 -0
  224. data/tracks/erlang/exercises/space-age/rebar.conf +30 -0
  225. data/tracks/erlang/exercises/space-age/{example.erl → src/example.erl} +1 -1
  226. data/tracks/erlang/exercises/space-age/src/space_age.app.src +9 -0
  227. data/tracks/erlang/exercises/space-age/test/space_age_tests.erl +51 -0
  228. data/tracks/erlang/exercises/strain/include/exercism.hrl +6 -0
  229. data/tracks/erlang/exercises/strain/rebar.conf +30 -0
  230. data/tracks/erlang/exercises/strain/{example.erl → src/example.erl} +1 -1
  231. data/tracks/erlang/exercises/strain/src/strain.app.src +9 -0
  232. data/tracks/erlang/exercises/strain/test/strain_tests.erl +52 -0
  233. data/tracks/erlang/exercises/sum-of-multiples/include/exercism.hrl +6 -0
  234. data/tracks/erlang/exercises/sum-of-multiples/rebar.conf +30 -0
  235. data/tracks/erlang/exercises/sum-of-multiples/{example.erl → src/example.erl} +1 -1
  236. data/tracks/erlang/exercises/sum-of-multiples/src/sum_of_multiples.app.src +9 -0
  237. data/tracks/erlang/exercises/sum-of-multiples/test/sum_of_multiples_tests.erl +39 -0
  238. data/tracks/erlang/exercises/triangle/include/exercism.hrl +6 -0
  239. data/tracks/erlang/exercises/triangle/rebar.conf +30 -0
  240. data/tracks/erlang/exercises/triangle/{example.erl → src/example.erl} +1 -1
  241. data/tracks/erlang/exercises/triangle/src/triangle.app.src +9 -0
  242. data/tracks/erlang/exercises/triangle/{triangle_tests.erl → test/triangle_tests.erl} +19 -18
  243. data/tracks/erlang/exercises/trinary/include/exercism.hrl +6 -0
  244. data/tracks/erlang/exercises/trinary/rebar.conf +30 -0
  245. data/tracks/erlang/exercises/trinary/{example.erl → src/example.erl} +1 -2
  246. data/tracks/erlang/exercises/trinary/src/trinary.app.src +9 -0
  247. data/tracks/erlang/exercises/trinary/test/trinary_tests.erl +36 -0
  248. data/tracks/erlang/exercises/word-count/include/exercism.hrl +6 -0
  249. data/tracks/erlang/exercises/word-count/rebar.conf +30 -0
  250. data/tracks/erlang/exercises/word-count/{example.erl → src/example.erl} +1 -1
  251. data/tracks/erlang/exercises/word-count/src/word_count.app.src +9 -0
  252. data/tracks/erlang/exercises/word-count/{word_count_tests.erl → test/word_count_tests.erl} +4 -2
  253. data/tracks/erlang/exercises/zipper/include/exercism.hrl +6 -0
  254. data/tracks/erlang/exercises/zipper/rebar.conf +30 -0
  255. data/tracks/erlang/exercises/zipper/{example.erl → src/example.erl} +1 -1
  256. data/tracks/erlang/exercises/zipper/src/zipper.app.src +9 -0
  257. data/tracks/erlang/exercises/zipper/test/zipper_tests.erl +100 -0
  258. data/tracks/go/config.json +14 -4
  259. data/tracks/go/exercises/acronym/acronym_test.go +1 -1
  260. data/tracks/go/exercises/all-your-base/all_your_base_test.go +8 -8
  261. data/tracks/go/exercises/luhn/luhn_test.go +6 -6
  262. data/tracks/go/exercises/word-search/word_search_test.go +4 -1
  263. data/tracks/go/exercises/wordy/example.go +2 -0
  264. data/tracks/go/exercises/wordy/wordy_test.go +8 -0
  265. data/tracks/haskell/.travis.yml +3 -57
  266. data/tracks/haskell/README.md +13 -10
  267. data/tracks/haskell/bin/test-all-examples +20 -0
  268. data/tracks/haskell/bin/test-example +73 -0
  269. data/tracks/haskell/bin/test-stub +43 -0
  270. data/tracks/haskell/config.json +0 -1
  271. data/tracks/haskell/exercises/accumulate/examples/fail-reverse/package.yaml +16 -0
  272. data/tracks/haskell/exercises/accumulate/examples/fail-reverse/src/Accumulate.hs +7 -0
  273. data/tracks/haskell/exercises/accumulate/examples/success-standard/src/Accumulate.hs +0 -7
  274. data/tracks/haskell/exercises/atbash-cipher/test/Tests.hs +1 -5
  275. data/tracks/haskell/exercises/forth/test/Tests.hs +1 -4
  276. data/tracks/haskell/exercises/leap/examples/error-nosig/package.yaml +16 -0
  277. data/tracks/haskell/exercises/leap/examples/error-nosig/src/LeapYear.hs +4 -0
  278. data/tracks/haskell/exercises/nucleotide-count/examples/success-standard/src/DNA.hs +2 -5
  279. data/tracks/haskell/exercises/nucleotide-count/src/DNA.hs +1 -4
  280. data/tracks/haskell/exercises/nucleotide-count/test/Tests.hs +3 -22
  281. data/tracks/haskell/exercises/prime-factors/test/Tests.hs +9 -15
  282. data/tracks/haskell/exercises/scrabble-score/test/Tests.hs +1 -5
  283. data/tracks/haskell/exercises/secret-handshake/examples/success-standard/src/SecretHandshake.hs +3 -21
  284. data/tracks/haskell/exercises/secret-handshake/src/SecretHandshake.hs +1 -0
  285. data/tracks/haskell/exercises/secret-handshake/test/Tests.hs +20 -23
  286. data/tracks/haskell/exercises/strain/examples/fail-reverse/package.yaml +16 -0
  287. data/tracks/haskell/exercises/strain/examples/fail-reverse/src/Strain.hs +9 -0
  288. data/tracks/haskell/exercises/triangle/test/Tests.hs +6 -1
  289. data/tracks/julia/config.json +20 -2
  290. data/tracks/julia/exercises/raindrops/example.jl +16 -0
  291. data/tracks/julia/exercises/raindrops/raindrops.jl +3 -0
  292. data/tracks/julia/exercises/raindrops/runtests.jl +72 -0
  293. data/tracks/julia/exercises/secret-handshake/example.jl +12 -0
  294. data/tracks/julia/exercises/secret-handshake/runtests.jl +51 -0
  295. data/tracks/julia/exercises/secret-handshake/secret-handshake.jl +3 -0
  296. metadata +198 -79
  297. data/tracks/erlang/exercises/accumulate/accumulate_tests.erl +0 -28
  298. data/tracks/erlang/exercises/anagram/anagram_tests.erl +0 -39
  299. data/tracks/erlang/exercises/bank-account/bank_account_tests.erl +0 -95
  300. data/tracks/erlang/exercises/circular-buffer/circular_buffer_tests.erl +0 -54
  301. data/tracks/erlang/exercises/clock/clock.erl +0 -14
  302. data/tracks/erlang/exercises/gigasecond/gigasecond_tests.erl +0 -29
  303. data/tracks/erlang/exercises/grade-school/grade_school_tests.erl +0 -49
  304. data/tracks/erlang/exercises/grains/grains_tests.erl +0 -31
  305. data/tracks/erlang/exercises/hamming/dna_tests.erl +0 -21
  306. data/tracks/erlang/exercises/hello-world/hello_world_tests.erl +0 -19
  307. data/tracks/erlang/exercises/largest-series-product/largest_series_product.erl +0 -5
  308. data/tracks/erlang/exercises/largest-series-product/largest_series_product_tests.erl +0 -54
  309. data/tracks/erlang/exercises/leap/leap_tests.erl +0 -20
  310. data/tracks/erlang/exercises/luhn/luhn_tests.erl +0 -19
  311. data/tracks/erlang/exercises/nucleotide-count/dna_tests.erl +0 -27
  312. data/tracks/erlang/exercises/phone-number/phone_tests.erl +0 -29
  313. data/tracks/erlang/exercises/rna-transcription/rna_transcription_tests.erl +0 -24
  314. data/tracks/erlang/exercises/robot-simulator/robot_simulator_tests.erl +0 -96
  315. data/tracks/erlang/exercises/roman-numerals/roman_numerals.erl +0 -6
  316. data/tracks/erlang/exercises/series/series_tests.erl +0 -6
  317. data/tracks/erlang/exercises/space-age/space_age_tests.erl +0 -48
  318. data/tracks/erlang/exercises/strain/strain_tests.erl +0 -49
  319. data/tracks/erlang/exercises/sum-of-multiples/sum_of_multiples_tests.erl +0 -37
  320. data/tracks/erlang/exercises/trinary/trinary_tests.erl +0 -37
  321. data/tracks/erlang/exercises/zipper/zipper_tests.erl +0 -103
  322. data/tracks/haskell/exercises/secret-handshake/.meta/DONT-TEST-STUB +0 -1
  323. data/tracks/haskell/exercises/secret-handshake/HINTS.md +0 -6
@@ -0,0 +1,6 @@
1
+ sut(Module) ->
2
+ {ok, Files} = file:list_dir("./src"),
3
+ case lists:member(atom_to_list(Module) ++ ".erl", Files) of
4
+ true -> Module;
5
+ false -> example
6
+ end.
@@ -0,0 +1,30 @@
1
+ %% Erlang compiler options
2
+ {erl_opts, [debug_info]}.
3
+
4
+ {deps, []}.
5
+
6
+ {dialyzer, [
7
+ {warnings, [underspecs, no_return]},
8
+ {get_warnings, true},
9
+ {plt_apps, top_level_deps}, % top_level_deps | all_deps
10
+ {plt_extra_apps, []},
11
+ {plt_location, local}, % local | "/my/file/name"
12
+ {plt_prefix, "rebar3"},
13
+ {base_plt_apps, [stdlib, kernel, crypto]},
14
+ {base_plt_location, global}, % global | "/my/file/name"
15
+ {base_plt_prefix, "rebar3"}
16
+ ]}.
17
+
18
+ %% eunit:test(Tests)
19
+ {eunit_tests, [{application, beer_song}]}.
20
+ %% Options for eunit:test(Tests, Opts)
21
+ {eunit_opts, [verbose]}.
22
+
23
+ %% == xref ==
24
+
25
+ {xref_warnings, true}.
26
+
27
+ %% xref checks to run
28
+ {xref_checks, [undefined_function_calls, undefined_functions,
29
+ locals_not_used, exports_not_used,
30
+ deprecated_function_calls, deprecated_functions]}.
@@ -1,4 +1,4 @@
1
- -module('largest_series_product').
1
+ -module(example).
2
2
 
3
3
  -export([lsp/2]).
4
4
 
@@ -0,0 +1,9 @@
1
+ {application, largest_series_product,
2
+ [{description, "exercism.io - largest-series-product"},
3
+ {vsn, "git"},
4
+ {modules, []},
5
+ {registered, []},
6
+ {applications, [kernel,
7
+ stdlib]},
8
+ {env, []}
9
+ ]}.
@@ -0,0 +1,57 @@
1
+ -module('largest_series_product_tests').
2
+
3
+ -include("exercism.hrl").
4
+ -include_lib("eunit/include/eunit.hrl").
5
+
6
+ -define(TESTED_MODULE, (sut(largest_series_product))).
7
+
8
+ can_find_the_largest_product_of_2_with_numbers_in_order_test() ->
9
+ ?assertEqual(72, ?TESTED_MODULE:lsp("0123456789", 2)).
10
+
11
+ can_find_the_largest_product_of_2_test() ->
12
+ ?assertEqual(48, ?TESTED_MODULE:lsp("576802143", 2)).
13
+
14
+ finds_the_largest_product_if_span_equals_length_test() ->
15
+ ?assertEqual(18, ?TESTED_MODULE:lsp("29", 2)).
16
+
17
+ can_find_the_largest_product_of_3_with_numbers_in_order_test() ->
18
+ ?assertEqual(504, ?TESTED_MODULE:lsp("0123456789", 3)).
19
+
20
+ can_find_the_largest_product_of_3_test() ->
21
+ ?assertEqual(270, ?TESTED_MODULE:lsp("1027839564", 3)).
22
+
23
+ can_find_the_largest_product_of_5_with_numbers_in_order_test() ->
24
+ ?assertEqual(15120, ?TESTED_MODULE:lsp("0123456789", 5)).
25
+
26
+ can_find_the_largest_product_of_a_big_number_test() ->
27
+ ?assertEqual(23520, ?TESTED_MODULE:lsp("73167176531330624919225119674426574742355349194934", 6)).
28
+
29
+ can_find_the_largest_product_of_a_big_number_ii_test() ->
30
+ ?assertEqual(28350, ?TESTED_MODULE:lsp("52677741234314237566414902593461595376319419139427", 6)).
31
+
32
+ can_find_the_largest_product_of_a_big_number_project_euler_test() ->
33
+ ?assertEqual(23514624000, ?TESTED_MODULE:lsp("7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450", 13)).
34
+
35
+ reports_zero_if_the_only_digits_are_zero_test() ->
36
+ ?assertEqual(0, ?TESTED_MODULE:lsp("0000", 2)).
37
+
38
+ reports_zero_if_all_spans_include_zero_test() ->
39
+ ?assertEqual(0, ?TESTED_MODULE:lsp("99099", 3)).
40
+
41
+ rejects_span_longer_than_string_length_test() ->
42
+ ?assertMatch(error, ?TESTED_MODULE:lsp("123", 4)).
43
+
44
+ reports_1_for_empty_string_and_empty_product_0_span_test() ->
45
+ ?assertEqual(1, ?TESTED_MODULE:lsp("", 0)).
46
+
47
+ reports_1_for_nonempty_string_and_empty_product_0_span_test() ->
48
+ ?assertEqual(1, ?TESTED_MODULE:lsp("123", 0)).
49
+
50
+ rejects_empty_string_and_nonzero_span_test() ->
51
+ ?assertMatch(error, ?TESTED_MODULE:lsp("", 1)).
52
+
53
+ rejects_invalid_character_in_digits_test() ->
54
+ ?assertMatch(error, ?TESTED_MODULE:lsp("1234a5", 2)).
55
+
56
+ rejects_negative_span_test() ->
57
+ ?assertMatch(error, ?TESTED_MODULE:lsp("12345", -1)).
@@ -0,0 +1,6 @@
1
+ sut(Module) ->
2
+ {ok, Files} = file:list_dir("./src"),
3
+ case lists:member(atom_to_list(Module) ++ ".erl", Files) of
4
+ true -> Module;
5
+ false -> example
6
+ end.
@@ -0,0 +1,30 @@
1
+ %% Erlang compiler options
2
+ {erl_opts, [debug_info]}.
3
+
4
+ {deps, []}.
5
+
6
+ {dialyzer, [
7
+ {warnings, [underspecs, no_return]},
8
+ {get_warnings, true},
9
+ {plt_apps, top_level_deps}, % top_level_deps | all_deps
10
+ {plt_extra_apps, []},
11
+ {plt_location, local}, % local | "/my/file/name"
12
+ {plt_prefix, "rebar3"},
13
+ {base_plt_apps, [stdlib, kernel, crypto]},
14
+ {base_plt_location, global}, % global | "/my/file/name"
15
+ {base_plt_prefix, "rebar3"}
16
+ ]}.
17
+
18
+ %% eunit:test(Tests)
19
+ {eunit_tests, [{application, beer_song}]}.
20
+ %% Options for eunit:test(Tests, Opts)
21
+ {eunit_opts, [verbose]}.
22
+
23
+ %% == xref ==
24
+
25
+ {xref_warnings, true}.
26
+
27
+ %% xref checks to run
28
+ {xref_checks, [undefined_function_calls, undefined_functions,
29
+ locals_not_used, exports_not_used,
30
+ deprecated_function_calls, deprecated_functions]}.
@@ -1,4 +1,4 @@
1
- -module(leap).
1
+ -module(example).
2
2
 
3
3
  -export([leap_year/1]).
4
4
 
@@ -0,0 +1,9 @@
1
+ {application, leap,
2
+ [{description, "exercism.io - leap"},
3
+ {vsn, "git"},
4
+ {modules, []},
5
+ {registered, []},
6
+ {applications, [kernel,
7
+ stdlib]},
8
+ {env, []}
9
+ ]}.
@@ -0,0 +1,18 @@
1
+ -module(leap_tests).
2
+
3
+ -include("exercism.hrl").
4
+ -include_lib("eunit/include/eunit.hrl").
5
+
6
+ -define(TESTED_MODULE, (sut(leap))).
7
+
8
+ leap_year_test() ->
9
+ ?assert(?TESTED_MODULE:leap_year(1996)).
10
+
11
+ non_leap_year_test() ->
12
+ ?assertNot(?TESTED_MODULE:leap_year(1997)).
13
+
14
+ century_test() ->
15
+ ?assertNot(?TESTED_MODULE:leap_year(1900)).
16
+
17
+ fourth_century_test() ->
18
+ ?assert(?TESTED_MODULE:leap_year(2400)).
@@ -0,0 +1,6 @@
1
+ sut(Module) ->
2
+ {ok, Files} = file:list_dir("./src"),
3
+ case lists:member(atom_to_list(Module) ++ ".erl", Files) of
4
+ true -> Module;
5
+ false -> example
6
+ end.
@@ -0,0 +1,30 @@
1
+ %% Erlang compiler options
2
+ {erl_opts, [debug_info]}.
3
+
4
+ {deps, []}.
5
+
6
+ {dialyzer, [
7
+ {warnings, [underspecs, no_return]},
8
+ {get_warnings, true},
9
+ {plt_apps, top_level_deps}, % top_level_deps | all_deps
10
+ {plt_extra_apps, []},
11
+ {plt_location, local}, % local | "/my/file/name"
12
+ {plt_prefix, "rebar3"},
13
+ {base_plt_apps, [stdlib, kernel, crypto]},
14
+ {base_plt_location, global}, % global | "/my/file/name"
15
+ {base_plt_prefix, "rebar3"}
16
+ ]}.
17
+
18
+ %% eunit:test(Tests)
19
+ {eunit_tests, [{application, beer_song}]}.
20
+ %% Options for eunit:test(Tests, Opts)
21
+ {eunit_opts, [verbose]}.
22
+
23
+ %% == xref ==
24
+
25
+ {xref_warnings, true}.
26
+
27
+ %% xref checks to run
28
+ {xref_checks, [undefined_function_calls, undefined_functions,
29
+ locals_not_used, exports_not_used,
30
+ deprecated_function_calls, deprecated_functions]}.
@@ -1,4 +1,4 @@
1
- -module(luhn).
1
+ -module(example).
2
2
  -export([valid/1, create/1, checksum/1]).
3
3
 
4
4
 
@@ -0,0 +1,9 @@
1
+ {application, luhn,
2
+ [{description, "exercism.io - luhn"},
3
+ {vsn, "git"},
4
+ {modules, []},
5
+ {registered, []},
6
+ {applications, [kernel,
7
+ stdlib]},
8
+ {env, []}
9
+ ]}.
@@ -0,0 +1,18 @@
1
+ -module(luhn_tests).
2
+
3
+ -include("exercism.hrl").
4
+ -include_lib("eunit/include/eunit.hrl").
5
+
6
+ -define(TESTED_MODULE, (sut(luhn))).
7
+
8
+ invalid_test() ->
9
+ ?assertNot(?TESTED_MODULE:valid("1111")),
10
+ ?assertNot(?TESTED_MODULE:valid("738")).
11
+
12
+ valid_test() ->
13
+ ?assert(?TESTED_MODULE:valid("8739567")),
14
+ ?assert(?TESTED_MODULE:valid("8763")),
15
+ ?assert(?TESTED_MODULE:valid("2323 2005 7766 3554")).
16
+
17
+ create_test() ->
18
+ ?assertEqual("2323 2005 7766 3554", ?TESTED_MODULE:create("2323 2005 7766 355")).
@@ -0,0 +1,6 @@
1
+ sut(Module) ->
2
+ {ok, Files} = file:list_dir("./src"),
3
+ case lists:member(atom_to_list(Module) ++ ".erl", Files) of
4
+ true -> Module;
5
+ false -> example
6
+ end.
@@ -0,0 +1,30 @@
1
+ %% Erlang compiler options
2
+ {erl_opts, [debug_info]}.
3
+
4
+ {deps, []}.
5
+
6
+ {dialyzer, [
7
+ {warnings, [underspecs, no_return]},
8
+ {get_warnings, true},
9
+ {plt_apps, top_level_deps}, % top_level_deps | all_deps
10
+ {plt_extra_apps, []},
11
+ {plt_location, local}, % local | "/my/file/name"
12
+ {plt_prefix, "rebar3"},
13
+ {base_plt_apps, [stdlib, kernel, crypto]},
14
+ {base_plt_location, global}, % global | "/my/file/name"
15
+ {base_plt_prefix, "rebar3"}
16
+ ]}.
17
+
18
+ %% eunit:test(Tests)
19
+ {eunit_tests, [{application, beer_song}]}.
20
+ %% Options for eunit:test(Tests, Opts)
21
+ {eunit_opts, [verbose]}.
22
+
23
+ %% == xref ==
24
+
25
+ {xref_warnings, true}.
26
+
27
+ %% xref checks to run
28
+ {xref_checks, [undefined_function_calls, undefined_functions,
29
+ locals_not_used, exports_not_used,
30
+ deprecated_function_calls, deprecated_functions]}.
@@ -1,4 +1,4 @@
1
- -module(meetup).
1
+ -module(example).
2
2
  -export([schedule/4]).
3
3
 
4
4
  -type year() :: non_neg_integer().
@@ -31,4 +31,3 @@ day_range(teenth, _Year, _Month) ->
31
31
  day_range(last, Year, Month) ->
32
32
  LastDay = calendar:last_day_of_the_month(Year, Month),
33
33
  lists:seq(LastDay - 6, LastDay).
34
-
@@ -0,0 +1,9 @@
1
+ {application, meetup,
2
+ [{description, "exercism.io - meetup"},
3
+ {vsn, "git"},
4
+ {modules, []},
5
+ {registered, []},
6
+ {applications, [kernel,
7
+ stdlib]},
8
+ {env, []}
9
+ ]}.
@@ -1,371 +1,370 @@
1
1
  -module(meetup_tests).
2
+
3
+ -include("exercism.hrl").
2
4
  -include_lib("eunit/include/eunit.hrl").
3
5
 
4
- % To run tests:
5
- % erl -make
6
- % erl -noshell -eval "eunittest(meetup, [verbose])" -s init stop
6
+ -define(TESTED_MODULE, (sut(meetup))).
7
7
 
8
8
  monteenth_of_may_2013_test() ->
9
9
  ?assertEqual({2013, 5, 13},
10
- meetup:schedule(2013, 5, monday, teenth)).
10
+ ?TESTED_MODULE:schedule(2013, 5, monday, teenth)).
11
11
 
12
12
  monteenth_of_august_2013_test() ->
13
13
  ?assertEqual({2013, 8, 19},
14
- meetup:schedule(2013, 8, monday, teenth)).
14
+ ?TESTED_MODULE:schedule(2013, 8, monday, teenth)).
15
15
 
16
16
  monteenth_of_september_2013_test() ->
17
17
  ?assertEqual({2013, 9, 16},
18
- meetup:schedule(2013, 9, monday, teenth)).
18
+ ?TESTED_MODULE:schedule(2013, 9, monday, teenth)).
19
19
 
20
20
  tuesteenth_of_march_2013_test() ->
21
21
  ?assertEqual({2013, 3, 19},
22
- meetup:schedule(2013, 3, tuesday, teenth)).
22
+ ?TESTED_MODULE:schedule(2013, 3, tuesday, teenth)).
23
23
 
24
24
  tuesteenth_of_april_2013_test() ->
25
25
  ?assertEqual({2013, 4, 16},
26
- meetup:schedule(2013, 4, tuesday, teenth)).
26
+ ?TESTED_MODULE:schedule(2013, 4, tuesday, teenth)).
27
27
 
28
28
  tuesteenth_of_august_2013_test() ->
29
29
  ?assertEqual({2013, 8, 13},
30
- meetup:schedule(2013, 8, tuesday, teenth)).
30
+ ?TESTED_MODULE:schedule(2013, 8, tuesday, teenth)).
31
31
 
32
32
  wednesteenth_of_january_2013_test() ->
33
33
  ?assertEqual({2013, 1, 16},
34
- meetup:schedule(2013, 1, wednesday, teenth)).
34
+ ?TESTED_MODULE:schedule(2013, 1, wednesday, teenth)).
35
35
 
36
36
  wednesteenth_of_february_2013_test() ->
37
37
  ?assertEqual({2013, 2, 13},
38
- meetup:schedule(2013, 2, wednesday, teenth)).
38
+ ?TESTED_MODULE:schedule(2013, 2, wednesday, teenth)).
39
39
 
40
40
  wednesteenth_of_june_2013_test() ->
41
41
  ?assertEqual({2013, 6, 19},
42
- meetup:schedule(2013, 6, wednesday, teenth)).
42
+ ?TESTED_MODULE:schedule(2013, 6, wednesday, teenth)).
43
43
 
44
44
  thursteenth_of_may_2013_test() ->
45
45
  ?assertEqual({2013, 5, 16},
46
- meetup:schedule(2013, 5, thursday, teenth)).
46
+ ?TESTED_MODULE:schedule(2013, 5, thursday, teenth)).
47
47
 
48
48
  thursteenth_of_june_2013_test() ->
49
49
  ?assertEqual({2013, 6, 13},
50
- meetup:schedule(2013, 6, thursday, teenth)).
50
+ ?TESTED_MODULE:schedule(2013, 6, thursday, teenth)).
51
51
 
52
52
  thursteenth_of_september_2013_test() ->
53
53
  ?assertEqual({2013, 9, 19},
54
- meetup:schedule(2013, 9, thursday, teenth)).
54
+ ?TESTED_MODULE:schedule(2013, 9, thursday, teenth)).
55
55
 
56
56
  friteenth_of_april_2013_test() ->
57
57
  ?assertEqual({2013, 4, 19},
58
- meetup:schedule(2013, 4, friday, teenth)).
58
+ ?TESTED_MODULE:schedule(2013, 4, friday, teenth)).
59
59
 
60
60
  friteenth_of_august_2013_test() ->
61
61
  ?assertEqual({2013, 8, 16},
62
- meetup:schedule(2013, 8, friday, teenth)).
62
+ ?TESTED_MODULE:schedule(2013, 8, friday, teenth)).
63
63
 
64
64
  friteenth_of_september_2013_test() ->
65
65
  ?assertEqual({2013, 9, 13},
66
- meetup:schedule(2013, 9, friday, teenth)).
66
+ ?TESTED_MODULE:schedule(2013, 9, friday, teenth)).
67
67
 
68
68
  saturteenth_of_february_2013_test() ->
69
69
  ?assertEqual({2013, 2, 16},
70
- meetup:schedule(2013, 2, saturday, teenth)).
70
+ ?TESTED_MODULE:schedule(2013, 2, saturday, teenth)).
71
71
 
72
72
  saturteenth_of_april_2013_test() ->
73
73
  ?assertEqual({2013, 4, 13},
74
- meetup:schedule(2013, 4, saturday, teenth)).
74
+ ?TESTED_MODULE:schedule(2013, 4, saturday, teenth)).
75
75
 
76
76
  saturteenth_of_october_2013_test() ->
77
77
  ?assertEqual({2013, 10, 19},
78
- meetup:schedule(2013, 10, saturday, teenth)).
78
+ ?TESTED_MODULE:schedule(2013, 10, saturday, teenth)).
79
79
 
80
80
  sunteenth_of_map_2013_test() ->
81
81
  ?assertEqual({2013, 5, 19},
82
- meetup:schedule(2013, 5, sunday, teenth)).
82
+ ?TESTED_MODULE:schedule(2013, 5, sunday, teenth)).
83
83
 
84
84
  sunteenth_of_june_2013_test() ->
85
85
  ?assertEqual({2013, 6, 16},
86
- meetup:schedule(2013, 6, sunday, teenth)).
86
+ ?TESTED_MODULE:schedule(2013, 6, sunday, teenth)).
87
87
 
88
88
  sunteenth_of_october_2013_test() ->
89
89
  ?assertEqual({2013, 10, 13},
90
- meetup:schedule(2013, 10, sunday, teenth)).
90
+ ?TESTED_MODULE:schedule(2013, 10, sunday, teenth)).
91
91
 
92
92
  first_monday_of_march_2013_test() ->
93
93
  ?assertEqual({2013, 3, 4},
94
- meetup:schedule(2013, 3, monday, first)).
94
+ ?TESTED_MODULE:schedule(2013, 3, monday, first)).
95
95
 
96
96
  first_monday_of_april_2013_test() ->
97
97
  ?assertEqual({2013, 4, 1},
98
- meetup:schedule(2013, 4, monday, first)).
98
+ ?TESTED_MODULE:schedule(2013, 4, monday, first)).
99
99
 
100
100
  first_tuesday_of_may_2013_test() ->
101
101
  ?assertEqual({2013, 5, 7},
102
- meetup:schedule(2013, 5, tuesday, first)).
102
+ ?TESTED_MODULE:schedule(2013, 5, tuesday, first)).
103
103
 
104
104
  first_tuesday_of_june_2013_test() ->
105
105
  ?assertEqual({2013, 6, 4},
106
- meetup:schedule(2013, 6, tuesday, first)).
106
+ ?TESTED_MODULE:schedule(2013, 6, tuesday, first)).
107
107
 
108
108
  first_wednesday_of_july_2013_test() ->
109
109
  ?assertEqual({2013, 7, 3},
110
- meetup:schedule(2013, 7, wednesday, first)).
110
+ ?TESTED_MODULE:schedule(2013, 7, wednesday, first)).
111
111
 
112
112
  first_wednesday_of_august_2013_test() ->
113
113
  ?assertEqual({2013, 8, 7},
114
- meetup:schedule(2013, 8, wednesday, first)).
114
+ ?TESTED_MODULE:schedule(2013, 8, wednesday, first)).
115
115
 
116
116
  first_thursday_of_september_2013_test() ->
117
117
  ?assertEqual({2013, 9, 5},
118
- meetup:schedule(2013, 9, thursday, first)).
118
+ ?TESTED_MODULE:schedule(2013, 9, thursday, first)).
119
119
 
120
120
  first_thursday_of_october_2013_test() ->
121
121
  ?assertEqual({2013, 10, 3},
122
- meetup:schedule(2013, 10, thursday, first)).
122
+ ?TESTED_MODULE:schedule(2013, 10, thursday, first)).
123
123
 
124
124
  first_friday_of_november_2013_test() ->
125
125
  ?assertEqual({2013, 11, 1},
126
- meetup:schedule(2013, 11, friday, first)).
126
+ ?TESTED_MODULE:schedule(2013, 11, friday, first)).
127
127
 
128
128
  first_friday_of_december_2013_test() ->
129
129
  ?assertEqual({2013, 12, 6},
130
- meetup:schedule(2013, 12, friday, first)).
130
+ ?TESTED_MODULE:schedule(2013, 12, friday, first)).
131
131
 
132
132
  first_saturday_of_january_2013_test() ->
133
133
  ?assertEqual({2013, 1, 5},
134
- meetup:schedule(2013, 1, saturday, first)).
134
+ ?TESTED_MODULE:schedule(2013, 1, saturday, first)).
135
135
 
136
136
  first_saturday_of_february_2013_test() ->
137
137
  ?assertEqual({2013, 2, 2},
138
- meetup:schedule(2013, 2, saturday, first)).
138
+ ?TESTED_MODULE:schedule(2013, 2, saturday, first)).
139
139
 
140
140
  first_sunday_of_march_2013_test() ->
141
141
  ?assertEqual({2013, 3, 3},
142
- meetup:schedule(2013, 3, sunday, first)).
142
+ ?TESTED_MODULE:schedule(2013, 3, sunday, first)).
143
143
 
144
144
  first_sunday_of_april_2013_test() ->
145
145
  ?assertEqual({2013, 4, 7},
146
- meetup:schedule(2013, 4, sunday, first)).
146
+ ?TESTED_MODULE:schedule(2013, 4, sunday, first)).
147
147
 
148
148
  second_monday_of_march_2013_test() ->
149
149
  ?assertEqual({2013, 3, 11},
150
- meetup:schedule(2013, 3, monday, second)).
150
+ ?TESTED_MODULE:schedule(2013, 3, monday, second)).
151
151
 
152
152
  second_monday_of_april_2013_test() ->
153
153
  ?assertEqual({2013, 4, 8},
154
- meetup:schedule(2013, 4, monday, second)).
154
+ ?TESTED_MODULE:schedule(2013, 4, monday, second)).
155
155
 
156
156
  second_tuesday_of_may_2013_test() ->
157
157
  ?assertEqual({2013, 5, 14},
158
- meetup:schedule(2013, 5, tuesday, second)).
158
+ ?TESTED_MODULE:schedule(2013, 5, tuesday, second)).
159
159
 
160
160
  second_tuesday_of_june_2013_test() ->
161
161
  ?assertEqual({2013, 6, 11},
162
- meetup:schedule(2013, 6, tuesday, second)).
162
+ ?TESTED_MODULE:schedule(2013, 6, tuesday, second)).
163
163
 
164
164
  second_wednesday_of_july_2013_test() ->
165
165
  ?assertEqual({2013, 7, 10},
166
- meetup:schedule(2013, 7, wednesday, second)).
166
+ ?TESTED_MODULE:schedule(2013, 7, wednesday, second)).
167
167
 
168
168
  second_wednesday_of_august_2013_test() ->
169
169
  ?assertEqual({2013, 8, 14},
170
- meetup:schedule(2013, 8, wednesday, second)).
170
+ ?TESTED_MODULE:schedule(2013, 8, wednesday, second)).
171
171
 
172
172
  second_thursday_of_september_2013_test() ->
173
173
  ?assertEqual({2013, 9, 12},
174
- meetup:schedule(2013, 9, thursday, second)).
174
+ ?TESTED_MODULE:schedule(2013, 9, thursday, second)).
175
175
 
176
176
  second_thursday_of_october_2013_test() ->
177
177
  ?assertEqual({2013, 10, 10},
178
- meetup:schedule(2013, 10, thursday, second)).
178
+ ?TESTED_MODULE:schedule(2013, 10, thursday, second)).
179
179
 
180
180
  second_friday_of_november_2013_test() ->
181
181
  ?assertEqual({2013, 11, 8},
182
- meetup:schedule(2013, 11, friday, second)).
182
+ ?TESTED_MODULE:schedule(2013, 11, friday, second)).
183
183
 
184
184
  second_friday_of_december_2013_test() ->
185
185
  ?assertEqual({2013, 12, 13},
186
- meetup:schedule(2013, 12, friday, second)).
186
+ ?TESTED_MODULE:schedule(2013, 12, friday, second)).
187
187
 
188
188
  second_saturday_of_january_2013_test() ->
189
189
  ?assertEqual({2013, 1, 12},
190
- meetup:schedule(2013, 1, saturday, second)).
190
+ ?TESTED_MODULE:schedule(2013, 1, saturday, second)).
191
191
 
192
192
  second_saturday_of_february_2013_test() ->
193
193
  ?assertEqual({2013, 2, 9},
194
- meetup:schedule(2013, 2, saturday, second)).
194
+ ?TESTED_MODULE:schedule(2013, 2, saturday, second)).
195
195
 
196
196
  second_sunday_of_march_2013_test() ->
197
197
  ?assertEqual({2013, 3, 10},
198
- meetup:schedule(2013, 3, sunday, second)).
198
+ ?TESTED_MODULE:schedule(2013, 3, sunday, second)).
199
199
 
200
200
  second_sunday_of_april_2013_test() ->
201
201
  ?assertEqual({2013, 4, 14},
202
- meetup:schedule(2013, 4, sunday, second)).
202
+ ?TESTED_MODULE:schedule(2013, 4, sunday, second)).
203
203
 
204
204
  third_monday_of_march_2013_test() ->
205
205
  ?assertEqual({2013, 3, 18},
206
- meetup:schedule(2013, 3, monday, third)).
206
+ ?TESTED_MODULE:schedule(2013, 3, monday, third)).
207
207
 
208
208
  third_monday_of_april_2013_test() ->
209
209
  ?assertEqual({2013, 4, 15},
210
- meetup:schedule(2013, 4, monday, third)).
210
+ ?TESTED_MODULE:schedule(2013, 4, monday, third)).
211
211
 
212
212
  third_tuesday_of_may_2013_test() ->
213
213
  ?assertEqual({2013, 5, 21},
214
- meetup:schedule(2013, 5, tuesday, third)).
214
+ ?TESTED_MODULE:schedule(2013, 5, tuesday, third)).
215
215
 
216
216
  third_tuesday_of_june_2013_test() ->
217
217
  ?assertEqual({2013, 6, 18},
218
- meetup:schedule(2013, 6, tuesday, third)).
218
+ ?TESTED_MODULE:schedule(2013, 6, tuesday, third)).
219
219
 
220
220
  third_wednesday_of_july_2013_test() ->
221
221
  ?assertEqual({2013, 7, 17},
222
- meetup:schedule(2013, 7, wednesday, third)).
222
+ ?TESTED_MODULE:schedule(2013, 7, wednesday, third)).
223
223
 
224
224
  third_wednesday_of_august_2013_test() ->
225
225
  ?assertEqual({2013, 8, 21},
226
- meetup:schedule(2013, 8, wednesday, third)).
226
+ ?TESTED_MODULE:schedule(2013, 8, wednesday, third)).
227
227
 
228
228
  third_thursday_of_september_2013_test() ->
229
229
  ?assertEqual({2013, 9, 19},
230
- meetup:schedule(2013, 9, thursday, third)).
230
+ ?TESTED_MODULE:schedule(2013, 9, thursday, third)).
231
231
 
232
232
  third_thursday_of_october_2013_test() ->
233
233
  ?assertEqual({2013, 10, 17},
234
- meetup:schedule(2013, 10, thursday, third)).
234
+ ?TESTED_MODULE:schedule(2013, 10, thursday, third)).
235
235
 
236
236
  third_friday_of_november_2013_test() ->
237
237
  ?assertEqual({2013, 11, 15},
238
- meetup:schedule(2013, 11, friday, third)).
238
+ ?TESTED_MODULE:schedule(2013, 11, friday, third)).
239
239
 
240
240
  third_friday_of_december_2013_test() ->
241
241
  ?assertEqual({2013, 12, 20},
242
- meetup:schedule(2013, 12, friday, third)).
242
+ ?TESTED_MODULE:schedule(2013, 12, friday, third)).
243
243
 
244
244
  third_saturday_of_january_2013_test() ->
245
245
  ?assertEqual({2013, 1, 19},
246
- meetup:schedule(2013, 1, saturday, third)).
246
+ ?TESTED_MODULE:schedule(2013, 1, saturday, third)).
247
247
 
248
248
  third_saturday_of_february_2013_test() ->
249
249
  ?assertEqual({2013, 2, 16},
250
- meetup:schedule(2013, 2, saturday, third)).
250
+ ?TESTED_MODULE:schedule(2013, 2, saturday, third)).
251
251
 
252
252
  third_sunday_of_march_2013_test() ->
253
253
  ?assertEqual({2013, 3, 17},
254
- meetup:schedule(2013, 3, sunday, third)).
254
+ ?TESTED_MODULE:schedule(2013, 3, sunday, third)).
255
255
 
256
256
  third_sunday_of_april_2013_test() ->
257
257
  ?assertEqual({2013, 4, 21},
258
- meetup:schedule(2013, 4, sunday, third)).
258
+ ?TESTED_MODULE:schedule(2013, 4, sunday, third)).
259
259
 
260
260
  fourth_monday_of_march_2013_test() ->
261
261
  ?assertEqual({2013, 3, 25},
262
- meetup:schedule(2013, 3, monday, fourth)).
262
+ ?TESTED_MODULE:schedule(2013, 3, monday, fourth)).
263
263
 
264
264
  fourth_monday_of_april_2013_test() ->
265
265
  ?assertEqual({2013, 4, 22},
266
- meetup:schedule(2013, 4, monday, fourth)).
266
+ ?TESTED_MODULE:schedule(2013, 4, monday, fourth)).
267
267
 
268
268
  fourth_tuesday_of_may_2013_test() ->
269
269
  ?assertEqual({2013, 5, 28},
270
- meetup:schedule(2013, 5, tuesday, fourth)).
270
+ ?TESTED_MODULE:schedule(2013, 5, tuesday, fourth)).
271
271
 
272
272
  fourth_tuesday_of_june_2013_test() ->
273
273
  ?assertEqual({2013, 6, 25},
274
- meetup:schedule(2013, 6, tuesday, fourth)).
274
+ ?TESTED_MODULE:schedule(2013, 6, tuesday, fourth)).
275
275
 
276
276
  fourth_wednesday_of_july_2013_test() ->
277
277
  ?assertEqual({2013, 7, 24},
278
- meetup:schedule(2013, 7, wednesday, fourth)).
278
+ ?TESTED_MODULE:schedule(2013, 7, wednesday, fourth)).
279
279
 
280
280
  fourth_wednesday_of_august_2013_test() ->
281
281
  ?assertEqual({2013, 8, 28},
282
- meetup:schedule(2013, 8, wednesday, fourth)).
282
+ ?TESTED_MODULE:schedule(2013, 8, wednesday, fourth)).
283
283
 
284
284
  fourth_thursday_of_september_2013_test() ->
285
285
  ?assertEqual({2013, 9, 26},
286
- meetup:schedule(2013, 9, thursday, fourth)).
286
+ ?TESTED_MODULE:schedule(2013, 9, thursday, fourth)).
287
287
 
288
288
  fourth_thursday_of_october_2013_test() ->
289
289
  ?assertEqual({2013, 10, 24},
290
- meetup:schedule(2013, 10, thursday, fourth)).
290
+ ?TESTED_MODULE:schedule(2013, 10, thursday, fourth)).
291
291
 
292
292
  fourth_friday_of_november_2013_test() ->
293
293
  ?assertEqual({2013, 11, 22},
294
- meetup:schedule(2013, 11, friday, fourth)).
294
+ ?TESTED_MODULE:schedule(2013, 11, friday, fourth)).
295
295
 
296
296
  fourth_friday_of_december_2013_test() ->
297
297
  ?assertEqual({2013, 12, 27},
298
- meetup:schedule(2013, 12, friday, fourth)).
298
+ ?TESTED_MODULE:schedule(2013, 12, friday, fourth)).
299
299
 
300
300
  fourth_saturday_of_january_2013_test() ->
301
301
  ?assertEqual({2013, 1, 26},
302
- meetup:schedule(2013, 1, saturday, fourth)).
302
+ ?TESTED_MODULE:schedule(2013, 1, saturday, fourth)).
303
303
 
304
304
  fourth_saturday_of_february_2013_test() ->
305
305
  ?assertEqual({2013, 2, 23},
306
- meetup:schedule(2013, 2, saturday, fourth)).
306
+ ?TESTED_MODULE:schedule(2013, 2, saturday, fourth)).
307
307
 
308
308
  fourth_sunday_of_march_2013_test() ->
309
309
  ?assertEqual({2013, 3, 24},
310
- meetup:schedule(2013, 3, sunday, fourth)).
310
+ ?TESTED_MODULE:schedule(2013, 3, sunday, fourth)).
311
311
 
312
312
  fourth_sunday_of_april_2013_test() ->
313
313
  ?assertEqual({2013, 4, 28},
314
- meetup:schedule(2013, 4, sunday, fourth)).
314
+ ?TESTED_MODULE:schedule(2013, 4, sunday, fourth)).
315
315
 
316
316
  last_monday_of_march_2013_test() ->
317
317
  ?assertEqual({2013, 3, 25},
318
- meetup:schedule(2013, 3, monday, last)).
318
+ ?TESTED_MODULE:schedule(2013, 3, monday, last)).
319
319
 
320
320
  last_monday_of_april_2013_test() ->
321
321
  ?assertEqual({2013, 4, 29},
322
- meetup:schedule(2013, 4, monday, last)).
322
+ ?TESTED_MODULE:schedule(2013, 4, monday, last)).
323
323
 
324
324
  last_tuesday_of_may_2013_test() ->
325
325
  ?assertEqual({2013, 5, 28},
326
- meetup:schedule(2013, 5, tuesday, last)).
326
+ ?TESTED_MODULE:schedule(2013, 5, tuesday, last)).
327
327
 
328
328
  last_tuesday_of_june_2013_test() ->
329
329
  ?assertEqual({2013, 6, 25},
330
- meetup:schedule(2013, 6, tuesday, last)).
330
+ ?TESTED_MODULE:schedule(2013, 6, tuesday, last)).
331
331
 
332
332
  last_wednesday_of_july_2013_test() ->
333
333
  ?assertEqual({2013, 7, 31},
334
- meetup:schedule(2013, 7, wednesday, last)).
334
+ ?TESTED_MODULE:schedule(2013, 7, wednesday, last)).
335
335
 
336
336
  last_wednesday_of_august_2013_test() ->
337
337
  ?assertEqual({2013, 8, 28},
338
- meetup:schedule(2013, 8, wednesday, last)).
338
+ ?TESTED_MODULE:schedule(2013, 8, wednesday, last)).
339
339
 
340
340
  last_thursday_of_september_2013_test() ->
341
341
  ?assertEqual({2013, 9, 26},
342
- meetup:schedule(2013, 9, thursday, last)).
342
+ ?TESTED_MODULE:schedule(2013, 9, thursday, last)).
343
343
 
344
344
  last_thursday_of_october_2013_test() ->
345
345
  ?assertEqual({2013, 10, 31},
346
- meetup:schedule(2013, 10, thursday, last)).
346
+ ?TESTED_MODULE:schedule(2013, 10, thursday, last)).
347
347
 
348
348
  last_friday_of_november_2013_test() ->
349
349
  ?assertEqual({2013, 11, 29},
350
- meetup:schedule(2013, 11, friday, last)).
350
+ ?TESTED_MODULE:schedule(2013, 11, friday, last)).
351
351
 
352
352
  last_friday_of_december_2013_test() ->
353
353
  ?assertEqual({2013, 12, 27},
354
- meetup:schedule(2013, 12, friday, last)).
354
+ ?TESTED_MODULE:schedule(2013, 12, friday, last)).
355
355
 
356
356
  last_saturday_of_january_2013_test() ->
357
357
  ?assertEqual({2013, 1, 26},
358
- meetup:schedule(2013, 1, saturday, last)).
358
+ ?TESTED_MODULE:schedule(2013, 1, saturday, last)).
359
359
 
360
360
  last_saturday_of_february_2013_test() ->
361
361
  ?assertEqual({2013, 2, 23},
362
- meetup:schedule(2013, 2, saturday, last)).
362
+ ?TESTED_MODULE:schedule(2013, 2, saturday, last)).
363
363
 
364
364
  last_sunday_of_march_2013_test() ->
365
365
  ?assertEqual({2013, 3, 31},
366
- meetup:schedule(2013, 3, sunday, last)).
366
+ ?TESTED_MODULE:schedule(2013, 3, sunday, last)).
367
367
 
368
368
  last_sunday_of_april_2013_test() ->
369
369
  ?assertEqual({2013, 4, 28},
370
- meetup:schedule(2013, 4, sunday, last)).
371
-
370
+ ?TESTED_MODULE:schedule(2013, 4, sunday, last)).