2024-10-01 21:00:27 +02:00

44 lines
1.1 KiB
Haskell

-- | Generate test cases for Nim
module TestGen.TestMerkle where
--------------------------------------------------------------------------------
import Data.Array
import Data.List
import Data.Word
import System.IO
import Merkle
import Goldilocks
import Common
import TestGen.Shared
--------------------------------------------------------------------------------
intToDigest :: Integer -> Digest
intToDigest k = MkDigest (fromInteger k) 0 0 0
merkleDigest :: Integer -> Digest
merkleDigest max = merkleRoot $ map intToDigest [1..max]
--------------------------------------------------------------------------------
printTests :: IO ()
printTests = hPrintTests stdout
hPrintTests :: Handle -> IO ()
hPrintTests h = hPutStrLn h $ unlines $
[ digests "testcases_merkleroot" (merkleDigest) [1..175] ]
writeTests :: IO ()
writeTests = withFile "merkleTestCases.nim" WriteMode $ \h -> do
hPutStrLn h "# generated by TestGen/TestMerkle.hs\n"
hPutStrLn h "import goldilocks_hash/types\n"
hPrintTests h
--------------------------------------------------------------------------------