module Prednote.Core.Generators where import Test.QuickCheck hiding (output) import qualified Prednote.Core as C import Prelude.Generators import Rainbow.Types.Generators import Control.Monad import Prelude hiding (pred) import Data.Tree.Generators chunker :: Gen C.Chunker chunker = function1 variant (listOf chunk) visible :: Gen C.Visible visible = fmap C.Visible arbitrary output :: Gen C.Output output = liftM4 C.Output arbitrary visible (frequency [(3, fmap Just chunker), (1, return Nothing)]) chunker pred :: Gen (C.Pred Int) pred = liftM2 C.Pred (tree (`div` 8) chunker) (function1 variant (tree (`div` 8) output)) dynamicLabel :: Gen (Bool -> Int -> C.Chunker) dynamicLabel = function2 coarbitrary coarbitrary chunker