{-# LANGUAGE TypeFamilies #-}
{-|
Module : Main
Description : run all tests defined in the AERN-Real package
Copyright : (c) Michal Konecny, Jan Duracz
License : BSD3
Maintainer : mikkonecny@gmail.com
Stability : experimental
Portability : portable
-}
module Main where
import Numeric.AERN.RealArithmetic.Basis.Double
import Numeric.AERN.RealArithmetic.Interval.Double
import Numeric.AERN.RealArithmetic.Interval
import Numeric.AERN.RealArithmetic.Interval.ElementaryFromFieldOps
import Numeric.AERN.RealArithmetic.Interval.Mutable
import Numeric.AERN.RealArithmetic.Interval.Mutable.ElementaryFromFieldOps
import Numeric.AERN.Basics.Interval
import Numeric.AERN.Basics.Consistency
import qualified Numeric.AERN.Basics.NumericOrder as NumOrd
import qualified Numeric.AERN.Basics.RefinementOrder as RefOrd
import Numeric.AERN.RealArithmetic.Measures
import qualified Numeric.AERN.RealArithmetic.NumericOrderRounding as ArithUpDn
import qualified Numeric.AERN.RealArithmetic.RefinementOrderRounding as ArithInOut
import Test.Framework (defaultMain)
main =
do
defaultMain tests
tests = testsDouble ++ testsDI
testsDouble =
[
-- NumOrd.testsArbitraryTuple ("Double", sampleD, NumOrd.compare),
NumOrd.testsPartialComparison ("Double", sampleD),
NumOrd.testsRoundedLatticeDistributive ("Double", sampleD), -- (Just ("NaN", nanD)),
NumOrd.testsRoundedLatticeInPlace ("Double", sampleD),
testsDistance ("Double", sampleD),
ArithUpDn.testsConvert ("Double", sampleD, "Integer", sampleI),
ArithUpDn.testsConvert ("Integer", sampleI, "Double", sampleD),
ArithUpDn.testsConvert ("Double", sampleD, "Rational", sampleR),
ArithUpDn.testsConvert ("Rational", sampleR, "Double", sampleD),
ArithUpDn.testsConvert ("Double", sampleD, "Double", sampleD),
ArithUpDn.testsUpDnAdd ("Double", sampleD),
ArithUpDn.testsUpDnSubtr ("Double", sampleD),
ArithUpDn.testsUpDnAbs ("Double", sampleD),
ArithUpDn.testsUpDnMult ("Double", sampleD),
ArithUpDn.testsUpDnIntPower ("Double", sampleD),
ArithUpDn.testsUpDnDiv ("Double", sampleD),
ArithUpDn.testsUpDnFieldOpsInPlace ("Double", sampleD),
ArithUpDn.testsUpDnMixedFieldOps ("Double", sampleD) ("Integer", sampleI),
ArithUpDn.testsUpDnMixedFieldOps ("Double", sampleD) ("Rational", sampleR),
ArithUpDn.testsUpDnMixedFieldOps ("Double", sampleD) ("Double", sampleD),
ArithUpDn.testsUpDnMixedFieldOpsInPlace ("Double", sampleD) ("Integer", sampleI),
ArithUpDn.testsUpDnMixedFieldOpsInPlace ("Double", sampleD) ("Rational", sampleR),
ArithUpDn.testsUpDnMixedFieldOpsInPlace ("Double", sampleD) ("Double", sampleD)
]
testsDI =
[
testsConsistency ("DI", sampleDI),
NumOrd.testsPartialComparison ("DI", sampleDI),
NumOrd.testsRefinementRoundedLatticeDistributiveMonotone ("DI", sampleDI),
NumOrd.testsRefinementRoundedLatticeInPlace ("DI", sampleDI),
RefOrd.testsPartialComparison ("DI", sampleDI),
RefOrd.testsRoundedBasis ("DI", sampleDI),
RefOrd.testsOuterInnerRoundedBasisInPlace ("DI", sampleDI),
RefOrd.testsRoundedLatticeDistributive ("DI", sampleDI),
RefOrd.testsOuterInnerRoundedLatticeInPlace ("DI", sampleDI),
testsDistance ("DI", sampleDI),
testsImprecision ("DI", sampleDI),
ArithInOut.testsConvertNumOrd ("Integer", sampleI, "DI", sampleDI),
ArithInOut.testsConvertNumOrd ("Double", sampleD, "DI", sampleDI),
ArithInOut.testsConvertNumOrd ("Rational", sampleR, "DI", sampleDI),
ArithInOut.testsInOutAdd ("DI", sampleDI),
ArithInOut.testsInOutSubtr ("DI", sampleDI),
ArithInOut.testsInOutAbs ("DI", sampleDI),
ArithInOut.testsInOutMult ("DI", sampleDI),
ArithInOut.testsInOutIntPower ("DI", sampleDI),
ArithInOut.testsInOutDiv ("DI", sampleDI),
ArithInOut.testsInOutFieldOpsInPlace ("DI", sampleDI),
ArithInOut.testsInOutMixedFieldOps ("DI", sampleDI) ("Integer", sampleI),
ArithInOut.testsInOutMixedFieldOps ("DI", sampleDI) ("Rational", sampleR),
ArithInOut.testsInOutMixedFieldOps ("DI", sampleDI) ("Double", sampleD),
ArithInOut.testsInOutMixedFieldOpsInPlace ("DI", sampleDI) ("Integer", sampleI),
ArithInOut.testsInOutMixedFieldOpsInPlace ("DI", sampleDI) ("Rational", sampleR),
ArithInOut.testsInOutMixedFieldOpsInPlace ("DI", sampleDI) ("Double", sampleD),
ArithInOut.testsInOutExp ("DI", sampleDI),
ArithInOut.testsInOutExpInPlace ("DI", sampleDI),
ArithInOut.testsInOutSqrt ("DI", sampleDI) unPositiveDI,
ArithInOut.testsInOutSqrtInPlace ("DI", sampleDI) unPositiveDI
]
sampleI = 1 :: Integer
sampleR = 1 :: Rational