numeric-prelude-0.4.4: test/Test/MathObj/Gaussian/Bell.hs
-- Do not edit! Automatically created with doctest-extract from gaussian/MathObj/Gaussian/Bell.hs
{-# LINE 30 "gaussian/MathObj/Gaussian/Bell.hs" #-}
module Test.MathObj.Gaussian.Bell where
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest
{-# LINE 31 "gaussian/MathObj/Gaussian/Bell.hs" #-}
import qualified MathObj.Gaussian.Bell as G
import qualified Algebra.ZeroTestable as ZeroTestable
import qualified Algebra.Laws as Laws
import qualified Number.Complex as Complex
import Number.Complex ((+:))
import NumericPrelude.Base as P
import NumericPrelude.Numeric as NP
import Prelude ()
import qualified Test.QuickCheck as QC
import Data.Function.HT (Id, nest)
asRational :: Id (G.T Rational)
asRational = id
withRational :: Id (G.T Rational -> a)
withRational = id
isConstant :: ZeroTestable.C a => G.T a -> Bool
isConstant (G.Cons _amp _a b c) = isZero b && isZero c
test :: DocTest.T ()
test = do
DocTest.printPrefix "MathObj.Gaussian.Bell:108: "
{-# LINE 108 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 108 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(Laws.identity G.multiply G.constant . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:109: "
{-# LINE 109 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 109 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(Laws.commutative G.multiply . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:110: "
{-# LINE 110 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 110 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(Laws.associative G.multiply . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:152: "
{-# LINE 152 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 152 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(Laws.commutative G.convolve . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:153: "
{-# LINE 153 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 153 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(Laws.associative G.convolve . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:161: "
{-# LINE 161 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 161 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(isConstant . G.convolve G.constant . asRational)
DocTest.printPrefix "MathObj.Gaussian.Bell:149: "
{-# LINE 149 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.example
{-# LINE 149 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(let x=G.Cons 2 (1+:3) (4+:5) (7::Rational); y=G.Cons 7 (1+:4) (3+:2) (5::Rational) in G.convolve x y)
[ExpectedLine [LineChunk "Cons {amp = 7 % 6, c0 = 13 % 6 +: 55 % 8, c1 = 41 % 12 +: 13 % 4, c2 = 35 % 12}"]]
DocTest.printPrefix "MathObj.Gaussian.Bell:200: "
{-# LINE 200 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 200 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x y -> G.convolve x y == G.convolveByTranslation x y)
DocTest.printPrefix "MathObj.Gaussian.Bell:217: "
{-# LINE 217 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 217 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x y -> G.convolve x y == G.convolveByFourier x y)
DocTest.printPrefix "MathObj.Gaussian.Bell:225: "
{-# LINE 225 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 225 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x y -> G.fourier (G.convolve x y) == G.multiply (G.fourier x) (G.fourier y))
DocTest.printPrefix "MathObj.Gaussian.Bell:226: "
{-# LINE 226 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 226 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x -> nest 2 G.fourier x == G.reverse x)
DocTest.printPrefix "MathObj.Gaussian.Bell:227: "
{-# LINE 227 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 227 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(G.fourier G.unit == (asRational G.unit))
DocTest.printPrefix "MathObj.Gaussian.Bell:228: "
{-# LINE 228 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 228 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a -> G.fourier (G.translate a x) == G.modulate a (G.fourier x))
DocTest.printPrefix "MathObj.Gaussian.Bell:229: "
{-# LINE 229 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 229 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x (QC.Positive a) -> G.fourier (G.dilate a x) == G.amplify a (G.shrink a (G.fourier x)))
DocTest.printPrefix "MathObj.Gaussian.Bell:244: "
{-# LINE 244 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 244 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x -> G.fourier x == G.fourierByTranslation x)
DocTest.printPrefix "MathObj.Gaussian.Bell:312: "
{-# LINE 312 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 312 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a b -> G.translate a (G.translate b x) == G.translate (a+b) x)
DocTest.printPrefix "MathObj.Gaussian.Bell:326: "
{-# LINE 326 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 326 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a b -> G.translateComplex a (G.translateComplex b x) == G.translateComplex (a+b) x)
DocTest.printPrefix "MathObj.Gaussian.Bell:327: "
{-# LINE 327 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 327 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a -> G.translateComplex (Complex.fromReal a) x == G.translate a x)
DocTest.printPrefix "MathObj.Gaussian.Bell:341: "
{-# LINE 341 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 341 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a b -> G.modulate a (G.modulate b x) == G.modulate (a+b) x)
DocTest.printPrefix "MathObj.Gaussian.Bell:342: "
{-# LINE 342 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 342 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x a b -> G.modulate b (G.translate a x) == G.turn (a*b) (G.translate a (G.modulate b x)))
DocTest.printPrefix "MathObj.Gaussian.Bell:361: "
{-# LINE 361 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 361 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x -> nest 2 G.reverse x == x)
DocTest.printPrefix "MathObj.Gaussian.Bell:369: "
{-# LINE 369 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 369 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x (QC.Positive a) (QC.Positive b) -> G.dilate a (G.dilate b x) == G.dilate (a*b) x)
DocTest.printPrefix "MathObj.Gaussian.Bell:370: "
{-# LINE 370 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 370 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x (QC.Positive a) -> G.shrink a x == G.dilate (recip a) x)
DocTest.printPrefix "MathObj.Gaussian.Bell:381: "
{-# LINE 381 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 381 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x (QC.Positive a) -> G.dilate a (G.shrink a x) == x)
DocTest.printPrefix "MathObj.Gaussian.Bell:382: "
{-# LINE 382 "gaussian/MathObj/Gaussian/Bell.hs" #-}
DocTest.property
{-# LINE 382 "gaussian/MathObj/Gaussian/Bell.hs" #-}
(withRational $ \x (QC.Positive a) -> G.shrink a (G.dilate a x) == x)