module Main (main) where
import Control.Applicative
import Control.Applicative.Unicode
+import Data.Ascii (Ascii)
+import Data.Convertible.Base
+import Data.Tagged
import Data.Time
-import qualified Data.Time.Asctime as Asctime
+import Data.Time.Asctime
import qualified Data.Time.HTTP as HTTP
import qualified Data.Time.RFC733 as RFC733
import qualified Data.Time.RFC1123 as RFC1123
tests ∷ [Property]
tests = [ -- Asctime
- property ( Asctime.fromAscii "Sun Nov 6 08:49:37 1994"
- ≡ Right referenceLocalTime )
-
- , property ( "Sun Nov 6 08:49:37 1994"
- ≡ Asctime.toAscii referenceLocalTime )
-
- , property $ \lt → Right lt ≡ Asctime.fromAscii (Asctime.toAscii lt)
+ property ( convertUnsafe ( Tagged "Sun Nov 6 08:49:37 1994"
+ ∷ Tagged Asctime Ascii
+ )
+ ≡ referenceLocalTime
+ )
+
+ , property ( ( Tagged "Sun Nov 6 08:49:37 1994"
+ ∷ Tagged Asctime Ascii
+ )
+ ≡ cs referenceLocalTime
+ )
+
+ , property $ \lt → lt ≡ convertUnsafe ( cs (lt ∷ LocalTime)
+ ∷ Tagged Asctime Ascii
+ )
-- RFC733
, property ( RFC733.fromAscii "Sunday, 06-Nov-94 08:49:37 GMT"
-- HTTP
, property $ \ut → Right ut ≡ HTTP.fromAscii (HTTP.toAscii ut )
- , property $ \ut → Right ut ≡ HTTP.fromAscii (Asctime.toAscii (ut2lt ut))
+ , property $ \ut → Right ut ≡ HTTP.fromAscii (untag (cs (ut2lt ut) ∷ Tagged Asctime Ascii))
, property $ \ut → Right ut ≡ HTTP.fromAscii (RFC733.toAscii (ut2zt ut))
, property $ \ut → Right ut ≡ HTTP.fromAscii (RFC1123.toAscii (ut2zt ut))
]