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.

DndCharacterTests.fs 3.3KB

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