synthesizer-core-0.9: test/DocTest/Synthesizer/Generic/Signal.hs
-- Do not edit! Automatically created with doctest-extract from src/Synthesizer/Generic/Signal.hs
{-# LINE 72 "src/Synthesizer/Generic/Signal.hs" #-}
module DocTest.Synthesizer.Generic.Signal where
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest
{-# LINE 73 "src/Synthesizer/Generic/Signal.hs" #-}
import qualified Synthesizer.Storable.Signal as SigSt
import Synthesizer.Generic.Signal (delay, delayLoopOverlap)
import Synthesizer.Generic.Filter.NonRecursive (amplify)
import qualified Algebra.Additive as Additive
import Data.Function (fix)
import qualified Test.QuickCheck as QC
test :: DocTest.T ()
test = do
DocTest.printPrefix "Synthesizer.Generic.Signal:749: "
{-# LINE 749 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.example(
{-# LINE 749 "src/Synthesizer/Generic/Signal.hs" #-}
delayLoopOverlap 5 (amplify 0.5) [1::Float]
)
[ExpectedLine [LineChunk "[1.0]"]]
DocTest.printPrefix "Synthesizer.Generic.Signal:751: "
{-# LINE 751 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.example(
{-# LINE 751 "src/Synthesizer/Generic/Signal.hs" #-}
delayLoopOverlap 5 (amplify 0.5) [1,0,0,0,0::Float]
)
[ExpectedLine [LineChunk "[1.0,0.0,0.0,0.0,0.0]"]]
DocTest.printPrefix "Synthesizer.Generic.Signal:753: "
{-# LINE 753 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.example(
{-# LINE 753 "src/Synthesizer/Generic/Signal.hs" #-}
delayLoopOverlap 5 (amplify 0.5) [1,0,0,0,0,0::Float]
)
[ExpectedLine [LineChunk "[1.0,0.0,0.0,0.0,0.0,0.5]"]]
DocTest.printPrefix "Synthesizer.Generic.Signal:755: "
{-# LINE 755 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.example(
{-# LINE 755 "src/Synthesizer/Generic/Signal.hs" #-}
delayLoopOverlap 5 (amplify 0.5) [1,0,0,0,0,0,0,0,0::Float]
)
[ExpectedLine [LineChunk "[1.0,0.0,0.0,0.0,0.0,0.5,0.0,0.0,0.0]"]]
DocTest.printPrefix "Synthesizer.Generic.Signal:758: "
{-# LINE 758 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.property(
{-# LINE 758 "src/Synthesizer/Generic/Signal.hs" #-}
QC.forAll (QC.choose (1,10)) $ \time ->
QC.forAll (QC.choose (1,10)) $ \cs ->
QC.forAll (QC.choose (0.5,1.0::Float)) $ \gain ->
\xs ->
delayLoopOverlap time (amplify gain) xs
==
(SigSt.toList $
delayLoopOverlap time (amplify gain) $
SigSt.fromList (SigSt.chunkSize cs) xs)
)
DocTest.printPrefix "Synthesizer.Generic.Signal:770: "
{-# LINE 770 "src/Synthesizer/Generic/Signal.hs" #-}
DocTest.property(
{-# LINE 770 "src/Synthesizer/Generic/Signal.hs" #-}
let delayLoopOverlapProduce time proc xs =
fix (zipWith (Additive.+) xs . delay Additive.zero time . proc)
in QC.forAll (QC.choose (1,10)) $ \time ->
QC.forAll (QC.choose (0.5,1.0)) $ \gain ->
\xs ->
delayLoopOverlap time (amplify gain) xs
==
delayLoopOverlapProduce time (amplify gain) (xs :: [Float])
)