Skip to content

Commit ec62045

Browse files
Merge patch into master
2 parents 480dc19 + 3d90e83 commit ec62045

File tree

4 files changed

+20
-8
lines changed

4 files changed

+20
-8
lines changed

postgresql-types.cabal

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 3.0
22
name: postgresql-types
3-
version: 0.1.1
3+
version: 0.1.1.1
44
category: PostgreSQL, Codecs
55
synopsis: Precise PostgreSQL types representation and driver-agnostic codecs
66
description:
@@ -144,6 +144,7 @@ library
144144

145145
other-modules:
146146
PostgresqlTypes.Multirange.List
147+
PostgresqlTypes.Multirange.QuickCheckGen
147148
PostgresqlTypes.Numeric.Integer
148149
PostgresqlTypes.Numeric.Scientific
149150
PostgresqlTypes.Prelude
@@ -160,16 +161,13 @@ library
160161
bytestring >=0.10 && <0.13,
161162
containers >=0.6 && <0.9,
162163
hashable >=1.3 && <2,
163-
invariant ^>=0.6.4,
164164
jsonifier ^>=0.2.1.3,
165165
mtl >=2.2 && <3,
166166
postgresql-types:jsonifier-aeson,
167167
postgresql-types:time-extras,
168168
postgresql-types-algebra ^>=0.1,
169-
profunctors ^>=5.6 && <6,
170169
ptr-peeker ^>=0.1,
171170
ptr-poker ^>=0.1.3,
172-
quickcheck-extras ^>=0.1,
173171
scientific >=0.3 && <1,
174172
tagged ^>=0.8.9,
175173
text >=1.2 && <3,

src/library/PostgresqlTypes/Multirange.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ import qualified Data.Set as Set
1616
import qualified Data.Vector as Vector
1717
import PostgresqlTypes.Algebra
1818
import qualified PostgresqlTypes.Multirange.List
19+
import qualified PostgresqlTypes.Multirange.QuickCheckGen as QuickCheckGen
1920
import PostgresqlTypes.Prelude
2021
import PostgresqlTypes.Range (Range)
2122
import qualified PostgresqlTypes.Range as Range
2223
import PostgresqlTypes.Via
2324
import qualified PtrPeeker
2425
import qualified PtrPoker.Write as Write
25-
import qualified QuickCheckExtras.Gen
2626
import qualified Test.QuickCheck as QuickCheck
2727
import qualified TextBuilder
2828

@@ -108,7 +108,7 @@ instance (IsRangeElement a, Arbitrary a, Ord a) => Arbitrary (Multirange a) wher
108108
numRanges <- QuickCheck.chooseInt (0, max 0 size)
109109
let numBounds =
110110
numRanges * 2 + bool 1 0 lowerInfinity + bool 1 0 upperInfinity
111-
bounds <- QuickCheckExtras.Gen.setOfSize numBounds (arbitrary @a)
111+
bounds <- QuickCheckGen.setOfSize numBounds (arbitrary @a)
112112
let preparedBounds =
113113
mconcat
114114
[ if lowerInfinity then [Nothing] else [],
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module PostgresqlTypes.Multirange.QuickCheckGen
2+
where
3+
4+
import PostgresqlTypes.Prelude
5+
import Test.QuickCheck
6+
import qualified Data.Set as Set
7+
8+
-- | Attention. This generator may run indefinitely if the 'elementGen' has too small variety of possible values.
9+
setOfSize :: (Ord a) => Int -> Gen a -> Gen (Set.Set a)
10+
setOfSize n elementGen = go Set.empty 0
11+
where
12+
go !currentSet !size
13+
| size >= n = pure currentSet
14+
| otherwise = do
15+
newElement <- suchThat elementGen \element -> Set.notMember element currentSet
16+
go (Set.insert newElement currentSet) (succ size)

src/library/PostgresqlTypes/Prelude.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import Data.Function as Exports hiding (id, (.))
3232
import Data.Functor as Exports hiding (unzip)
3333
import Data.Functor.Contravariant as Exports
3434
import Data.Functor.Identity as Exports
35-
import Data.Functor.Invariant as Exports
3635
import Data.Hashable as Exports (Hashable (..))
3736
import Data.IORef as Exports
3837
import Data.Int as Exports
@@ -41,7 +40,6 @@ import Data.List as Exports hiding (all, and, any, concat, concatMap, elem, find
4140
import Data.Maybe as Exports
4241
import Data.Monoid as Exports hiding (First (..), Last (..), (<>))
4342
import Data.Ord as Exports
44-
import Data.Profunctor as Exports (Profunctor (..))
4543
import Data.Proxy as Exports
4644
import Data.Ratio as Exports
4745
import Data.STRef as Exports

0 commit comments

Comments
 (0)