@@ -16,6 +16,7 @@ import Cardano.Ledger.Shelley.LedgerState (availableAfterMIR)
16
16
import Cardano.Ledger.Shelley.TxCert (MIRPot (.. ))
17
17
import Control.Monad (when )
18
18
import Data.Default (Default (def ))
19
+ import Data.TreeDiff (toExpr )
19
20
import Lens.Micro
20
21
import Test.Cardano.Ledger.Constrained.Ast
21
22
import Test.Cardano.Ledger.Constrained.Classes (OrdCond (.. ), unCertStateF )
@@ -31,8 +32,10 @@ import Test.Cardano.Ledger.Constrained.Solver
31
32
import Test.Cardano.Ledger.Constrained.TypeRep
32
33
import Test.Cardano.Ledger.Constrained.Utils (testIO )
33
34
import Test.Cardano.Ledger.Constrained.Vars
35
+ import Test.Cardano.Ledger.Conway.TreeDiff ()
34
36
import Test.Cardano.Ledger.Generic.Functions (protocolVersion )
35
37
import Test.Cardano.Ledger.Generic.Proof
38
+ import Test.Cardano.Ledger.TreeDiff ()
36
39
import Test.QuickCheck
37
40
import Test.Tasty (TestTree , defaultMain , testGroup )
38
41
@@ -91,13 +94,13 @@ vstateCheckPreds :: Proof era -> [Pred era]
91
94
vstateCheckPreds _p = []
92
95
93
96
vstateStage ::
94
- Reflect era =>
97
+ ( Reflect era , ToExprs era ) =>
95
98
Proof era ->
96
99
Subst era ->
97
100
Gen (Subst era )
98
101
vstateStage proof = toolChainSub proof standardOrderInfo (vstatePreds proof)
99
102
100
- demoV :: ReplMode -> IO ()
103
+ demoV :: ToExprs ConwayEra => ReplMode -> IO ()
101
104
demoV mode = do
102
105
let proof = Conway
103
106
env <-
@@ -109,13 +112,13 @@ demoV mode = do
109
112
>>= (\ subst -> monadTyped $ substToEnv subst emptyEnv)
110
113
)
111
114
vstate <- monadTyped $ runTarget env vstateT
112
- when (mode == Interactive ) $ putStrLn ( show (pcVState vstate))
115
+ when (mode == Interactive ) . print $ toExpr vstate
113
116
modeRepl mode proof env " "
114
117
115
- demoTestV :: TestTree
118
+ demoTestV :: ToExprs ConwayEra => TestTree
116
119
demoTestV = testIO " Testing VState Stage" (demoV CI )
117
120
118
- mainV :: IO ()
121
+ mainV :: ToExprs ConwayEra => IO ()
119
122
mainV = defaultMain $ testIO " Testing VState Stage" (demoV Interactive )
120
123
121
124
-- ==========================================
@@ -162,13 +165,13 @@ pstateCheckPreds _ =
162
165
]
163
166
164
167
pstateStage ::
165
- Reflect era =>
168
+ ( Reflect era , ToExprs era ) =>
166
169
Proof era ->
167
170
Subst era ->
168
171
Gen (Subst era )
169
172
pstateStage proof = toolChainSub proof standardOrderInfo (pstatePreds proof)
170
173
171
- demoP :: ReplMode -> IO ()
174
+ demoP :: ToExprs BabbageEra => ReplMode -> IO ()
172
175
demoP mode = do
173
176
let proof = Babbage
174
177
env <-
@@ -179,14 +182,13 @@ demoP mode = do
179
182
>>= (\ subst -> monadTyped $ substToEnv subst emptyEnv)
180
183
)
181
184
pstate <- monadTyped $ runTarget env pstateT
182
- when (mode == Interactive ) $ do
183
- putStrLn (show (pcPState pstate))
185
+ when (mode == Interactive ) . print $ toExpr pstate
184
186
modeRepl mode proof env " "
185
187
186
- demoTestP :: TestTree
188
+ demoTestP :: ToExprs BabbageEra => TestTree
187
189
demoTestP = testIO " Testing PState Stage" (demoP CI )
188
190
189
- mainP :: IO ()
191
+ mainP :: ToExprs BabbageEra => IO ()
190
192
mainP = defaultMain $ testIO " Testing PState Stage" (demoP Interactive )
191
193
192
194
-- =================================================
@@ -303,13 +305,13 @@ certStateCheckPreds p =
303
305
]
304
306
305
307
dstateStage ::
306
- Reflect era =>
308
+ ( Reflect era , ToExprs era ) =>
307
309
Proof era ->
308
310
Subst era ->
309
311
Gen (Subst era )
310
312
dstateStage proof = toolChainSub proof standardOrderInfo (certStatePreds proof)
311
313
312
- demoD :: ReplMode -> Int -> IO ()
314
+ demoD :: ToExprs BabbageEra => ReplMode -> Int -> IO ()
313
315
demoD mode seed = do
314
316
let proof = Babbage
315
317
env <-
@@ -321,18 +323,18 @@ demoD mode seed = do
321
323
>>= (\ subst -> monadTyped $ substToEnv subst emptyEnv)
322
324
)
323
325
dState <- monadTyped $ runTarget env dstateT
324
- when (mode == Interactive ) $ putStrLn ( show (pcDState dState))
326
+ when (mode == Interactive ) . print $ toExpr dState
325
327
modeRepl mode proof env " "
326
328
327
- demoTestD :: TestTree
329
+ demoTestD :: ToExprs BabbageEra => TestTree
328
330
demoTestD = testIO " Testing DState Stage" (demoD CI 99 )
329
331
330
- mainD :: Int -> IO ()
332
+ mainD :: ToExprs BabbageEra => Int -> IO ()
331
333
mainD seed = defaultMain $ testIO " Testing DState Stage" (demoD Interactive seed)
332
334
333
335
-- ===============================================
334
336
335
- demoC :: ReplMode -> IO ()
337
+ demoC :: ToExprs ConwayEra => ReplMode -> IO ()
336
338
demoC mode = do
337
339
let proof = Conway
338
340
env <-
@@ -346,16 +348,16 @@ demoC mode = do
346
348
>>= (\ subst -> monadTyped $ substToEnv subst emptyEnv)
347
349
)
348
350
certState <- monadTyped . runTarget env $ certStateT
349
- when (mode == Interactive ) $ putStrLn ( show (pcCertState ( unCertStateF certState)))
351
+ when (mode == Interactive ) . print . toExpr $ unCertStateF certState
350
352
modeRepl mode proof env " "
351
353
352
- demoTestC :: TestTree
354
+ demoTestC :: ToExprs ConwayEra => TestTree
353
355
demoTestC = testIO " Testing CertState Stage" (demoC CI )
354
356
355
- mainC :: IO ()
357
+ mainC :: ToExprs ConwayEra => IO ()
356
358
mainC = defaultMain $ testIO " Testing CertState Stage" (demoC Interactive )
357
359
358
- demoTest :: TestTree
360
+ demoTest :: ( ToExprs ConwayEra , ToExprs BabbageEra ) => TestTree
359
361
demoTest =
360
362
testGroup
361
363
" CertState tests"
0 commit comments