packages feed

expiring-containers 0.2.2 → 0.2.2.1

raw patch · 4 files changed

+39/−89 lines, 4 filesdep +QuickCheckdep +rerebasedep ~containersdep ~quickcheck-instancesdep ~tastysetup-changednew-uploader

Dependencies added: QuickCheck, rerebase

Dependency ranges changed: containers, quickcheck-instances, tasty, tasty-quickcheck

Files

+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
expiring-containers.cabal view
@@ -1,78 +1,52 @@-name:-  expiring-containers-version:-  0.2.2-synopsis:-  Expiring containers-category:-  Time, Containers-homepage:-  https://github.com/metrix-ai/expiring-containers-bug-reports:-  https://github.com/metrix-ai/expiring-containers/issues-author:-  Oleg Shevchenko <shevchenko.cmc@gmail.com>-maintainer:-  Metrix.AI Ninjas <ninjas@metrix.ai>-copyright:-  (c) 2018, Metrix.AI-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.24+name: expiring-containers+version: 0.2.2.1+synopsis: Expiring containers+category: Time, Containers+homepage: https://github.com/metrix-ai/expiring-containers+bug-reports: https://github.com/metrix-ai/expiring-containers/issues+author: Oleg Shevchenko <shevchenko.cmc@gmail.com>+maintainer: Metrix.AI Ninjas <ninjas@metrix.ai>+copyright: (c) 2018, Metrix.AI+license: MIT+license-file: LICENSE+build-type: Simple+cabal-version: >=1.24  source-repository head-  type:-    git-  location:-    https://github.com/metrix-ai/expiring-containers.git+  type: git+  location: https://github.com/metrix-ai/expiring-containers.git  library-  hs-source-dirs:-    library-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples, StrictData+  hs-source-dirs: library+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples, StrictData   ghc-options: -funbox-strict-fields-  default-language:-    Haskell2010+  default-language: Haskell2010   exposed-modules:     ExpiringContainers.ExpiringMap     ExpiringContainers.ExpiringSet   other-modules:   build-depends:     base >=4.7 && <5,-    time >=1.8 && <2,-    hashable >=1.2 && <2,-    timestamp >=0.2 && <0.3,     containers >=0.5.10 && <0.5.15,+    hashable >=1.2 && <2,     int-multimap >=0.3.1 && <0.4,+    time >=1.8 && <2,+    timestamp >=0.2 && <0.3,     unordered-containers >=0.2.8.0 && <0.3  test-suite test-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    test-  main-is:-    Main.hs-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples-  default-language:-    Haskell2010+  type: exitcode-stdio-1.0+  hs-source-dirs: test+  main-is: Main.hs+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+  default-language: Haskell2010   build-depends:     expiring-containers,-    base >=4.7 && <5,-    time >=1.8 && <2,-    hashable >=1.2 && <2,-    timestamp >=0.2 && <0.3,-    containers >=0.5.10 && <0.5.15,     int-multimap >=0.3.1 && <0.4,-    unordered-containers >=0.2.8.0 && <0.3,-    tasty >=1.0.1 && <1.0.2,+    QuickCheck >=2.8.1 && <3,+    quickcheck-instances >=0.3.11 && <0.4,+    rerebase <2,+    tasty >=0.12 && <2,     tasty-hunit >=0.9 && <0.11,-    tasty-quickcheck >=0.10 && <0.12,-    quickcheck-instances >=0.3.18 && <0.4+    tasty-quickcheck >=0.9 && <0.11,+    timestamp >=0.2 && <0.3
library/ExpiringContainers/ExpiringSet.hs view
@@ -43,10 +43,12 @@ Set that expiring with time -} data ExpiringSet element =+  {-|+  * Elements indexed by timestamps+  * Timestamps indexed by elements+  -}   ExpiringSet-    {-| Elements indexed by timestamps -}     (IntMap.IntMultimap element)-    {-| Timestamps indexed by elements -}     (HashMap.HashMap element Int)     deriving(Eq, Show, Generic) 
test/Main.hs view
@@ -6,7 +6,6 @@ import Test.Tasty.Runners import Test.Tasty.HUnit import Test.Tasty.QuickCheck--- import Test.QuickCheck.Instances import Test.QuickCheck.Instances.Time import qualified ExpiringContainers.ExpiringSet as A import qualified ExpiringContainers.ExpiringMap as B@@ -73,19 +72,6 @@         f = applyFun fun     in A.map f (A.insert key value1 set) === A.insert key (f value1) (A.map f set)     ,-    -- testProperty "map delete" $ \ (list :: [(UTCTime, Int)], key :: UTCTime, value1 :: Int, fun :: (Fun Int Char)) ->-    -- let set = A.fromList list-    --     f = applyFun fun-    -- in A.map f (A.delete value1 set) === A.delete (f value1) (A.map f set)-    -- ,-    -- testProperty "clean" $ \ (list :: [(UTCTime, Int)], key :: UTCTime) ->-    -- let (list1, expire) = A.clean key $ A.fromList list-    -- in (D.fromList $ fmap (\(t,a) -> a) $ C.filter (\(t,a) -> t < key) list) === (D.fromList list1)-    -- ,-    -- testProperty "mapping" $ \ (list :: [(UTCTime, Int)]) ->-    -- (D.fromList $ map (testFuncL . (\(t,a) -> (,) (timestampUtcTime $ utcTimeTimestamp t) a)) list) ===-    --    (D.fromList $ A.toList $ A.map testFunc $ A.fromList list)-    -- ,     testProperty "member" $ \ (list :: [(UTCTime, Int)], key :: UTCTime, value :: Int) ->     (A.member value $ A.delete value $ A.insert key value $ A.fromList list) === False     ,@@ -172,14 +158,6 @@         f = applyFun fun     in fmap f (B.lookup key map') === B.lookup key (B.map f map')     ,-    -- testProperty "map" $ \ (list :: [(UTCTime, Int, Int)], time :: UTCTime, key :: Int, value :: Int) ->-    -- let map' = B.fromList list-    -- in fmap (\x -> B.insert time key value map') (B.lookup key map') === (map' <$ (B.lookup key map'))-    -- ,-    -- testProperty "clean" $ \ (list :: [(UTCTime, Int)], key :: UTCTime) ->-    -- let (list1, expire) = A.clean key $ A.fromList list-    -- in (D.fromList $ fmap (\(t,a) -> a) $ C.filter (\(t,a) -> t < key) list) === (D.fromList list1)-    -- ,     testProperty "member" $ \ (list :: [(UTCTime, Int, Int)], time :: UTCTime, key :: Int, value :: Int) ->     (B.member key $ B.delete key $ B.insert time key value $ B.fromList list) === False     ,@@ -189,13 +167,7 @@     ,     testProperty "traverse" $ \ (list :: [(UTCTime, Int, Int)]) ->     let map' = B.fromList list   -    in (traverse (\a -> [a + 1]) map') === [fmap (\a -> a + 1) map'] -    -- ,-    -- testProperty "insert and delete" $ \ (list :: [(UTCTime, Int, Int)], time :: UTCTime, key :: Int, value :: Int) ->-    -- let list2 = C.nubBy (\(t1,k1,v1) (t2,k2,v2) -> k1 == k2) list-    -- in (D.fromList $ fmap (\(t,a,b) -> (,,) (timestampUtcTime $ utcTimeTimestamp t) a b) $-    --  C.deleteBy (\(t1,k1,v1) (t2,k2,v2) -> k1 == k2) (time, key, value) list2) === (D.fromList $ B.toList $ B.delete key $ B.insert time key value $ B.fromList list)-+    in (traverse (\a -> [a + 1]) map') === [fmap (\a -> a + 1) map']   ]  testFunc :: (Show a) => a -> String