learning F#, it seems pretty cool, favourite functional language so far.
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // This file was auto-generated based on version 1.1.0 of the canonical data.
  2. module DndCharacterTests
  3. open FsUnit.Xunit
  4. open Xunit
  5. open DndCharacter
  6. [<Fact>]
  7. let ``Ability modifier for score 3 is -4`` () =
  8. modifier 3 |> should equal -4
  9. [<Fact>]
  10. let ``Ability modifier for score 4 is -3`` () =
  11. modifier 4 |> should equal -3
  12. [<Fact>]
  13. let ``Ability modifier for score 5 is -3`` () =
  14. modifier 5 |> should equal -3
  15. [<Fact>]
  16. let ``Ability modifier for score 6 is -2`` () =
  17. modifier 6 |> should equal -2
  18. [<Fact>]
  19. let ``Ability modifier for score 7 is -2`` () =
  20. modifier 7 |> should equal -2
  21. [<Fact>]
  22. let ``Ability modifier for score 8 is -1`` () =
  23. modifier 8 |> should equal -1
  24. [<Fact>]
  25. let ``Ability modifier for score 9 is -1`` () =
  26. modifier 9 |> should equal -1
  27. [<Fact>]
  28. let ``Ability modifier for score 10 is 0`` () =
  29. modifier 10 |> should equal 0
  30. [<Fact>]
  31. let ``Ability modifier for score 11 is 0`` () =
  32. modifier 11 |> should equal 0
  33. [<Fact>]
  34. let ``Ability modifier for score 12 is +1`` () =
  35. modifier 12 |> should equal 1
  36. [<Fact>]
  37. let ``Ability modifier for score 13 is +1`` () =
  38. modifier 13 |> should equal 1
  39. [<Fact>]
  40. let ``Ability modifier for score 14 is +2`` () =
  41. modifier 14 |> should equal 2
  42. [<Fact>]
  43. let ``Ability modifier for score 15 is +2`` () =
  44. modifier 15 |> should equal 2
  45. [<Fact>]
  46. let ``Ability modifier for score 16 is +3`` () =
  47. modifier 16 |> should equal 3
  48. [<Fact>]
  49. let ``Ability modifier for score 17 is +3`` () =
  50. modifier 17 |> should equal 3
  51. [<Fact>]
  52. let ``Ability modifier for score 18 is +4`` () =
  53. modifier 18 |> should equal 4
  54. [<Fact>]
  55. let ``Random ability is within range`` () =
  56. for i in 1 .. 10 do
  57. let ability = ability()
  58. ability |> should be (greaterThanOrEqualTo 3)
  59. ability |> should be (lessThanOrEqualTo 18)
  60. [<Fact>]
  61. let ``Random character is valid`` () =
  62. for i in 1 .. 10 do
  63. let character = createCharacter()
  64. character.Strength |> should be (greaterThanOrEqualTo 3)
  65. character.Strength |> should be (lessThanOrEqualTo 18)
  66. character.Dexterity |> should be (greaterThanOrEqualTo 3)
  67. character.Dexterity |> should be (lessThanOrEqualTo 18)
  68. character.Constitution |> should be (greaterThanOrEqualTo 3)
  69. character.Constitution |> should be (lessThanOrEqualTo 18)
  70. character.Intelligence |> should be (greaterThanOrEqualTo 3)
  71. character.Intelligence |> should be (lessThanOrEqualTo 18)
  72. character.Wisdom |> should be (greaterThanOrEqualTo 3)
  73. character.Wisdom |> should be (lessThanOrEqualTo 18)
  74. character.Charisma |> should be (greaterThanOrEqualTo 3)
  75. character.Charisma |> should be (lessThanOrEqualTo 18)
  76. character.Hitpoints |> should equal (10 + modifier(character.Constitution))
  77. [<Fact>]
  78. let ``Each ability is only calculated once`` () =
  79. for i in 1 .. 10 do
  80. let character = createCharacter()
  81. character.Strength |> should equal character.Strength
  82. character.Dexterity |> should equal character.Dexterity
  83. character.Constitution |> should equal character.Constitution
  84. character.Intelligence |> should equal character.Intelligence
  85. character.Wisdom |> should equal character.Wisdom
  86. character.Charisma |> should equal character.Charisma
  87. character.Hitpoints |> should equal character.Hitpoints