trackler 2.2.1.54 → 2.2.1.55

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/dominoes/description.md +3 -3
  4. data/problem-specifications/exercises/two-fer/description.md +0 -28
  5. data/tracks/c/config.json +12 -0
  6. data/tracks/c/exercises/queen-attack/README.md +65 -0
  7. data/tracks/c/exercises/queen-attack/makefile +15 -0
  8. data/tracks/c/exercises/queen-attack/src/example.c +25 -0
  9. data/tracks/c/exercises/queen-attack/src/queen_attack.h +19 -0
  10. data/tracks/c/exercises/queen-attack/test/test_queen_attack.c +190 -0
  11. data/tracks/c/exercises/queen-attack/test/vendor/unity.c +1300 -0
  12. data/tracks/c/exercises/queen-attack/test/vendor/unity.h +274 -0
  13. data/tracks/c/exercises/queen-attack/test/vendor/unity_internals.h +701 -0
  14. data/tracks/common-lisp/exercises/acronym/README.md +1 -1
  15. data/tracks/delphi/exercises/two-fer/README.md +0 -28
  16. data/tracks/ecmascript/config.json +41 -0
  17. data/tracks/ecmascript/exercises/accumulate/package.json +5 -3
  18. data/tracks/ecmascript/exercises/acronym/package.json +5 -3
  19. data/tracks/ecmascript/exercises/all-your-base/package.json +5 -3
  20. data/tracks/ecmascript/exercises/allergies/package.json +5 -3
  21. data/tracks/ecmascript/exercises/alphametics/package.json +5 -3
  22. data/tracks/ecmascript/exercises/anagram/package.json +5 -3
  23. data/tracks/ecmascript/exercises/atbash-cipher/package.json +5 -3
  24. data/tracks/ecmascript/exercises/beer-song/package.json +5 -3
  25. data/tracks/ecmascript/exercises/binary-search-tree/package.json +5 -3
  26. data/tracks/ecmascript/exercises/binary-search/package.json +5 -3
  27. data/tracks/ecmascript/exercises/binary/package.json +5 -3
  28. data/tracks/ecmascript/exercises/bob/package.json +5 -3
  29. data/tracks/ecmascript/exercises/bowling/package.json +2 -2
  30. data/tracks/ecmascript/exercises/bracket-push/package.json +5 -3
  31. data/tracks/ecmascript/exercises/change/README.md +44 -0
  32. data/tracks/ecmascript/exercises/change/change.spec.js +80 -0
  33. data/tracks/ecmascript/exercises/change/example.js +120 -0
  34. data/tracks/ecmascript/exercises/change/package.json +69 -0
  35. data/tracks/ecmascript/exercises/circular-buffer/package.json +5 -3
  36. data/tracks/ecmascript/exercises/clock/package.json +5 -3
  37. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +6 -4
  38. data/tracks/ecmascript/exercises/connect/package.json +5 -3
  39. data/tracks/ecmascript/exercises/crypto-square/package.json +5 -3
  40. data/tracks/ecmascript/exercises/custom-set/package.json +5 -3
  41. data/tracks/ecmascript/exercises/diamond/package.json +5 -3
  42. data/tracks/ecmascript/exercises/difference-of-squares/package.json +5 -3
  43. data/tracks/ecmascript/exercises/diffie-hellman/package.json +5 -3
  44. data/tracks/ecmascript/exercises/etl/package.json +5 -3
  45. data/tracks/ecmascript/exercises/flatten-array/package.json +5 -3
  46. data/tracks/ecmascript/exercises/food-chain/package.json +5 -3
  47. data/tracks/ecmascript/exercises/gigasecond/package.json +5 -3
  48. data/tracks/ecmascript/exercises/grade-school/package.json +5 -3
  49. data/tracks/ecmascript/exercises/grains/package.json +5 -3
  50. data/tracks/ecmascript/exercises/hamming/package.json +5 -3
  51. data/tracks/ecmascript/exercises/hello-world/package.json +5 -3
  52. data/tracks/ecmascript/exercises/hexadecimal/package.json +5 -3
  53. data/tracks/ecmascript/exercises/isbn-verifier/README.md +62 -0
  54. data/tracks/ecmascript/exercises/isbn-verifier/example.js +17 -0
  55. data/tracks/ecmascript/exercises/isbn-verifier/isbn-verifier.spec.js +81 -0
  56. data/tracks/ecmascript/exercises/isbn-verifier/package.json +71 -0
  57. data/tracks/ecmascript/exercises/isogram/package.json +5 -3
  58. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +5 -3
  59. data/tracks/ecmascript/exercises/largest-series-product/package.json +5 -3
  60. data/tracks/ecmascript/exercises/leap/package.json +5 -3
  61. data/tracks/ecmascript/exercises/linked-list/package.json +5 -3
  62. data/tracks/ecmascript/exercises/list-ops/package.json +5 -3
  63. data/tracks/ecmascript/exercises/luhn/package.json +5 -3
  64. data/tracks/ecmascript/exercises/matrix/package.json +5 -3
  65. data/tracks/ecmascript/exercises/meetup/package.json +5 -3
  66. data/tracks/ecmascript/exercises/minesweeper/package.json +5 -3
  67. data/tracks/ecmascript/exercises/nth-prime/package.json +5 -3
  68. data/tracks/ecmascript/exercises/ocr-numbers/package.json +5 -3
  69. data/tracks/ecmascript/exercises/octal/package.json +5 -3
  70. data/tracks/ecmascript/exercises/palindrome-products/package.json +5 -3
  71. data/tracks/ecmascript/exercises/pangram/package.json +5 -3
  72. data/tracks/ecmascript/exercises/pascals-triangle/package.json +5 -3
  73. data/tracks/ecmascript/exercises/perfect-numbers/package.json +5 -3
  74. data/tracks/ecmascript/exercises/phone-number/package.json +5 -3
  75. data/tracks/ecmascript/exercises/pig-latin/package.json +5 -3
  76. data/tracks/ecmascript/exercises/prime-factors/package.json +5 -3
  77. data/tracks/ecmascript/exercises/proverb/package.json +5 -3
  78. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +5 -3
  79. data/tracks/ecmascript/exercises/queen-attack/package.json +5 -3
  80. data/tracks/ecmascript/exercises/raindrops/package.json +5 -3
  81. data/tracks/ecmascript/exercises/rna-transcription/package.json +5 -3
  82. data/tracks/ecmascript/exercises/robot-name/package.json +5 -3
  83. data/tracks/ecmascript/exercises/robot-simulator/package.json +5 -3
  84. data/tracks/ecmascript/exercises/roman-numerals/package.json +5 -3
  85. data/tracks/ecmascript/exercises/run-length-encoding/package.json +5 -3
  86. data/tracks/ecmascript/exercises/saddle-points/package.json +5 -3
  87. data/tracks/ecmascript/exercises/say/package.json +5 -3
  88. data/tracks/ecmascript/exercises/scrabble-score/package.json +5 -3
  89. data/tracks/ecmascript/exercises/secret-handshake/package.json +5 -3
  90. data/tracks/ecmascript/exercises/series/package.json +5 -3
  91. data/tracks/ecmascript/exercises/sieve/package.json +5 -3
  92. data/tracks/ecmascript/exercises/simple-cipher/package.json +5 -3
  93. data/tracks/ecmascript/exercises/simple-linked-list/package.json +5 -3
  94. data/tracks/ecmascript/exercises/space-age/package.json +5 -3
  95. data/tracks/ecmascript/exercises/strain/package.json +5 -3
  96. data/tracks/ecmascript/exercises/sublist/package.json +5 -3
  97. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +5 -3
  98. data/tracks/ecmascript/exercises/transpose/README.md +94 -0
  99. data/tracks/ecmascript/exercises/transpose/example.js +12 -0
  100. data/tracks/ecmascript/exercises/transpose/package.json +71 -0
  101. data/tracks/ecmascript/exercises/transpose/transpose.spec.js +67 -0
  102. data/tracks/ecmascript/exercises/triangle/package.json +5 -3
  103. data/tracks/ecmascript/exercises/trinary/package.json +5 -3
  104. data/tracks/ecmascript/exercises/twelve-days/package.json +5 -3
  105. data/tracks/ecmascript/exercises/two-bucket/package.json +5 -3
  106. data/tracks/ecmascript/exercises/two-fer/package.json +5 -3
  107. data/tracks/ecmascript/exercises/word-count/package.json +5 -3
  108. data/tracks/ecmascript/exercises/word-search/package.json +5 -3
  109. data/tracks/ecmascript/exercises/wordy/package.json +5 -3
  110. data/tracks/ecmascript/package-lock.json +6219 -0
  111. data/tracks/ecmascript/package.json +5 -3
  112. data/tracks/erlang/exercises/collatz-conjecture/src/collatz_conjecture.erl +3 -4
  113. data/tracks/erlang/exercises/collatz-conjecture/src/example.erl +3 -3
  114. data/tracks/erlang/exercises/collatz-conjecture/test/collatz_conjecture_tests.erl +13 -9
  115. data/tracks/erlang/exercises/hello-world/src/hello_world.erl +2 -2
  116. data/tracks/erlang/exercises/leap/src/example.erl +1 -1
  117. data/tracks/erlang/exercises/leap/src/leap.erl +3 -3
  118. data/tracks/erlang/exercises/leap/test/leap_tests.erl +9 -9
  119. data/tracks/erlang/testgen/src/testgen.erl +16 -13
  120. data/tracks/erlang/testgen/src/tgen.erl +65 -38
  121. data/tracks/erlang/testgen/src/tgen_collatz-conjecture.erl +38 -0
  122. data/tracks/erlang/testgen/src/tgen_hello-world.erl +11 -19
  123. data/tracks/erlang/testgen/src/tgen_leap.erl +31 -0
  124. data/tracks/erlang/testgen/src/tgs.erl +80 -0
  125. data/tracks/fsharp/exercises/alphametics/AlphameticsTest.fs +78 -23
  126. data/tracks/fsharp/exercises/anagram/AnagramTest.fs +66 -34
  127. data/tracks/fsharp/exercises/connect/ConnectTest.fs +81 -68
  128. data/tracks/fsharp/exercises/connect/Example.fs +9 -5
  129. data/tracks/fsharp/exercises/food-chain/Example.fs +5 -9
  130. data/tracks/fsharp/exercises/food-chain/FoodChain.fs +2 -2
  131. data/tracks/fsharp/exercises/food-chain/FoodChainTest.fs +143 -75
  132. data/tracks/fsharp/exercises/hamming/Example.fs +8 -4
  133. data/tracks/fsharp/exercises/hamming/Hamming.fs +1 -1
  134. data/tracks/fsharp/exercises/hamming/HammingTest.fs +53 -13
  135. data/tracks/fsharp/exercises/house/Example.fs +5 -6
  136. data/tracks/fsharp/exercises/house/House.fs +3 -1
  137. data/tracks/fsharp/exercises/house/HouseTest.fs +272 -96
  138. data/tracks/fsharp/exercises/meetup/Example.fs +1 -1
  139. data/tracks/fsharp/exercises/meetup/Meetup.fs +1 -1
  140. data/tracks/fsharp/exercises/meetup/MeetupTest.fs +384 -73
  141. data/tracks/fsharp/exercises/ocr-numbers/Example.fs +43 -35
  142. data/tracks/fsharp/exercises/ocr-numbers/OcrNumbersTest.fs +160 -125
  143. data/tracks/fsharp/exercises/two-fer/Example.fs +4 -2
  144. data/tracks/fsharp/exercises/two-fer/TwoFer.fs +1 -1
  145. data/tracks/fsharp/exercises/two-fer/TwoFerTest.fs +7 -4
  146. data/tracks/fsharp/generators/Common.fs +6 -2
  147. data/tracks/fsharp/generators/Exercise.fs +14 -13
  148. data/tracks/fsharp/generators/Generators.fs +145 -2
  149. data/tracks/fsharp/generators/Options.fs +4 -6
  150. data/tracks/fsharp/generators/Output.fs +2 -2
  151. data/tracks/fsharp/generators/Program.fs +4 -3
  152. data/tracks/java/exercises/saddle-points/README.md +1 -1
  153. data/tracks/java/exercises/two-fer/README.md +0 -28
  154. data/tracks/javascript/exercises/beer-song/example.js +18 -14
  155. data/tracks/kotlin/exercises/saddle-points/README.md +1 -1
  156. data/tracks/kotlin/exercises/two-fer/README.md +0 -28
  157. data/tracks/lua/config.json +12 -0
  158. data/tracks/lua/exercises/collatz-conjecture/README.md +43 -0
  159. data/tracks/lua/exercises/collatz-conjecture/collatz-conjecture_spec.lua +33 -0
  160. data/tracks/lua/exercises/collatz-conjecture/example.lua +16 -0
  161. data/tracks/python/config.json +4 -1
  162. data/tracks/python/exercises/binary-search/binary_search_test.py +2 -0
  163. data/tracks/python/exercises/change/change_test.py +2 -0
  164. data/tracks/python/exercises/circular-buffer/circular_buffer_test.py +56 -50
  165. data/tracks/python/exercises/forth/example.py +3 -1
  166. data/tracks/python/exercises/forth/forth_test.py +43 -26
  167. data/tracks/python/exercises/nth-prime/nth_prime.py +1 -1
  168. data/tracks/python/exercises/rna-transcription/README.md +5 -0
  169. data/tracks/python/exercises/rna-transcription/example.py +1 -1
  170. data/tracks/python/exercises/rna-transcription/rna_transcription_test.py +7 -4
  171. data/tracks/python/exercises/robot-simulator/robot_simulator_test.py +9 -7
  172. data/tracks/python/exercises/saddle-points/saddle_points_test.py +15 -5
  173. data/tracks/python/exercises/simple-cipher/simple_cipher.py +7 -1
  174. data/tracks/python/exercises/word-count/example.py +6 -4
  175. data/tracks/python/exercises/word-count/word_count_test.py +49 -22
  176. data/tracks/python/exercises/word-search/word_search_test.py +104 -12
  177. data/tracks/rust/.travis.yml +2 -0
  178. data/tracks/rust/README.md +5 -0
  179. data/tracks/rust/_test/check-exercises.sh +0 -6
  180. data/tracks/rust/_test/ensure-lib-src-rs-exist.sh +19 -0
  181. data/tracks/rust/_test/ensure-stubs-compile.sh +26 -0
  182. data/tracks/rust/config.json +12 -0
  183. data/tracks/rust/config/exercise-readme-insert.md +3 -2
  184. data/tracks/rust/docs/ABOUT.md +2 -2
  185. data/tracks/rust/docs/LEARNING.md +1 -1
  186. data/tracks/rust/docs/RESOURCES.md +1 -1
  187. data/tracks/rust/docs/TESTS.md +2 -2
  188. data/tracks/rust/exercises/accumulate/README.md +3 -2
  189. data/tracks/rust/exercises/acronym/README.md +3 -2
  190. data/tracks/rust/exercises/all-your-base/README.md +3 -2
  191. data/tracks/rust/exercises/allergies/README.md +3 -2
  192. data/tracks/rust/exercises/alphametics/README.md +3 -2
  193. data/tracks/rust/exercises/anagram/README.md +3 -2
  194. data/tracks/rust/exercises/atbash-cipher/README.md +3 -2
  195. data/tracks/rust/exercises/beer-song/README.md +3 -2
  196. data/tracks/rust/exercises/beer-song/src/lib.rs +2 -2
  197. data/tracks/rust/exercises/binary-search/README.md +3 -2
  198. data/tracks/rust/exercises/bob/README.md +3 -2
  199. data/tracks/rust/exercises/bob/src/lib.rs +1 -1
  200. data/tracks/rust/exercises/bowling/README.md +3 -2
  201. data/tracks/rust/exercises/bracket-push/HINTS.md +1 -1
  202. data/tracks/rust/exercises/bracket-push/README.md +4 -3
  203. data/tracks/rust/exercises/circular-buffer/README.md +3 -2
  204. data/tracks/rust/exercises/clock/README.md +3 -2
  205. data/tracks/rust/exercises/collatz-conjecture/README.md +3 -2
  206. data/tracks/rust/exercises/collatz-conjecture/src/lib.rs +1 -1
  207. data/tracks/rust/exercises/crypto-square/README.md +3 -2
  208. data/tracks/rust/exercises/custom-set/README.md +3 -2
  209. data/tracks/rust/exercises/decimal/.meta/ALLOWED_TO_NOT_COMPILE +2 -0
  210. data/tracks/rust/exercises/decimal/README.md +3 -2
  211. data/tracks/rust/exercises/difference-of-squares/README.md +3 -2
  212. data/tracks/rust/exercises/difference-of-squares/src/lib.rs +3 -3
  213. data/tracks/rust/exercises/dominoes/README.md +3 -2
  214. data/tracks/rust/exercises/etl/README.md +3 -2
  215. data/tracks/rust/exercises/forth/README.md +3 -2
  216. data/tracks/rust/exercises/forth/src/lib.rs +3 -0
  217. data/tracks/rust/exercises/gigasecond/README.md +3 -2
  218. data/tracks/rust/exercises/grade-school/README.md +3 -2
  219. data/tracks/rust/exercises/grains/README.md +3 -2
  220. data/tracks/rust/exercises/hamming/README.md +3 -2
  221. data/tracks/rust/exercises/hello-world/GETTING_STARTED.md +1 -1
  222. data/tracks/rust/exercises/hello-world/README.md +3 -2
  223. data/tracks/rust/exercises/hexadecimal/README.md +3 -2
  224. data/tracks/rust/exercises/isogram/.gitignore +8 -0
  225. data/tracks/rust/exercises/isogram/Cargo.toml +3 -0
  226. data/tracks/rust/exercises/isogram/README.md +52 -0
  227. data/tracks/rust/exercises/isogram/example.rs +12 -0
  228. data/tracks/rust/exercises/isogram/src/lib.rs +0 -0
  229. data/tracks/rust/exercises/isogram/tests/isogram.rs +72 -0
  230. data/tracks/rust/exercises/largest-series-product/README.md +3 -2
  231. data/tracks/rust/exercises/leap/README.md +3 -2
  232. data/tracks/rust/exercises/leap/src/lib.rs +1 -1
  233. data/tracks/rust/exercises/luhn-from/README.md +3 -2
  234. data/tracks/rust/exercises/luhn-trait/.meta/description.md +2 -2
  235. data/tracks/rust/exercises/luhn-trait/README.md +5 -4
  236. data/tracks/rust/exercises/luhn/README.md +3 -2
  237. data/tracks/rust/exercises/minesweeper/README.md +3 -2
  238. data/tracks/rust/exercises/nth-prime/README.md +3 -2
  239. data/tracks/rust/exercises/nucleotide-codons/README.md +3 -2
  240. data/tracks/rust/exercises/nucleotide-count/README.md +3 -2
  241. data/tracks/rust/exercises/ocr-numbers/README.md +3 -2
  242. data/tracks/rust/exercises/pangram/README.md +3 -2
  243. data/tracks/rust/exercises/parallel-letter-frequency/HINTS.md +1 -1
  244. data/tracks/rust/exercises/parallel-letter-frequency/README.md +4 -3
  245. data/tracks/rust/exercises/pascals-triangle/README.md +3 -2
  246. data/tracks/rust/exercises/perfect-numbers/README.md +3 -2
  247. data/tracks/rust/exercises/phone-number/README.md +3 -2
  248. data/tracks/rust/exercises/pig-latin/README.md +3 -2
  249. data/tracks/rust/exercises/poker/README.md +3 -2
  250. data/tracks/rust/exercises/prime-factors/README.md +3 -2
  251. data/tracks/rust/exercises/protein-translation/README.md +3 -2
  252. data/tracks/rust/exercises/proverb/README.md +3 -2
  253. data/tracks/rust/exercises/proverb/src/lib.rs +1 -1
  254. data/tracks/rust/exercises/pythagorean-triplet/README.md +3 -2
  255. data/tracks/rust/exercises/queen-attack/README.md +3 -2
  256. data/tracks/rust/exercises/raindrops/README.md +3 -2
  257. data/tracks/rust/exercises/raindrops/src/lib.rs +1 -1
  258. data/tracks/rust/exercises/react/README.md +3 -2
  259. data/tracks/rust/exercises/rectangles/README.md +3 -2
  260. data/tracks/rust/exercises/rna-transcription/README.md +3 -2
  261. data/tracks/rust/exercises/robot-name/README.md +3 -2
  262. data/tracks/rust/exercises/robot-simulator/README.md +3 -2
  263. data/tracks/rust/exercises/roman-numerals/README.md +3 -2
  264. data/tracks/rust/exercises/rotational-cipher/README.md +3 -2
  265. data/tracks/rust/exercises/run-length-encoding/README.md +3 -2
  266. data/tracks/rust/exercises/say/README.md +3 -2
  267. data/tracks/rust/exercises/scrabble-score/README.md +3 -2
  268. data/tracks/rust/exercises/sieve/README.md +3 -2
  269. data/tracks/rust/exercises/space-age/README.md +3 -2
  270. data/tracks/rust/exercises/sublist/README.md +3 -2
  271. data/tracks/rust/exercises/sum-of-multiples/README.md +3 -2
  272. data/tracks/rust/exercises/sum-of-multiples/src/lib.rs +1 -1
  273. data/tracks/rust/exercises/tournament/README.md +3 -2
  274. data/tracks/rust/exercises/triangle/HINTS.md +2 -2
  275. data/tracks/rust/exercises/triangle/README.md +5 -4
  276. data/tracks/rust/exercises/variable-length-quantity/README.md +3 -2
  277. data/tracks/rust/exercises/word-count/README.md +3 -2
  278. data/tracks/rust/exercises/wordy/README.md +3 -2
  279. metadata +38 -3
  280. data/tracks/ecmascript/yarn.lock +0 -3144
@@ -4,7 +4,7 @@ open System
4
4
 
5
5
  type Schedule = First | Second | Third | Fourth | Last | Teenth
6
6
 
7
- let meetupDay dayOfWeek schedule year month =
7
+ let meetup year month dayOfWeek schedule =
8
8
  let daysOfWeek =
9
9
  [1..DateTime.DaysInMonth(year, month)]
10
10
  |> List.map (fun day -> new DateTime(year, month, day))
@@ -4,4 +4,4 @@ open System
4
4
 
5
5
  type Schedule = First | Second | Third | Fourth | Last | Teenth
6
6
 
7
- let meetupDay dayOfWeek schedule year month: DateTime = failwith "You need to implement this function."
7
+ let meetup year month dayOfWeek schedule: DateTime = failwith "You need to implement this function."
@@ -1,79 +1,390 @@
1
+ // This file was auto-generated based on version 1.0.0 of the canonical data.
2
+
1
3
  module MeetupTest
2
4
 
3
- open System
4
- open Xunit
5
5
  open FsUnit.Xunit
6
+ open Xunit
7
+ open System
6
8
 
7
9
  open Meetup
8
10
 
9
- [<Theory>]
10
- [<InlineData(5, DayOfWeek.Monday, "2013-5-13")>]
11
- [<InlineData(3, DayOfWeek.Tuesday, "2013-3-19")>]
12
- [<InlineData(1, DayOfWeek.Wednesday, "2013-1-16")>]
13
- [<InlineData(5, DayOfWeek.Thursday, "2013-5-16")>]
14
- [<InlineData(4, DayOfWeek.Friday, "2013-4-19")>]
15
- [<InlineData(2, DayOfWeek.Saturday, "2013-2-16")>]
16
- [<InlineData(10, DayOfWeek.Sunday, "2013-10-13")>]
17
- let ``Finds first teenth day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
18
- let day = meetupDay dayOfWeek Schedule.Teenth 2013 month
19
- day.ToString("yyyy-M-d") |> should equal expected
20
-
21
- [<Theory(Skip = "Remove to run test")>]
22
- [<InlineData(3, DayOfWeek.Monday, "2013-3-4")>]
23
- [<InlineData(5, DayOfWeek.Tuesday, "2013-5-7")>]
24
- [<InlineData(7, DayOfWeek.Wednesday, "2013-7-3")>]
25
- [<InlineData(9, DayOfWeek.Thursday, "2013-9-5")>]
26
- [<InlineData(11, DayOfWeek.Friday, "2013-11-1")>]
27
- [<InlineData(1, DayOfWeek.Saturday, "2013-1-5")>]
28
- [<InlineData(4, DayOfWeek.Sunday, "2013-4-7")>]
29
- let ``Finds first day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
30
- let day = meetupDay dayOfWeek Schedule.First 2013 month
31
- day.ToString("yyyy-M-d") |> should equal expected
32
-
33
- [<Theory(Skip = "Remove to run test")>]
34
- [<InlineData(3, DayOfWeek.Monday, "2013-3-11")>]
35
- [<InlineData(5, DayOfWeek.Tuesday, "2013-5-14")>]
36
- [<InlineData(7, DayOfWeek.Wednesday, "2013-7-10")>]
37
- [<InlineData(9, DayOfWeek.Thursday, "2013-9-12")>]
38
- [<InlineData(12, DayOfWeek.Friday, "2013-12-13")>]
39
- [<InlineData(2, DayOfWeek.Saturday, "2013-2-9")>]
40
- [<InlineData(4, DayOfWeek.Sunday, "2013-4-14")>]
41
- let ``Finds second day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
42
- let day = meetupDay dayOfWeek Schedule.Second 2013 month
43
- day.ToString("yyyy-M-d") |> should equal expected
44
-
45
- [<Theory(Skip = "Remove to run test")>]
46
- [<InlineData(3, DayOfWeek.Monday, "2013-3-18")>]
47
- [<InlineData(5, DayOfWeek.Tuesday, "2013-5-21")>]
48
- [<InlineData(7, DayOfWeek.Wednesday, "2013-7-17")>]
49
- [<InlineData(9, DayOfWeek.Thursday, "2013-9-19")>]
50
- [<InlineData(12, DayOfWeek.Friday, "2013-12-20")>]
51
- [<InlineData(2, DayOfWeek.Saturday, "2013-2-16")>]
52
- [<InlineData(4, DayOfWeek.Sunday, "2013-4-21")>]
53
- let ``Finds third day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
54
- let day = meetupDay dayOfWeek Schedule.Third 2013 month
55
- day.ToString("yyyy-M-d") |> should equal expected
56
-
57
- [<Theory(Skip = "Remove to run test")>]
58
- [<InlineData(3, DayOfWeek.Monday, "2013-3-25")>]
59
- [<InlineData(5, DayOfWeek.Tuesday, "2013-5-28")>]
60
- [<InlineData(7, DayOfWeek.Wednesday, "2013-7-24")>]
61
- [<InlineData(9, DayOfWeek.Thursday, "2013-9-26")>]
62
- [<InlineData(12, DayOfWeek.Friday, "2013-12-27")>]
63
- [<InlineData(2, DayOfWeek.Saturday, "2013-2-23")>]
64
- [<InlineData(4, DayOfWeek.Sunday, "2013-4-28")>]
65
- let ``Finds fourth day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
66
- let day = meetupDay dayOfWeek Schedule.Fourth 2013 month
67
- day.ToString("yyyy-M-d") |> should equal expected
68
-
69
- [<Theory(Skip = "Remove to run test")>]
70
- [<InlineData(3, DayOfWeek.Monday, "2013-3-25")>]
71
- [<InlineData(5, DayOfWeek.Tuesday, "2013-5-28")>]
72
- [<InlineData(7, DayOfWeek.Wednesday, "2013-7-31")>]
73
- [<InlineData(9, DayOfWeek.Thursday, "2013-9-26")>]
74
- [<InlineData(12, DayOfWeek.Friday, "2013-12-27")>]
75
- [<InlineData(2, DayOfWeek.Saturday, "2013-2-23")>]
76
- [<InlineData(3, DayOfWeek.Sunday, "2013-3-31")>]
77
- let ``Finds last day of week in a month``(month: int) (dayOfWeek: DayOfWeek) (expected: string) =
78
- let day = meetupDay dayOfWeek Schedule.Last 2013 month
79
- day.ToString("yyyy-M-d") |> should equal expected
11
+ [<Fact>]
12
+ let ``Monteenth of May 2013`` () =
13
+ meetup 2013 5 DayOfWeek.Monday Schedule.Teenth |> should equal (DateTime(2013, 5, 13))
14
+
15
+ [<Fact(Skip = "Remove to run test")>]
16
+ let ``Monteenth of August 2013`` () =
17
+ meetup 2013 8 DayOfWeek.Monday Schedule.Teenth |> should equal (DateTime(2013, 8, 19))
18
+
19
+ [<Fact(Skip = "Remove to run test")>]
20
+ let ``Monteenth of September 2013`` () =
21
+ meetup 2013 9 DayOfWeek.Monday Schedule.Teenth |> should equal (DateTime(2013, 9, 16))
22
+
23
+ [<Fact(Skip = "Remove to run test")>]
24
+ let ``Tuesteenth of March 2013`` () =
25
+ meetup 2013 3 DayOfWeek.Tuesday Schedule.Teenth |> should equal (DateTime(2013, 3, 19))
26
+
27
+ [<Fact(Skip = "Remove to run test")>]
28
+ let ``Tuesteenth of April 2013`` () =
29
+ meetup 2013 4 DayOfWeek.Tuesday Schedule.Teenth |> should equal (DateTime(2013, 4, 16))
30
+
31
+ [<Fact(Skip = "Remove to run test")>]
32
+ let ``Tuesteenth of August 2013`` () =
33
+ meetup 2013 8 DayOfWeek.Tuesday Schedule.Teenth |> should equal (DateTime(2013, 8, 13))
34
+
35
+ [<Fact(Skip = "Remove to run test")>]
36
+ let ``Wednesteenth of January 2013`` () =
37
+ meetup 2013 1 DayOfWeek.Wednesday Schedule.Teenth |> should equal (DateTime(2013, 1, 16))
38
+
39
+ [<Fact(Skip = "Remove to run test")>]
40
+ let ``Wednesteenth of February 2013`` () =
41
+ meetup 2013 2 DayOfWeek.Wednesday Schedule.Teenth |> should equal (DateTime(2013, 2, 13))
42
+
43
+ [<Fact(Skip = "Remove to run test")>]
44
+ let ``Wednesteenth of June 2013`` () =
45
+ meetup 2013 6 DayOfWeek.Wednesday Schedule.Teenth |> should equal (DateTime(2013, 6, 19))
46
+
47
+ [<Fact(Skip = "Remove to run test")>]
48
+ let ``Thursteenth of May 2013`` () =
49
+ meetup 2013 5 DayOfWeek.Thursday Schedule.Teenth |> should equal (DateTime(2013, 5, 16))
50
+
51
+ [<Fact(Skip = "Remove to run test")>]
52
+ let ``Thursteenth of June 2013`` () =
53
+ meetup 2013 6 DayOfWeek.Thursday Schedule.Teenth |> should equal (DateTime(2013, 6, 13))
54
+
55
+ [<Fact(Skip = "Remove to run test")>]
56
+ let ``Thursteenth of September 2013`` () =
57
+ meetup 2013 9 DayOfWeek.Thursday Schedule.Teenth |> should equal (DateTime(2013, 9, 19))
58
+
59
+ [<Fact(Skip = "Remove to run test")>]
60
+ let ``Friteenth of April 2013`` () =
61
+ meetup 2013 4 DayOfWeek.Friday Schedule.Teenth |> should equal (DateTime(2013, 4, 19))
62
+
63
+ [<Fact(Skip = "Remove to run test")>]
64
+ let ``Friteenth of August 2013`` () =
65
+ meetup 2013 8 DayOfWeek.Friday Schedule.Teenth |> should equal (DateTime(2013, 8, 16))
66
+
67
+ [<Fact(Skip = "Remove to run test")>]
68
+ let ``Friteenth of September 2013`` () =
69
+ meetup 2013 9 DayOfWeek.Friday Schedule.Teenth |> should equal (DateTime(2013, 9, 13))
70
+
71
+ [<Fact(Skip = "Remove to run test")>]
72
+ let ``Saturteenth of February 2013`` () =
73
+ meetup 2013 2 DayOfWeek.Saturday Schedule.Teenth |> should equal (DateTime(2013, 2, 16))
74
+
75
+ [<Fact(Skip = "Remove to run test")>]
76
+ let ``Saturteenth of April 2013`` () =
77
+ meetup 2013 4 DayOfWeek.Saturday Schedule.Teenth |> should equal (DateTime(2013, 4, 13))
78
+
79
+ [<Fact(Skip = "Remove to run test")>]
80
+ let ``Saturteenth of October 2013`` () =
81
+ meetup 2013 10 DayOfWeek.Saturday Schedule.Teenth |> should equal (DateTime(2013, 10, 19))
82
+
83
+ [<Fact(Skip = "Remove to run test")>]
84
+ let ``Sunteenth of May 2013`` () =
85
+ meetup 2013 5 DayOfWeek.Sunday Schedule.Teenth |> should equal (DateTime(2013, 5, 19))
86
+
87
+ [<Fact(Skip = "Remove to run test")>]
88
+ let ``Sunteenth of June 2013`` () =
89
+ meetup 2013 6 DayOfWeek.Sunday Schedule.Teenth |> should equal (DateTime(2013, 6, 16))
90
+
91
+ [<Fact(Skip = "Remove to run test")>]
92
+ let ``Sunteenth of October 2013`` () =
93
+ meetup 2013 10 DayOfWeek.Sunday Schedule.Teenth |> should equal (DateTime(2013, 10, 13))
94
+
95
+ [<Fact(Skip = "Remove to run test")>]
96
+ let ``First Monday of March 2013`` () =
97
+ meetup 2013 3 DayOfWeek.Monday Schedule.First |> should equal (DateTime(2013, 3, 4))
98
+
99
+ [<Fact(Skip = "Remove to run test")>]
100
+ let ``First Monday of April 2013`` () =
101
+ meetup 2013 4 DayOfWeek.Monday Schedule.First |> should equal (DateTime(2013, 4, 1))
102
+
103
+ [<Fact(Skip = "Remove to run test")>]
104
+ let ``First Tuesday of May 2013`` () =
105
+ meetup 2013 5 DayOfWeek.Tuesday Schedule.First |> should equal (DateTime(2013, 5, 7))
106
+
107
+ [<Fact(Skip = "Remove to run test")>]
108
+ let ``First Tuesday of June 2013`` () =
109
+ meetup 2013 6 DayOfWeek.Tuesday Schedule.First |> should equal (DateTime(2013, 6, 4))
110
+
111
+ [<Fact(Skip = "Remove to run test")>]
112
+ let ``First Wednesday of July 2013`` () =
113
+ meetup 2013 7 DayOfWeek.Wednesday Schedule.First |> should equal (DateTime(2013, 7, 3))
114
+
115
+ [<Fact(Skip = "Remove to run test")>]
116
+ let ``First Wednesday of August 2013`` () =
117
+ meetup 2013 8 DayOfWeek.Wednesday Schedule.First |> should equal (DateTime(2013, 8, 7))
118
+
119
+ [<Fact(Skip = "Remove to run test")>]
120
+ let ``First Thursday of September 2013`` () =
121
+ meetup 2013 9 DayOfWeek.Thursday Schedule.First |> should equal (DateTime(2013, 9, 5))
122
+
123
+ [<Fact(Skip = "Remove to run test")>]
124
+ let ``First Thursday of October 2013`` () =
125
+ meetup 2013 10 DayOfWeek.Thursday Schedule.First |> should equal (DateTime(2013, 10, 3))
126
+
127
+ [<Fact(Skip = "Remove to run test")>]
128
+ let ``First Friday of November 2013`` () =
129
+ meetup 2013 11 DayOfWeek.Friday Schedule.First |> should equal (DateTime(2013, 11, 1))
130
+
131
+ [<Fact(Skip = "Remove to run test")>]
132
+ let ``First Friday of December 2013`` () =
133
+ meetup 2013 12 DayOfWeek.Friday Schedule.First |> should equal (DateTime(2013, 12, 6))
134
+
135
+ [<Fact(Skip = "Remove to run test")>]
136
+ let ``First Saturday of January 2013`` () =
137
+ meetup 2013 1 DayOfWeek.Saturday Schedule.First |> should equal (DateTime(2013, 1, 5))
138
+
139
+ [<Fact(Skip = "Remove to run test")>]
140
+ let ``First Saturday of February 2013`` () =
141
+ meetup 2013 2 DayOfWeek.Saturday Schedule.First |> should equal (DateTime(2013, 2, 2))
142
+
143
+ [<Fact(Skip = "Remove to run test")>]
144
+ let ``First Sunday of March 2013`` () =
145
+ meetup 2013 3 DayOfWeek.Sunday Schedule.First |> should equal (DateTime(2013, 3, 3))
146
+
147
+ [<Fact(Skip = "Remove to run test")>]
148
+ let ``First Sunday of April 2013`` () =
149
+ meetup 2013 4 DayOfWeek.Sunday Schedule.First |> should equal (DateTime(2013, 4, 7))
150
+
151
+ [<Fact(Skip = "Remove to run test")>]
152
+ let ``Second Monday of March 2013`` () =
153
+ meetup 2013 3 DayOfWeek.Monday Schedule.Second |> should equal (DateTime(2013, 3, 11))
154
+
155
+ [<Fact(Skip = "Remove to run test")>]
156
+ let ``Second Monday of April 2013`` () =
157
+ meetup 2013 4 DayOfWeek.Monday Schedule.Second |> should equal (DateTime(2013, 4, 8))
158
+
159
+ [<Fact(Skip = "Remove to run test")>]
160
+ let ``Second Tuesday of May 2013`` () =
161
+ meetup 2013 5 DayOfWeek.Tuesday Schedule.Second |> should equal (DateTime(2013, 5, 14))
162
+
163
+ [<Fact(Skip = "Remove to run test")>]
164
+ let ``Second Tuesday of June 2013`` () =
165
+ meetup 2013 6 DayOfWeek.Tuesday Schedule.Second |> should equal (DateTime(2013, 6, 11))
166
+
167
+ [<Fact(Skip = "Remove to run test")>]
168
+ let ``Second Wednesday of July 2013`` () =
169
+ meetup 2013 7 DayOfWeek.Wednesday Schedule.Second |> should equal (DateTime(2013, 7, 10))
170
+
171
+ [<Fact(Skip = "Remove to run test")>]
172
+ let ``Second Wednesday of August 2013`` () =
173
+ meetup 2013 8 DayOfWeek.Wednesday Schedule.Second |> should equal (DateTime(2013, 8, 14))
174
+
175
+ [<Fact(Skip = "Remove to run test")>]
176
+ let ``Second Thursday of September 2013`` () =
177
+ meetup 2013 9 DayOfWeek.Thursday Schedule.Second |> should equal (DateTime(2013, 9, 12))
178
+
179
+ [<Fact(Skip = "Remove to run test")>]
180
+ let ``Second Thursday of October 2013`` () =
181
+ meetup 2013 10 DayOfWeek.Thursday Schedule.Second |> should equal (DateTime(2013, 10, 10))
182
+
183
+ [<Fact(Skip = "Remove to run test")>]
184
+ let ``Second Friday of November 2013`` () =
185
+ meetup 2013 11 DayOfWeek.Friday Schedule.Second |> should equal (DateTime(2013, 11, 8))
186
+
187
+ [<Fact(Skip = "Remove to run test")>]
188
+ let ``Second Friday of December 2013`` () =
189
+ meetup 2013 12 DayOfWeek.Friday Schedule.Second |> should equal (DateTime(2013, 12, 13))
190
+
191
+ [<Fact(Skip = "Remove to run test")>]
192
+ let ``Second Saturday of January 2013`` () =
193
+ meetup 2013 1 DayOfWeek.Saturday Schedule.Second |> should equal (DateTime(2013, 1, 12))
194
+
195
+ [<Fact(Skip = "Remove to run test")>]
196
+ let ``Second Saturday of February 2013`` () =
197
+ meetup 2013 2 DayOfWeek.Saturday Schedule.Second |> should equal (DateTime(2013, 2, 9))
198
+
199
+ [<Fact(Skip = "Remove to run test")>]
200
+ let ``Second Sunday of March 2013`` () =
201
+ meetup 2013 3 DayOfWeek.Sunday Schedule.Second |> should equal (DateTime(2013, 3, 10))
202
+
203
+ [<Fact(Skip = "Remove to run test")>]
204
+ let ``Second Sunday of April 2013`` () =
205
+ meetup 2013 4 DayOfWeek.Sunday Schedule.Second |> should equal (DateTime(2013, 4, 14))
206
+
207
+ [<Fact(Skip = "Remove to run test")>]
208
+ let ``Third Monday of March 2013`` () =
209
+ meetup 2013 3 DayOfWeek.Monday Schedule.Third |> should equal (DateTime(2013, 3, 18))
210
+
211
+ [<Fact(Skip = "Remove to run test")>]
212
+ let ``Third Monday of April 2013`` () =
213
+ meetup 2013 4 DayOfWeek.Monday Schedule.Third |> should equal (DateTime(2013, 4, 15))
214
+
215
+ [<Fact(Skip = "Remove to run test")>]
216
+ let ``Third Tuesday of May 2013`` () =
217
+ meetup 2013 5 DayOfWeek.Tuesday Schedule.Third |> should equal (DateTime(2013, 5, 21))
218
+
219
+ [<Fact(Skip = "Remove to run test")>]
220
+ let ``Third Tuesday of June 2013`` () =
221
+ meetup 2013 6 DayOfWeek.Tuesday Schedule.Third |> should equal (DateTime(2013, 6, 18))
222
+
223
+ [<Fact(Skip = "Remove to run test")>]
224
+ let ``Third Wednesday of July 2013`` () =
225
+ meetup 2013 7 DayOfWeek.Wednesday Schedule.Third |> should equal (DateTime(2013, 7, 17))
226
+
227
+ [<Fact(Skip = "Remove to run test")>]
228
+ let ``Third Wednesday of August 2013`` () =
229
+ meetup 2013 8 DayOfWeek.Wednesday Schedule.Third |> should equal (DateTime(2013, 8, 21))
230
+
231
+ [<Fact(Skip = "Remove to run test")>]
232
+ let ``Third Thursday of September 2013`` () =
233
+ meetup 2013 9 DayOfWeek.Thursday Schedule.Third |> should equal (DateTime(2013, 9, 19))
234
+
235
+ [<Fact(Skip = "Remove to run test")>]
236
+ let ``Third Thursday of October 2013`` () =
237
+ meetup 2013 10 DayOfWeek.Thursday Schedule.Third |> should equal (DateTime(2013, 10, 17))
238
+
239
+ [<Fact(Skip = "Remove to run test")>]
240
+ let ``Third Friday of November 2013`` () =
241
+ meetup 2013 11 DayOfWeek.Friday Schedule.Third |> should equal (DateTime(2013, 11, 15))
242
+
243
+ [<Fact(Skip = "Remove to run test")>]
244
+ let ``Third Friday of December 2013`` () =
245
+ meetup 2013 12 DayOfWeek.Friday Schedule.Third |> should equal (DateTime(2013, 12, 20))
246
+
247
+ [<Fact(Skip = "Remove to run test")>]
248
+ let ``Third Saturday of January 2013`` () =
249
+ meetup 2013 1 DayOfWeek.Saturday Schedule.Third |> should equal (DateTime(2013, 1, 19))
250
+
251
+ [<Fact(Skip = "Remove to run test")>]
252
+ let ``Third Saturday of February 2013`` () =
253
+ meetup 2013 2 DayOfWeek.Saturday Schedule.Third |> should equal (DateTime(2013, 2, 16))
254
+
255
+ [<Fact(Skip = "Remove to run test")>]
256
+ let ``Third Sunday of March 2013`` () =
257
+ meetup 2013 3 DayOfWeek.Sunday Schedule.Third |> should equal (DateTime(2013, 3, 17))
258
+
259
+ [<Fact(Skip = "Remove to run test")>]
260
+ let ``Third Sunday of April 2013`` () =
261
+ meetup 2013 4 DayOfWeek.Sunday Schedule.Third |> should equal (DateTime(2013, 4, 21))
262
+
263
+ [<Fact(Skip = "Remove to run test")>]
264
+ let ``Fourth Monday of March 2013`` () =
265
+ meetup 2013 3 DayOfWeek.Monday Schedule.Fourth |> should equal (DateTime(2013, 3, 25))
266
+
267
+ [<Fact(Skip = "Remove to run test")>]
268
+ let ``Fourth Monday of April 2013`` () =
269
+ meetup 2013 4 DayOfWeek.Monday Schedule.Fourth |> should equal (DateTime(2013, 4, 22))
270
+
271
+ [<Fact(Skip = "Remove to run test")>]
272
+ let ``Fourth Tuesday of May 2013`` () =
273
+ meetup 2013 5 DayOfWeek.Tuesday Schedule.Fourth |> should equal (DateTime(2013, 5, 28))
274
+
275
+ [<Fact(Skip = "Remove to run test")>]
276
+ let ``Fourth Tuesday of June 2013`` () =
277
+ meetup 2013 6 DayOfWeek.Tuesday Schedule.Fourth |> should equal (DateTime(2013, 6, 25))
278
+
279
+ [<Fact(Skip = "Remove to run test")>]
280
+ let ``Fourth Wednesday of July 2013`` () =
281
+ meetup 2013 7 DayOfWeek.Wednesday Schedule.Fourth |> should equal (DateTime(2013, 7, 24))
282
+
283
+ [<Fact(Skip = "Remove to run test")>]
284
+ let ``Fourth Wednesday of August 2013`` () =
285
+ meetup 2013 8 DayOfWeek.Wednesday Schedule.Fourth |> should equal (DateTime(2013, 8, 28))
286
+
287
+ [<Fact(Skip = "Remove to run test")>]
288
+ let ``Fourth Thursday of September 2013`` () =
289
+ meetup 2013 9 DayOfWeek.Thursday Schedule.Fourth |> should equal (DateTime(2013, 9, 26))
290
+
291
+ [<Fact(Skip = "Remove to run test")>]
292
+ let ``Fourth Thursday of October 2013`` () =
293
+ meetup 2013 10 DayOfWeek.Thursday Schedule.Fourth |> should equal (DateTime(2013, 10, 24))
294
+
295
+ [<Fact(Skip = "Remove to run test")>]
296
+ let ``Fourth Friday of November 2013`` () =
297
+ meetup 2013 11 DayOfWeek.Friday Schedule.Fourth |> should equal (DateTime(2013, 11, 22))
298
+
299
+ [<Fact(Skip = "Remove to run test")>]
300
+ let ``Fourth Friday of December 2013`` () =
301
+ meetup 2013 12 DayOfWeek.Friday Schedule.Fourth |> should equal (DateTime(2013, 12, 27))
302
+
303
+ [<Fact(Skip = "Remove to run test")>]
304
+ let ``Fourth Saturday of January 2013`` () =
305
+ meetup 2013 1 DayOfWeek.Saturday Schedule.Fourth |> should equal (DateTime(2013, 1, 26))
306
+
307
+ [<Fact(Skip = "Remove to run test")>]
308
+ let ``Fourth Saturday of February 2013`` () =
309
+ meetup 2013 2 DayOfWeek.Saturday Schedule.Fourth |> should equal (DateTime(2013, 2, 23))
310
+
311
+ [<Fact(Skip = "Remove to run test")>]
312
+ let ``Fourth Sunday of March 2013`` () =
313
+ meetup 2013 3 DayOfWeek.Sunday Schedule.Fourth |> should equal (DateTime(2013, 3, 24))
314
+
315
+ [<Fact(Skip = "Remove to run test")>]
316
+ let ``Fourth Sunday of April 2013`` () =
317
+ meetup 2013 4 DayOfWeek.Sunday Schedule.Fourth |> should equal (DateTime(2013, 4, 28))
318
+
319
+ [<Fact(Skip = "Remove to run test")>]
320
+ let ``Last Monday of March 2013`` () =
321
+ meetup 2013 3 DayOfWeek.Monday Schedule.Last |> should equal (DateTime(2013, 3, 25))
322
+
323
+ [<Fact(Skip = "Remove to run test")>]
324
+ let ``Last Monday of April 2013`` () =
325
+ meetup 2013 4 DayOfWeek.Monday Schedule.Last |> should equal (DateTime(2013, 4, 29))
326
+
327
+ [<Fact(Skip = "Remove to run test")>]
328
+ let ``Last Tuesday of May 2013`` () =
329
+ meetup 2013 5 DayOfWeek.Tuesday Schedule.Last |> should equal (DateTime(2013, 5, 28))
330
+
331
+ [<Fact(Skip = "Remove to run test")>]
332
+ let ``Last Tuesday of June 2013`` () =
333
+ meetup 2013 6 DayOfWeek.Tuesday Schedule.Last |> should equal (DateTime(2013, 6, 25))
334
+
335
+ [<Fact(Skip = "Remove to run test")>]
336
+ let ``Last Wednesday of July 2013`` () =
337
+ meetup 2013 7 DayOfWeek.Wednesday Schedule.Last |> should equal (DateTime(2013, 7, 31))
338
+
339
+ [<Fact(Skip = "Remove to run test")>]
340
+ let ``Last Wednesday of August 2013`` () =
341
+ meetup 2013 8 DayOfWeek.Wednesday Schedule.Last |> should equal (DateTime(2013, 8, 28))
342
+
343
+ [<Fact(Skip = "Remove to run test")>]
344
+ let ``Last Thursday of September 2013`` () =
345
+ meetup 2013 9 DayOfWeek.Thursday Schedule.Last |> should equal (DateTime(2013, 9, 26))
346
+
347
+ [<Fact(Skip = "Remove to run test")>]
348
+ let ``Last Thursday of October 2013`` () =
349
+ meetup 2013 10 DayOfWeek.Thursday Schedule.Last |> should equal (DateTime(2013, 10, 31))
350
+
351
+ [<Fact(Skip = "Remove to run test")>]
352
+ let ``Last Friday of November 2013`` () =
353
+ meetup 2013 11 DayOfWeek.Friday Schedule.Last |> should equal (DateTime(2013, 11, 29))
354
+
355
+ [<Fact(Skip = "Remove to run test")>]
356
+ let ``Last Friday of December 2013`` () =
357
+ meetup 2013 12 DayOfWeek.Friday Schedule.Last |> should equal (DateTime(2013, 12, 27))
358
+
359
+ [<Fact(Skip = "Remove to run test")>]
360
+ let ``Last Saturday of January 2013`` () =
361
+ meetup 2013 1 DayOfWeek.Saturday Schedule.Last |> should equal (DateTime(2013, 1, 26))
362
+
363
+ [<Fact(Skip = "Remove to run test")>]
364
+ let ``Last Saturday of February 2013`` () =
365
+ meetup 2013 2 DayOfWeek.Saturday Schedule.Last |> should equal (DateTime(2013, 2, 23))
366
+
367
+ [<Fact(Skip = "Remove to run test")>]
368
+ let ``Last Sunday of March 2013`` () =
369
+ meetup 2013 3 DayOfWeek.Sunday Schedule.Last |> should equal (DateTime(2013, 3, 31))
370
+
371
+ [<Fact(Skip = "Remove to run test")>]
372
+ let ``Last Sunday of April 2013`` () =
373
+ meetup 2013 4 DayOfWeek.Sunday Schedule.Last |> should equal (DateTime(2013, 4, 28))
374
+
375
+ [<Fact(Skip = "Remove to run test")>]
376
+ let ``Last Wednesday of February 2012`` () =
377
+ meetup 2012 2 DayOfWeek.Wednesday Schedule.Last |> should equal (DateTime(2012, 2, 29))
378
+
379
+ [<Fact(Skip = "Remove to run test")>]
380
+ let ``Last Wednesday of December 2014`` () =
381
+ meetup 2014 12 DayOfWeek.Wednesday Schedule.Last |> should equal (DateTime(2014, 12, 31))
382
+
383
+ [<Fact(Skip = "Remove to run test")>]
384
+ let ``Last Sunday of February 2015`` () =
385
+ meetup 2015 2 DayOfWeek.Sunday Schedule.Last |> should equal (DateTime(2015, 2, 22))
386
+
387
+ [<Fact(Skip = "Remove to run test")>]
388
+ let ``First Friday of December 2012`` () =
389
+ meetup 2012 12 DayOfWeek.Friday Schedule.First |> should equal (DateTime(2012, 12, 7))
390
+