AERN-RnToRm-0.4.9: src/Data/Number/ER/RnToRm/UnitDom/ChebyshevBase/Polynom/Tests/Reduce.hs
{-|
Module : Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Tests.Reduce
Description : (testing) properties of reduction operations
Copyright : (c) 2007-2008 Michal Konecny
License : BSD3
Maintainer : mik@konecny.aow.cz
Stability : experimental
Portability : portable
Quickcheck properties of operations that reduce the size of polynomials.
-}
module Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Tests.Reduce
where
import Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Reduce
import Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Basic
import Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Tests.Generate
import Test.QuickCheck
prop_chplReduceTermCount_consistent (PSize30 (_,p), Deg20Size20 _ maxSize) =
maxSize < chplCountTerms p ==>
chplAtKeyPointsCanBeLeq p pUp
&&
chplAtKeyPointsCanBeLeq pDown p
where
(pDown, pUp) = chplReduceTermCount maxSize p
prop_chplReduceDegree_consistent (PSize30 (_,p), Deg20Size20 maxDegree _) =
maxDegree < chplGetDegree p ==>
chplAtKeyPointsCanBeLeq p pUp
&&
chplAtKeyPointsCanBeLeq pDown p
where
(pDown, pUp) = chplReduceDegree maxDegree p