hw-fingertree 0.1.1.1 → 0.1.2.0
raw patch · 7 files changed
+46/−25 lines, 7 filesdep +doctestdep +doctest-discoverdep ~basePVP ok
version bump matches the API change (PVP)
Dependencies added: doctest, doctest-discover
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- doctest/DoctestDriver.hs +12/−0
- hw-fingertree.cabal +23/−10
- src/HaskellWorks/Data/FingerTree.hs +0/−1
- src/HaskellWorks/Data/IntervalMap/FingerTree.hs +1/−2
- src/HaskellWorks/Data/PriorityQueue/FingerTree.hs +0/−1
- tests/HaskellWorks/Data/FingerTree/Gen.hs +8/−8
- tests/HaskellWorks/Data/FingerTreeSpec.hs +2/−3
+ doctest/DoctestDriver.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE CPP #-}++#if MIN_VERSION_GLASGOW_HASKELL(8,4,4,0)+{-# OPTIONS_GHC -F -pgmF doctest-discover #-}+#else+module Main where++import qualified System.IO as IO++main :: IO ()+main = IO.putStrLn "WARNING: doctest will not run on GHC versions earlier than 8.4.4"+#endif
hw-fingertree.cabal view
@@ -1,7 +1,7 @@-cabal-version: 2.2+cabal-version: 2.2 name: hw-fingertree-version: 0.1.1.1+version: 0.1.2.0 synopsis: Generic finger-tree structure, with example instances description: A general sequence representation with arbitrary annotations, for use as a base for implementations of@@ -20,30 +20,33 @@ homepage: https://github.com/haskell-works/hw-fingertree#readme bug-reports: https://github.com/haskell-works/hw-fingertree/issues maintainer: John Ky <newhoggy@gmail.com>-copyright: (c) 2017-2019 John Ky+copyright: (c) 2017-2020 John Ky (c) 2006 Ross Paterson, Ralf Hinze, license: BSD-3-Clause license-file: LICENSE-tested-with: GHC == 8.8.1, GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2+tested-with: GHC == 8.10.1, GHC == 8.8.3, GHC == 8.6.5, GHC == 8.4.4 build-type: Simple source-repository head type: git location: https://github.com/haskell-works/hw-fingertree -common base { build-depends: base >= 4 && < 5 }+common base { build-depends: base >= 4.11 && < 5 } common deepseq { build-depends: deepseq >= 1.4 && < 1.5 }+common doctest { build-depends: doctest >= 0.16.2 && < 0.17 }+common doctest-discover { build-depends: doctest-discover >= 0.2 && < 0.3 } common hedgehog { build-depends: hedgehog >= 0.6 && < 1.1 } common hspec { build-depends: hspec >= 2.4 && < 3.0 } common hw-hspec-hedgehog { build-depends: hw-hspec-hedgehog >= 0.1 && < 0.2 } common hw-prim { build-depends: hw-prim >= 0.6.2.25 && < 0.7 } common config- default-language: Haskell2010+ default-language: Haskell2010+ ghc-options: -Wall common hw-fingertree- build-depends: hw-fingertree+ build-depends: hw-fingertree library import: base, config@@ -61,13 +64,23 @@ , deepseq , hedgehog , hspec+ , hw-fingertree , hw-hspec-hedgehog- build-depends: hw-fingertree type: exitcode-stdio-1.0 main-is: Spec.hs hs-source-dirs: tests build-tool-depends: hspec-discover:hspec-discover- autogen-modules: Paths_hw_fingertree other-modules: HaskellWorks.Data.FingerTree.Gen HaskellWorks.Data.FingerTreeSpec- Paths_hw_fingertree++test-suite doctest+ import: base, config+ , doctest+ , doctest-discover+ , hw-fingertree+ default-language: Haskell2010+ type: exitcode-stdio-1.0+ ghc-options: -threaded+ main-is: DoctestDriver.hs+ HS-Source-Dirs: doctest+ build-tool-depends: doctest-discover:doctest-discover
src/HaskellWorks/Data/FingerTree.hs view
@@ -80,7 +80,6 @@ import Control.Applicative (Applicative (pure, (<*>)), (<$>)) import Control.DeepSeq import Data.Foldable (Foldable (foldMap), toList)-import Data.Monoid import GHC.Generics (Generic) import HaskellWorks.Data.Container import HaskellWorks.Data.Cons
src/HaskellWorks/Data/IntervalMap/FingerTree.hs view
@@ -51,10 +51,9 @@ import Control.Applicative ((<$>)) import Control.DeepSeq import Data.Foldable (Foldable (foldMap))-import Data.Monoid import Data.Traversable (Traversable (traverse)) import GHC.Generics-import HaskellWorks.Data.FingerTree (FingerTree, Measured (..), ViewL (..), (<|), (><), (|>))+import HaskellWorks.Data.FingerTree (FingerTree, Measured (..), ViewL (..), (<|), (><)) import qualified Data.Semigroup as S import qualified HaskellWorks.Data.FingerTree as FT
src/HaskellWorks/Data/PriorityQueue/FingerTree.hs view
@@ -53,7 +53,6 @@ import Control.Arrow ((***)) import Data.Foldable (Foldable (foldMap))-import Data.Monoid import HaskellWorks.Data.FingerTree (FingerTree, Measured (..), ViewL (..), (<|), (><), (|>)) import Prelude hiding (null)
tests/HaskellWorks/Data/FingerTree/Gen.hs view
@@ -26,8 +26,8 @@ [deep pr' m sf | pr' <- shrinkDigit pr] ++ [deep pr m' sf | m' <- shrinkFingerTree m ] ++ [deep pr m sf' | sf' <- shrinkDigit sf]-shrinkFingerTree (Single x) = []-shrinkFingerTree Empty = []+shrinkFingerTree (Single _) = []+shrinkFingerTree Empty = [] fingerTree :: (MonadGen m, Measured v a) => m a -> m (FingerTree v a) fingerTree gen = G.sized $ \size -> genSizedFingerTree size gen@@ -36,10 +36,10 @@ genSizedFingerTree n gen = G.shrink shrinkFingerTree $ case n of 0 -> return Empty 1 -> Single <$> gen- n -> deep <$> (One <$> gen) <*> genSizedFingerTree (n `div` 2) (genSizedNode (n `div` 2) gen) <*> (One <$> gen)+ o -> deep <$> (One <$> gen) <*> genSizedFingerTree (o `div` 2) (genSizedNode (o `div` 2) gen) <*> (One <$> gen) shrinkNode :: Measured v a => Node v a -> [Node v a]-shrinkNode (Node2 _ a b) = []+shrinkNode (Node2 _ _ _ ) = [] shrinkNode (Node3 _ a b c) = [node2 a b, node2 a c, node2 b c] genSizedNode :: (MonadGen m, Measured v a) => Size -> m a -> m (Node v a)@@ -49,7 +49,7 @@ ] shrinkDigit :: Digit a -> [Digit a]-shrinkDigit (One a) = []-shrinkDigit (Two a b) = [One a, One b]-shrinkDigit (Three a b c) = [Two a b, Two a c, Two b c]-shrinkDigit (Four a b c d) = [Three a b c, Three a b d, Three a c d, Three b c d]+shrinkDigit (One _ ) = []+shrinkDigit (Two a b ) = [One a, One b]+shrinkDigit (Three a b c ) = [Two a b, Two a c, Two b c]+shrinkDigit (Four a b c d) = [Three a b c, Three a b d, Three a c d, Three b c d]
tests/HaskellWorks/Data/FingerTreeSpec.hs view
@@ -9,7 +9,6 @@ import Data.Foldable (Foldable (foldMap, foldl, foldr), all, toList) import Data.Functor ((<$>)) import Data.List (inits)-import Data.Monoid (Monoid (..)) import Data.Traversable (traverse) import HaskellWorks.Data.FingerTree import HaskellWorks.Hspec.Hedgehog@@ -118,9 +117,9 @@ toList' (evalM (traverse' f xs)) ~== evalM (traverse f (toList xs)) it "traverseWithPos" $ require $ property $ do xs <- forAll (G.fingerTree (G.int R.constantBounded))- let f xs y = do+ let f ys y = do n <- step- return (xs, n, y)+ return (ys, n, y) let xs_list = toList xs toList' (evalM (traverseWithPos f xs)) ~== evalM (traverse (uncurry f) (zip (inits xs_list) xs_list))