{-| 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