trackler 2.2.1.40 → 2.2.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/lib/trackler/version.rb +1 -1
  4. data/problem-specifications/exercises/dot-dsl/metadata.yml +1 -0
  5. data/problem-specifications/exercises/etl/metadata.yml +1 -0
  6. data/problem-specifications/exercises/isogram/canonical-data.json +3 -3
  7. data/problem-specifications/exercises/ocr-numbers/metadata.yml +1 -0
  8. data/problem-specifications/exercises/pascals-triangle/metadata.yml +1 -0
  9. data/problem-specifications/exercises/pov/metadata.yml +1 -0
  10. data/problem-specifications/exercises/rna-transcription/metadata.yml +1 -0
  11. data/problem-specifications/exercises/sgf-parsing/metadata.yml +1 -0
  12. data/tracks/c/exercises/all-your-base/src/example.c +14 -14
  13. data/tracks/c/exercises/all-your-base/src/example.h +2 -2
  14. data/tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon +1 -1
  15. data/tracks/ceylon/exercises/rna-transcription/source/rnatranscription/{RNAtest.ceylon → RNATest.ceylon} +0 -0
  16. data/tracks/cfml/.git +1 -0
  17. data/tracks/cfml/.gitignore +5 -0
  18. data/tracks/cfml/.travis.yml +18 -0
  19. data/tracks/cfml/CONTRIBUTING.md +10 -0
  20. data/tracks/cfml/LICENSE +21 -0
  21. data/tracks/cfml/README.md +92 -0
  22. data/tracks/cfml/bin/fetch-configlet +32 -0
  23. data/tracks/cfml/config/exercise_readme.go.tmpl +16 -0
  24. data/tracks/cfml/config/maintainers.json +13 -0
  25. data/tracks/cfml/config.json +223 -0
  26. data/tracks/cfml/docs/ABOUT.md +10 -0
  27. data/tracks/cfml/docs/EXERCISE_README_INSERT.md +15 -0
  28. data/tracks/cfml/docs/INSTALLATION.md +35 -0
  29. data/tracks/cfml/docs/LEARNING.md +37 -0
  30. data/tracks/cfml/docs/RESOURCES.md +29 -0
  31. data/tracks/cfml/docs/SNIPPET.txt +8 -0
  32. data/tracks/cfml/docs/TESTS.md +13 -0
  33. data/tracks/cfml/exercises/acronym/.meta/HINTS.md +0 -0
  34. data/tracks/cfml/exercises/acronym/Acronym.cfc +13 -0
  35. data/tracks/cfml/exercises/acronym/AcronymTest.cfc +43 -0
  36. data/tracks/cfml/exercises/acronym/Solution.cfc +22 -0
  37. data/tracks/cfml/exercises/acronym/SolutionTest.cfc +7 -0
  38. data/tracks/cfml/exercises/acronym/TestRunner.cfc +103 -0
  39. data/tracks/cfml/exercises/acronym/box.json +8 -0
  40. data/tracks/cfml/exercises/acronym/index.cfm +37 -0
  41. data/tracks/cfml/exercises/atbash-cipher/.meta/HINTS.md +0 -0
  42. data/tracks/cfml/exercises/atbash-cipher/AtbashCipher.cfc +14 -0
  43. data/tracks/cfml/exercises/atbash-cipher/AtbashCipherTest.cfc +71 -0
  44. data/tracks/cfml/exercises/atbash-cipher/Solution.cfc +56 -0
  45. data/tracks/cfml/exercises/atbash-cipher/SolutionTest.cfc +7 -0
  46. data/tracks/cfml/exercises/atbash-cipher/TestRunner.cfc +103 -0
  47. data/tracks/cfml/exercises/atbash-cipher/box.json +8 -0
  48. data/tracks/cfml/exercises/atbash-cipher/index.cfm +37 -0
  49. data/tracks/cfml/exercises/bob/.meta/HINTS.md +0 -0
  50. data/tracks/cfml/exercises/bob/Bob.cfc +13 -0
  51. data/tracks/cfml/exercises/bob/BobTest.cfc +115 -0
  52. data/tracks/cfml/exercises/bob/Solution.cfc +27 -0
  53. data/tracks/cfml/exercises/bob/SolutionTest.cfc +7 -0
  54. data/tracks/cfml/exercises/bob/TestRunner.cfc +103 -0
  55. data/tracks/cfml/exercises/bob/box.json +8 -0
  56. data/tracks/cfml/exercises/bob/index.cfm +37 -0
  57. data/tracks/cfml/exercises/diamond/.meta/HINTS.md +0 -0
  58. data/tracks/cfml/exercises/diamond/Diamond.cfc +13 -0
  59. data/tracks/cfml/exercises/diamond/DiamondTest.cfc +35 -0
  60. data/tracks/cfml/exercises/diamond/Solution.cfc +35 -0
  61. data/tracks/cfml/exercises/diamond/SolutionTest.cfc +7 -0
  62. data/tracks/cfml/exercises/diamond/TestRunner.cfc +103 -0
  63. data/tracks/cfml/exercises/diamond/box.json +8 -0
  64. data/tracks/cfml/exercises/diamond/index.cfm +37 -0
  65. data/tracks/cfml/exercises/difference-of-squares/.meta/HINTS.md +0 -0
  66. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquares.cfc +18 -0
  67. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquaresTest.cfc +63 -0
  68. data/tracks/cfml/exercises/difference-of-squares/Solution.cfc +28 -0
  69. data/tracks/cfml/exercises/difference-of-squares/SolutionTest.cfc +7 -0
  70. data/tracks/cfml/exercises/difference-of-squares/TestRunner.cfc +103 -0
  71. data/tracks/cfml/exercises/difference-of-squares/box.json +8 -0
  72. data/tracks/cfml/exercises/difference-of-squares/index.cfm +37 -0
  73. data/tracks/cfml/exercises/flatten-array/.meta/HINTS.md +0 -0
  74. data/tracks/cfml/exercises/flatten-array/FlattenArray.cfc +13 -0
  75. data/tracks/cfml/exercises/flatten-array/FlattenArrayTest.cfc +42 -0
  76. data/tracks/cfml/exercises/flatten-array/Solution.cfc +26 -0
  77. data/tracks/cfml/exercises/flatten-array/SolutionTest.cfc +7 -0
  78. data/tracks/cfml/exercises/flatten-array/TestRunner.cfc +103 -0
  79. data/tracks/cfml/exercises/flatten-array/box.json +8 -0
  80. data/tracks/cfml/exercises/flatten-array/index.cfm +37 -0
  81. data/tracks/cfml/exercises/gigasecond/.meta/HINTS.md +0 -0
  82. data/tracks/cfml/exercises/gigasecond/Gigasecond.cfc +13 -0
  83. data/tracks/cfml/exercises/gigasecond/GigasecondTest.cfc +39 -0
  84. data/tracks/cfml/exercises/gigasecond/Solution.cfc +16 -0
  85. data/tracks/cfml/exercises/gigasecond/SolutionTest.cfc +7 -0
  86. data/tracks/cfml/exercises/gigasecond/TestRunner.cfc +103 -0
  87. data/tracks/cfml/exercises/gigasecond/box.json +8 -0
  88. data/tracks/cfml/exercises/gigasecond/index.cfm +37 -0
  89. data/tracks/cfml/exercises/grains/.meta/HINTS.md +0 -0
  90. data/tracks/cfml/exercises/grains/Grains.cfc +14 -0
  91. data/tracks/cfml/exercises/grains/GrainsTest.cfc +63 -0
  92. data/tracks/cfml/exercises/grains/Solution.cfc +22 -0
  93. data/tracks/cfml/exercises/grains/SolutionTest.cfc +7 -0
  94. data/tracks/cfml/exercises/grains/TestRunner.cfc +103 -0
  95. data/tracks/cfml/exercises/grains/box.json +8 -0
  96. data/tracks/cfml/exercises/grains/index.cfm +37 -0
  97. data/tracks/cfml/exercises/hamming/.meta/HINTS.md +0 -0
  98. data/tracks/cfml/exercises/hamming/Hamming.cfc +13 -0
  99. data/tracks/cfml/exercises/hamming/HammingTest.cfc +75 -0
  100. data/tracks/cfml/exercises/hamming/Solution.cfc +25 -0
  101. data/tracks/cfml/exercises/hamming/SolutionTest.cfc +7 -0
  102. data/tracks/cfml/exercises/hamming/TestRunner.cfc +103 -0
  103. data/tracks/cfml/exercises/hamming/box.json +8 -0
  104. data/tracks/cfml/exercises/hamming/index.cfm +37 -0
  105. data/tracks/cfml/exercises/hello-world/HelloWorld.cfc +13 -0
  106. data/tracks/cfml/exercises/hello-world/HelloWorldTest.cfc +18 -0
  107. data/tracks/cfml/exercises/hello-world/Solution.cfc +13 -0
  108. data/tracks/cfml/exercises/hello-world/SolutionTest.cfc +7 -0
  109. data/tracks/cfml/exercises/hello-world/TestRunner.cfc +103 -0
  110. data/tracks/cfml/exercises/hello-world/box.json +8 -0
  111. data/tracks/cfml/exercises/hello-world/index.cfm +37 -0
  112. data/tracks/cfml/exercises/isogram/.meta/HINTS.md +0 -0
  113. data/tracks/cfml/exercises/isogram/Isogram.cfc +13 -0
  114. data/tracks/cfml/exercises/isogram/IsogramTest.cfc +55 -0
  115. data/tracks/cfml/exercises/isogram/Solution.cfc +23 -0
  116. data/tracks/cfml/exercises/isogram/SolutionTest.cfc +7 -0
  117. data/tracks/cfml/exercises/isogram/TestRunner.cfc +103 -0
  118. data/tracks/cfml/exercises/isogram/box.json +8 -0
  119. data/tracks/cfml/exercises/isogram/index.cfm +37 -0
  120. data/tracks/cfml/exercises/largest-series-product/.meta/HINTS.md +0 -0
  121. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProduct.cfc +13 -0
  122. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProductTest.cfc +75 -0
  123. data/tracks/cfml/exercises/largest-series-product/Solution.cfc +41 -0
  124. data/tracks/cfml/exercises/largest-series-product/SolutionTest.cfc +7 -0
  125. data/tracks/cfml/exercises/largest-series-product/TestRunner.cfc +103 -0
  126. data/tracks/cfml/exercises/largest-series-product/box.json +8 -0
  127. data/tracks/cfml/exercises/largest-series-product/index.cfm +37 -0
  128. data/tracks/cfml/exercises/leap/Leap.cfc +15 -0
  129. data/tracks/cfml/exercises/leap/LeapTest.cfc +39 -0
  130. data/tracks/cfml/exercises/leap/README.md +33 -0
  131. data/tracks/cfml/exercises/leap/Solution.cfc +19 -0
  132. data/tracks/cfml/exercises/leap/SolutionTest.cfc +7 -0
  133. data/tracks/cfml/exercises/leap/TestRunner.cfc +103 -0
  134. data/tracks/cfml/exercises/leap/box.json +8 -0
  135. data/tracks/cfml/exercises/leap/index.cfm +37 -0
  136. data/tracks/cfml/exercises/luhn/.meta/HINTS.md +0 -0
  137. data/tracks/cfml/exercises/luhn/Luhn.cfc +13 -0
  138. data/tracks/cfml/exercises/luhn/LuhnTest.cfc +67 -0
  139. data/tracks/cfml/exercises/luhn/Solution.cfc +38 -0
  140. data/tracks/cfml/exercises/luhn/SolutionTest.cfc +7 -0
  141. data/tracks/cfml/exercises/luhn/TestRunner.cfc +103 -0
  142. data/tracks/cfml/exercises/luhn/box.json +8 -0
  143. data/tracks/cfml/exercises/luhn/index.cfm +37 -0
  144. data/tracks/cfml/exercises/nth-prime/.meta/HINTS.md +0 -0
  145. data/tracks/cfml/exercises/nth-prime/NthPrime.cfc +13 -0
  146. data/tracks/cfml/exercises/nth-prime/NthPrimeTest.cfc +35 -0
  147. data/tracks/cfml/exercises/nth-prime/Solution.cfc +33 -0
  148. data/tracks/cfml/exercises/nth-prime/SolutionTest.cfc +7 -0
  149. data/tracks/cfml/exercises/nth-prime/TestRunner.cfc +103 -0
  150. data/tracks/cfml/exercises/nth-prime/box.json +8 -0
  151. data/tracks/cfml/exercises/nth-prime/index.cfm +37 -0
  152. data/tracks/cfml/exercises/pangram/.meta/HINTS.md +0 -0
  153. data/tracks/cfml/exercises/pangram/Pangram.cfc +13 -0
  154. data/tracks/cfml/exercises/pangram/PangramTest.cfc +55 -0
  155. data/tracks/cfml/exercises/pangram/Solution.cfc +21 -0
  156. data/tracks/cfml/exercises/pangram/SolutionTest.cfc +7 -0
  157. data/tracks/cfml/exercises/pangram/TestRunner.cfc +103 -0
  158. data/tracks/cfml/exercises/pangram/box.json +8 -0
  159. data/tracks/cfml/exercises/pangram/index.cfm +37 -0
  160. data/tracks/cfml/exercises/pig-latin/.meta/HINTS.md +0 -0
  161. data/tracks/cfml/exercises/pig-latin/PigLatin.cfc +13 -0
  162. data/tracks/cfml/exercises/pig-latin/PigLatinTest.cfc +115 -0
  163. data/tracks/cfml/exercises/pig-latin/Solution.cfc +30 -0
  164. data/tracks/cfml/exercises/pig-latin/SolutionTest.cfc +7 -0
  165. data/tracks/cfml/exercises/pig-latin/TestRunner.cfc +103 -0
  166. data/tracks/cfml/exercises/pig-latin/box.json +8 -0
  167. data/tracks/cfml/exercises/pig-latin/index.cfm +37 -0
  168. data/tracks/cfml/exercises/raindrops/.meta/HINTS.md +0 -0
  169. data/tracks/cfml/exercises/raindrops/Raindrops.cfc +13 -0
  170. data/tracks/cfml/exercises/raindrops/RaindropsTest.cfc +87 -0
  171. data/tracks/cfml/exercises/raindrops/Solution.cfc +33 -0
  172. data/tracks/cfml/exercises/raindrops/SolutionTest.cfc +7 -0
  173. data/tracks/cfml/exercises/raindrops/TestRunner.cfc +103 -0
  174. data/tracks/cfml/exercises/raindrops/box.json +8 -0
  175. data/tracks/cfml/exercises/raindrops/index.cfm +37 -0
  176. data/tracks/cfml/exercises/rna-transcription/.meta/HINTS.md +0 -0
  177. data/tracks/cfml/exercises/rna-transcription/RnaTranscription.cfc +13 -0
  178. data/tracks/cfml/exercises/rna-transcription/RnaTranscriptionTest.cfc +47 -0
  179. data/tracks/cfml/exercises/rna-transcription/Solution.cfc +35 -0
  180. data/tracks/cfml/exercises/rna-transcription/SolutionTest.cfc +7 -0
  181. data/tracks/cfml/exercises/rna-transcription/TestRunner.cfc +103 -0
  182. data/tracks/cfml/exercises/rna-transcription/box.json +8 -0
  183. data/tracks/cfml/exercises/rna-transcription/index.cfm +37 -0
  184. data/tracks/cfml/exercises/saddle-points/.meta/HINTS.md +0 -0
  185. data/tracks/cfml/exercises/saddle-points/SaddlePoints.cfc +13 -0
  186. data/tracks/cfml/exercises/saddle-points/SaddlePointsTest.cfc +35 -0
  187. data/tracks/cfml/exercises/saddle-points/Solution.cfc +59 -0
  188. data/tracks/cfml/exercises/saddle-points/SolutionTest.cfc +7 -0
  189. data/tracks/cfml/exercises/saddle-points/TestRunner.cfc +103 -0
  190. data/tracks/cfml/exercises/saddle-points/box.json +8 -0
  191. data/tracks/cfml/exercises/saddle-points/index.cfm +37 -0
  192. data/tracks/cfml/exercises/scrabble-score/.meta/HINTS.md +0 -0
  193. data/tracks/cfml/exercises/scrabble-score/ScrabbleScore.cfc +13 -0
  194. data/tracks/cfml/exercises/scrabble-score/ScrabbleScoreTest.cfc +59 -0
  195. data/tracks/cfml/exercises/scrabble-score/Solution.cfc +50 -0
  196. data/tracks/cfml/exercises/scrabble-score/SolutionTest.cfc +7 -0
  197. data/tracks/cfml/exercises/scrabble-score/TestRunner.cfc +103 -0
  198. data/tracks/cfml/exercises/scrabble-score/box.json +8 -0
  199. data/tracks/cfml/exercises/scrabble-score/index.cfm +37 -0
  200. data/tracks/cfml/exercises/secret-handshake/.meta/HINTS.md +0 -0
  201. data/tracks/cfml/exercises/secret-handshake/SecretHandshake.cfc +13 -0
  202. data/tracks/cfml/exercises/secret-handshake/SecretHandshakeTest.cfc +63 -0
  203. data/tracks/cfml/exercises/secret-handshake/Solution.cfc +31 -0
  204. data/tracks/cfml/exercises/secret-handshake/SolutionTest.cfc +7 -0
  205. data/tracks/cfml/exercises/secret-handshake/TestRunner.cfc +103 -0
  206. data/tracks/cfml/exercises/secret-handshake/box.json +8 -0
  207. data/tracks/cfml/exercises/secret-handshake/index.cfm +37 -0
  208. data/tracks/cfml/exercises/space-age/.meta/HINTS.md +0 -0
  209. data/tracks/cfml/exercises/space-age/Solution.cfc +28 -0
  210. data/tracks/cfml/exercises/space-age/SolutionTest.cfc +7 -0
  211. data/tracks/cfml/exercises/space-age/SpaceAge.cfc +13 -0
  212. data/tracks/cfml/exercises/space-age/SpaceAgeTest.cfc +47 -0
  213. data/tracks/cfml/exercises/space-age/TestRunner.cfc +103 -0
  214. data/tracks/cfml/exercises/space-age/box.json +8 -0
  215. data/tracks/cfml/exercises/space-age/index.cfm +37 -0
  216. data/tracks/cfml/exercises/sum-of-multiples/.meta/HINTS.md +0 -0
  217. data/tracks/cfml/exercises/sum-of-multiples/Solution.cfc +27 -0
  218. data/tracks/cfml/exercises/sum-of-multiples/SolutionTest.cfc +7 -0
  219. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiples.cfc +13 -0
  220. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiplesTest.cfc +63 -0
  221. data/tracks/cfml/exercises/sum-of-multiples/TestRunner.cfc +103 -0
  222. data/tracks/cfml/exercises/sum-of-multiples/box.json +8 -0
  223. data/tracks/cfml/exercises/sum-of-multiples/index.cfm +37 -0
  224. data/tracks/cfml/exercises/triangle/.meta/HINTS.md +0 -0
  225. data/tracks/cfml/exercises/triangle/Solution.cfc +53 -0
  226. data/tracks/cfml/exercises/triangle/SolutionTest.cfc +7 -0
  227. data/tracks/cfml/exercises/triangle/TestRunner.cfc +103 -0
  228. data/tracks/cfml/exercises/triangle/Triangle.cfc +18 -0
  229. data/tracks/cfml/exercises/triangle/TriangleTest.cfc +95 -0
  230. data/tracks/cfml/exercises/triangle/box.json +8 -0
  231. data/tracks/cfml/exercises/triangle/index.cfm +37 -0
  232. data/tracks/cfml/exercises/word-count/.meta/HINTS.md +0 -0
  233. data/tracks/cfml/exercises/word-count/Solution.cfc +22 -0
  234. data/tracks/cfml/exercises/word-count/SolutionTest.cfc +7 -0
  235. data/tracks/cfml/exercises/word-count/TestRunner.cfc +103 -0
  236. data/tracks/cfml/exercises/word-count/WordCount.cfc +13 -0
  237. data/tracks/cfml/exercises/word-count/WordCountTest.cfc +55 -0
  238. data/tracks/cfml/exercises/word-count/box.json +8 -0
  239. data/tracks/cfml/exercises/word-count/index.cfm +37 -0
  240. data/tracks/cfml/img/icon.png +0 -0
  241. data/tracks/cfml/tasks/GenerateTests.cfc +179 -0
  242. data/tracks/cfml/tasks/ScaffoldExercise.cfc +85 -0
  243. data/tracks/cfml/tasks/TestAllSolutions.cfc +24 -0
  244. data/tracks/cfml/tasks/exercise_template/.meta/HINTS.md +0 -0
  245. data/tracks/cfml/tasks/exercise_template/@@name@@.cfc +13 -0
  246. data/tracks/cfml/tasks/exercise_template/@@name@@Test.cfc +15 -0
  247. data/tracks/cfml/tasks/exercise_template/Solution.cfc +6 -0
  248. data/tracks/cfml/tasks/exercise_template/SolutionTest.cfc +7 -0
  249. data/tracks/cfml/tasks/exercise_template/TestRunner.cfc +103 -0
  250. data/tracks/cfml/tasks/exercise_template/box.json +8 -0
  251. data/tracks/cfml/tasks/exercise_template/index.cfm +37 -0
  252. data/tracks/coldfusion/docs/ABOUT.md +8 -6
  253. data/tracks/csharp/docs/GENERATORS.md +7 -0
  254. data/tracks/csharp/exercises/clock/ClockTest.cs +15 -15
  255. data/tracks/csharp/exercises/nucleotide-count/Example.cs +10 -11
  256. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs +2 -7
  257. data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +37 -47
  258. data/tracks/csharp/exercises/pig-latin/Example.cs +1 -1
  259. data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +19 -7
  260. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +7 -1
  261. data/tracks/csharp/exercises/tournament/Example.cs +1 -1
  262. data/tracks/csharp/exercises/tournament/TournamentTest.cs +151 -68
  263. data/tracks/csharp/exercises/triangle/Example.cs +26 -8
  264. data/tracks/csharp/exercises/triangle/Triangle.cs +16 -1
  265. data/tracks/csharp/exercises/triangle/TriangleTest.cs +44 -30
  266. data/tracks/csharp/generators/Exercise.cs +6 -1
  267. data/tracks/csharp/generators/Exercises/Clock.cs +17 -1
  268. data/tracks/csharp/generators/Exercises/NucleotideCount.cs +61 -0
  269. data/tracks/csharp/generators/Exercises/Tournament.cs +66 -0
  270. data/tracks/csharp/generators/Exercises/Triangle.cs +36 -0
  271. data/tracks/dart/config.json +15 -2
  272. data/tracks/dart/exercises/raindrops/lib/example.dart +23 -0
  273. data/tracks/dart/exercises/raindrops/lib/raindrops.dart +3 -0
  274. data/tracks/dart/exercises/raindrops/pubspec.lock +281 -0
  275. data/tracks/dart/exercises/raindrops/pubspec.yaml +3 -0
  276. data/tracks/dart/exercises/raindrops/test/raindrops_test.dart +94 -0
  277. data/tracks/delphi/exercises/pig-latin/uPigLatinExample.pas +1 -25
  278. data/tracks/haskell/config.json +9 -0
  279. data/tracks/haskell/exercises/acronym/README.md +0 -1
  280. data/tracks/haskell/exercises/all-your-base/README.md +1 -1
  281. data/tracks/haskell/exercises/allergies/README.md +0 -1
  282. data/tracks/haskell/exercises/alphametics/README.md +2 -2
  283. data/tracks/haskell/exercises/atbash-cipher/README.md +2 -1
  284. data/tracks/haskell/exercises/beer-song/README.md +1 -1
  285. data/tracks/haskell/exercises/binary/README.md +2 -0
  286. data/tracks/haskell/exercises/bowling/README.md +20 -6
  287. data/tracks/haskell/exercises/collatz-conjecture/README.md +1 -1
  288. data/tracks/haskell/exercises/connect/README.md +1 -1
  289. data/tracks/haskell/exercises/crypto-square/README.md +4 -4
  290. data/tracks/haskell/exercises/diamond/README.md +113 -0
  291. data/tracks/haskell/exercises/diamond/examples/success-standard/package.yaml +16 -0
  292. data/tracks/haskell/exercises/diamond/examples/success-standard/src/Diamond.hs +16 -0
  293. data/tracks/haskell/exercises/diamond/package.yaml +20 -0
  294. data/tracks/haskell/exercises/diamond/src/Diamond.hs +4 -0
  295. data/tracks/haskell/exercises/diamond/stack.yaml +1 -0
  296. data/tracks/haskell/exercises/diamond/test/Tests.hs +109 -0
  297. data/tracks/haskell/exercises/etl/README.md +3 -1
  298. data/tracks/haskell/exercises/food-chain/README.md +1 -1
  299. data/tracks/haskell/exercises/go-counting/README.md +1 -1
  300. data/tracks/haskell/exercises/grade-school/README.md +0 -1
  301. data/tracks/haskell/exercises/grains/README.md +0 -1
  302. data/tracks/haskell/exercises/house/README.md +1 -2
  303. data/tracks/haskell/exercises/isogram/README.md +2 -1
  304. data/tracks/haskell/exercises/kindergarten-garden/README.md +3 -3
  305. data/tracks/haskell/exercises/leap/README.md +1 -1
  306. data/tracks/haskell/exercises/linked-list/README.md +10 -10
  307. data/tracks/haskell/exercises/luhn/README.md +7 -7
  308. data/tracks/haskell/exercises/matrix/README.md +6 -4
  309. data/tracks/haskell/exercises/meetup/README.md +1 -2
  310. data/tracks/haskell/exercises/nucleotide-count/README.md +8 -22
  311. data/tracks/haskell/exercises/ocr-numbers/README.md +6 -6
  312. data/tracks/haskell/exercises/octal/README.md +6 -2
  313. data/tracks/haskell/exercises/palindrome-products/README.md +12 -6
  314. data/tracks/haskell/exercises/pangram/README.md +1 -1
  315. data/tracks/haskell/exercises/pascals-triangle/README.md +2 -2
  316. data/tracks/haskell/exercises/phone-number/README.md +3 -2
  317. data/tracks/haskell/exercises/pov/README.md +3 -3
  318. data/tracks/haskell/exercises/pythagorean-triplet/README.md +3 -3
  319. data/tracks/haskell/exercises/queen-attack/README.md +1 -1
  320. data/tracks/haskell/exercises/rna-transcription/README.md +1 -1
  321. data/tracks/haskell/exercises/roman-numerals/README.md +1 -1
  322. data/tracks/haskell/exercises/run-length-encoding/README.md +4 -4
  323. data/tracks/haskell/exercises/saddle-points/README.md +1 -1
  324. data/tracks/haskell/exercises/scrabble-score/README.md +3 -1
  325. data/tracks/haskell/exercises/secret-handshake/README.md +1 -1
  326. data/tracks/haskell/exercises/sgf-parsing/README.md +4 -4
  327. data/tracks/haskell/exercises/simple-cipher/README.md +1 -1
  328. data/tracks/haskell/exercises/spiral-matrix/README.md +2 -2
  329. data/tracks/haskell/exercises/triangle/README.md +9 -6
  330. data/tracks/haskell/exercises/trinary/README.md +1 -1
  331. data/tracks/haskell/exercises/word-count/README.md +1 -2
  332. data/tracks/haskell/exercises/wordy/README.md +0 -5
  333. data/tracks/java/config.json +56 -9
  334. data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +4 -4
  335. data/tracks/javascript/exercises/two-bucket/example.js +66 -69
  336. data/tracks/javascript/exercises/two-bucket/two-bucket.spec.js +18 -18
  337. data/tracks/julia/config.json +1 -0
  338. data/tracks/julia/docs/ABOUT.md +3 -8
  339. data/tracks/prolog/README.md +1 -1
  340. data/tracks/purescript/.travis.yml +1 -0
  341. data/tracks/purescript/README.md +9 -0
  342. data/tracks/purescript/bin/check-bower.sh +42 -0
  343. data/tracks/purescript/bin/test-separate.sh +46 -0
  344. data/tracks/python/README.md +2 -2
  345. data/tracks/python/exercises/all-your-base/all_your_base.py +2 -0
  346. data/tracks/python/exercises/atbash-cipher/atbash_cipher.py +2 -2
  347. data/tracks/python/exercises/complex-numbers/complex_numbers_test.py +2 -2
  348. data/tracks/python/exercises/complex-numbers/example.py +2 -2
  349. data/tracks/python/exercises/gigasecond/gigasecond.py +1 -1
  350. data/tracks/python/exercises/hamming/hamming.py +1 -1
  351. data/tracks/python/exercises/hexadecimal/hexadecimal.py +1 -1
  352. data/tracks/python/exercises/leap/leap.py +1 -1
  353. data/tracks/python/exercises/meetup/meetup.py +1 -1
  354. data/tracks/python/exercises/phone-number/example.py +4 -2
  355. data/tracks/python/exercises/phone-number/phone_number_test.py +47 -16
  356. data/tracks/python/exercises/pig-latin/pig_latin.py +1 -1
  357. data/tracks/python/exercises/scrabble-score/scrabble_score.py +1 -1
  358. data/tracks/python/exercises/wordy/wordy.py +1 -1
  359. data/tracks/scala/exercises/meetup/example.scala +29 -10
  360. data/tracks/scala/exercises/meetup/src/main/scala/Meetup.scala +23 -0
  361. data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +273 -183
  362. data/tracks/sml/config.json +13 -0
  363. data/tracks/sml/exercises/anagram/README.md +21 -5
  364. data/tracks/sml/exercises/anagram/anagram.sml +2 -6
  365. data/tracks/sml/exercises/anagram/example.sml +29 -24
  366. data/tracks/sml/exercises/anagram/test.sml +56 -50
  367. data/tracks/sml/exercises/anagram/testlib.sml +159 -0
  368. data/tracks/sml/exercises/diamond/README.md +89 -0
  369. data/tracks/sml/exercises/diamond/diamond.sml +2 -0
  370. data/tracks/sml/exercises/diamond/example.sml +25 -0
  371. data/tracks/sml/exercises/diamond/test.sml +27 -0
  372. data/tracks/sml/exercises/diamond/testlib.sml +159 -0
  373. data/tracks/sml/exercises/raindrops/raindrops.sml +2 -2
  374. data/tracks/sml/exercises/raindrops/test.sml +66 -95
  375. data/tracks/sml/exercises/raindrops/testlib.sml +159 -0
  376. metadata +265 -3
@@ -3,458 +3,548 @@ import org.scalatest._
3
3
 
4
4
  class MeetupTest extends FunSuite with Matchers {
5
5
  //Note: Java uses 0-indexed months for GregorianCalendar
6
- test ("monteenth of may 2013") {
7
- Meetup(5, 2013).teenth(Meetup.Mon) should be (LocalDate.of(2013, 5, 13))
6
+ test("monteenth of may 2013") {
7
+ Meetup(5, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
8
+ LocalDate.of(2013, 5, 13))
8
9
  }
9
10
 
10
- test ("monteenth of august 2013") {
11
+ test("monteenth of august 2013") {
11
12
  pending
12
- Meetup(8, 2013).teenth(Meetup.Mon) should be (LocalDate.of(2013, 8, 19))
13
+ Meetup(8, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
14
+ LocalDate.of(2013, 8, 19))
13
15
  }
14
16
 
15
- test ("monteenth of september 2013") {
17
+ test("monteenth of september 2013") {
16
18
  pending
17
- Meetup(9, 2013).teenth(Meetup.Mon) should be (LocalDate.of(2013, 9, 16))
19
+ Meetup(9, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
20
+ LocalDate.of(2013, 9, 16))
18
21
  }
19
22
 
20
- test ("tuesteenth of march 2013") {
23
+ test("tuesteenth of march 2013") {
21
24
  pending
22
- Meetup(3, 2013).teenth(Meetup.Tue) should be (LocalDate.of(2013, 3, 19))
25
+ Meetup(3, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
26
+ LocalDate.of(2013, 3, 19))
23
27
  }
24
28
 
25
- test ("tuesteenth of april 2013") {
29
+ test("tuesteenth of april 2013") {
26
30
  pending
27
- Meetup(4, 2013).teenth(Meetup.Tue) should be (LocalDate.of(2013, 4, 16))
31
+ Meetup(4, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
32
+ LocalDate.of(2013, 4, 16))
28
33
  }
29
34
 
30
- test ("tuesteenth of august 2013") {
35
+ test("tuesteenth of august 2013") {
31
36
  pending
32
- Meetup(8, 2013).teenth(Meetup.Tue) should be (LocalDate.of(2013, 8, 13))
37
+ Meetup(8, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
38
+ LocalDate.of(2013, 8, 13))
33
39
  }
34
40
 
35
- test ("wednesteenth of january 2013") {
41
+ test("wednesteenth of january 2013") {
36
42
  pending
37
- Meetup(1, 2013).teenth(Meetup.Wed) should be (LocalDate.of(2013, 1, 16))
43
+ Meetup(1, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
44
+ LocalDate.of(2013, 1, 16))
38
45
  }
39
46
 
40
- test ("wednesteenth of february 2013") {
47
+ test("wednesteenth of february 2013") {
41
48
  pending
42
- Meetup(2, 2013).teenth(Meetup.Wed) should be (LocalDate.of(2013, 2, 13))
49
+ Meetup(2, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
50
+ LocalDate.of(2013, 2, 13))
43
51
  }
44
52
 
45
- test ("wednesteenth of june 2013") {
53
+ test("wednesteenth of june 2013") {
46
54
  pending
47
- Meetup(6, 2013).teenth(Meetup.Wed) should be (LocalDate.of(2013, 6, 19))
55
+ Meetup(6, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
56
+ LocalDate.of(2013, 6, 19))
48
57
  }
49
58
 
50
- test ("thursteenth of may 2013") {
59
+ test("thursteenth of may 2013") {
51
60
  pending
52
- Meetup(5, 2013).teenth(Meetup.Thu) should be (LocalDate.of(2013, 5, 16))
61
+ Meetup(5, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
62
+ LocalDate.of(2013, 5, 16))
53
63
  }
54
64
 
55
- test ("thursteenth of june 2013") {
65
+ test("thursteenth of june 2013") {
56
66
  pending
57
- Meetup(6, 2013).teenth(Meetup.Thu) should be (LocalDate.of(2013, 6, 13))
67
+ Meetup(6, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
68
+ LocalDate.of(2013, 6, 13))
58
69
  }
59
70
 
60
- test ("thursteenth of september 2013") {
71
+ test("thursteenth of september 2013") {
61
72
  pending
62
- Meetup(9, 2013).teenth(Meetup.Thu) should be (LocalDate.of(2013, 9, 19))
73
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
74
+ LocalDate.of(2013, 9, 19))
63
75
  }
64
76
 
65
- test ("friteenth of april 2013") {
77
+ test("friteenth of april 2013") {
66
78
  pending
67
- Meetup(4, 2013).teenth(Meetup.Fri) should be (LocalDate.of(2013, 4, 19))
79
+ Meetup(4, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
80
+ LocalDate.of(2013, 4, 19))
68
81
  }
69
82
 
70
- test ("friteenth of august 2013") {
83
+ test("friteenth of august 2013") {
71
84
  pending
72
- Meetup(8, 2013).teenth(Meetup.Fri) should be (LocalDate.of(2013, 8, 16))
85
+ Meetup(8, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
86
+ LocalDate.of(2013, 8, 16))
73
87
  }
74
88
 
75
- test ("friteenth of september 2013") {
89
+ test("friteenth of september 2013") {
76
90
  pending
77
- Meetup(9, 2013).teenth(Meetup.Fri) should be (LocalDate.of(2013, 9, 13))
91
+ Meetup(9, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
92
+ LocalDate.of(2013, 9, 13))
78
93
  }
79
94
 
80
- test ("saturteenth of february 2013") {
95
+ test("saturteenth of february 2013") {
81
96
  pending
82
- Meetup(2, 2013).teenth(Meetup.Sat) should be (LocalDate.of(2013, 2, 16))
97
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
98
+ LocalDate.of(2013, 2, 16))
83
99
  }
84
100
 
85
- test ("saturteenth of april 2013") {
101
+ test("saturteenth of april 2013") {
86
102
  pending
87
- Meetup(4, 2013).teenth(Meetup.Sat) should be (LocalDate.of(2013, 4, 13))
103
+ Meetup(4, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
104
+ LocalDate.of(2013, 4, 13))
88
105
  }
89
106
 
90
- test ("saturteenth of october 2013") {
107
+ test("saturteenth of october 2013") {
91
108
  pending
92
- Meetup(10, 2013).teenth(Meetup.Sat) should be (LocalDate.of(2013, 10, 19))
109
+ Meetup(10, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
110
+ LocalDate.of(2013, 10, 19))
93
111
  }
94
112
 
95
- test ("sunteenth of may 2013") {
113
+ test("sunteenth of may 2013") {
96
114
  pending
97
- Meetup(5, 2013).teenth(Meetup.Sun) should be (LocalDate.of(2013, 5, 19))
115
+ Meetup(5, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
116
+ LocalDate.of(2013, 5, 19))
98
117
  }
99
118
 
100
- test ("sunteenth of june 2013") {
119
+ test("sunteenth of june 2013") {
101
120
  pending
102
- Meetup(6, 2013).teenth(Meetup.Sun) should be (LocalDate.of(2013, 6, 16))
121
+ Meetup(6, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
122
+ LocalDate.of(2013, 6, 16))
103
123
  }
104
124
 
105
- test ("sunteenth of october 2013") {
125
+ test("sunteenth of october 2013") {
106
126
  pending
107
- Meetup(10, 2013).teenth(Meetup.Sun) should be (LocalDate.of(2013, 10, 13))
127
+ Meetup(10, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
128
+ LocalDate.of(2013, 10, 13))
108
129
  }
109
130
 
110
- test ("first monday of march 2013") {
131
+ test("first monday of march 2013") {
111
132
  pending
112
- Meetup(3, 2013).first(Meetup.Mon) should be (LocalDate.of(2013, 3, 4))
133
+ Meetup(3, 2013).day(Meetup.Mon, Schedule.First) should be(
134
+ LocalDate.of(2013, 3, 4))
113
135
  }
114
136
 
115
- test ("first monday of april 2013") {
137
+ test("first monday of april 2013") {
116
138
  pending
117
- Meetup(4, 2013).first(Meetup.Mon) should be (LocalDate.of(2013, 4, 1))
139
+ Meetup(4, 2013).day(Meetup.Mon, Schedule.First) should be(
140
+ LocalDate.of(2013, 4, 1))
118
141
  }
119
142
 
120
- test ("first tuesday of may 2013") {
143
+ test("first tuesday of may 2013") {
121
144
  pending
122
- Meetup(5, 2013).first(Meetup.Tue) should be (LocalDate.of(2013, 5, 7))
145
+ Meetup(5, 2013).day(Meetup.Tue, Schedule.First) should be(
146
+ LocalDate.of(2013, 5, 7))
123
147
  }
124
148
 
125
- test ("first tuesday of june 2013") {
149
+ test("first tuesday of june 2013") {
126
150
  pending
127
- Meetup(6, 2013).first(Meetup.Tue) should be (LocalDate.of(2013, 6, 4))
151
+ Meetup(6, 2013).day(Meetup.Tue, Schedule.First) should be(
152
+ LocalDate.of(2013, 6, 4))
128
153
  }
129
154
 
130
- test ("first wednesday of july 2013") {
155
+ test("first wednesday of july 2013") {
131
156
  pending
132
- Meetup(7, 2013).first(Meetup.Wed) should be (LocalDate.of(2013, 7, 3))
157
+ Meetup(7, 2013).day(Meetup.Wed, Schedule.First) should be(
158
+ LocalDate.of(2013, 7, 3))
133
159
  }
134
160
 
135
- test ("first wednesday of august 2013") {
161
+ test("first wednesday of august 2013") {
136
162
  pending
137
- Meetup(8, 2013).first(Meetup.Wed) should be (LocalDate.of(2013, 8, 7))
163
+ Meetup(8, 2013).day(Meetup.Wed, Schedule.First) should be(
164
+ LocalDate.of(2013, 8, 7))
138
165
  }
139
166
 
140
- test ("first thursday of september 2013") {
167
+ test("first thursday of september 2013") {
141
168
  pending
142
- Meetup(9, 2013).first(Meetup.Thu) should be (LocalDate.of(2013, 9, 5))
169
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.First) should be(
170
+ LocalDate.of(2013, 9, 5))
143
171
  }
144
172
 
145
- test ("first thursday of october 2013") {
173
+ test("first thursday of october 2013") {
146
174
  pending
147
- Meetup(10, 2013).first(Meetup.Thu) should be (LocalDate.of(2013, 10, 3))
175
+ Meetup(10, 2013).day(Meetup.Thu, Schedule.First) should be(
176
+ LocalDate.of(2013, 10, 3))
148
177
  }
149
178
 
150
- test ("first friday of november 2013") {
179
+ test("first friday of november 2013") {
151
180
  pending
152
- Meetup(11, 2013).first(Meetup.Fri) should be (LocalDate.of(2013, 11, 1))
181
+ Meetup(11, 2013).day(Meetup.Fri, Schedule.First) should be(
182
+ LocalDate.of(2013, 11, 1))
153
183
  }
154
184
 
155
- test ("first friday of december 2013") {
185
+ test("first friday of december 2013") {
156
186
  pending
157
- Meetup(12, 2013).first(Meetup.Fri) should be (LocalDate.of(2013, 12, 6))
187
+ Meetup(12, 2013).day(Meetup.Fri, Schedule.First) should be(
188
+ LocalDate.of(2013, 12, 6))
158
189
  }
159
190
 
160
- test ("first saturday of january 2013") {
191
+ test("first saturday of january 2013") {
161
192
  pending
162
- Meetup(1, 2013).first(Meetup.Sat) should be (LocalDate.of(2013, 1, 5))
193
+ Meetup(1, 2013).day(Meetup.Sat, Schedule.First) should be(
194
+ LocalDate.of(2013, 1, 5))
163
195
  }
164
196
 
165
- test ("first saturday of february 2013") {
197
+ test("first saturday of february 2013") {
166
198
  pending
167
- Meetup(2, 2013).first(Meetup.Sat) should be (LocalDate.of(2013, 2, 2))
199
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.First) should be(
200
+ LocalDate.of(2013, 2, 2))
168
201
  }
169
202
 
170
- test ("first sunday of march 2013") {
203
+ test("first sunday of march 2013") {
171
204
  pending
172
- Meetup(3, 2013).first(Meetup.Sun) should be (LocalDate.of(2013, 3, 3))
205
+ Meetup(3, 2013).day(Meetup.Sun, Schedule.First) should be(
206
+ LocalDate.of(2013, 3, 3))
173
207
  }
174
208
 
175
- test ("first sunday of april 2013") {
209
+ test("first sunday of april 2013") {
176
210
  pending
177
- Meetup(4, 2013).first(Meetup.Sun) should be (LocalDate.of(2013, 4, 7))
211
+ Meetup(4, 2013).day(Meetup.Sun, Schedule.First) should be(
212
+ LocalDate.of(2013, 4, 7))
178
213
  }
179
214
 
180
- test ("second monday of march 2013") {
215
+ test("second monday of march 2013") {
181
216
  pending
182
- Meetup(3, 2013).second(Meetup.Mon) should be (LocalDate.of(2013, 3, 11))
217
+ Meetup(3, 2013).day(Meetup.Mon, Schedule.Second) should be(
218
+ LocalDate.of(2013, 3, 11))
183
219
  }
184
220
 
185
- test ("second monday of april 2013") {
221
+ test("second monday of april 2013") {
186
222
  pending
187
- Meetup(4, 2013).second(Meetup.Mon) should be (LocalDate.of(2013, 4, 8))
223
+ Meetup(4, 2013).day(Meetup.Mon, Schedule.Second) should be(
224
+ LocalDate.of(2013, 4, 8))
188
225
  }
189
226
 
190
- test ("second tuesday of may 2013") {
227
+ test("second tuesday of may 2013") {
191
228
  pending
192
- Meetup(5, 2013).second(Meetup.Tue) should be (LocalDate.of(2013, 5, 14))
229
+ Meetup(5, 2013).day(Meetup.Tue, Schedule.Second) should be(
230
+ LocalDate.of(2013, 5, 14))
193
231
  }
194
232
 
195
- test ("second tuesday of june 2013") {
233
+ test("second tuesday of june 2013") {
196
234
  pending
197
- Meetup(6, 2013).second(Meetup.Tue) should be (LocalDate.of(2013, 6, 11))
235
+ Meetup(6, 2013).day(Meetup.Tue, Schedule.Second) should be(
236
+ LocalDate.of(2013, 6, 11))
198
237
  }
199
238
 
200
- test ("second wednesday of july 2013") {
239
+ test("second wednesday of july 2013") {
201
240
  pending
202
- Meetup(7, 2013).second(Meetup.Wed) should be (LocalDate.of(2013, 7, 10))
241
+ Meetup(7, 2013).day(Meetup.Wed, Schedule.Second) should be(
242
+ LocalDate.of(2013, 7, 10))
203
243
  }
204
244
 
205
- test ("second wednesday of august 2013") {
245
+ test("second wednesday of august 2013") {
206
246
  pending
207
- Meetup(8, 2013).second(Meetup.Wed) should be (LocalDate.of(2013, 8, 14))
247
+ Meetup(8, 2013).day(Meetup.Wed, Schedule.Second) should be(
248
+ LocalDate.of(2013, 8, 14))
208
249
  }
209
250
 
210
- test ("second thursday of september 2013") {
251
+ test("second thursday of september 2013") {
211
252
  pending
212
- Meetup(9, 2013).second(Meetup.Thu) should be (LocalDate.of(2013, 9, 12))
253
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.Second) should be(
254
+ LocalDate.of(2013, 9, 12))
213
255
  }
214
256
 
215
- test ("second thursday of october 2013") {
257
+ test("second thursday of october 2013") {
216
258
  pending
217
- Meetup(10, 2013).second(Meetup.Thu) should be (LocalDate.of(2013, 10, 10))
259
+ Meetup(10, 2013).day(Meetup.Thu, Schedule.Second) should be(
260
+ LocalDate.of(2013, 10, 10))
218
261
  }
219
262
 
220
- test ("second friday of november 2013") {
263
+ test("second friday of november 2013") {
221
264
  pending
222
- Meetup(11, 2013).second(Meetup.Fri) should be (LocalDate.of(2013, 11, 8))
265
+ Meetup(11, 2013).day(Meetup.Fri, Schedule.Second) should be(
266
+ LocalDate.of(2013, 11, 8))
223
267
  }
224
268
 
225
- test ("second friday of december 2013") {
269
+ test("second friday of december 2013") {
226
270
  pending
227
- Meetup(12, 2013).second(Meetup.Fri) should be (LocalDate.of(2013, 12, 13))
271
+ Meetup(12, 2013).day(Meetup.Fri, Schedule.Second) should be(
272
+ LocalDate.of(2013, 12, 13))
228
273
  }
229
274
 
230
- test ("second saturday of january 2013") {
275
+ test("second saturday of january 2013") {
231
276
  pending
232
- Meetup(1, 2013).second(Meetup.Sat) should be (LocalDate.of(2013, 1, 12))
277
+ Meetup(1, 2013).day(Meetup.Sat, Schedule.Second) should be(
278
+ LocalDate.of(2013, 1, 12))
233
279
  }
234
280
 
235
- test ("second saturday of february 2013") {
281
+ test("second saturday of february 2013") {
236
282
  pending
237
- Meetup(2, 2013).second(Meetup.Sat) should be (LocalDate.of(2013, 2, 9))
283
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.Second) should be(
284
+ LocalDate.of(2013, 2, 9))
238
285
  }
239
286
 
240
- test ("second sunday of march 2013") {
287
+ test("second sunday of march 2013") {
241
288
  pending
242
- Meetup(3, 2013).second(Meetup.Sun) should be (LocalDate.of(2013, 3, 10))
289
+ Meetup(3, 2013).day(Meetup.Sun, Schedule.Second) should be(
290
+ LocalDate.of(2013, 3, 10))
243
291
  }
244
292
 
245
- test ("second sunday of april 2013") {
293
+ test("second sunday of april 2013") {
246
294
  pending
247
- Meetup(4, 2013).second(Meetup.Sun) should be (LocalDate.of(2013, 4, 14))
295
+ Meetup(4, 2013).day(Meetup.Sun, Schedule.Second) should be(
296
+ LocalDate.of(2013, 4, 14))
248
297
  }
249
298
 
250
- test ("third monday of march 2013") {
299
+ test("third monday of march 2013") {
251
300
  pending
252
- Meetup(3, 2013).third(Meetup.Mon) should be (LocalDate.of(2013, 3, 18))
301
+ Meetup(3, 2013).day(Meetup.Mon, Schedule.Third) should be(
302
+ LocalDate.of(2013, 3, 18))
253
303
  }
254
304
 
255
- test ("third monday of april 2013") {
305
+ test("third monday of april 2013") {
256
306
  pending
257
- Meetup(4, 2013).third(Meetup.Mon) should be (LocalDate.of(2013, 4, 15))
307
+ Meetup(4, 2013).day(Meetup.Mon, Schedule.Third) should be(
308
+ LocalDate.of(2013, 4, 15))
258
309
  }
259
310
 
260
- test ("third tuesday of may 2013") {
311
+ test("third tuesday of may 2013") {
261
312
  pending
262
- Meetup(5, 2013).third(Meetup.Tue) should be (LocalDate.of(2013, 5, 21))
313
+ Meetup(5, 2013).day(Meetup.Tue, Schedule.Third) should be(
314
+ LocalDate.of(2013, 5, 21))
263
315
  }
264
316
 
265
- test ("third tuesday of june 2013") {
317
+ test("third tuesday of june 2013") {
266
318
  pending
267
- Meetup(6, 2013).third(Meetup.Tue) should be (LocalDate.of(2013, 6, 18))
319
+ Meetup(6, 2013).day(Meetup.Tue, Schedule.Third) should be(
320
+ LocalDate.of(2013, 6, 18))
268
321
  }
269
322
 
270
- test ("third wednesday of july 2013") {
323
+ test("third wednesday of july 2013") {
271
324
  pending
272
- Meetup(7, 2013).third(Meetup.Wed) should be (LocalDate.of(2013, 7, 17))
325
+ Meetup(7, 2013).day(Meetup.Wed, Schedule.Third) should be(
326
+ LocalDate.of(2013, 7, 17))
273
327
  }
274
328
 
275
- test ("third wednesday of august 2013") {
329
+ test("third wednesday of august 2013") {
276
330
  pending
277
- Meetup(8, 2013).third(Meetup.Wed) should be (LocalDate.of(2013, 8, 21))
331
+ Meetup(8, 2013).day(Meetup.Wed, Schedule.Third) should be(
332
+ LocalDate.of(2013, 8, 21))
278
333
  }
279
334
 
280
- test ("third thursday of september 2013") {
335
+ test("third thursday of september 2013") {
281
336
  pending
282
- Meetup(9, 2013).third(Meetup.Thu) should be (LocalDate.of(2013, 9, 19))
337
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.Third) should be(
338
+ LocalDate.of(2013, 9, 19))
283
339
  }
284
340
 
285
- test ("third thursday of october 2013") {
341
+ test("third thursday of october 2013") {
286
342
  pending
287
- Meetup(10, 2013).third(Meetup.Thu) should be (LocalDate.of(2013, 10, 17))
343
+ Meetup(10, 2013).day(Meetup.Thu, Schedule.Third) should be(
344
+ LocalDate.of(2013, 10, 17))
288
345
  }
289
346
 
290
- test ("third friday of november 2013") {
347
+ test("third friday of november 2013") {
291
348
  pending
292
- Meetup(11, 2013).third(Meetup.Fri) should be (LocalDate.of(2013, 11, 15))
349
+ Meetup(11, 2013).day(Meetup.Fri, Schedule.Third) should be(
350
+ LocalDate.of(2013, 11, 15))
293
351
  }
294
352
 
295
- test ("third friday of december 2013") {
353
+ test("third friday of december 2013") {
296
354
  pending
297
- Meetup(12, 2013).third(Meetup.Fri) should be (LocalDate.of(2013, 12, 20))
355
+ Meetup(12, 2013).day(Meetup.Fri, Schedule.Third) should be(
356
+ LocalDate.of(2013, 12, 20))
298
357
  }
299
358
 
300
- test ("third saturday of january 2013") {
359
+ test("third saturday of january 2013") {
301
360
  pending
302
- Meetup(1, 2013).third(Meetup.Sat) should be (LocalDate.of(2013, 1, 19))
361
+ Meetup(1, 2013).day(Meetup.Sat, Schedule.Third) should be(
362
+ LocalDate.of(2013, 1, 19))
303
363
  }
304
364
 
305
- test ("third saturday of february 2013") {
365
+ test("third saturday of february 2013") {
306
366
  pending
307
- Meetup(2, 2013).third(Meetup.Sat) should be (LocalDate.of(2013, 2, 16))
367
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.Third) should be(
368
+ LocalDate.of(2013, 2, 16))
308
369
  }
309
370
 
310
- test ("third sunday of march 2013") {
371
+ test("third sunday of march 2013") {
311
372
  pending
312
- Meetup(3, 2013).third(Meetup.Sun) should be (LocalDate.of(2013, 3, 17))
373
+ Meetup(3, 2013).day(Meetup.Sun, Schedule.Third) should be(
374
+ LocalDate.of(2013, 3, 17))
313
375
  }
314
376
 
315
- test ("third sunday of april 2013") {
377
+ test("third sunday of april 2013") {
316
378
  pending
317
- Meetup(4, 2013).third(Meetup.Sun) should be (LocalDate.of(2013, 4, 21))
379
+ Meetup(4, 2013).day(Meetup.Sun, Schedule.Third) should be(
380
+ LocalDate.of(2013, 4, 21))
318
381
  }
319
382
 
320
- test ("fourth monday of march 2013") {
383
+ test("fourth monday of march 2013") {
321
384
  pending
322
- Meetup(3, 2013).fourth(Meetup.Mon) should be (LocalDate.of(2013, 3, 25))
385
+ Meetup(3, 2013).day(Meetup.Mon, Schedule.Fourth) should be(
386
+ LocalDate.of(2013, 3, 25))
323
387
  }
324
388
 
325
- test ("fourth monday of april 2013") {
389
+ test("fourth monday of april 2013") {
326
390
  pending
327
- Meetup(4, 2013).fourth(Meetup.Mon) should be (LocalDate.of(2013, 4, 22))
391
+ Meetup(4, 2013).day(Meetup.Mon, Schedule.Fourth) should be(
392
+ LocalDate.of(2013, 4, 22))
328
393
  }
329
394
 
330
- test ("fourth tuesday of may 2013") {
395
+ test("fourth tuesday of may 2013") {
331
396
  pending
332
- Meetup(5, 2013).fourth(Meetup.Tue) should be (LocalDate.of(2013, 5, 28))
397
+ Meetup(5, 2013).day(Meetup.Tue, Schedule.Fourth) should be(
398
+ LocalDate.of(2013, 5, 28))
333
399
  }
334
400
 
335
- test ("fourth tuesday of june 2013") {
401
+ test("fourth tuesday of june 2013") {
336
402
  pending
337
- Meetup(6, 2013).fourth(Meetup.Tue) should be (LocalDate.of(2013, 6, 25))
403
+ Meetup(6, 2013).day(Meetup.Tue, Schedule.Fourth) should be(
404
+ LocalDate.of(2013, 6, 25))
338
405
  }
339
406
 
340
- test ("fourth wednesday of july 2013") {
407
+ test("fourth wednesday of july 2013") {
341
408
  pending
342
- Meetup(7, 2013).fourth(Meetup.Wed) should be (LocalDate.of(2013, 7, 24))
409
+ Meetup(7, 2013).day(Meetup.Wed, Schedule.Fourth) should be(
410
+ LocalDate.of(2013, 7, 24))
343
411
  }
344
412
 
345
- test ("fourth wednesday of august 2013") {
413
+ test("fourth wednesday of august 2013") {
346
414
  pending
347
- Meetup(8, 2013).fourth(Meetup.Wed) should be (LocalDate.of(2013, 8, 28))
415
+ Meetup(8, 2013).day(Meetup.Wed, Schedule.Fourth) should be(
416
+ LocalDate.of(2013, 8, 28))
348
417
  }
349
418
 
350
- test ("fourth thursday of september 2013") {
419
+ test("fourth thursday of september 2013") {
351
420
  pending
352
- Meetup(9, 2013).fourth(Meetup.Thu) should be (LocalDate.of(2013, 9, 26))
421
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.Fourth) should be(
422
+ LocalDate.of(2013, 9, 26))
353
423
  }
354
424
 
355
- test ("fourth thursday of october 2013") {
425
+ test("fourth thursday of october 2013") {
356
426
  pending
357
- Meetup(10, 2013).fourth(Meetup.Thu) should be (LocalDate.of(2013, 10, 24))
427
+ Meetup(10, 2013).day(Meetup.Thu, Schedule.Fourth) should be(
428
+ LocalDate.of(2013, 10, 24))
358
429
  }
359
430
 
360
- test ("fourth friday of november 2013") {
431
+ test("fourth friday of november 2013") {
361
432
  pending
362
- Meetup(11, 2013).fourth(Meetup.Fri) should be (LocalDate.of(2013, 11, 22))
433
+ Meetup(11, 2013).day(Meetup.Fri, Schedule.Fourth) should be(
434
+ LocalDate.of(2013, 11, 22))
363
435
  }
364
436
 
365
- test ("fourth friday of december 2013") {
437
+ test("fourth friday of december 2013") {
366
438
  pending
367
- Meetup(12, 2013).fourth(Meetup.Fri) should be (LocalDate.of(2013, 12, 27))
439
+ Meetup(12, 2013).day(Meetup.Fri, Schedule.Fourth) should be(
440
+ LocalDate.of(2013, 12, 27))
368
441
  }
369
442
 
370
- test ("fourth saturday of january 2013") {
443
+ test("fourth saturday of january 2013") {
371
444
  pending
372
- Meetup(1, 2013).fourth(Meetup.Sat) should be (LocalDate.of(2013, 1, 26))
445
+ Meetup(1, 2013).day(Meetup.Sat, Schedule.Fourth) should be(
446
+ LocalDate.of(2013, 1, 26))
373
447
  }
374
448
 
375
- test ("fourth saturday of february 2013") {
449
+ test("fourth saturday of february 2013") {
376
450
  pending
377
- Meetup(2, 2013).fourth(Meetup.Sat) should be (LocalDate.of(2013, 2, 23))
451
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.Fourth) should be(
452
+ LocalDate.of(2013, 2, 23))
378
453
  }
379
454
 
380
- test ("fourth sunday of march 2013") {
455
+ test("fourth sunday of march 2013") {
381
456
  pending
382
- Meetup(3, 2013).fourth(Meetup.Sun) should be (LocalDate.of(2013, 3, 24))
457
+ Meetup(3, 2013).day(Meetup.Sun, Schedule.Fourth) should be(
458
+ LocalDate.of(2013, 3, 24))
383
459
  }
384
460
 
385
- test ("fourth sunday of april 2013") {
461
+ test("fourth sunday of april 2013") {
386
462
  pending
387
- Meetup(4, 2013).fourth(Meetup.Sun) should be (LocalDate.of(2013, 4, 28))
463
+ Meetup(4, 2013).day(Meetup.Sun, Schedule.Fourth) should be(
464
+ LocalDate.of(2013, 4, 28))
388
465
  }
389
466
 
390
- test ("last monday of march 2013") {
467
+ test("last monday of march 2013") {
391
468
  pending
392
- Meetup(3, 2013).last(Meetup.Mon) should be (LocalDate.of(2013, 3, 25))
469
+ Meetup(3, 2013).day(Meetup.Mon, Schedule.Last) should be(
470
+ LocalDate.of(2013, 3, 25))
393
471
  }
394
472
 
395
- test ("last monday of april 2013") {
473
+ test("last monday of april 2013") {
396
474
  pending
397
- Meetup(4, 2013).last(Meetup.Mon) should be (LocalDate.of(2013, 4, 29))
475
+ Meetup(4, 2013).day(Meetup.Mon, Schedule.Last) should be(
476
+ LocalDate.of(2013, 4, 29))
398
477
  }
399
478
 
400
- test ("last tuesday of may 2013") {
479
+ test("last tuesday of may 2013") {
401
480
  pending
402
- Meetup(5, 2013).last(Meetup.Tue) should be (LocalDate.of(2013, 5, 28))
481
+ Meetup(5, 2013).day(Meetup.Tue, Schedule.Last) should be(
482
+ LocalDate.of(2013, 5, 28))
403
483
  }
404
484
 
405
- test ("last tuesday of june 2013") {
485
+ test("last tuesday of june 2013") {
406
486
  pending
407
- Meetup(6, 2013).last(Meetup.Tue) should be (LocalDate.of(2013, 6, 25))
487
+ Meetup(6, 2013).day(Meetup.Tue, Schedule.Last) should be(
488
+ LocalDate.of(2013, 6, 25))
408
489
  }
409
490
 
410
- test ("last wednesday of july 2013") {
491
+ test("last wednesday of july 2013") {
411
492
  pending
412
- Meetup(7, 2013).last(Meetup.Wed) should be (LocalDate.of(2013, 7, 31))
493
+ Meetup(7, 2013).day(Meetup.Wed, Schedule.Last) should be(
494
+ LocalDate.of(2013, 7, 31))
413
495
  }
414
496
 
415
- test ("last wednesday of august 2013") {
497
+ test("last wednesday of august 2013") {
416
498
  pending
417
- Meetup(8, 2013).last(Meetup.Wed) should be (LocalDate.of(2013, 8, 28))
499
+ Meetup(8, 2013).day(Meetup.Wed, Schedule.Last) should be(
500
+ LocalDate.of(2013, 8, 28))
418
501
  }
419
502
 
420
- test ("last thursday of september 2013") {
503
+ test("last thursday of september 2013") {
421
504
  pending
422
- Meetup(9, 2013).last(Meetup.Thu) should be (LocalDate.of(2013, 9, 26))
505
+ Meetup(9, 2013).day(Meetup.Thu, Schedule.Last) should be(
506
+ LocalDate.of(2013, 9, 26))
423
507
  }
424
508
 
425
- test ("last thursday of october 2013") {
509
+ test("last thursday of october 2013") {
426
510
  pending
427
- Meetup(10, 2013).last(Meetup.Thu) should be (LocalDate.of(2013, 10, 31))
511
+ Meetup(10, 2013).day(Meetup.Thu, Schedule.Last) should be(
512
+ LocalDate.of(2013, 10, 31))
428
513
  }
429
514
 
430
- test ("last friday of november 2013") {
515
+ test("last friday of november 2013") {
431
516
  pending
432
- Meetup(11, 2013).last(Meetup.Fri) should be (LocalDate.of(2013, 11, 29))
517
+ Meetup(11, 2013).day(Meetup.Fri, Schedule.Last) should be(
518
+ LocalDate.of(2013, 11, 29))
433
519
  }
434
520
 
435
- test ("last friday of december 2013") {
521
+ test("last friday of december 2013") {
436
522
  pending
437
- Meetup(12, 2013).last(Meetup.Fri) should be (LocalDate.of(2013, 12, 27))
523
+ Meetup(12, 2013).day(Meetup.Fri, Schedule.Last) should be(
524
+ LocalDate.of(2013, 12, 27))
438
525
  }
439
526
 
440
- test ("last saturday of january 2013") {
527
+ test("last saturday of january 2013") {
441
528
  pending
442
- Meetup(1, 2013).last(Meetup.Sat) should be (LocalDate.of(2013, 1, 26))
529
+ Meetup(1, 2013).day(Meetup.Sat, Schedule.Last) should be(
530
+ LocalDate.of(2013, 1, 26))
443
531
  }
444
532
 
445
- test ("last saturday of february 2013") {
533
+ test("last saturday of february 2013") {
446
534
  pending
447
- Meetup(2, 2013).last(Meetup.Sat) should be (LocalDate.of(2013, 2, 23))
535
+ Meetup(2, 2013).day(Meetup.Sat, Schedule.Last) should be(
536
+ LocalDate.of(2013, 2, 23))
448
537
  }
449
538
 
450
- test ("last sunday of march 2013") {
539
+ test("last sunday of march 2013") {
451
540
  pending
452
- Meetup(3, 2013).last(Meetup.Sun) should be (LocalDate.of(2013, 3, 31))
541
+ Meetup(3, 2013).day(Meetup.Sun, Schedule.Last) should be(
542
+ LocalDate.of(2013, 3, 31))
453
543
  }
454
544
 
455
- test ("last sunday of april 2013") {
545
+ test("last sunday of april 2013") {
456
546
  pending
457
- Meetup(4, 2013).last(Meetup.Sun) should be (LocalDate.of(2013, 4, 28))
547
+ Meetup(4, 2013).day(Meetup.Sun, Schedule.Last) should be(
548
+ LocalDate.of(2013, 4, 28))
458
549
  }
459
550
  }
460
-