learning F#, it seems pretty cool, favourite functional language so far.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

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