packages feed

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 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)]