genvalidity-time 1.0.0.0 → 1.0.0.1
raw patch · 5 files changed
+54/−20 lines, 5 filesdep ~genvalidity-criterion
Dependency ranges changed: genvalidity-criterion
Files
- CHANGELOG.md +7/−0
- bench/Main.hs +30/−10
- genvalidity-time.cabal +4/−4
- src/Data/GenValidity/Time/Calendar.hs +1/−1
- src/Data/GenValidity/Time/LocalTime.hs +12/−5
CHANGELOG.md view
@@ -1,5 +1,12 @@ # Changelog +## [1.0.0.1] - 2022-08-30++### Changed++* Sped up shrinking of `TimeOfDay`, `LocalTime` and `TimeOfDay`+* Shrinking benchmarks+ ## [1.0.0.0] - 2021-11-20 ### Changed
bench/Main.hs view
@@ -12,14 +12,34 @@ main :: IO () main = Criterion.defaultMain- [ genValidBench @Day,- genValidBench @UniversalTime,- genValidBench @DiffTime,- genValidBench @UTCTime,- genValidBench @NominalDiffTime,- -- , genValidBench @TimeLocale -- No NFData instance- genValidBench @TimeZone,- genValidBench @TimeOfDay,- genValidBench @LocalTime,- genValidBench @ZonedTime+ [ bgroup+ "generators"+ [ genValidBench @Day,+ genValidBench @CalendarDiffDays,+ genValidBench @DayOfWeek,+ genValidBench @UniversalTime,+ genValidBench @DiffTime,+ genValidBench @UTCTime,+ genValidBench @NominalDiffTime,+ -- , genValidBench @TimeLocale -- No NFData instance+ genValidBench @TimeZone,+ genValidBench @TimeOfDay,+ genValidBench @LocalTime,+ genValidBench @ZonedTime+ ],+ bgroup+ "shrinkers"+ [ shrinkValidBench @Day,+ shrinkValidBench @CalendarDiffDays,+ shrinkValidBench @DayOfWeek,+ shrinkValidBench @UniversalTime,+ shrinkValidBench @DiffTime,+ shrinkValidBench @UTCTime,+ shrinkValidBench @NominalDiffTime,+ -- , shrinkValidBench @TimeLocale -- No NFData instance+ shrinkValidBench @TimeZone,+ shrinkValidBench @TimeOfDay,+ shrinkValidBench @LocalTime,+ shrinkValidBench @ZonedTime+ ] ]
genvalidity-time.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack name: genvalidity-time-version: 1.0.0.0+version: 1.0.0.1 synopsis: GenValidity support for time description: Please see README.md category: Testing@@ -13,7 +13,7 @@ bug-reports: https://github.com/NorfairKing/validity/issues author: Tom Sydney Kerckhove maintainer: syd@cs-syd.eu-copyright: Copyright: (c) 2016-2021 Tom Sydney Kerckhove+copyright: Copyright: (c) 2016-2022 Tom Sydney Kerckhove license: MIT license-file: LICENSE build-type: Simple@@ -72,7 +72,7 @@ build-depends: base >=4.7 && <5 , criterion- , genvalidity-criterion+ , genvalidity-criterion >=1.1.0.0 , genvalidity-time , time default-language: Haskell2010
src/Data/GenValidity/Time/Calendar.hs view
@@ -32,7 +32,7 @@ genDayCloselyAround :: Day -> Gen Day genDayCloselyAround today = sized $ \s -> do- diff <- choose (- s, s)+ diff <- choose (-s, s) pure $ addDays (fromIntegral diff) today instance GenValid CalendarDiffDays where
src/Data/GenValidity/Time/LocalTime.hs view
@@ -37,19 +37,26 @@ genValid = TimeOfDay <$> (choose (0, 23)) <*> (choose (0, 59)) <*> (MkFixed <$> choose (0, 60999999999999))- shrinkValid (TimeOfDay h m s) =- filter isValid [TimeOfDay h' m' s' | (h', m', s') <- shrinkValid (h, m, s)]+ shrinkValid (TimeOfDay h m s) = do+ (h', m', s') <-+ shrinkTriple+ (filter (\hh -> 0 <= hh && hh < 24) . shrinkValid)+ (filter (\mm -> 0 <= mm && mm < 60) . shrinkValid)+ (filter (\ss -> 0 <= ss && ss < 61) . shrinkValid)+ (h, m, s)+ pure (TimeOfDay h' m' s') instance GenValid LocalTime where genValid = LocalTime <$> genValid <*> genValid shrinkValid (LocalTime d tod) =- filter isValid [LocalTime d' tod' | (d', tod') <- shrinkValid (d, tod)]+ [LocalTime d' tod' | (d', tod') <- shrinkValid (d, tod)] instance GenValid ZonedTime where genValid = ZonedTime <$> genValid <*> genValid shrinkValid (ZonedTime lt tz) =- filter isValid [ZonedTime lt' tz' | (lt', tz') <- shrinkValid (lt, tz)]+ [ZonedTime lt' tz' | (lt', tz') <- shrinkValid (lt, tz)] instance GenValid CalendarDiffTime where genValid = CalendarDiffTime <$> genValid <*> genValid- shrinkValid (CalendarDiffTime ms t) = [CalendarDiffTime ms' t' | (ms', t') <- shrinkValid (ms, t)]+ shrinkValid (CalendarDiffTime ms t) =+ [CalendarDiffTime ms' t' | (ms', t') <- shrinkValid (ms, t)]