1module Test.Calendar.LongWeekYears(longWeekYears) where
2
3import Data.Time.Calendar.WeekDate
4import Data.Time.Calendar
5import Test.Tasty
6import Test.Tasty.HUnit
7import Test.Calendar.LongWeekYearsRef
8
9longYear :: Integer -> Bool
10longYear year = case toWeekDate (fromGregorian year 12 31) of
11    (_,53,_) -> True
12    _ -> False
13
14showLongYear :: Integer -> String
15showLongYear year
16  = unwords [ show year ++ ":"
17            , (if isLeapYear year then "L" else " ") ++ (if longYear year then "*" else " ") ]
18
19longWeekYears :: TestTree
20longWeekYears = testCase "longWeekYears" $
21    assertEqual "" longWeekYearsRef $ unlines $ map showLongYear [1901 .. 2050]
22