packages feed

align-audio-0.0.0.2: test/Test/CorrelateResample.hs

-- Do not edit! Automatically created with doctest-extract from src/CorrelateResample.hs
{-# LINE 19 "src/CorrelateResample.hs" #-}

module Test.CorrelateResample where

import CorrelateResample
import qualified Test.DocTest.Driver as DocTest

{-# LINE 20 "src/CorrelateResample.hs" #-}
import     qualified Test.QuickCheck as QC
import     qualified Data.StorableVector.Lazy as SVL
import     Data.Monoid ((<>))

test :: DocTest.T ()
test = do
 DocTest.printPrefix "CorrelateResample:64: "
{-# LINE 64 "src/CorrelateResample.hs" #-}
 DocTest.property(
{-# LINE 64 "src/CorrelateResample.hs" #-}
        
   QC.forAll (QC.choose (1,1)) $ \rateX ->
   QC.forAll (QC.choose (1,1)) $ \rateY ->
   \(QC.NonNegative preX, QC.NonNegative postX) ->
   \(QC.NonNegative preY, QC.NonNegative postY) ->
   \(QC.NonEmpty xs) ->
   all (0/=)  xs QC.==>

   preX - preY
   QC.===
   let pack rate =
         SVL.pack SVL.defaultChunkSize $ concatMap (replicate rate) xs in
   let pad rate n = SVL.replicate SVL.defaultChunkSize (rate*n) (0::Float) in
   determineLag 1
      (fromIntegral rateX, pad rateX preX <> pack rateX <> pad rateX postX)
      (fromIntegral rateY, pad rateY preY <> pack rateY <> pad rateY postY)
  )