{-# OPTIONS_GHC -fno-warn-orphans #-} module Futhark.ProfileTests () where import Data.Map qualified as M import Data.Text qualified as T import Futhark.Profile import Test.Tasty.QuickCheck printable :: Gen String printable :: Gen String printable = PrintableString -> String getPrintableString (PrintableString -> String) -> Gen PrintableString -> Gen String forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen PrintableString forall a. Arbitrary a => Gen a arbitrary arbText :: Gen T.Text arbText :: Gen Text arbText = String -> Text T.pack (String -> Text) -> Gen String -> Gen Text forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen String printable instance Arbitrary ProfilingEvent where arbitrary :: Gen ProfilingEvent arbitrary = Text -> Double -> Text -> Value -> ProfilingEvent ProfilingEvent (Text -> Double -> Text -> Value -> ProfilingEvent) -> Gen Text -> Gen (Double -> Text -> Value -> ProfilingEvent) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen Text arbText Gen (Double -> Text -> Value -> ProfilingEvent) -> Gen Double -> Gen (Text -> Value -> ProfilingEvent) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Double forall a. Arbitrary a => Gen a arbitrary Gen (Text -> Value -> ProfilingEvent) -> Gen Text -> Gen (Value -> ProfilingEvent) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Text arbText Gen (Value -> ProfilingEvent) -> Gen Value -> Gen ProfilingEvent forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Value forall a. Arbitrary a => Gen a arbitrary instance Arbitrary ProfilingReport where arbitrary :: Gen ProfilingReport arbitrary = [ProfilingEvent] -> Map Text Integer -> ProfilingReport ProfilingReport ([ProfilingEvent] -> Map Text Integer -> ProfilingReport) -> Gen [ProfilingEvent] -> Gen (Map Text Integer -> ProfilingReport) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen [ProfilingEvent] forall a. Arbitrary a => Gen a arbitrary Gen (Map Text Integer -> ProfilingReport) -> Gen (Map Text Integer) -> Gen ProfilingReport forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> ([(Text, Integer)] -> Map Text Integer forall k a. Ord k => [(k, a)] -> Map k a M.fromList ([(Text, Integer)] -> Map Text Integer) -> Gen [(Text, Integer)] -> Gen (Map Text Integer) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen (Text, Integer) -> Gen [(Text, Integer)] forall a. Gen a -> Gen [a] listOf ((,) (Text -> Integer -> (Text, Integer)) -> Gen Text -> Gen (Integer -> (Text, Integer)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen Text arbText Gen (Integer -> (Text, Integer)) -> Gen Integer -> Gen (Text, Integer) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Integer forall a. Arbitrary a => Gen a arbitrary))