{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Data.Arbitrary (genOSet) where import Data.OMap.Strict qualified as OMap import Data.OSet.Strict qualified as OSet 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 (Arbitrary v, OMap.HasOKey k v, Arbitrary k) => Arbitrary (OMap.OMap k v) where arbitrary :: Gen (OMap k v) arbitrary = forall (f :: * -> *) k v. (Foldable f, HasOKey k v) => f v -> OMap k v OMap.fromFoldable @[] ([v] -> OMap k v) -> Gen [v] -> Gen (OMap k v) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen [v] forall a. Arbitrary a => Gen a arbitrary