Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
PlutusTx.Test.Golden
Synopsis
- goldenCodeGen ∷ Ppr a ⇒ TestName → Q a → ExpQ
- goldenPir ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested
- goldenPirReadable ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested
- goldenPirReadableU ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested
- goldenPirBy ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ PrettyConfigClassic PrettyConfigName → TestName → CompiledCodeIn uni fun a → TestNested
- goldenTPlc ∷ ToTPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenUPlc ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenUPlcReadable ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenBudget ∷ TestName → CompiledCode a → TestNested
- goldenSize ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenEvalCek ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenEvalCekCatch ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenEvalCekCatchBudget ∷ TestName → CompiledCode a → TestNested
- goldenEvalCekLog ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested
- goldenBundle ∷ TestName → CompiledCodeIn DefaultUni DefaultFun a → CompiledCodeIn DefaultUni DefaultFun b → TestNested
- goldenBundle' ∷ TestName → CompiledCodeIn DefaultUni DefaultFun a → TestNested
- prettyBudget ∷ ExBudget → Size → Integer → Doc ann
TH CodGen
Compilation testing
goldenPir ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested Source #
Does not print uniques.
goldenPirReadable ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested Source #
Does not print uniques.
goldenPirReadableU ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ TestName → CompiledCodeIn uni fun a → TestNested Source #
Prints uniques. This should be used sparingly: a simple change to a script or a compiler pass may change all uniques, making it difficult to see the actual change if all uniques are printed. It is nonetheless useful sometimes.
goldenPirBy ∷ (PrettyUni uni, Pretty fun, uni `Everywhere` Flat, Flat fun) ⇒ PrettyConfigClassic PrettyConfigName → TestName → CompiledCodeIn uni fun a → TestNested Source #
goldenTPlc ∷ ToTPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
goldenUPlc ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
goldenUPlcReadable ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
goldenBudget ∷ TestName → CompiledCode a → TestNested Source #
goldenSize ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
Golden evaluation testing
goldenEvalCek ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
goldenEvalCekCatch ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
goldenEvalCekLog ∷ ToUPlc a DefaultUni DefaultFun ⇒ TestName → a → TestNested Source #
Combined testing
goldenBundle ∷ TestName → CompiledCodeIn DefaultUni DefaultFun a → CompiledCodeIn DefaultUni DefaultFun b → TestNested Source #
Pretty-printing
prettyBudget ∷ ExBudget → Size → Integer → Doc ann Source #
This function formats budget and size information.
Given a UPLC program, there are two quantification of "size": Term size and Flat size. Term Size measures AST nodes of the given UPLC program. Flat Size measures the number of bytes when the given program serialized into bytestring using binary flat encoding format.
Cost of storing smart contract onchain is partially determined by the Flat size. So it is useful to have Flat size measurement in case we adopt new or introduce optimizations to the flat encoding format.