interval-algebra-2.1.2: test-axioms/AxiomsSpec.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeApplications #-}
module AxiomsSpec
( spec
) where
import Data.Time (Day, UTCTime)
import IntervalAlgebra.Axioms (IntervalAxioms (..))
import Test.Hspec (Spec, describe, hspec, it)
import Test.Hspec.QuickCheck (modifyMaxSuccess)
import Test.QuickCheck (Arbitrary (arbitrary), Gen (..),
Property, Testable (property),
generate, quickCheck)
testScale :: Int
testScale = 1000
spec :: Spec
spec = do
describe "An Axiomatization of Interval Time"
$ modifyMaxSuccess (* testScale)
$ do
it "M1" $ property (prop_IAaxiomM1 @Int)
it "M1" $ property (prop_IAaxiomM1 @Day)
it "M1" $ property (prop_IAaxiomM1 @UTCTime)
it "M2" $ property (prop_IAaxiomM2 @Int)
it "M2" $ property (prop_IAaxiomM2 @Day)
it "M2" $ property (prop_IAaxiomM2 @UTCTime)
it "ML1" $ property (prop_IAaxiomML1 @Int)
it "ML1" $ property (prop_IAaxiomML1 @Day)
it "ML1" $ property (prop_IAaxiomML1 @UTCTime)
it "ML2" $ property (prop_IAaxiomML2 @Int)
it "ML2" $ property (prop_IAaxiomML2 @Day)
it "ML2" $ property (prop_IAaxiomML2 @UTCTime)
it "M3" $ property (prop_IAaxiomM3 @Int)
it "M3" $ property (prop_IAaxiomM3 @Day)
it "M3" $ property (prop_IAaxiomM3 @UTCTime)
it "M4" $ property (prop_IAaxiomM4 @Int)
it "M4" $ property (prop_IAaxiomM4 @Day)
it "M4" $ property (prop_IAaxiomM4 @UTCTime)
it "M5" $ property (prop_IAaxiomM5 @Int)
it "M5" $ property (prop_IAaxiomM5 @Day)
it "M5" $ property (prop_IAaxiomM5 @UTCTime)
it "M4.1" $ property (prop_IAaxiomM4_1 @Int)
it "M4.1" $ property (prop_IAaxiomM4_1 @Day)
it "M4.1" $ property (prop_IAaxiomM4_1 @UTCTime)