diff options
Diffstat (limited to 'users/grfn/xanthous/test')
-rw-r--r-- | users/grfn/xanthous/test/Spec.hs | 2 | ||||
-rw-r--r-- | users/grfn/xanthous/test/Xanthous/Entities/CharacterSpec.hs | 24 | ||||
-rw-r--r-- | users/grfn/xanthous/test/Xanthous/UtilSpec.hs | 9 |
3 files changed, 35 insertions, 0 deletions
diff --git a/users/grfn/xanthous/test/Spec.hs b/users/grfn/xanthous/test/Spec.hs index 46e82c8c6c6b..85f49fd07c91 100644 --- a/users/grfn/xanthous/test/Spec.hs +++ b/users/grfn/xanthous/test/Spec.hs @@ -10,6 +10,7 @@ import qualified Xanthous.Data.MemoSpec import qualified Xanthous.Data.NestedMapSpec import qualified Xanthous.DataSpec import qualified Xanthous.Entities.RawsSpec +import qualified Xanthous.Entities.CharacterSpec import qualified Xanthous.GameSpec import qualified Xanthous.Game.StateSpec import qualified Xanthous.Generators.Level.UtilSpec @@ -36,6 +37,7 @@ test = testGroup "Xanthous" , Xanthous.Data.NestedMapSpec.test , Xanthous.DataSpec.test , Xanthous.Entities.RawsSpec.test + , Xanthous.Entities.CharacterSpec.test , Xanthous.GameSpec.test , Xanthous.Game.StateSpec.test , Xanthous.Generators.Level.UtilSpec.test diff --git a/users/grfn/xanthous/test/Xanthous/Entities/CharacterSpec.hs b/users/grfn/xanthous/test/Xanthous/Entities/CharacterSpec.hs new file mode 100644 index 000000000000..734cce1efbbe --- /dev/null +++ b/users/grfn/xanthous/test/Xanthous/Entities/CharacterSpec.hs @@ -0,0 +1,24 @@ +{-# OPTIONS_GHC -Wno-type-defaults #-} +-------------------------------------------------------------------------------- +module Xanthous.Entities.CharacterSpec (main, test) where +-------------------------------------------------------------------------------- +import Test.Prelude +-------------------------------------------------------------------------------- +import Xanthous.Entities.Character +import Xanthous.Util (endoTimes) +-------------------------------------------------------------------------------- + +main :: IO () +main = defaultMain test + +test :: TestTree +test = testGroup "Xanthous.Entities.CharacterSpec" + [ testGroup "Knuckles" + [ testBatch $ monoid @Knuckles mempty + , testGroup "damageKnuckles" + [ testCase "caps at 5" $ + let knuckles' = endoTimes 6 damageKnuckles mempty + in _knuckleDamage knuckles' @?= 5 + ] + ] + ] diff --git a/users/grfn/xanthous/test/Xanthous/UtilSpec.hs b/users/grfn/xanthous/test/Xanthous/UtilSpec.hs index 8538ea5098ba..01e8e402c54f 100644 --- a/users/grfn/xanthous/test/Xanthous/UtilSpec.hs +++ b/users/grfn/xanthous/test/Xanthous/UtilSpec.hs @@ -2,6 +2,7 @@ module Xanthous.UtilSpec (main, test) where import Test.Prelude import Xanthous.Util +import Control.Monad.State.Lazy (execState) main :: IO () main = defaultMain test @@ -25,4 +26,12 @@ test = testGroup "Xanthous.Util" [ testProperty "takeWhileInclusive (const True) ≡ id" $ \(xs :: [Int]) -> takeWhileInclusive (const True) xs === xs ] + , testGroup "endoTimes" + [ testCase "endoTimes 4 succ 5" + $ endoTimes (4 :: Int) succ (5 :: Int) @?= 9 + ] + , testGroup "modifyKL" + [ testCase "_1 += 1" + $ execState (modifyKL _1 $ pure . succ) (1 :: Int, 2 :: Int) @?= (2, 2) + ] ] |