39 lines
962 B
Haskell
39 lines
962 B
Haskell
module Property.Utils (props) where
|
|
|
|
import Agora.Utils (phashDatum)
|
|
import Cardano.Prelude (ByteString)
|
|
import Plutarch.Api.V2 (datumHash)
|
|
import Plutarch.Test.QuickCheck (
|
|
Equality (OnPEq),
|
|
Partiality (ByComplete),
|
|
haskEquiv',
|
|
)
|
|
import Plutarch.Test.QuickCheck.Instances ()
|
|
import PlutusCore.Data (Data (B))
|
|
import PlutusLedgerApi.V1 (Datum (Datum))
|
|
import PlutusLedgerApi.V2 (BuiltinData (BuiltinData), DatumHash)
|
|
import Test.Tasty (TestTree, adjustOption)
|
|
import Test.Tasty.QuickCheck (
|
|
Property,
|
|
QuickCheckTests,
|
|
testProperty,
|
|
)
|
|
|
|
propHashDatumCorrect :: Property
|
|
propHashDatumCorrect =
|
|
haskEquiv'
|
|
@'OnPEq
|
|
@'ByComplete
|
|
hashDatum
|
|
phashDatum
|
|
where
|
|
hashDatum :: ByteString -> DatumHash
|
|
hashDatum = datumHash . Datum . BuiltinData . B
|
|
|
|
props :: [TestTree]
|
|
props =
|
|
[ adjustOption go $ testProperty "Correct 'phashDatum'" propHashDatumCorrect
|
|
]
|
|
where
|
|
go :: QuickCheckTests -> QuickCheckTests
|
|
go = max 20_000
|