hora-1.1: test/Test/TestConvert.hs
module Test.TestConvert where
import Test.Hspec
import Data.Time.Hora.Type.Time
import Data.Time.Hora.Convert
import Data.Time.Clock
main::IO()
main = do
test
doc
test::IO()
test = hspec $ do
describe "Case.Convert" $ do
it "pico 1" $ do
toPico (Sec $ i 12) `shouldBe` (toPico $ Milli $ toMilli $ Sec $ i 12)
toMilli (Sec $ i 17) `shouldBe` (toMilli $ Pico $ toPico $ Sec $ i 17)
toMilli (Milli $ i 170) `shouldBe` (toMilli $ Pico $ toPico $ Milli $ i 170)
s1 `shouldBe` i3
describe "TimeSpan Num" $ do
it "pico Num" $ do
Milli 1 + (Milli 2) `shouldBe` (Pico $ (picoMs * 1) + (picoMs * 2))
Sec 2 - (Sec 1) `shouldBe` (Pico $ (picoSec * 2) - (picoSec * 1))
Pico 2 * (Milli 10) `shouldBe` (Pico $ 2 * (picoMs * 10))
describe "TimeSpan Ord" $ do
it "pico Ord" $ do
Milli 10 `shouldSatisfy` (< (Sec 1))
Milli 10 `shouldSatisfy` (> (Milli 9))
Pico 10 `shouldSatisfy` (< (Sec 1))
Pico 10 `shouldSatisfy` (< (Milli 1))
picoMs * 10 `shouldSatisfy` (== (toPico $ Milli 10))
where p1 = toPico (Sec i3)::Int
m1 = toMilli (Pico p1)::Int
s1 = toSec (Milli m1)::Int
i3 = 3::Int
doc::IO()
doc = hspec $ do
describe "doc Convert" $ do
it "toPicos milli" $ toPico (Milli 1) `shouldBe` 1000000000
it "toPicos sec" $ toPico (Sec 1) `shouldBe` 1000000000000
it "toMillis sec" $ toMilli (Sec 1) `shouldBe` 1000
it "toDiffTime sec" $ toDiffTime (Sec 1) `shouldBe` (secondsToDiffTime 1)
i::Int -> Int
i = id