@@ -325,32 +325,14 @@ prop_decode_only_double_wrapped_plutus_script_bytes_CBOR = H.property $ do
325325 alwaysSucceedsDoubleEncoded
326326 Ledger. SPlutusV3
327327
328- prop_decode_only_wrapped_plutus_script_V1_CBOR :: Property
329- prop_decode_only_wrapped_plutus_script_V1_CBOR = H. property $ do
330- PlutusScriptSerialised shortBs <- H. forAll $ genPlutusScript PlutusScriptV1
331- H. decodeOnlyPlutusScriptBytes
332- ShelleyBasedEraConway
333- PlutusScriptV1
334- (SBS. fromShort shortBs)
335- (AsScript AsPlutusScriptV1 )
336-
337- H. assertValidPlutusScriptBytesExperimental
338- Exp. ConwayEra
339- (SBS. fromShort shortBs)
340- Ledger. SPlutusV1
341-
342- prop_decode_only_wrapped_plutus_script_V2_CBOR :: Property
343- prop_decode_only_wrapped_plutus_script_V2_CBOR = H. property $ do
344- PlutusScriptSerialised shortBs <- H. forAll $ genPlutusScript PlutusScriptV2
345- H. decodeOnlyPlutusScriptBytes
346- ShelleyBasedEraConway
347- PlutusScriptV2
348- (SBS. fromShort shortBs)
349- (AsScript AsPlutusScriptV2 )
350- H. assertValidPlutusScriptBytesExperimental
351- Exp. ConwayEra
352- (SBS. fromShort shortBs)
353- Ledger. SPlutusV2
328+ mkPlutusScriptCBORTest :: Exp. Some Exp. Era -> AnyPlutusScriptVersion -> Property
329+ mkPlutusScriptCBORTest (Exp. Some era) (AnyPlutusScriptVersion version) = Exp. obtainCommonConstraints era $ H. property $ do
330+ PlutusScriptSerialised shortBs <- H. forAll $ genPlutusScript version
331+ let scriptBytes = SBS. fromShort shortBs
332+ let sLang = Exp. toPlutusSLanguage version
333+ Exp. obtainLangConstraints sLang $ do
334+ H. decodeOnlyPlutusScriptBytes (convert era) version scriptBytes (AsScript asType)
335+ H. assertValidPlutusScriptBytesExperimental era scriptBytes sLang
354336
355337prop_decode_only_wrapped_plutus_script_V2_ByteStringToInteger_CBOR :: Property
356338prop_decode_only_wrapped_plutus_script_V2_ByteStringToInteger_CBOR = H. property $ do
@@ -365,20 +347,6 @@ prop_decode_only_wrapped_plutus_script_V2_ByteStringToInteger_CBOR = H.property
365347 v2Special
366348 Ledger. SPlutusV2
367349
368- prop_decode_only_wrapped_plutus_script_V3_CBOR :: Property
369- prop_decode_only_wrapped_plutus_script_V3_CBOR = H. property $ do
370- PlutusScriptSerialised shortBs <- H. forAll $ genPlutusScript PlutusScriptV3
371- H. decodeOnlyPlutusScriptBytes
372- ShelleyBasedEraConway
373- PlutusScriptV3
374- (SBS. fromShort shortBs)
375- (AsScript AsPlutusScriptV3 )
376-
377- H. assertValidPlutusScriptBytesExperimental
378- Exp. ConwayEra
379- (SBS. fromShort shortBs)
380- Ledger. SPlutusV3
381-
382350prop_double_encoded_sanity_check :: Property
383351prop_double_encoded_sanity_check = H. propertyOnce $ do
384352 let fixed = removePlutusScriptDoubleEncoding exampleDoubleEncodedBytes
@@ -560,8 +528,7 @@ prop_canonicalise_cbor = property $ do
560528
561529tests :: TestTree
562530tests =
563- testGroup
564- " Test.Cardano.Api.Typed.CBOR"
531+ testGroup " Test.Cardano.Api.Typed.CBOR" $
565532 [ testGroup
566533 " canonicalise CBOR"
567534 [ testProperty " unit canonicalise map" unit_canonicalise_map
@@ -640,36 +607,38 @@ tests =
640607 , testProperty
641608 " decode only double wrapped plutus script bytes CBOR"
642609 prop_decode_only_double_wrapped_plutus_script_bytes_CBOR
643- , testProperty
644- " decode only wrapped plutus script V1 CBOR"
645- prop_decode_only_wrapped_plutus_script_V1_CBOR
646- , testProperty
647- " decode only wrapped plutus script V2 CBOR"
648- prop_decode_only_wrapped_plutus_script_V2_CBOR
649- , testProperty
650- " decode only wrapped plutus script V2 special CBOR"
651- prop_decode_only_wrapped_plutus_script_V2_ByteStringToInteger_CBOR
652- , testProperty
653- " decode only wrapped plutus script V3 CBOR"
654- prop_decode_only_wrapped_plutus_script_V3_CBOR
655- , testProperty
656- " double encoded sanity check"
657- prop_double_encoded_sanity_check
658- , testProperty
659- " cddlTypeToEra for Tx types"
660- prop_Tx_cddlTypeToEra
661- , testProperty
662- " cddlTypeToEra for TxWitness types"
663- prop_TxWitness_cddlTypeToEra
664- , testProperty " roundtrip ScriptData CBOR" prop_roundtrip_ScriptData_CBOR
665- , testProperty " roundtrip UpdateProposal CBOR" prop_roundtrip_UpdateProposal_CBOR
666- , testProperty " roundtrip TxWitness Cddl" prop_roundtrip_TxWitness_Cddl
667- , testProperty " roundtrip tx CBOR" prop_roundtrip_tx_CBOR
668- , testProperty " roundtrip tx out CBOR" prop_roundtrip_tx_out_CBOR
669- , testProperty
670- " roundtrip GovernancePoll CBOR"
671- prop_roundtrip_GovernancePoll_CBOR
672- , testProperty
673- " roundtrip GovernancePollAnswer CBOR"
674- prop_roundtrip_GovernancePollAnswer_CBOR
675610 ]
611+ <> [ testProperty
612+ (" decode only wrapped plutus script " <> show (pretty version) <> " CBOR" )
613+ (mkPlutusScriptCBORTest someEra version)
614+ | (someEra, version) <-
615+ [ (Exp. Some Exp. ConwayEra , AnyPlutusScriptVersion PlutusScriptV1 )
616+ , (Exp. Some Exp. ConwayEra , AnyPlutusScriptVersion PlutusScriptV2 )
617+ , (Exp. Some Exp. ConwayEra , AnyPlutusScriptVersion PlutusScriptV3 )
618+ , (Exp. Some Exp. DijkstraEra , AnyPlutusScriptVersion PlutusScriptV4 )
619+ ]
620+ ]
621+ <> [ testProperty
622+ " decode only wrapped plutus script V2 special CBOR"
623+ prop_decode_only_wrapped_plutus_script_V2_ByteStringToInteger_CBOR
624+ , testProperty
625+ " double encoded sanity check"
626+ prop_double_encoded_sanity_check
627+ , testProperty
628+ " cddlTypeToEra for Tx types"
629+ prop_Tx_cddlTypeToEra
630+ , testProperty
631+ " cddlTypeToEra for TxWitness types"
632+ prop_TxWitness_cddlTypeToEra
633+ , testProperty " roundtrip ScriptData CBOR" prop_roundtrip_ScriptData_CBOR
634+ , testProperty " roundtrip UpdateProposal CBOR" prop_roundtrip_UpdateProposal_CBOR
635+ , testProperty " roundtrip TxWitness Cddl" prop_roundtrip_TxWitness_Cddl
636+ , testProperty " roundtrip tx CBOR" prop_roundtrip_tx_CBOR
637+ , testProperty " roundtrip tx out CBOR" prop_roundtrip_tx_out_CBOR
638+ , testProperty
639+ " roundtrip GovernancePoll CBOR"
640+ prop_roundtrip_GovernancePoll_CBOR
641+ , testProperty
642+ " roundtrip GovernancePollAnswer CBOR"
643+ prop_roundtrip_GovernancePollAnswer_CBOR
644+ ]
0 commit comments