packages feed

hjugement-protocol-0.0.0.20190501: test/HUnit/Arithmetic.hs

{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE OverloadedStrings #-}
module HUnit.Arithmetic where

import Protocol.Arithmetic
import HUnit.Utils

hunit :: TestTree
hunit = testGroup "Arithmetic"
 [ testGroup "inv"
	 [ testGroup "WeakParams"
		 [ testCase "groupGen" $
			inv (groupGen @WeakParams) @?=
				groupGen ^ E (groupOrder @WeakParams + neg one)
		 ]
	 , testGroup "BeleniosParams"
		 [ testCase "groupGen" $
			inv (groupGen @BeleniosParams) @?=
				groupGen ^ E (groupOrder @BeleniosParams + neg one)
		 ]
	 ]
 , testGroup "hash"
	 [ testGroup "WeakParams"
		 [ testCase "[groupGen]" $
			hash "start" [groupGen @WeakParams] @?=
				fromNatural 100
		 , testCase "[groupGen, groupGen]" $
			hash "start" [groupGen @WeakParams, groupGen] @?=
				fromNatural 16
		 ]
	 , testGroup "BeleniosParams"
		 [ testCase "[groupGen]" $
			hash "start" [groupGen @BeleniosParams] @?=
				fromNatural 1832875488615060263192702367259
		 , testCase "[groupGen, groupGen]" $
			hash "start" [groupGen @BeleniosParams, groupGen] @?=
				fromNatural 2495277906542783643199702546512
		 ]
	 ]
 ]