hora-2.2.1: test/Test/TestFormat.hs
module Test.TestFormat where
import Data.Time.Hora.Format
import Data.Time.Hora.Part
import Data.Time.Hora.Stamp
import Data.Time.Hora.Type as T
import Debug.Trace
import Test.Hspec
main::SpecWith ()
main = do
describe "Test.TestFormat" $ do
it "prefix tab \n Offset" $ do
ts ["prefix", Tab, "postfix", Crlf, Offset] >>= utc
1 `shouldBe` 1
it "zone hm am" $ do
ts [Zone, " ", Hm, " ", AM, " ", Am, " ", H_12, " ", H_24] >>= utc
1 `shouldBe` 1
it "fraction fixed, fraction" $ do
ts [Fraction, " ", Fraction_fixed] >>= utc
1 `shouldBe` 1
it "Months" $ do
ts [Month, " ", Mth, " ", Mth_1_12] >>= utc
1 `shouldBe` 1
it "day of week" $ do
ts [D_week, " ", D_wk, " ", D_wk_0_6, " ", D_wk_1_7] >>= utc
1 `shouldBe` 1
it "week of year" $ do
ts [Wk_year_Mon, " ", Wk_year_Sun] >>= utc
1 `shouldBe` 1
describe "TestFormat show DatePartSmall" $ do
it "Day" $ do
show' (mkDay 2018 08 17) `shouldBe` "2018-08-17"
it "Min" $ do
show' (mkMin 4 3) `shouldBe` "04:03"
it "Ms" $ do
show' (mkMs 7 318) `shouldBe` "07.318"
it "Time" $ do
let (T.Min m1) = mkMin 5 7
(T.Ms ms1) = mkMs 7 58
show' (T.Time m1 ms1) `shouldBe` "05:07:07.058"
it "DatePartSmall" $ do
let (T.Day d1) = mkDay 2018 08 17
(T.Min m1) = mkMin 15 17
(T.Ms ms1) = mkMs 7 358
show' (T.DatePartSmall d1 m1 ms1) `shouldBe` "2018-08-17 15:17:07.358"
it "Day'" $ do
show' (Day' 3) `shouldBe` "+3"
it "Min'" $ do
show' (toSpan $ mkMin 14 53) `shouldBe` "+14:53"
show' (toSpan $ mkMin 0 53) `shouldBe` "+00:53"
it "Ms'" $ do
show' (toSpan $ mkMs 7 0) `shouldBe` "+07.000"
it "Neg Day'" $ do
show' (T.negate $ Day' 3) `shouldBe` "-3"
it "Neg Min'" $ do
show' (T.negate $ toSpan $ mkMin 14 53) `shouldBe` "-14:53"
show' (T.negate $ toSpan $ mkMin 0 53) `shouldBe` "-00:53"
it "Neg Ms'" $ do
show' (T.negate $ toSpan $ mkMs 7 358) `shouldBe` "-07.358"
show' (T.negate $ toSpan $ mkMs 0 0) `shouldBe` "-00.000"
utc::Tz String -> IO()
utc = traceIO . show