[commit: packages/time] format-widths, ghc, improve-leapseconds, master, posix-perf, tasty, wip/travis: test parse %C %y (c3d1c28)

git at git.haskell.org git at git.haskell.org
Fri Apr 21 16:50:54 UTC 2017


Repository : ssh://git@git.haskell.org/time

On branches: format-widths,ghc,improve-leapseconds,master,posix-perf,tasty,wip/travis
Link       : http://git.haskell.org/packages/time.git/commitdiff/c3d1c2821373e6dbc62923ab74d89c4a6b1b0b18

>---------------------------------------------------------------

commit c3d1c2821373e6dbc62923ab74d89c4a6b1b0b18
Author: Ashley Yakeley <ashley at semantic.org>
Date:   Sat May 7 21:29:05 2011 -0700

    test parse %C %y
    
    Ignore-this: 22f6db0e1424c95dece1fdf7740d982e
    
    darcs-hash:20110508042905-ac6dd-5026d47053631acb8848806368fb17bbf8bc9837


>---------------------------------------------------------------

c3d1c2821373e6dbc62923ab74d89c4a6b1b0b18
 test/TestParseTime.hs | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/test/TestParseTime.hs b/test/TestParseTime.hs
index 64a4504..5594f34 100644
--- a/test/TestParseTime.hs
+++ b/test/TestParseTime.hs
@@ -47,15 +47,27 @@ main = do
     exitWith (if good1 && good2 then ExitSuccess else ExitFailure 1)
 
 extests :: [(String,ExhaustiveTest)]
-extests = [("parse %y",MkExhaustiveTest [0..99] parseYY)]
+extests = [
+    ("parse %y",MkExhaustiveTest [0..99] parseYY),
+    ("parse %C %y 1900s",MkExhaustiveTest [0..99] (parseCYY 19)),
+    ("parse %C %y 2000s",MkExhaustiveTest [0..99] (parseCYY 20)),
+    ("parse %C %y 1400s",MkExhaustiveTest [0..99] (parseCYY 14)),
+    ("parse %C %y 700s",MkExhaustiveTest [0..99] (parseCYY 7))
+    ]
 
 -- | 1969 - 2068
 expectedYear :: Integer -> Integer
 expectedYear i | i >= 69 = 1900 + i
 expectedYear i = 2000 + i
 
+show2 :: Integer -> String
+show2 i = (show (div i 10)) ++ (show (mod i 10))
+
 parseYY :: Integer -> IO Bool
-parseYY i = return (parse "%y" ((show (div i 10)) ++ (show (mod i 10))) == Just (fromGregorian (expectedYear i) 1 1))
+parseYY i = return (parse "%y" (show2 i) == Just (fromGregorian (expectedYear i) 1 1))
+
+parseCYY :: Integer -> Integer -> IO Bool
+parseCYY c i = return (parse "%C %y" ((show2 c) ++ " " ++ (show2 i)) == Just (fromGregorian ((c * 100) + i) 1 1))
 
 checkAll :: RunTest p => [(String,p)] -> IO Bool
 checkAll ps = fmap and (mapM checkOne ps)



More information about the ghc-commits mailing list