synthesizer-core-0.9: test/DocTest/Synthesizer/Plain/Oscillator.hs
-- Do not edit! Automatically created with doctest-extract from src/Synthesizer/Plain/Oscillator.hs
{-# LINE 36 "src/Synthesizer/Plain/Oscillator.hs" #-}
module DocTest.Synthesizer.Plain.Oscillator where
import qualified Test.DocTest.Driver as DocTest
{-# LINE 37 "src/Synthesizer/Plain/Oscillator.hs" #-}
import qualified Synthesizer.Plain.Oscillator as Osci
import qualified Synthesizer.Basic.Wave as Wave
import qualified Test.QuickCheck as QC
import qualified Number.Ratio as Ratio
import NumericPrelude.Numeric
import NumericPrelude.Base
import Prelude ()
test :: DocTest.T ()
test = do
DocTest.printPrefix "Synthesizer.Plain.Oscillator:74: "
{-# LINE 74 "src/Synthesizer/Plain/Oscillator.hs" #-}
DocTest.property(
{-# LINE 74 "src/Synthesizer/Plain/Oscillator.hs" #-}
let waves =
("saw", Wave.saw) :
("square", Wave.square) :
("triangle", Wave.triangle) :
[] in
QC.forAllShow (QC.elements waves) fst $
\(_,wave) freq phases0 ->
let phases = map (% Ratio.denominator (freq::Rational)) phases0
in Osci.phaseMod wave freq phases ==
Osci.shapeMod (Wave.phaseOffset wave) zero freq phases
)