learning F#, it seems pretty cool, favourite functional language so far.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

BeerSongTests.fs 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. // This file was auto-generated based on version 2.1.0 of the canonical data.
  2. module BeerSongTests
  3. open FsUnit.Xunit
  4. open Xunit
  5. open BeerSong
  6. [<Fact>]
  7. let ``First generic verse`` () =
  8. let expected =
  9. [ "99 bottles of beer on the wall, 99 bottles of beer.";
  10. "Take one down and pass it around, 98 bottles of beer on the wall." ]
  11. recite 99 1 |> should equal expected
  12. [<Fact>]
  13. let ``Last generic verse`` () =
  14. let expected =
  15. [ "3 bottles of beer on the wall, 3 bottles of beer.";
  16. "Take one down and pass it around, 2 bottles of beer on the wall." ]
  17. recite 3 1 |> should equal expected
  18. [<Fact>]
  19. let ``Verse with 2 bottles`` () =
  20. let expected =
  21. [ "2 bottles of beer on the wall, 2 bottles of beer.";
  22. "Take one down and pass it around, 1 bottle of beer on the wall." ]
  23. recite 2 1 |> should equal expected
  24. [<Fact>]
  25. let ``Verse with 1 bottle`` () =
  26. let expected =
  27. [ "1 bottle of beer on the wall, 1 bottle of beer.";
  28. "Take it down and pass it around, no more bottles of beer on the wall." ]
  29. recite 1 1 |> should equal expected
  30. [<Fact>]
  31. let ``Verse with 0 bottles`` () =
  32. let expected =
  33. [ "No more bottles of beer on the wall, no more bottles of beer.";
  34. "Go to the store and buy some more, 99 bottles of beer on the wall." ]
  35. recite 0 1 |> should equal expected
  36. [<Fact>]
  37. let ``First two verses`` () =
  38. let expected =
  39. [ "99 bottles of beer on the wall, 99 bottles of beer.";
  40. "Take one down and pass it around, 98 bottles of beer on the wall.";
  41. "";
  42. "98 bottles of beer on the wall, 98 bottles of beer.";
  43. "Take one down and pass it around, 97 bottles of beer on the wall." ]
  44. recite 99 2 |> should equal expected
  45. [<Fact>]
  46. let ``Last three verses`` () =
  47. let expected =
  48. [ "2 bottles of beer on the wall, 2 bottles of beer.";
  49. "Take one down and pass it around, 1 bottle of beer on the wall.";
  50. "";
  51. "1 bottle of beer on the wall, 1 bottle of beer.";
  52. "Take it down and pass it around, no more bottles of beer on the wall.";
  53. "";
  54. "No more bottles of beer on the wall, no more bottles of beer.";
  55. "Go to the store and buy some more, 99 bottles of beer on the wall." ]
  56. recite 2 3 |> should equal expected
  57. [<Fact>]
  58. let ``All verses`` () =
  59. let expected =
  60. [ "99 bottles of beer on the wall, 99 bottles of beer.";
  61. "Take one down and pass it around, 98 bottles of beer on the wall.";
  62. "";
  63. "98 bottles of beer on the wall, 98 bottles of beer.";
  64. "Take one down and pass it around, 97 bottles of beer on the wall.";
  65. "";
  66. "97 bottles of beer on the wall, 97 bottles of beer.";
  67. "Take one down and pass it around, 96 bottles of beer on the wall.";
  68. "";
  69. "96 bottles of beer on the wall, 96 bottles of beer.";
  70. "Take one down and pass it around, 95 bottles of beer on the wall.";
  71. "";
  72. "95 bottles of beer on the wall, 95 bottles of beer.";
  73. "Take one down and pass it around, 94 bottles of beer on the wall.";
  74. "";
  75. "94 bottles of beer on the wall, 94 bottles of beer.";
  76. "Take one down and pass it around, 93 bottles of beer on the wall.";
  77. "";
  78. "93 bottles of beer on the wall, 93 bottles of beer.";
  79. "Take one down and pass it around, 92 bottles of beer on the wall.";
  80. "";
  81. "92 bottles of beer on the wall, 92 bottles of beer.";
  82. "Take one down and pass it around, 91 bottles of beer on the wall.";
  83. "";
  84. "91 bottles of beer on the wall, 91 bottles of beer.";
  85. "Take one down and pass it around, 90 bottles of beer on the wall.";
  86. "";
  87. "90 bottles of beer on the wall, 90 bottles of beer.";
  88. "Take one down and pass it around, 89 bottles of beer on the wall.";
  89. "";
  90. "89 bottles of beer on the wall, 89 bottles of beer.";
  91. "Take one down and pass it around, 88 bottles of beer on the wall.";
  92. "";
  93. "88 bottles of beer on the wall, 88 bottles of beer.";
  94. "Take one down and pass it around, 87 bottles of beer on the wall.";
  95. "";
  96. "87 bottles of beer on the wall, 87 bottles of beer.";
  97. "Take one down and pass it around, 86 bottles of beer on the wall.";
  98. "";
  99. "86 bottles of beer on the wall, 86 bottles of beer.";
  100. "Take one down and pass it around, 85 bottles of beer on the wall.";
  101. "";
  102. "85 bottles of beer on the wall, 85 bottles of beer.";
  103. "Take one down and pass it around, 84 bottles of beer on the wall.";
  104. "";
  105. "84 bottles of beer on the wall, 84 bottles of beer.";
  106. "Take one down and pass it around, 83 bottles of beer on the wall.";
  107. "";
  108. "83 bottles of beer on the wall, 83 bottles of beer.";
  109. "Take one down and pass it around, 82 bottles of beer on the wall.";
  110. "";
  111. "82 bottles of beer on the wall, 82 bottles of beer.";
  112. "Take one down and pass it around, 81 bottles of beer on the wall.";
  113. "";
  114. "81 bottles of beer on the wall, 81 bottles of beer.";
  115. "Take one down and pass it around, 80 bottles of beer on the wall.";
  116. "";
  117. "80 bottles of beer on the wall, 80 bottles of beer.";
  118. "Take one down and pass it around, 79 bottles of beer on the wall.";
  119. "";
  120. "79 bottles of beer on the wall, 79 bottles of beer.";
  121. "Take one down and pass it around, 78 bottles of beer on the wall.";
  122. "";
  123. "78 bottles of beer on the wall, 78 bottles of beer.";
  124. "Take one down and pass it around, 77 bottles of beer on the wall.";
  125. "";
  126. "77 bottles of beer on the wall, 77 bottles of beer.";
  127. "Take one down and pass it around, 76 bottles of beer on the wall.";
  128. "";
  129. "76 bottles of beer on the wall, 76 bottles of beer.";
  130. "Take one down and pass it around, 75 bottles of beer on the wall.";
  131. "";
  132. "75 bottles of beer on the wall, 75 bottles of beer.";
  133. "Take one down and pass it around, 74 bottles of beer on the wall.";
  134. "";
  135. "74 bottles of beer on the wall, 74 bottles of beer.";
  136. "Take one down and pass it around, 73 bottles of beer on the wall.";
  137. "";
  138. "73 bottles of beer on the wall, 73 bottles of beer.";
  139. "Take one down and pass it around, 72 bottles of beer on the wall.";
  140. "";
  141. "72 bottles of beer on the wall, 72 bottles of beer.";
  142. "Take one down and pass it around, 71 bottles of beer on the wall.";
  143. "";
  144. "71 bottles of beer on the wall, 71 bottles of beer.";
  145. "Take one down and pass it around, 70 bottles of beer on the wall.";
  146. "";
  147. "70 bottles of beer on the wall, 70 bottles of beer.";
  148. "Take one down and pass it around, 69 bottles of beer on the wall.";
  149. "";
  150. "69 bottles of beer on the wall, 69 bottles of beer.";
  151. "Take one down and pass it around, 68 bottles of beer on the wall.";
  152. "";
  153. "68 bottles of beer on the wall, 68 bottles of beer.";
  154. "Take one down and pass it around, 67 bottles of beer on the wall.";
  155. "";
  156. "67 bottles of beer on the wall, 67 bottles of beer.";
  157. "Take one down and pass it around, 66 bottles of beer on the wall.";
  158. "";
  159. "66 bottles of beer on the wall, 66 bottles of beer.";
  160. "Take one down and pass it around, 65 bottles of beer on the wall.";
  161. "";
  162. "65 bottles of beer on the wall, 65 bottles of beer.";
  163. "Take one down and pass it around, 64 bottles of beer on the wall.";
  164. "";
  165. "64 bottles of beer on the wall, 64 bottles of beer.";
  166. "Take one down and pass it around, 63 bottles of beer on the wall.";
  167. "";
  168. "63 bottles of beer on the wall, 63 bottles of beer.";
  169. "Take one down and pass it around, 62 bottles of beer on the wall.";
  170. "";
  171. "62 bottles of beer on the wall, 62 bottles of beer.";
  172. "Take one down and pass it around, 61 bottles of beer on the wall.";
  173. "";
  174. "61 bottles of beer on the wall, 61 bottles of beer.";
  175. "Take one down and pass it around, 60 bottles of beer on the wall.";
  176. "";
  177. "60 bottles of beer on the wall, 60 bottles of beer.";
  178. "Take one down and pass it around, 59 bottles of beer on the wall.";
  179. "";
  180. "59 bottles of beer on the wall, 59 bottles of beer.";
  181. "Take one down and pass it around, 58 bottles of beer on the wall.";
  182. "";
  183. "58 bottles of beer on the wall, 58 bottles of beer.";
  184. "Take one down and pass it around, 57 bottles of beer on the wall.";
  185. "";
  186. "57 bottles of beer on the wall, 57 bottles of beer.";
  187. "Take one down and pass it around, 56 bottles of beer on the wall.";
  188. "";
  189. "56 bottles of beer on the wall, 56 bottles of beer.";
  190. "Take one down and pass it around, 55 bottles of beer on the wall.";
  191. "";
  192. "55 bottles of beer on the wall, 55 bottles of beer.";
  193. "Take one down and pass it around, 54 bottles of beer on the wall.";
  194. "";
  195. "54 bottles of beer on the wall, 54 bottles of beer.";
  196. "Take one down and pass it around, 53 bottles of beer on the wall.";
  197. "";
  198. "53 bottles of beer on the wall, 53 bottles of beer.";
  199. "Take one down and pass it around, 52 bottles of beer on the wall.";
  200. "";
  201. "52 bottles of beer on the wall, 52 bottles of beer.";
  202. "Take one down and pass it around, 51 bottles of beer on the wall.";
  203. "";
  204. "51 bottles of beer on the wall, 51 bottles of beer.";
  205. "Take one down and pass it around, 50 bottles of beer on the wall.";
  206. "";
  207. "50 bottles of beer on the wall, 50 bottles of beer.";
  208. "Take one down and pass it around, 49 bottles of beer on the wall.";
  209. "";
  210. "49 bottles of beer on the wall, 49 bottles of beer.";
  211. "Take one down and pass it around, 48 bottles of beer on the wall.";
  212. "";
  213. "48 bottles of beer on the wall, 48 bottles of beer.";
  214. "Take one down and pass it around, 47 bottles of beer on the wall.";
  215. "";
  216. "47 bottles of beer on the wall, 47 bottles of beer.";
  217. "Take one down and pass it around, 46 bottles of beer on the wall.";
  218. "";
  219. "46 bottles of beer on the wall, 46 bottles of beer.";
  220. "Take one down and pass it around, 45 bottles of beer on the wall.";
  221. "";
  222. "45 bottles of beer on the wall, 45 bottles of beer.";
  223. "Take one down and pass it around, 44 bottles of beer on the wall.";
  224. "";
  225. "44 bottles of beer on the wall, 44 bottles of beer.";
  226. "Take one down and pass it around, 43 bottles of beer on the wall.";
  227. "";
  228. "43 bottles of beer on the wall, 43 bottles of beer.";
  229. "Take one down and pass it around, 42 bottles of beer on the wall.";
  230. "";
  231. "42 bottles of beer on the wall, 42 bottles of beer.";
  232. "Take one down and pass it around, 41 bottles of beer on the wall.";
  233. "";
  234. "41 bottles of beer on the wall, 41 bottles of beer.";
  235. "Take one down and pass it around, 40 bottles of beer on the wall.";
  236. "";
  237. "40 bottles of beer on the wall, 40 bottles of beer.";
  238. "Take one down and pass it around, 39 bottles of beer on the wall.";
  239. "";
  240. "39 bottles of beer on the wall, 39 bottles of beer.";
  241. "Take one down and pass it around, 38 bottles of beer on the wall.";
  242. "";
  243. "38 bottles of beer on the wall, 38 bottles of beer.";
  244. "Take one down and pass it around, 37 bottles of beer on the wall.";
  245. "";
  246. "37 bottles of beer on the wall, 37 bottles of beer.";
  247. "Take one down and pass it around, 36 bottles of beer on the wall.";
  248. "";
  249. "36 bottles of beer on the wall, 36 bottles of beer.";
  250. "Take one down and pass it around, 35 bottles of beer on the wall.";
  251. "";
  252. "35 bottles of beer on the wall, 35 bottles of beer.";
  253. "Take one down and pass it around, 34 bottles of beer on the wall.";
  254. "";
  255. "34 bottles of beer on the wall, 34 bottles of beer.";
  256. "Take one down and pass it around, 33 bottles of beer on the wall.";
  257. "";
  258. "33 bottles of beer on the wall, 33 bottles of beer.";
  259. "Take one down and pass it around, 32 bottles of beer on the wall.";
  260. "";
  261. "32 bottles of beer on the wall, 32 bottles of beer.";
  262. "Take one down and pass it around, 31 bottles of beer on the wall.";
  263. "";
  264. "31 bottles of beer on the wall, 31 bottles of beer.";
  265. "Take one down and pass it around, 30 bottles of beer on the wall.";
  266. "";
  267. "30 bottles of beer on the wall, 30 bottles of beer.";
  268. "Take one down and pass it around, 29 bottles of beer on the wall.";
  269. "";
  270. "29 bottles of beer on the wall, 29 bottles of beer.";
  271. "Take one down and pass it around, 28 bottles of beer on the wall.";
  272. "";
  273. "28 bottles of beer on the wall, 28 bottles of beer.";
  274. "Take one down and pass it around, 27 bottles of beer on the wall.";
  275. "";
  276. "27 bottles of beer on the wall, 27 bottles of beer.";
  277. "Take one down and pass it around, 26 bottles of beer on the wall.";
  278. "";
  279. "26 bottles of beer on the wall, 26 bottles of beer.";
  280. "Take one down and pass it around, 25 bottles of beer on the wall.";
  281. "";
  282. "25 bottles of beer on the wall, 25 bottles of beer.";
  283. "Take one down and pass it around, 24 bottles of beer on the wall.";
  284. "";
  285. "24 bottles of beer on the wall, 24 bottles of beer.";
  286. "Take one down and pass it around, 23 bottles of beer on the wall.";
  287. "";
  288. "23 bottles of beer on the wall, 23 bottles of beer.";
  289. "Take one down and pass it around, 22 bottles of beer on the wall.";
  290. "";
  291. "22 bottles of beer on the wall, 22 bottles of beer.";
  292. "Take one down and pass it around, 21 bottles of beer on the wall.";
  293. "";
  294. "21 bottles of beer on the wall, 21 bottles of beer.";
  295. "Take one down and pass it around, 20 bottles of beer on the wall.";
  296. "";
  297. "20 bottles of beer on the wall, 20 bottles of beer.";
  298. "Take one down and pass it around, 19 bottles of beer on the wall.";
  299. "";
  300. "19 bottles of beer on the wall, 19 bottles of beer.";
  301. "Take one down and pass it around, 18 bottles of beer on the wall.";
  302. "";
  303. "18 bottles of beer on the wall, 18 bottles of beer.";
  304. "Take one down and pass it around, 17 bottles of beer on the wall.";
  305. "";
  306. "17 bottles of beer on the wall, 17 bottles of beer.";
  307. "Take one down and pass it around, 16 bottles of beer on the wall.";
  308. "";
  309. "16 bottles of beer on the wall, 16 bottles of beer.";
  310. "Take one down and pass it around, 15 bottles of beer on the wall.";
  311. "";
  312. "15 bottles of beer on the wall, 15 bottles of beer.";
  313. "Take one down and pass it around, 14 bottles of beer on the wall.";
  314. "";
  315. "14 bottles of beer on the wall, 14 bottles of beer.";
  316. "Take one down and pass it around, 13 bottles of beer on the wall.";
  317. "";
  318. "13 bottles of beer on the wall, 13 bottles of beer.";
  319. "Take one down and pass it around, 12 bottles of beer on the wall.";
  320. "";
  321. "12 bottles of beer on the wall, 12 bottles of beer.";
  322. "Take one down and pass it around, 11 bottles of beer on the wall.";
  323. "";
  324. "11 bottles of beer on the wall, 11 bottles of beer.";
  325. "Take one down and pass it around, 10 bottles of beer on the wall.";
  326. "";
  327. "10 bottles of beer on the wall, 10 bottles of beer.";
  328. "Take one down and pass it around, 9 bottles of beer on the wall.";
  329. "";
  330. "9 bottles of beer on the wall, 9 bottles of beer.";
  331. "Take one down and pass it around, 8 bottles of beer on the wall.";
  332. "";
  333. "8 bottles of beer on the wall, 8 bottles of beer.";
  334. "Take one down and pass it around, 7 bottles of beer on the wall.";
  335. "";
  336. "7 bottles of beer on the wall, 7 bottles of beer.";
  337. "Take one down and pass it around, 6 bottles of beer on the wall.";
  338. "";
  339. "6 bottles of beer on the wall, 6 bottles of beer.";
  340. "Take one down and pass it around, 5 bottles of beer on the wall.";
  341. "";
  342. "5 bottles of beer on the wall, 5 bottles of beer.";
  343. "Take one down and pass it around, 4 bottles of beer on the wall.";
  344. "";
  345. "4 bottles of beer on the wall, 4 bottles of beer.";
  346. "Take one down and pass it around, 3 bottles of beer on the wall.";
  347. "";
  348. "3 bottles of beer on the wall, 3 bottles of beer.";
  349. "Take one down and pass it around, 2 bottles of beer on the wall.";
  350. "";
  351. "2 bottles of beer on the wall, 2 bottles of beer.";
  352. "Take one down and pass it around, 1 bottle of beer on the wall.";
  353. "";
  354. "1 bottle of beer on the wall, 1 bottle of beer.";
  355. "Take it down and pass it around, no more bottles of beer on the wall.";
  356. "";
  357. "No more bottles of beer on the wall, no more bottles of beer.";
  358. "Go to the store and buy some more, 99 bottles of beer on the wall." ]
  359. recite 99 100 |> should equal expected