{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ImportQualifiedPost #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Data.Arbitrary (genOSet) where import Data.Map.Strict qualified as Map import Data.OMap.Strict qualified as OMap import Data.OSet.Strict qualified as OSet import Lens.Micro (set) import Test.Cardano.Ledger.Binary.Arbitrary () import Test.QuickCheck instance (Arbitrary a, Ord a) => Arbitrary (OSet.OSet a) where arbitrary :: Gen (OSet a) arbitrary = Gen a -> Gen (OSet a) forall a. Ord a => Gen a -> Gen (OSet a) genOSet Gen a forall a. Arbitrary a => Gen a arbitrary genOSet :: Ord a => Gen a -> Gen (OSet.OSet a) genOSet :: forall a. Ord a => Gen a -> Gen (OSet a) genOSet = ([a] -> OSet a) -> Gen [a] -> Gen (OSet a) forall a b. (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap [a] -> OSet a forall (f :: * -> *) a. (Foldable f, Ord a) => f a -> OSet a OSet.fromFoldable (Gen [a] -> Gen (OSet a)) -> (Gen a -> Gen [a]) -> Gen a -> Gen (OSet a) forall b c a. (b -> c) -> (a -> b) -> a -> c . Gen a -> Gen [a] forall a. Gen a -> Gen [a] listOf instance (Ord v, Arbitrary v, OMap.HasOKey k v, Arbitrary k) => Arbitrary (OMap.OMap k v) where arbitrary :: Gen (OMap k v) arbitrary = ([v] -> OMap k v) -> Gen [v] -> Gen (OMap k v) forall a b. (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap [v] -> OMap k v forall (f :: * -> *) k v. (Foldable f, HasOKey k v) => f v -> OMap k v OMap.fromFoldable (Gen [v] -> Gen (OMap k v)) -> (Map v k -> Gen [v]) -> Map v k -> Gen (OMap k v) forall b c a. (b -> c) -> (a -> b) -> a -> c . [v] -> Gen [v] forall a. [a] -> Gen [a] shuffle ([v] -> Gen [v]) -> (Map v k -> [v]) -> Map v k -> Gen [v] forall b c a. (b -> c) -> (a -> b) -> a -> c . Map v v -> [v] forall k a. Map k a -> [a] Map.elems (Map v v -> [v]) -> (Map v k -> Map v v) -> Map v k -> [v] forall b c a. (b -> c) -> (a -> b) -> a -> c . (v -> k -> v) -> Map v k -> Map v v forall k a b. (k -> a -> b) -> Map k a -> Map k b Map.mapWithKey ((k -> v -> v) -> v -> k -> v forall a b c. (a -> b -> c) -> b -> a -> c flip (ASetter v v k k -> k -> v -> v forall s t a b. ASetter s t a b -> b -> s -> t set ASetter v v k k forall k v. HasOKey k v => Lens' v k Lens' v k OMap.okeyL)) (Map v k -> Gen (OMap k v)) -> Gen (Map v k) -> Gen (OMap k v) forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Gen (Map v k) forall a. Arbitrary a => Gen a arbitrary