packages feed

numeric-prelude-0.3: test/Test/Algebra/Additive.hs

{-# LANGUAGE NoImplicitPrelude #-}
module Test.Algebra.Additive where

import qualified Algebra.Additive as A

import Test.NumericPrelude.Utility (testUnit, )
import Test.QuickCheck (Testable, quickCheck, )
import qualified Test.HUnit as HUnit

import NumericPrelude.Base as P
import NumericPrelude.Numeric as NP


test ::
   (Testable t) =>
   ([Integer] -> t) -> IO ()
test = quickCheck


tests :: HUnit.Test
tests =
   HUnit.TestLabel "additive group" $
   HUnit.TestList $
   map testUnit $
   testList

testList :: [(String, IO ())]
testList =
   ("sum1", test $ \ns n ->
      A.sum (n:ns) == A.sum1 (n:ns)) :
   ("sumNestedAssociative", test $ \ns ->
      A.sum ns == A.sumNestedAssociative ns) :
   ("sumNestedCommutative", test $ \ns ->
      A.sum ns == A.sumNestedCommutative ns) :
   []