+{-|
+Module : Parsers.Date
+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@.
+-}
+
{-# LANGUAGE NoImplicitPrelude #-}
module Parsers.Date where
-import Gargantext.Prelude
import Test.Hspec
import Test.QuickCheck
-import Parsers.Types
+import Control.Applicative ((<*>))
import Data.Either (Either(..))
import Data.Time (ZonedTime(..))
import Data.Text (pack, Text)
import Text.Parsec.Error (ParseError)
import Duckling.Time.Types (toRFC3339)
-import Gargantext.Parsers.Date (fromRFC3339)
+
+-----------------------------------------------------------
+import Gargantext.Prelude
+import Gargantext.Text.Parsers.Date (fromRFC3339)
+import Parsers.Types
+-----------------------------------------------------------
fromRFC3339Inv :: Either ParseError ZonedTime -> Text
fromRFC3339Inv (Right z) = toRFC3339 z
testFromRFC3339 = hspec $ do
describe "Test fromRFC3339: " $ do
it "is the inverse of Duckling's toRFC3339" $ property $
- \x -> (fromRFC3339 . fromRFC3339Inv) x == (x :: Either ParseError ZonedTime)
+ ((==) <*> (fromRFC3339 . fromRFC3339Inv)) . Right . looseZonedTimePrecision
+
+ -- \x -> uncurry (==) $ (,) <*> (fromRFC3339 . fromRFC3339Inv) $ Right $ looseZonedTimePrecision x
+
+ -- \x -> let e = Right x :: Either ParseError ZonedTime
+ -- in fmap looseZonedTimePrecision e == (fromRFC3339 . fromRFC3339Inv ) (fmap looseZonedTimePrecision e)