Test the SerializeUTCTime property
This commit is contained in:
+17
-1
@@ -9,9 +9,10 @@ import Data.Foldable (for_)
|
||||
import AFRP
|
||||
import Data.Functor.Identity (Identity (..))
|
||||
import Data.List (sort)
|
||||
import Data.Serialize (get, put, runGet, runPut)
|
||||
import qualified Data.Set as S
|
||||
import qualified Data.Text as T
|
||||
import Data.Time (NominalDiffTime, UTCTime (..), utc)
|
||||
import Data.Time (Day (..), NominalDiffTime, UTCTime (..), picosecondsToDiffTime, utc)
|
||||
import Data.UUID (nil)
|
||||
import Hedgehog
|
||||
import qualified Hedgehog.Gen as Gen
|
||||
@@ -86,6 +87,7 @@ spec = describe "AFRP" $ do
|
||||
delayEventSpec
|
||||
debounceSpec
|
||||
rollupSpec
|
||||
serializeSpec
|
||||
effSpec
|
||||
mapAccumRequestSpec
|
||||
preMapAccumRequestSpec
|
||||
@@ -404,6 +406,20 @@ eventGen = Gen.frequency
|
||||
, (1, pure Tick)
|
||||
]
|
||||
|
||||
timeGen :: Gen SerializeUTCTime
|
||||
timeGen = do
|
||||
day <- ModifiedJulianDay . fromIntegral <$> Gen.int (Range.linear 0 100000)
|
||||
pico <- picosecondsToDiffTime . fromIntegral
|
||||
<$> Gen.int (Range.linear 0 (86400 * 10 ^ (12 :: Int) - 1))
|
||||
pure $ SerializeUTCTime (UTCTime day pico)
|
||||
|
||||
serializeSpec :: Spec
|
||||
serializeSpec = describe "SerializeUTCTime" $ do
|
||||
it "get (put x) == pure x" $
|
||||
hedgehog $ do
|
||||
x <- forAll timeGen
|
||||
tripping x (runPut . put) (runGet get)
|
||||
|
||||
effSpec :: Spec
|
||||
effSpec = describe "eff" $ do
|
||||
it "lifts a pure effect function into a stateless Mealy" $
|
||||
|
||||
Reference in New Issue
Block a user