{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module HUnit.Election where import Prelude (Enum(..)) import qualified Control.Monad.Trans.State.Strict as S import qualified System.Random as Random import qualified Data.List as List import Protocol.Arith import Protocol.Credential import Protocol.Election import HUnit.Utils hunit :: TestTree hunit = testGroup "Election" [ testGroup "groupGenInverses" $ [ testCase "WeakParams" $ List.take 10 (groupGenInverses @WeakParams) @?= [groupGen^neg (inE i) | i <- [0..9]] , testCase "BeleniosParams" $ List.take 10 (groupGenInverses @BeleniosParams) @?= [groupGen^neg (inE i) | i <- [0..9]] ] ]