AERN-RnToRm-0.5: src/Data/Number/ER/RnToRm/UnitDom/Base/Tests/Properties/Integration.hs
{-|
Module : Data.Number.ER.RnToRm.UnitDom.Base.Tests.Properties.Integration
Description : (testing) properties of ring operations
Copyright : (c) 2007-2008 Michal Konecny
License : BSD3
Maintainer : mik@konecny.aow.cz
Stability : experimental
Portability : portable
Quickcheck properties for checking that polynomial intergration
is consistent with polynomial differentiation.
-}
module Data.Number.ER.RnToRm.UnitDom.Base.Tests.Properties.Integration
where
import Data.Number.ER.RnToRm.UnitDom.Base.Tests.Generate
import Data.Number.ER.RnToRm.UnitDom.Base.Tests.Properties.Common
import qualified Data.Number.ER.RnToRm.UnitDom.Base as UFB
import Data.Number.ER.BasicTypes.Tests.Generate
prop_fbIntegrateDiffUp_consistent sample reportFileName
(FBSize10 (n1,fb1), Nat10 varSelector) =
fbAtKeyPointsCanBeLeq
reportFileName (n1,var)
fb1 fb1ID
where
_ = [fb1,sample]
fb1ID = snd $ UFB.differentiate var fb1I
fb1I = snd $ UFB.integrate var fb1
var = vars !! (varSelector `mod` (length vars))
vars = UFB.getVariables fb1
prop_fbIntegrateDiffDown_consistent sample reportFileName
(FBSize10 (n1,fb1), Nat10 varSelector) =
fbAtKeyPointsCanBeLeq
reportFileName (n1,var)
fb1ID fb1
where
_ = [fb1,sample]
fb1ID = fst $ UFB.differentiate var fb1I
fb1I = fst $ UFB.integrate var fb1
var = vars !! (varSelector `mod` (length vars))
vars = UFB.getVariables fb1