synthesizer-core-0.9: test/DocTest/Synthesizer/Basic/Wave.hs
-- Do not edit! Automatically created with doctest-extract from src/Synthesizer/Basic/Wave.hs
{-# LINE 110 "src/Synthesizer/Basic/Wave.hs" #-}
module DocTest.Synthesizer.Basic.Wave where
import qualified Test.DocTest.Driver as DocTest
{-# LINE 111 "src/Synthesizer/Basic/Wave.hs" #-}
import qualified Synthesizer.Basic.Wave as Wave
import qualified Synthesizer.Basic.Phase as Phase
import qualified Test.QuickCheck as QC
import NumericPrelude.Numeric
import NumericPrelude.Base
import Prelude ()
zeroDCOffset :: Wave.T Double Double -> QC.Property
zeroDCOffset wave =
QC.forAll (QC.choose (100,600)) $ \periodInt ->
let period = fromIntegral periodInt
xs = take periodInt $ map Phase.fromRepresentative $
map (/period) $ iterate (1+) 0.5
in abs (sum (map (Wave.apply wave) xs)) < period / fromInteger 100
test :: DocTest.T ()
test = do
DocTest.printPrefix "Synthesizer.Basic.Wave:215: "
{-# LINE 215 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 215 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.sine
)
DocTest.printPrefix "Synthesizer.Basic.Wave:224: "
{-# LINE 224 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 224 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.cosine
)
DocTest.printPrefix "Synthesizer.Basic.Wave:239: "
{-# LINE 239 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 239 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.fastSine2
)
DocTest.printPrefix "Synthesizer.Basic.Wave:261: "
{-# LINE 261 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 261 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.fastSine3
)
DocTest.printPrefix "Synthesizer.Basic.Wave:283: "
{-# LINE 283 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 283 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.fastSine4
)
DocTest.printPrefix "Synthesizer.Basic.Wave:417: "
{-# LINE 417 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 417 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.saw
)
DocTest.printPrefix "Synthesizer.Basic.Wave:430: "
{-# LINE 430 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 430 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.sawCos
)
DocTest.printPrefix "Synthesizer.Basic.Wave:535: "
{-# LINE 535 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 535 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.square
)
DocTest.printPrefix "Synthesizer.Basic.Wave:594: "
{-# LINE 594 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 594 "src/Synthesizer/Basic/Wave.hs" #-}
zeroDCOffset Wave.triangle
)
DocTest.printPrefix "Synthesizer.Basic.Wave:1003: "
{-# LINE 1003 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 1003 "src/Synthesizer/Basic/Wave.hs" #-}
QC.forAll (QC.choose (-1,1)) $ zeroDCOffset . Wave.squareBalanced
)
DocTest.printPrefix "Synthesizer.Basic.Wave:1030: "
{-# LINE 1030 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 1030 "src/Synthesizer/Basic/Wave.hs" #-}
QC.forAll (QC.choose (0,1)) $ zeroDCOffset . Wave.trapezoid
)
DocTest.printPrefix "Synthesizer.Basic.Wave:1078: "
{-# LINE 1078 "src/Synthesizer/Basic/Wave.hs" #-}
DocTest.property(
{-# LINE 1078 "src/Synthesizer/Basic/Wave.hs" #-}
QC.forAll (QC.choose (0,1)) $ \w ->
QC.forAll (QC.choose (-1,1)) $ \r ->
zeroDCOffset $ Wave.trapezoidBalanced w r
)