about summary refs log tree commit diff
path: root/test/Xanthous/Data/EntityMapSpec.hs
diff options
context:
space:
mode:
Diffstat (limited to 'test/Xanthous/Data/EntityMapSpec.hs')
-rw-r--r--test/Xanthous/Data/EntityMapSpec.hs26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Xanthous/Data/EntityMapSpec.hs b/test/Xanthous/Data/EntityMapSpec.hs
new file mode 100644
index 000000000000..c08b568d9eca
--- /dev/null
+++ b/test/Xanthous/Data/EntityMapSpec.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE ApplicativeDo #-}
+--------------------------------------------------------------------------------
+module Xanthous.Data.EntityMapSpec where
+--------------------------------------------------------------------------------
+import Test.Prelude
+--------------------------------------------------------------------------------
+import Xanthous.Data.EntityMap
+--------------------------------------------------------------------------------
+
+main :: IO ()
+main = defaultMain test
+
+test :: TestTree
+test = testGroup "Xanthous.Data.EntityMap"
+  [ testBatch $ monoid @(EntityMap Int) mempty
+  , testGroup "Eq laws"
+    [ testProperty "reflexivity" $ \(em :: EntityMap Int) ->
+        em == em
+    , testProperty "symmetric" $ \(em₁ :: EntityMap Int) em₂ ->
+        (em₁ == em₂) == (em₂ == em₁)
+    , testProperty "transitive" $ \(em₁ :: EntityMap Int) em₂ em₃ ->
+        if (em₁ == em₂ && em₂ == em₃)
+        then (em₁ == em₃)
+        else True
+    ]
+  ]