packages feed

bitcoin-hs-0.0.1: Bitcoin/TestSuite.hs

-- | Test-suite using Tasty.

module Main where

--------------------------------------------------------------------------------

import Test.Tasty
import Test.Tasty.QuickCheck
  
import Bitcoin.Test.Crypto.Word256              ( testgroup_Word256      )
import Bitcoin.Test.Crypto.FiniteField.NaiveFp  ( testgroup_NaiveFp      )
import Bitcoin.Test.Crypto.FiniteField.FastFp   ( testgroup_FastFp       )
import Bitcoin.Test.Crypto.Curve                ( testgroup_Curve        )
import Bitcoin.Test.Crypto.Projective           ( testgroup_Projective   )
import Bitcoin.Test.Crypto.Key                  ( testgroup_Key          )
import Bitcoin.Test.Crypto.RFC6979              ( testgroup_RFC6979      )

import Bitcoin.Test.Protocol.Hash               ( testgroup_ProtocolHash )
import Bitcoin.Test.Script.RunTests             ( testgroup_Script       )
import Bitcoin.Test.TxCheck                     ( testgroup_TxCheck      )

--------------------------------------------------------------------------------

main :: IO ()
main = defaultMain tests

setN :: Int -> TestTree -> TestTree
setN n = localOption (QuickCheckTests n)

tests :: TestTree
tests 
  = setN 1000
  $ testGroup "all tests"
      [ testGroup "crypto" 
          [ testgroup_Word256
          , testgroup_NaiveFp
          , testgroup_FastFp
          , setN 250 testgroup_Curve
          , setN 250 testgroup_Projective
          , testgroup_Key
          , testgroup_RFC6979
          ]
      , testGroup "protocol" 
          [ testgroup_ProtocolHash
          ]
      , testgroup_Script
      , testgroup_TxCheck 
      ]

--------------------------------------------------------------------------------