polysemy-time-0.1.3.0: test/Polysemy/Time/Test/MeasureTest.hs
module Polysemy.Time.Test.MeasureTest where
import Polysemy.Test (UnitTest, assert, runTestAuto)
import qualified Polysemy.Time.Data.Time as Time
import Polysemy.Time.Data.TimeUnit (MilliSeconds (MilliSeconds), convert)
import Polysemy.Time.Ghc (interpretTimeGhc)
import Polysemy.Time.Measure (measure)
test_measure :: UnitTest
test_measure =
runTestAuto do
interpretTimeGhc do
(t1, t2) <- measure do
Time.sleep (MilliSeconds 100)
fst <$> measure (Time.sleep (MilliSeconds 100))
assert (t2 > convert (MilliSeconds 100))
assert (t1 > convert (MilliSeconds 200))
assert (t2 < t1)
assert (t2 < convert (MilliSeconds 200))