module Test.TestParseDAT where
import Data.Time
import Data.Time.Clock.TAI
import Test.TestUtil
import Test.TestParseDAT_Ref
import Test.TAI_UTC_DAT
tods :: [TimeOfDay]
tods = [
TimeOfDay 0 0 0,
TimeOfDay 0 0 0.5,
TimeOfDay 0 0 1,
TimeOfDay 0 0 1.5,
TimeOfDay 0 0 2,
TimeOfDay 23 59 28,
TimeOfDay 23 59 28.5,
TimeOfDay 23 59 29,
TimeOfDay 23 59 29.5,
TimeOfDay 23 59 30,
TimeOfDay 23 59 30.5,
TimeOfDay 23 59 31,
TimeOfDay 23 59 31.5,
TimeOfDay 23 59 32,
TimeOfDay 23 59 59,
TimeOfDay 23 59 59.5,
TimeOfDay 23 59 60,
TimeOfDay 23 59 60.5
]
times :: [LocalTime]
times =
fmap (LocalTime (fromGregorian 1998 04 02)) tods ++
fmap (LocalTime (fromGregorian 1998 12 30)) tods ++
fmap (LocalTime (fromGregorian 1998 12 31)) tods ++
fmap (LocalTime (fromGregorian 1999 01 01)) tods ++
fmap (LocalTime (fromGregorian 1999 01 02)) tods
testParseDAT :: Test
testParseDAT = pureTest "testParseDAT" $ diff testParseDAT_Ref parseDAT where
parseDAT =
let lst = parseTAIUTCDATFile taiUTC_DAT in
unlines $ map
(\lt ->
let
utcTime = localTimeToUTC utc lt
taiTime = utcToTAITime lst utcTime
utcTime' = taiToUTCTime lst taiTime
in if utcTime == utcTime'
then unwords [show utcTime, "==", show taiTime]
else unwords [ "correction:", show utcTime, "->", show taiTime, "->", show utcTime']
)
times