Sha256: 769974c1390395eb47515efd0c37164c90118ab46e487d17ac120e10090db883

Contents?: true

Size: 1.19 KB

Versions: 165

Compression:

Stored size: 1.19 KB

Contents

import Data.Time.Clock   (UTCTime)
import Test.Hspec        (Spec, describe, it, shouldBe)
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)

import Gigasecond (fromDay)

import Data.Time.Format
  ( ParseTime
  , TimeLocale
  , defaultTimeLocale
  , iso8601DateFormat
  , parseTimeOrError
  )

readTime :: ParseTime t => TimeLocale -> String -> String -> t
readTime = parseTimeOrError True

main :: IO ()
main = hspecWith defaultConfig {configFastFail = True} specs

specs :: Spec
specs = describe "gigasecond" $
          describe "fromDay" $ do

            -- Test cases loosely based on reference file
            -- at `exercism/x-common/gigasecond.json`.

            let dt = readTime defaultTimeLocale
                     (iso8601DateFormat (Just "%T%Z")) :: String -> UTCTime

            it "from apr 25 2011" $
              fromDay (dt "2011-04-25T00:00:00Z")
              `shouldBe` dt "2043-01-01T01:46:40Z"

            it "from jun 13 1977" $
              fromDay (dt "1977-06-13T00:00:00Z")
              `shouldBe` dt "2009-02-19T01:46:40Z"

            it "from jul 19 1959" $
              fromDay (dt "1959-07-19T00:00:00Z")
              `shouldBe` dt "1991-03-27T01:46:40Z"

Version data entries

165 entries across 165 versions & 1 rubygems

Version Path
trackler-2.0.6.9 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.8 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.7 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.6 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.5 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.4 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.3 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.2 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.1 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.6.0 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.18 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.17 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.16 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.15 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.14 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.13 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.12 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.11 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.10 tracks/haskell/exercises/gigasecond/test/Tests.hs
trackler-2.0.5.9 tracks/haskell/exercises/gigasecond/test/Tests.hs