Skip to content

Commit d6b978e

Browse files
committed
wip
1 parent 22ed9b9 commit d6b978e

File tree

9 files changed

+263
-67
lines changed

9 files changed

+263
-67
lines changed

plutus-benchmark/bitwise/test/Main.hs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import PlutusBenchmark.NQueens.Compiled (dimAsData, nqueensCompiled)
1313
import PlutusBenchmark.SHA512 (sha512)
1414
import PlutusTx.Builtins (fromBuiltin, toBuiltin)
1515
import PlutusTx.Code (unsafeApplyCode)
16-
import PlutusTx.Test (goldenBundle')
16+
import PlutusTx.Test (goldenBudget, goldenEvalCekCatch, goldenPirReadable)
1717
import Test.Tasty (TestTree, defaultMain, testGroup)
1818
import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc)
1919
import Test.Tasty.HUnit (assertEqual, testCase)
@@ -24,14 +24,26 @@ main = defaultMain . testGroup "bitwise" $ [
2424
testCase "solves for 8 queens" $ assertEqual ""
2525
[(0,0), (1,4), (2,7), (3,5), (4,2), (5,6), (6,1), (7,3)]
2626
(nqueens 8),
27-
runTestGhc [goldenBundle' "8 queens" $ nqueensCompiled `unsafeApplyCode` dimAsData]
27+
runTestGhc [
28+
goldenPirReadable "8 queens" $ nqueensCompiled `unsafeApplyCode` dimAsData,
29+
goldenBudget "8 queens" $ nqueensCompiled `unsafeApplyCode` dimAsData,
30+
goldenEvalCekCatch "8 queens" [nqueensCompiled `unsafeApplyCode` dimAsData]
31+
]
2832
],
2933
testGroup "Ed25519" [
3034
testCase "SHA512 works" sha512Case,
3135
testCase "Ed25519 works" ed25519Case,
32-
runTestGhc [goldenBundle' "Ed25519" $ checkValidCompiled `unsafeApplyCode` signatureAsData `unsafeApplyCode` msgAsData `unsafeApplyCode` pkAsData]
36+
runTestGhc [
37+
goldenPirReadable "Ed25519" $
38+
checkValidCompiled `unsafeApplyCode` signatureAsData `unsafeApplyCode` msgAsData `unsafeApplyCode` pkAsData,
39+
goldenBudget "Ed25519" $
40+
checkValidCompiled `unsafeApplyCode` signatureAsData `unsafeApplyCode` msgAsData `unsafeApplyCode` pkAsData,
41+
goldenEvalCekCatch "Ed25519" [
42+
checkValidCompiled `unsafeApplyCode` signatureAsData `unsafeApplyCode` msgAsData `unsafeApplyCode` pkAsData
43+
]
3344
]
3445
]
46+
]
3547

3648
-- Cases
3749

plutus-benchmark/nofib/test/Spec.hs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ testClausify = testGroup "clausify"
4747
, testCase "formula3" $ mkClausifyTest Clausify.F3
4848
, testCase "formula4" $ mkClausifyTest Clausify.F4
4949
, testCase "formula5" $ mkClausifyTest Clausify.F5
50-
, runTestGhc [Tx.goldenBundle' "clausify-F5" formula5example]
50+
, runTestGhc
51+
[ Tx.goldenPirReadable "clausify-F5" formula5example
52+
, Tx.goldenBudget "clausify-F5" formula5example
53+
, Tx.goldenEvalCekCatch "clausify-F5" [formula5example]
54+
]
5155
]
5256
where formula5example = Clausify.mkClausifyCode Clausify.F5
5357

@@ -65,7 +69,11 @@ testKnights = testGroup "knights" -- Odd sizes call "error" because there are n
6569
, testCase "depth 100, 4x4" $ mkKnightsTest 100 4
6670
, testCase "depth 100, 6x6" $ mkKnightsTest 100 6
6771
, testCase "depth 100, 8x8" $ mkKnightsTest 100 8
68-
, runTestGhc [Tx.goldenBundle' "knights10-4x4" knightsExample]
72+
, runTestGhc
73+
[ Tx.goldenPirReadable "knights10-4x4" knightsExample
74+
, Tx.goldenBudget "knights10-4x4" knightsExample
75+
, Tx.goldenEvalCekCatch "knights10-4x4" [knightsExample]
76+
]
6977
]
7078
where knightsExample = Knights.mkKnightsCode 10 4
7179

@@ -83,15 +91,23 @@ testQueens = testGroup "queens"
8391
, testCase "Bjbt1" $ mkQueensTest 4 Queens.Bjbt1
8492
, testCase "Bjbt2" $ mkQueensTest 4 Queens.Bjbt2
8593
, testCase "Fc" $ mkQueensTest 4 Queens.Fc
86-
, runTestGhc [Tx.goldenBundle' "queens4-bt" queens4btExample]
94+
, runTestGhc
95+
[ Tx.goldenPirReadable "queens4-bt" queens4btExample
96+
, Tx.goldenBudget "queens4-bt" queens4btExample
97+
, Tx.goldenEvalCekCatch "queens4-bt" [queens4btExample]
98+
]
8799
]
88100
, testGroup "5x5"
89101
[ testCase "Bt" $ mkQueensTest 5 Queens.Bt
90102
, testCase "Bm" $ mkQueensTest 5 Queens.Bm
91103
, testCase "Bjbt1" $ mkQueensTest 5 Queens.Bjbt1
92104
, testCase "Bjbt2" $ mkQueensTest 5 Queens.Bjbt2
93105
, testCase "Fc" $ mkQueensTest 5 Queens.Fc
94-
, runTestGhc [Tx.goldenBundle' "queens5-fc" queens5fcExample]
106+
, runTestGhc
107+
[ Tx.goldenPirReadable "queens5-fc" queens5fcExample
108+
, Tx.goldenBudget "queens5-fc" queens5fcExample
109+
, Tx.goldenEvalCekCatch "queens5-fc" [queens5fcExample]
110+
]
95111
]
96112
]
97113
where queens4btExample = Queens.mkQueensCode 4 Queens.Bt
@@ -154,4 +170,3 @@ allTests =
154170

155171
main :: IO ()
156172
main = defaultMain allTests
157-

plutus-benchmark/script-contexts/test/V2/Spec.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ testCheckSOPSc1 = testGroup "checkScriptContext1"
5151
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 4)
5252
, testCase "fails on 5" . assertFailed $
5353
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 5)
54-
, runTestGhcSOP [ Tx.goldenBudget "checkScriptContext1" $
54+
, runTestGhcSOP [ Tx.goldenSize "checkScriptContext1" $
5555
SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 1)
5656
, Tx.goldenPirReadable "checkScriptContext1" $
5757
SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 1)
@@ -72,7 +72,7 @@ testCheckDataSc1 = testGroup "checkScriptContext1"
7272
compiledCodeToTerm $ Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 4)
7373
, testCase "fails on 5" . assertFailed $
7474
compiledCodeToTerm $ Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 5)
75-
, runTestGhcData [ Tx.goldenBudget "checkScriptContext1" $
75+
, runTestGhcData [ Tx.goldenSize "checkScriptContext1" $
7676
Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 1)
7777
, Tx.goldenPirReadable "checkScriptContext1" $
7878
Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 1)
@@ -93,7 +93,7 @@ testCheckSOPSc2 = testGroup "checkScriptContext2"
9393
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 4)
9494
, testCase "succeed on 5" . assertSucceeded $
9595
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 5)
96-
, runTestGhcSOP [ Tx.goldenBudget "checkScriptContext2" $
96+
, runTestGhcSOP [ Tx.goldenSize "checkScriptContext2" $
9797
SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 1)
9898
, Tx.goldenPirReadable "checkScriptContext2" $
9999
SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 1)
@@ -114,7 +114,7 @@ testCheckDataSc2 = testGroup "checkScriptContext2"
114114
compiledCodeToTerm $ Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 4)
115115
, testCase "succeed on 5" . assertSucceeded $
116116
compiledCodeToTerm $ Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 5)
117-
, runTestGhcData [ Tx.goldenBudget "checkScriptContext2" $
117+
, runTestGhcData [ Tx.goldenSize "checkScriptContext2" $
118118
Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 1)
119119
, Tx.goldenPirReadable "checkScriptContext2" $
120120
Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 1)

plutus-benchmark/script-contexts/test/V3/Spec.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ testCheckSOPSc1 = testGroup "checkScriptContext1"
4747
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 4)
4848
, testCase "fails on 5" . assertFailed $
4949
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 5)
50-
, runTestGhcSOP [ Tx.goldenBudget "checkScriptContext1" $
50+
, runTestGhcSOP [ Tx.goldenSize "checkScriptContext1" $
5151
SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 1)
5252
, Tx.goldenPirReadable "checkScriptContext1" $
5353
SOP.SC.mkCheckScriptContext1Code (SOP.SC.mkScriptContext 1)
@@ -68,7 +68,7 @@ testCheckDataSc1 = testGroup "checkScriptContext1"
6868
compiledCodeToTerm $ Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 4)
6969
, testCase "fails on 5" . assertFailed $
7070
compiledCodeToTerm $ Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 5)
71-
, runTestGhcData [ Tx.goldenBudget "checkScriptContext1" $
71+
, runTestGhcData [ Tx.goldenSize "checkScriptContext1" $
7272
Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 1)
7373
, Tx.goldenPirReadable "checkScriptContext1" $
7474
Data.SC.mkCheckScriptContext1Code (Data.SC.mkScriptContext 1)
@@ -89,7 +89,7 @@ testCheckSOPSc2 = testGroup "checkScriptContext2"
8989
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 4)
9090
, testCase "succeed on 5" . assertSucceeded $
9191
compiledCodeToTerm $ SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 5)
92-
, runTestGhcSOP [ Tx.goldenBudget "checkScriptContext2" $
92+
, runTestGhcSOP [ Tx.goldenSize "checkScriptContext2" $
9393
SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 1)
9494
, Tx.goldenPirReadable "checkScriptContext2" $
9595
SOP.SC.mkCheckScriptContext2Code (SOP.SC.mkScriptContext 1)
@@ -110,7 +110,7 @@ testCheckDataSc2 = testGroup "checkScriptContext2"
110110
compiledCodeToTerm $ Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 4)
111111
, testCase "succeed on 5" . assertSucceeded $
112112
compiledCodeToTerm $ Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 5)
113-
, runTestGhcData [ Tx.goldenBudget "checkScriptContext2" $
113+
, runTestGhcData [ Tx.goldenSize "checkScriptContext2" $
114114
Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 1)
115115
, Tx.goldenPirReadable "checkScriptContext2" $
116116
Data.SC.mkCheckScriptContext2Code (Data.SC.mkScriptContext 1)
@@ -155,7 +155,7 @@ testPurposeIsWellFormed :: TestTree
155155
testPurposeIsWellFormed = testGroup "purposeIsWellFormed"
156156
[ runTestGhcData [ Tx.goldenPirReadable "purposeIsWellFormed" $
157157
Data.SC.compiledPurposeIsWellFormed
158-
, Tx.goldenBudget "purposeIsWellFormed" $
158+
, Tx.goldenSize "purposeIsWellFormed" $
159159
Data.SC.compiledPurposeIsWellFormed
160160
, Tx.goldenBudget "purposeIsWellFormed-4" $
161161
Data.SC.mkPurposeIsWellFormedCode (Data.SC.mkMintingScriptContext 4)

plutus-ledger-api/test-plugin/Spec/Budget.hs

Lines changed: 80 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
module Spec.Budget where
1515

16-
import Test.Tasty (TestTree)
16+
import Test.Tasty (TestName, TestTree)
1717
import Test.Tasty.Extras
1818

1919
import Data.Bifunctor
@@ -31,24 +31,14 @@ tests =
3131
runTestNested ["test-plugin", "Spec", "Budget"] . pure . testNestedGhc $
3232
[ goldenPirReadable "gt" compiledGt
3333
, goldenPirReadable "currencySymbolValueOf" compiledCurrencySymbolValueOf
34-
, goldenBundleBinOpApply "gt1" compiledGt value1 value1
35-
, goldenBundleBinOpApply "gt2" compiledGt value1 value2
36-
, goldenBundleBinOpApply "gt3" compiledGt value2 value1
37-
, goldenBundleBinOpApply "gt4" compiledGt value1 value3
38-
, goldenBundleBinOpApply "gt5" compiledGt value3 value1
39-
, goldenBundleBinOpApply "geq1" compiledGeq value1 value1
40-
, goldenBundleBinOpApply "geq2" compiledGeq value1 value2
41-
, goldenBundleBinOpApply "geq3" compiledGeq value2 value1
42-
, goldenBundleBinOpApply "geq4" compiledGeq value1 value3
43-
, goldenBundleBinOpApply "geq5" compiledGeq value3 value1
44-
, goldenBundleBinOpApply "currencySymbolValueOf"
45-
compiledCurrencySymbolValueOf value2 (toSymbol 6)
4634
]
47-
where
48-
goldenBundleBinOpApply name f x y =
49-
goldenBundle name f
50-
(f `unsafeApplyCode` liftCodeDef x `unsafeApplyCode` liftCodeDef y)
51-
35+
++ concatMap
36+
( \(TestCase name code) ->
37+
[ goldenBudget name code
38+
, goldenEvalCekCatch name [code]
39+
]
40+
)
41+
testCases
5242

5343
compiledGt :: CompiledCode (Value -> Value -> Bool)
5444
compiledGt = $$(compile [||gt||])
@@ -101,3 +91,75 @@ value3 =
10191
, (4, [(400, 401), (402, 403), (404, 405), (406, 407)])
10292
, (5, [(500, 501), (502, 503), (504, 505), (506, 507), (508, 509)])
10393
]
94+
95+
data TestCase = forall a. TestCase TestName (CompiledCode a)
96+
97+
testCases :: [TestCase]
98+
testCases =
99+
[ TestCase
100+
"gt1"
101+
( compiledGt
102+
`unsafeApplyCode` liftCodeDef value1
103+
`unsafeApplyCode` liftCodeDef value1
104+
)
105+
, TestCase
106+
"gt2"
107+
( compiledGt
108+
`unsafeApplyCode` liftCodeDef value1
109+
`unsafeApplyCode` liftCodeDef value2
110+
)
111+
, TestCase
112+
"gt3"
113+
( compiledGt
114+
`unsafeApplyCode` liftCodeDef value2
115+
`unsafeApplyCode` liftCodeDef value1
116+
)
117+
, TestCase
118+
"gt4"
119+
( compiledGt
120+
`unsafeApplyCode` liftCodeDef value1
121+
`unsafeApplyCode` liftCodeDef value3
122+
)
123+
, TestCase
124+
"gt5"
125+
( compiledGt
126+
`unsafeApplyCode` liftCodeDef value3
127+
`unsafeApplyCode` liftCodeDef value1
128+
)
129+
, TestCase
130+
"geq1"
131+
( compiledGeq
132+
`unsafeApplyCode` liftCodeDef value1
133+
`unsafeApplyCode` liftCodeDef value1
134+
)
135+
, TestCase
136+
"geq2"
137+
( compiledGeq
138+
`unsafeApplyCode` liftCodeDef value1
139+
`unsafeApplyCode` liftCodeDef value2
140+
)
141+
, TestCase
142+
"geq3"
143+
( compiledGeq
144+
`unsafeApplyCode` liftCodeDef value2
145+
`unsafeApplyCode` liftCodeDef value1
146+
)
147+
, TestCase
148+
"geq4"
149+
( compiledGeq
150+
`unsafeApplyCode` liftCodeDef value1
151+
`unsafeApplyCode` liftCodeDef value3
152+
)
153+
, TestCase
154+
"geq5"
155+
( compiledGeq
156+
`unsafeApplyCode` liftCodeDef value3
157+
`unsafeApplyCode` liftCodeDef value1
158+
)
159+
, TestCase
160+
"currencySymbolValueOf"
161+
( compiledCurrencySymbolValueOf
162+
`unsafeApplyCode` liftCodeDef value2
163+
`unsafeApplyCode` liftCodeDef (toSymbol 6)
164+
)
165+
]

0 commit comments

Comments
 (0)