packages feed

Ranged-sets 0.4.0 → 0.5.0

raw patch · 5 files changed

+88/−8 lines, 5 filesdep ~QuickCheckdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: QuickCheck, base

API changes (from Hackage documentation)

- Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Integer.Type.Integer
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Int.Int16
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Int.Int32
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Int.Int64
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Int.Int8
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Num.Integer.Integer
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Word
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Word.Word16
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Word.Word32
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Word.Word64
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Word.Word8
+ Data.Ranged.RangedSet: instance Data.Ranged.Boundaries.DiscreteOrdered v => GHC.Classes.Ord (Data.Ranged.RangedSet.RSet v)

Files

CHANGES.txt view
@@ -57,3 +57,11 @@ Added Semigroup instance. Enabled "cabal test". Master repository now on GitHub.++Version 0.5.0+-------------++Added Ord instance.+Added instances for DiscreteOrdered for Data.Int and Data.Word types.+Made test dependencies optional.+
Data/Ranged/Boundaries.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Data.Ranged.Boundaries@@ -19,8 +21,12 @@    (/>/) ) where +import Data.Int import Data.Ratio+import Data.Word+#ifdef WITH_TESTS import Test.QuickCheck+#endif  infix 4 />/ @@ -75,6 +81,42 @@    adjacent = boundedAdjacent    adjacentBelow = boundedBelow +instance DiscreteOrdered Word where+   adjacent = boundedAdjacent+   adjacentBelow = boundedBelow++instance DiscreteOrdered Word8 where+   adjacent = boundedAdjacent+   adjacentBelow = boundedBelow++instance DiscreteOrdered Word16 where+   adjacent = boundedAdjacent+   adjacentBelow = boundedBelow++instance DiscreteOrdered Word32 where+   adjacent = boundedAdjacent+   adjacentBelow = boundedBelow++instance DiscreteOrdered Word64 where+   adjacent = boundedAdjacent+   adjacentBelow = boundedBelow++instance DiscreteOrdered Int8 where+  adjacent = boundedAdjacent+  adjacentBelow = boundedBelow++instance DiscreteOrdered Int16 where+  adjacent = boundedAdjacent+  adjacentBelow = boundedBelow++instance DiscreteOrdered Int32 where+  adjacent = boundedAdjacent+  adjacentBelow = boundedBelow++instance DiscreteOrdered Int64 where+  adjacent = boundedAdjacent+  adjacentBelow = boundedBelow+   instance DiscreteOrdered Integer where    adjacent = enumAdjacent    adjacentBelow = Just . pred@@ -210,6 +252,7 @@                BoundaryBelowAll -> EQ                _        -> LT +#ifdef WITH_TESTS -- QuickCheck Generator  instance Arbitrary a => Arbitrary (Boundary a) where@@ -227,3 +270,4 @@    coarbitrary (BoundaryBelow v)  = variant (2 :: Int) . coarbitrary v    coarbitrary (BoundaryAbove v)  = variant (3 :: Int) . coarbitrary v +#endif
Data/Ranged/RangedSet.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Data.Ranged.RangedSet (    -- ** Ranged Set Type    RSet,@@ -23,6 +25,8 @@    -- ** Useful Sets    rSetEmpty,    rSetFull,++#ifdef WITH_TESTS    -- ** QuickCheck Properties    -- *** Construction    prop_validNormalised,@@ -54,13 +58,17 @@    prop_union_associates,    prop_de_morgan_intersection,    prop_de_morgan_union,+#endif ) where  import Data.Ranged.Boundaries import Data.Ranged.Ranges  import Data.List++#ifdef WITH_TESTS import Test.QuickCheck+#endif  infixl 7 -/\- infixl 6 -\/-, -!-@@ -69,7 +77,7 @@ -- | An RSet (for Ranged Set) is a list of ranges.  The ranges must be sorted -- and not overlap. newtype DiscreteOrdered v => RSet v = RSet {rSetRanges :: [Range v]}-   deriving (Eq, Show)+   deriving (Show, Eq, Ord)  instance DiscreteOrdered a => Semigroup (RSet a) where    (<>) = rSetUnion@@ -246,6 +254,7 @@             Nothing -> []  +#ifdef WITH_TESTS -- QuickCheck Generators  instance (Arbitrary v, DiscreteOrdered v, Show v) =>@@ -485,3 +494,5 @@ prop_de_morgan_union :: (DiscreteOrdered a) => RSet a -> RSet a -> Bool prop_de_morgan_union rs1 rs2 =    rSetNegation (rs1 -\/- rs2) == (rSetNegation rs1 -/\- rSetNegation rs2)++#endif
Data/Ranged/Ranges.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ ----------------------------------------------------------------------------- -- -- Module      :  Data.Ranged.Ranges@@ -29,6 +31,8 @@    rangeIntersection,    rangeUnion,    rangeDifference,++#ifdef WITH_TESTS    -- ** QuickCheck properties    prop_unionRange,    prop_unionRangeLength,@@ -42,13 +46,17 @@    prop_emptyNonSingleton,    prop_fullNonSingleton,    prop_nonSingleton,-   prop_intSingleton+   prop_intSingleton,+#endif ) where  import Control.Monad import Data.Ranged.Boundaries import Data.Maybe++#ifdef WITH_TESTS import Test.QuickCheck+#endif  -- | A Range has upper and lower boundaries. data Ord v => Range v = Range {rangeLower, rangeUpper :: Boundary v}@@ -213,6 +221,7 @@       intersects = (max lower1 lower2) < (min upper1 upper2)  +#ifdef WITH_TESTS -- QuickCheck generators  instance (Arbitrary v,  DiscreteOrdered v, Show v) =>@@ -356,4 +365,4 @@       rangeAround v1 v2 = return Range `ap` genBound v1 `ap` genBound v2       genBound v = elements [BoundaryAbove v, BoundaryBelow v] -+#endif
Ranged-sets.cabal view
@@ -1,10 +1,10 @@ name: Ranged-sets-version: 0.4.0+version: 0.5.0 cabal-version: 1.24 build-type: Simple license: BSD3 license-file: LICENSE.txt-copyright: Paul Johnson, 2005, 2006, 2007, 2008, 2019+copyright: Paul Johnson, 2005, 2006, 2007, 2008, 2019, 2025 maintainer: paul@cogito.org.uk stability: beta homepage: https://github.com/PaulJohnson/Ranged-sets@@ -20,10 +20,18 @@              >    ("F" <= s < "G") category: Data author: Paul Johnson-extra-source-files: CHANGES.txt README.txt+extra-doc-files: CHANGES.txt README.txt +flag with-tests+    description: Include unit tests / extra  instances.+    default: True+    manual: False+ library-    build-depends: HUnit -any, QuickCheck >=2, base >=4 && <5+    build-depends: base >=4.11 && <5+    if flag(with-tests)+        cpp-options: -DWITH_TESTS+        build-depends: QuickCheck >=2 && < 3     exposed-modules: Data.Ranged Data.Ranged.Ranges                  Data.Ranged.RangedSet Data.Ranged.Boundaries     exposed: True@@ -36,10 +44,10 @@     default-language: Haskell2010     main-is: Main.hs     hs-source-dirs: tests .+    cpp-options: -DWITH_TESTS     other-modules: Data.Ranged Data.Ranged.Ranges                  Data.Ranged.RangedSet Data.Ranged.Boundaries     build-depends:         base >= 4 && < 5,         HUnit,         QuickCheck-