{-# OPTIONS_GHC -Wno-orphans #-} module Test.Data.VMap.Arbitrary () where import qualified Data.VMap as VMap import Test.QuickCheck import Test.QuickCheck.Instances () instance (Ord k, VMap.Vector kv k, VMap.Vector vv v, Arbitrary k, Arbitrary v) => Arbitrary (VMap.VMap kv vv k v) where arbitrary :: Gen (VMap kv vv k v) arbitrary = Map k v -> VMap kv vv k v forall (kv :: * -> *) k (vv :: * -> *) v. (Vector kv k, Vector vv v) => Map k v -> VMap kv vv k v VMap.fromMap (Map k v -> VMap kv vv k v) -> Gen (Map k v) -> Gen (VMap kv vv k v) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen (Map k v) forall a. Arbitrary a => Gen a arbitrary shrink :: VMap kv vv k v -> [VMap kv vv k v] shrink = ([(k, v)] -> VMap kv vv k v) -> [[(k, v)]] -> [VMap kv vv k v] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap [(k, v)] -> VMap kv vv k v forall k (kv :: * -> *) (vv :: * -> *) v. (Ord k, Vector kv k, Vector vv v) => [(k, v)] -> VMap kv vv k v VMap.fromList ([[(k, v)]] -> [VMap kv vv k v]) -> (VMap kv vv k v -> [[(k, v)]]) -> VMap kv vv k v -> [VMap kv vv k v] forall b c a. (b -> c) -> (a -> b) -> a -> c . [(k, v)] -> [[(k, v)]] forall a. Arbitrary a => a -> [a] shrink ([(k, v)] -> [[(k, v)]]) -> (VMap kv vv k v -> [(k, v)]) -> VMap kv vv k v -> [[(k, v)]] forall b c a. (b -> c) -> (a -> b) -> a -> c . VMap kv vv k v -> [(k, v)] forall (kv :: * -> *) k (vv :: * -> *) v. (Vector kv k, Vector vv v) => VMap kv vv k v -> [(k, v)] VMap.toList