plutarch-testlib
Safe HaskellNone
LanguageGHC2021

Plutarch.Test.QuickCheck

Synopsis
  • propEval :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree
  • propEvalFail :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree
  • propCompileFail :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree
  • propEvalEqual :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s0 :: S). Term s0 b) -> (a -> forall (s1 :: S). Term s1 b) -> TestTree
  • propPTryFromRoundrip :: forall (a :: S -> Type). (Show (AsHaskell a), Arbitrary (AsHaskell a), Typeable (AsHaskell a), PLiftable a, PEq a, PIsData a, PTryFrom PData (PAsData a)) => TestTree
  • checkHaskellEquivalent :: forall (plutarchInput :: S -> Type) (plutarchOutput :: S -> Type). (PLiftable plutarchInput, PLiftable plutarchOutput, Pretty (AsHaskell plutarchInput), Arbitrary (AsHaskell plutarchInput), Pretty (AsHaskell plutarchOutput), Eq (AsHaskell plutarchOutput)) => (AsHaskell plutarchInput -> AsHaskell plutarchOutput) -> (forall (s0 :: S). Term s0 (plutarchInput :--> plutarchOutput)) -> Property
  • checkHaskellEquivalent2 :: forall (plutarchInput1 :: S -> Type) (plutarchInput2 :: S -> Type) (plutarchOutput :: S -> Type). (PLiftable plutarchInput1, Pretty (AsHaskell plutarchInput1), Arbitrary (AsHaskell plutarchInput1), PLiftable plutarchInput2, Pretty (AsHaskell plutarchInput2), Arbitrary (AsHaskell plutarchInput2), PLiftable plutarchOutput, Pretty (AsHaskell plutarchOutput), Eq (AsHaskell plutarchOutput)) => (AsHaskell plutarchInput1 -> AsHaskell plutarchInput2 -> AsHaskell plutarchOutput) -> (forall (s0 :: S). Term s0 (plutarchInput1 :--> (plutarchInput2 :--> plutarchOutput))) -> Property

Documentation

propEval :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree Source #

Like testEval but generate terms

Since: 1.0.0

propEvalFail :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree Source #

Like testEvalFail but generate terms

Since: 1.0.0

propCompileFail :: forall a (b :: S -> Type). (Arbitrary a, Show a) => TestName -> (a -> forall (s :: S). Term s b) -> TestTree Source #

Like testCompileFail but generate terms

Since: 1.0.0

propEvalEqual Source #

Arguments

:: forall a (b :: S -> Type). (Arbitrary a, Show a) 
=> TestName 
-> (a -> forall (s0 :: S). Term s0 b)

Actual

-> (a -> forall (s1 :: S). Term s1 b)

Expected

-> TestTree 

Like testEvalEqual but generate terms

Since: 1.0.0

propPTryFromRoundrip :: forall (a :: S -> Type). (Show (AsHaskell a), Arbitrary (AsHaskell a), Typeable (AsHaskell a), PLiftable a, PEq a, PIsData a, PTryFrom PData (PAsData a)) => TestTree Source #

Since: 3.1.1

checkHaskellEquivalent :: forall (plutarchInput :: S -> Type) (plutarchOutput :: S -> Type). (PLiftable plutarchInput, PLiftable plutarchOutput, Pretty (AsHaskell plutarchInput), Arbitrary (AsHaskell plutarchInput), Pretty (AsHaskell plutarchOutput), Eq (AsHaskell plutarchOutput)) => (AsHaskell plutarchInput -> AsHaskell plutarchOutput) -> (forall (s0 :: S). Term s0 (plutarchInput :--> plutarchOutput)) -> Property Source #

Since: 1.0.0

checkHaskellEquivalent2 :: forall (plutarchInput1 :: S -> Type) (plutarchInput2 :: S -> Type) (plutarchOutput :: S -> Type). (PLiftable plutarchInput1, Pretty (AsHaskell plutarchInput1), Arbitrary (AsHaskell plutarchInput1), PLiftable plutarchInput2, Pretty (AsHaskell plutarchInput2), Arbitrary (AsHaskell plutarchInput2), PLiftable plutarchOutput, Pretty (AsHaskell plutarchOutput), Eq (AsHaskell plutarchOutput)) => (AsHaskell plutarchInput1 -> AsHaskell plutarchInput2 -> AsHaskell plutarchOutput) -> (forall (s0 :: S). Term s0 (plutarchInput1 :--> (plutarchInput2 :--> plutarchOutput))) -> Property Source #

Since: 1.0.0

Orphan instances

Pretty a => Pretty (Negative a) Source #

Since: 1.0.0

Instance details

Methods

pretty :: Negative a -> Doc ann

prettyList :: [Negative a] -> Doc ann

Pretty a => Pretty (NonNegative a) Source #

Since: 1.0.0

Instance details

Methods

pretty :: NonNegative a -> Doc ann

prettyList :: [NonNegative a] -> Doc ann

Pretty a => Pretty (NonPositive a) Source #

Since: 1.0.0

Instance details

Methods

pretty :: NonPositive a -> Doc ann

prettyList :: [NonPositive a] -> Doc ann

Pretty a => Pretty (NonZero a) Source #

Since: 1.0.0

Instance details

Methods

pretty :: NonZero a -> Doc ann

prettyList :: [NonZero a] -> Doc ann

Pretty a => Pretty (Positive a) Source #

Since: 1.0.0

Instance details

Methods

pretty :: Positive a -> Doc ann

prettyList :: [Positive a] -> Doc ann