{-| Module : Parsers.Types Description : Copyright : (c) CNRS, 2017-Present License : AGPL + CECILL v3 Maintainer : team@gargantext.org Stability : experimental Portability : POSIX Here is a longer description of this module, containing some commentary with @some markup@. -} {-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE StandaloneDeriving #-} module Test.Parsers.Types where import Data.Time.LocalTime (ZonedTime (..), TimeZone (..), TimeOfDay(..), LocalTime(..)) import Gargantext.Prelude import Test.Instances () import Test.QuickCheck.Instances () import Text.Parsec.Error (ParseError) deriving instance Eq ZonedTime looseTimeOfDayPrecision :: TimeOfDay -> TimeOfDay looseTimeOfDayPrecision (TimeOfDay h m _) = TimeOfDay h m 0 looseLocalTimePrecision :: LocalTime -> LocalTime looseLocalTimePrecision (LocalTime ld ltd) = LocalTime ld $ looseTimeOfDayPrecision ltd looseTimeZonePrecision :: TimeZone -> TimeZone looseTimeZonePrecision (TimeZone zm _ _) = TimeZone zm False "CET" looseZonedTimePrecision :: ZonedTime -> ZonedTime looseZonedTimePrecision (ZonedTime lt tz) = ZonedTime (looseLocalTimePrecision lt) $ looseTimeZonePrecision tz loosePrecisionEitherPEZT :: Either ParseError ZonedTime -> Either ParseError ZonedTime loosePrecisionEitherPEZT (Right zt) = Right $ looseZonedTimePrecision zt loosePrecisionEitherPEZT pe = pe