Skip to content

Commit e7bc91d

Browse files
committed
refactor: extract code to display execution budget
1 parent 203975e commit e7bc91d

File tree

3 files changed

+51
-50
lines changed

3 files changed

+51
-50
lines changed

doc/docusaurus/docs/using-plinth/evaluating-plinth.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import PlutusTx.Test (
4646
EvalResult,
4747
applyLifted,
4848
evaluateCompiledCode,
49-
prettyEvalResult
49+
displayEvalResult
5050
)
5151
```
5252

@@ -129,7 +129,7 @@ EvalResult
129129
```
130130

131131
The output is quite verbose and not very readable.
132-
To make it more readable, we can use the `prettyEvalResult` function,
132+
To make it more readable, we can use the `displayEvalResult` function,
133133
which formats the output in a prettier way:
134134

135135
```

doc/docusaurus/static/code/Example/Evaluation/Main.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import Data.Text.IO qualified as Text
1616
import PlutusTx (CompiledCode, applyCode, compile, liftCodeDef, unsafeApplyCode)
1717
import Prelude (IO, String)
1818

19-
import PlutusTx.Test (EvalResult, evaluateCompiledCode, prettyEvalResult)
19+
import PlutusTx.Test (EvalResult, displayEvalResult, evaluateCompiledCode)
2020

2121
-- BEGIN Plinth
2222

@@ -88,6 +88,6 @@ result = evaluateCompiledCode appliedUnsafely
8888
-- BEGIN main
8989

9090
main :: IO ()
91-
main = Text.putStrLn $ prettyEvalResult result
91+
main = Text.putStrLn $ displayEvalResult result
9292

9393
-- END main

plutus-tx/testlib/PlutusTx/Test/Run/Code.hs

Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -41,54 +41,55 @@ data EvalResult = EvalResult
4141
deriving stock (Show)
4242

4343
instance Pretty EvalResult where
44-
pretty
45-
EvalResult
46-
{ evalResultBudget =
47-
ExBudget
48-
{ exBudgetCPU = ExCPU cpu
49-
, exBudgetMemory = ExMemory mem
50-
}
51-
, ..
52-
} =
53-
vsep
54-
[ case evalResult of
55-
Left err ->
56-
vsep
57-
[ "Evaluation FAILED:"
58-
, indent 2 $ prettyPlcClassicSimple err
59-
]
60-
Right term ->
61-
vsep
62-
[ "Evaluation was SUCCESSFUL, result is:"
63-
, indent 2 $ prettyPlcReadableSimple term
64-
]
65-
, mempty
66-
, "Execution budget spent:"
67-
, indent 2 $
44+
pretty EvalResult{..} =
45+
vsep
46+
[ case evalResult of
47+
Left err ->
6848
vsep
69-
[ "CPU" <+> pretty (format commas (unSatInt cpu))
70-
, "MEM" <+> pretty (format commas (unSatInt mem))
49+
[ "Evaluation FAILED:"
50+
, indent 2 $ prettyPlcClassicSimple err
7151
]
72-
, mempty
73-
, if null evalResultTraces
74-
then "No traces were emitted"
75-
else
76-
vsep
77-
[ "Evaluation"
78-
<+> plural "trace" "traces" (length evalResultTraces)
79-
<> ":"
80-
, indent 2 $
81-
vsep $
82-
zipWith
83-
(\idx trace -> pretty idx <> dot <+> pretty trace)
84-
[1 :: Int ..]
85-
evalResultTraces
86-
]
87-
, mempty
88-
]
89-
90-
prettyEvalResult :: EvalResult -> Text
91-
prettyEvalResult = display
52+
Right term ->
53+
vsep
54+
[ "Evaluation was SUCCESSFUL, result is:"
55+
, indent 2 $ prettyPlcReadableSimple term
56+
]
57+
, mempty
58+
, vsep
59+
[ "Execution budget spent:"
60+
, indent 2 $ prettyExBudget evalResultBudget
61+
]
62+
, mempty
63+
, if null evalResultTraces
64+
then "No traces were emitted"
65+
else
66+
vsep
67+
[ "Evaluation"
68+
<+> plural "trace" "traces" (length evalResultTraces)
69+
<> ":"
70+
, indent 2 $
71+
vsep $
72+
zipWith
73+
(\idx trace -> pretty idx <> dot <+> pretty trace)
74+
[1 :: Int ..]
75+
evalResultTraces
76+
]
77+
, mempty
78+
]
79+
80+
displayEvalResult :: EvalResult -> Text
81+
displayEvalResult = display
82+
83+
displayExBudget :: ExBudget -> Text
84+
displayExBudget = render . prettyExBudget
85+
86+
prettyExBudget :: ExBudget -> Doc ann
87+
prettyExBudget
88+
ExBudget{exBudgetCPU = ExCPU cpu, exBudgetMemory = ExMemory mem} =
89+
vsep
90+
[ "CPU" <+> pretty (format commas (unSatInt cpu))
91+
, "MEM" <+> pretty (format commas (unSatInt mem))
92+
]
9293

9394
evaluateCompiledCode :: CompiledCode a -> EvalResult
9495
evaluateCompiledCode code = EvalResult{..}

0 commit comments

Comments
 (0)