time-compat-1.9.6: test-instances/Test.hs
module Main where
import Control.DeepSeq (NFData (rnf), force)
import Data.Hashable (Hashable)
import Data.Time.Calendar.Compat
import Data.Time.Calendar.Month.Compat
import Data.Time.Calendar.Quarter.Compat
import Data.Time.Clock.System.Compat
import Data.Time.Clock.TAI.Compat
import Data.Time.Compat
import Data.Time.Format.Compat
import Test.HUnit.Base ((@?=))
main :: IO ()
main = do
utc <- getCurrentTime
-- UTCTime
putStrLn $ formatTime defaultTimeLocale rfc822DateFormat (force utc)
-- ZonedTime
zt <- getZonedTime
putStrLn $ formatTime defaultTimeLocale rfc822DateFormat (force zt)
-- SystemTime
st <- getSystemTime
print $ force st
-- FormatTime DayOfWeek
formatTime defaultTimeLocale "%u %w %a %A" Monday @?= "1 1 Mon Monday"
-- TAI taiNominalDayStart
show (taiNominalDayStart (ModifiedJulianDay 123)) @?= "1859-03-20 00:00:00 TAI"
_ParseTimeInstances :: [()]
_ParseTimeInstances =
[ () -- test (undefined :: CalendarDiffTime)
, test (undefined :: Day)
, () -- test (undefined :: DiffTime)
, () -- test (undefined :: NominalDiffTime)
, test (undefined :: UTCTime)
, test (undefined :: UniversalTime)
, () -- test (undefined :: CalendarDiffTime)
, test (undefined :: TimeZone)
, test (undefined :: TimeOfDay)
, test (undefined :: LocalTime)
, test (undefined :: ZonedTime)
]
where
test :: ParseTime t => t -> ()
test _ = ()
_FormatTimeInstances :: [()]
_FormatTimeInstances =
[ () -- test (undefined :: CalendarDiffTime)
, test (undefined :: Day)
, () -- test (undefined :: DiffTime)
, () -- test (undefined :: NominalDiffTime)
, test (undefined :: UTCTime)
, test (undefined :: UniversalTime)
, () -- test (undefined :: CalendarDiffTime)
, test (undefined :: TimeZone)
, test (undefined :: TimeOfDay)
, test (undefined :: LocalTime)
, test (undefined :: ZonedTime)
, test (undefined :: DayOfWeek)
, test (undefined :: Month)
]
where
test :: FormatTime t => t -> ()
test _ = ()
_NFDataInstances :: [()]
_NFDataInstances =
[ test (undefined :: CalendarDiffTime)
, test (undefined :: Day)
, test (undefined :: DiffTime)
, test (undefined :: NominalDiffTime)
, test (undefined :: UTCTime)
, test (undefined :: UniversalTime)
, test (undefined :: CalendarDiffTime)
, test (undefined :: CalendarDiffDays)
, test (undefined :: TimeZone)
, test (undefined :: TimeOfDay)
, test (undefined :: LocalTime)
, test (undefined :: ZonedTime)
, test (undefined :: DayOfWeek)
, test (undefined :: Month)
, test (undefined :: Quarter)
, test (undefined :: QuarterOfYear)
]
where
test :: NFData t => t -> ()
test = rnf
_EnumInstances :: [()]
_EnumInstances =
[ test (undefined :: Day)
, test (undefined :: Month)
, test (undefined :: Quarter)
, test (undefined :: QuarterOfYear)
]
where
test :: Enum t => t -> ()
test _ = ()
_HashableInstances :: [()]
_HashableInstances =
[ test (undefined :: TimeLocale)
, test (undefined :: LocalTime)
, test (undefined :: TimeOfDay)
, test (undefined :: TimeZone)
, test (undefined :: UniversalTime)
, test (undefined :: UTCTime)
, test (undefined :: NominalDiffTime)
, test (undefined :: DiffTime)
, test (undefined :: DayOfWeek)
, test (undefined :: Day)
, test (undefined :: QuarterOfYear)
, test (undefined :: Quarter)
, test (undefined :: Month)
]
where
test :: Hashable t => t -> ()
test _ = ()