packages feed

synthesizer-core-0.9: test/DocTest/Synthesizer/Storable/Cut.hs

-- Do not edit! Automatically created with doctest-extract from src/Synthesizer/Storable/Cut.hs
{-# LINE 36 "src/Synthesizer/Storable/Cut.hs" #-}

module DocTest.Synthesizer.Storable.Cut where

import qualified Test.DocTest.Driver as DocTest

{-# LINE 37 "src/Synthesizer/Storable/Cut.hs" #-}
import     qualified Synthesizer.Storable.Cut as CutSt
import     qualified Synthesizer.Storable.Signal as SigSt

import     qualified Synthesizer.Plain.Cut as Cut
import     qualified Synthesizer.Plain.Signal as Sig

import     qualified Data.EventList.Relative.TimeBody  as EventList
import     qualified Data.List.HT as ListHT

import     qualified Number.NonNegative as NonNeg

import     qualified Test.QuickCheck as QC

import     NumericPrelude.Numeric
import     NumericPrelude.Base
import     Prelude ()


genEventList     :: QC.Gen (EventList.T NonNeg.Int (Sig.T Int))
genEventList     = fmap (EventList.mapTime (flip mod 1000)) QC.arbitrary

test :: DocTest.T ()
test = do
 DocTest.printPrefix "Synthesizer.Storable.Cut:61: "
{-# LINE 61 "src/Synthesizer/Storable/Cut.hs" #-}
 DocTest.property(
{-# LINE 61 "src/Synthesizer/Storable/Cut.hs" #-}
        
   \chunkSize ->
   QC.forAll genEventList $ \evs ->
   let sevs = EventList.mapBody (SigSt.fromList chunkSize) evs
   in  ListHT.allEqual $
       SigSt.fromList chunkSize (Cut.arrange evs) :
       CutSt.arrangeAdaptive chunkSize sevs :
       CutSt.arrangeList chunkSize sevs :
       CutSt.arrangeEquidist chunkSize sevs :
       []
  )