on master help sign in
Add unit tests
commitaebc5fa68b80e5941783046afa72d9ac2e6103fc authorMatt Parsons <parsonsmatt@gmail.com> dateMon 12 Dec 2016, 13:39 (10 years ago) parent5f74f79
1 file changed+19−1
tests/UnitTests.hs+19−1
tests/UnitTests.hs+19−1
@@ -43,7 +43,7 @@ import Data.Scientific (Scientific)
4343import Data.Sequence (Seq)
4444import Data.Tagged (Tagged(..))
4545import Data.Text (Text)
46−import Data.Time (UTCTime)
46+import Data.Time (UTCTime, Day, fromGregorian)
4747import Data.Time.Format (parseTime)
4848import Data.Time.Locale.Compat (defaultTimeLocale)
4949import Data.Word (Word8)
@@ -99,6 +99,10 @@ tests = testGroup "unit" [
9999 testCase "good" $ utcTimeGood
100100 , testCase "bad" $ utcTimeBad
101101 ]
102+ , testGroup "day" [
103+ testCase "encode normal" $ dayEncodeCE
104+ , testCase "encode BCE" $ dayEncodeBCE
105+ ]
102106 , testGroup "formatError" [
103107 testCase "example 1" $ formatErrorExample
104108 ]
@@ -242,6 +246,20 @@ utcTimeBad = do
242246 let (dec :: Maybe UTCTime) = decode . LT.encodeUtf8 $ (LT.concat ["\"", s, "\""]) in
243247 assertEqual "verify failure" Nothing dec
244248
249+dayEncodeCE :: Assertion
250+dayEncodeCE = do
251+ let ceDay = fromGregorian 1234 12 5
252+ assertEqual "Encode a CE day works appropriately" (encode ceDay) "\"1234-12-05\""
253+
254+dayEncodeBCE :: Assertion
255+dayEncodeBCE = do
256+ let zeroDay = fromGregorian 0 6 11
257+ bceDay = fromGregorian (-100) 5 13
258+ wayEarly = fromGregorian (-10000) 3 3
259+ assertEqual "Encode a zero year day works appropriately" (encode zeroDay) "\"0000-06-11\""
260+ assertEqual "Encode a BCE day works appropriately" (encode bceDay) "\"-0100-05-13\""
261+ assertEqual "Encode a really early day works appropriately" (encode wayEarly) "\"-10000-03-03\""
262+
245263-- Non identifier keys should be escaped & enclosed in brackets
246264formatErrorExample :: Assertion
247265formatErrorExample =