hydra-0.14.0: src/gen-test/haskell/Generation/Hydra/Test/Lib/EqualitySpec.hs
-- Note: this is an automatically generated file. Do not edit.
-- DEBUG: Focus namespace = (see generated module)
-- DEBUG: Namespace mappings: (see generated module)
module Generation.Hydra.Test.Lib.EqualitySpec where
import Hydra.Kernel
import qualified Test.Hspec as H
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S
import qualified Data.Maybe as Y
import qualified Hydra.Lib.Equality as Equality
import qualified Hydra.Util as Util
spec :: H.Spec
spec = H.describe "hydra.lib.equality primitives" $ do
H.describe "compare" $ do
H.it "less than" $ H.shouldBe
(Equality.compare 3 5)
(Util.ComparisonLessThan)
H.it "equal" $ H.shouldBe
(Equality.compare 5 5)
(Util.ComparisonEqualTo)
H.it "greater than" $ H.shouldBe
(Equality.compare 5 3)
(Util.ComparisonGreaterThan)
H.describe "equal" $ do
H.it "equal integers" $ H.shouldBe
(Equality.equal 5 5)
(True)
H.it "unequal integers" $ H.shouldBe
(Equality.equal 5 3)
(False)
H.describe "gt" $ do
H.it "greater" $ H.shouldBe
(Equality.gt 5 3)
(True)
H.it "equal" $ H.shouldBe
(Equality.gt 5 5)
(False)
H.it "less" $ H.shouldBe
(Equality.gt 3 5)
(False)
H.describe "gte" $ do
H.it "greater" $ H.shouldBe
(Equality.gte 5 3)
(True)
H.it "equal" $ H.shouldBe
(Equality.gte 5 5)
(True)
H.it "less" $ H.shouldBe
(Equality.gte 3 5)
(False)
H.describe "identity" $ do
H.it "integer" $ H.shouldBe
(Equality.identity 42)
(42)
H.describe "lt" $ do
H.it "less" $ H.shouldBe
(Equality.lt 3 5)
(True)
H.it "equal" $ H.shouldBe
(Equality.lt 5 5)
(False)
H.it "greater" $ H.shouldBe
(Equality.lt 5 3)
(False)
H.describe "lte" $ do
H.it "less" $ H.shouldBe
(Equality.lte 3 5)
(True)
H.it "equal" $ H.shouldBe
(Equality.lte 5 5)
(True)
H.it "greater" $ H.shouldBe
(Equality.lte 5 3)
(False)
H.describe "max" $ do
H.it "first greater" $ H.shouldBe
(Equality.max 5 3)
(5)
H.it "second greater" $ H.shouldBe
(Equality.max 3 5)
(5)
H.it "equal" $ H.shouldBe
(Equality.max 5 5)
(5)
H.describe "min" $ do
H.it "first less" $ H.shouldBe
(Equality.min 3 5)
(3)
H.it "second less" $ H.shouldBe
(Equality.min 5 3)
(3)
H.it "equal" $ H.shouldBe
(Equality.min 5 5)
(5)
H.describe "compare strings" $ do
H.it "less than (lexicographic)" $ H.shouldBe
(Equality.compare "apple" "banana")
(Util.ComparisonLessThan)
H.it "equal" $ H.shouldBe
(Equality.compare "hello" "hello")
(Util.ComparisonEqualTo)
H.it "greater than (lexicographic)" $ H.shouldBe
(Equality.compare "zebra" "apple")
(Util.ComparisonGreaterThan)
H.it "empty vs non-empty" $ H.shouldBe
(Equality.compare "" "a")
(Util.ComparisonLessThan)
H.it "prefix vs longer" $ H.shouldBe
(Equality.compare "ab" "abc")
(Util.ComparisonLessThan)
H.describe "lt strings" $ do
H.it "less (lexicographic)" $ H.shouldBe
(Equality.lt "apple" "banana")
(True)
H.it "equal" $ H.shouldBe
(Equality.lt "hello" "hello")
(False)
H.it "greater" $ H.shouldBe
(Equality.lt "zebra" "apple")
(False)
H.describe "gt strings" $ do
H.it "greater (lexicographic)" $ H.shouldBe
(Equality.gt "zebra" "apple")
(True)
H.it "equal" $ H.shouldBe
(Equality.gt "hello" "hello")
(False)
H.it "less" $ H.shouldBe
(Equality.gt "apple" "banana")
(False)
H.describe "max strings" $ do
H.it "first greater" $ H.shouldBe
(Equality.max "zebra" "apple")
("zebra")
H.it "second greater" $ H.shouldBe
(Equality.max "apple" "zebra")
("zebra")
H.it "equal" $ H.shouldBe
(Equality.max "hello" "hello")
("hello")
H.describe "min strings" $ do
H.it "first less" $ H.shouldBe
(Equality.min "apple" "zebra")
("apple")
H.it "second less" $ H.shouldBe
(Equality.min "zebra" "apple")
("apple")
H.it "equal" $ H.shouldBe
(Equality.min "hello" "hello")
("hello")
H.describe "compare floats" $ do
H.it "less than" $ H.shouldBe
(Equality.compare 1.5 2.5)
(Util.ComparisonLessThan)
H.it "equal" $ H.shouldBe
(Equality.compare 3.14 3.14)
(Util.ComparisonEqualTo)
H.it "greater than" $ H.shouldBe
(Equality.compare 5.0 3.0)
(Util.ComparisonGreaterThan)
H.it "negative vs positive" $ H.shouldBe
(Equality.compare (-1.0) 1.0)
(Util.ComparisonLessThan)
H.describe "lt floats" $ do
H.it "less" $ H.shouldBe
(Equality.lt 1.5 2.5)
(True)
H.it "equal" $ H.shouldBe
(Equality.lt 3.14 3.14)
(False)
H.it "greater" $ H.shouldBe
(Equality.lt 5.0 3.0)
(False)
H.describe "gt floats" $ do
H.it "greater" $ H.shouldBe
(Equality.gt 5.0 3.0)
(True)
H.it "equal" $ H.shouldBe
(Equality.gt 3.14 3.14)
(False)
H.it "less" $ H.shouldBe
(Equality.gt 1.5 2.5)
(False)