module Test.Sound.Synthesizer.Plain.Oscillator (tests) where import qualified Synthesizer.Plain.Oscillator as Osci import qualified Synthesizer.Basic.Wave as Wave -- import qualified Synthesizer.Plain.Interpolation as Interpolation import qualified Test.Sound.Synthesizer.Plain.Wave as WaveTest -- import qualified Test.Sound.Synthesizer.Plain.Interpolation as InterpolationTest import Test.QuickCheck (test, {- Property, (==>), -} ) -- import Test.Utility -- import qualified Number.NonNegative as NonNeg -- import qualified Algebra.RealTranscendental as RealTrans -- import qualified Algebra.Module as Module import qualified Algebra.RealField as RealField -- import qualified Algebra.Field as Field -- import qualified Algebra.Ring as Ring import qualified Algebra.Additive as Additive import NumericPrelude import PreludeBase import Prelude () phaseShapeMod :: (RealField.C a, Eq b) => (Wave.T a b) -> a -> [a] -> Bool phaseShapeMod wave freq phases = Osci.phaseMod wave freq phases == Osci.shapeMod (Wave.phaseOffset wave) zero freq phases phaseShapeModRational :: WaveTest.Ring Rational -> Integer -> Integer -> [Integer] -> Bool phaseShapeModRational w denom0 freq0 phases0 = let denom = 1 + abs denom0 freq = freq0 % denom phases = map (% denom) phases0 in phaseShapeMod (WaveTest.ringWave w) freq phases tests :: [(String, IO ())] tests = ("phaseShapeModRational", test phaseShapeModRational) : []