packages feed

synthesizer-core-0.9: test/Test/Main.hs

module Main where

import qualified DocTest.Main

import qualified Test.Sound.Synthesizer.Plain.Analysis       as Analysis
import qualified Test.Sound.Synthesizer.Plain.Control        as Control
import qualified Test.Sound.Synthesizer.Plain.Filter         as Filter
import qualified Test.Sound.Synthesizer.Plain.Filter.FirstOrder as Filt1
import qualified Test.Sound.Synthesizer.Plain.Interpolation  as Interpolation
import qualified Test.Sound.Synthesizer.Basic.NumberTheory   as NumberTheory
import qualified Test.Sound.Synthesizer.Basic.ToneModulation as ToneModulation
import qualified Test.Sound.Synthesizer.Plain.ToneModulation as ToneModulationL
import qualified Test.Sound.Synthesizer.Generic.ToneModulation as ToneModulationG
import qualified Test.Sound.Synthesizer.Generic.Permutation as Permutation
import qualified Test.Sound.Synthesizer.Generic.Fourier as Fourier
import qualified Test.Sound.Synthesizer.Generic.FourierInteger as FourierInteger
import qualified Test.Sound.Synthesizer.Generic.Filter  as FilterG
import qualified Test.Sound.Synthesizer.Generic.Cut  as CutG

import Data.Tuple.HT (mapFst, )

import qualified Test.QuickCheck as QC
import qualified Test.DocTest.Driver as DocTest


prefix :: String -> [(String, QC.Property)] -> [(String, QC.Property)]
prefix msg =
   map (mapFst (\str -> msg ++ "." ++ str))

main :: IO ()
main =
   DocTest.run $
   (DocTest.Main.main >>) $
   mapM_ (\(msg,io) -> DocTest.printPrefix (msg++": ") >> DocTest.property io) $
   concat $
      prefix "Plain.Analysis"       Analysis.tests :
      prefix "Plain.Control"        Control.tests :
      prefix "Plain.Filter.FirstOrder" Filt1.tests :
      prefix "Plain.Filter"         Filter.tests :
      prefix "Plain.Interpolation"  Interpolation.tests :
      prefix "Generic.Cut"          CutG.tests :
      prefix "Basic.ToneModulation" ToneModulation.tests :
      prefix "Plain.ToneModulation" ToneModulationL.tests :
      prefix "Generic.ToneModulation" ToneModulationG.tests :
      prefix "Generic.Permutation"    Permutation.tests :
      prefix "Generic.Fourier"        Fourier.tests :
      prefix "Basic.NumberTheory"     NumberTheory.tests :
      prefix "Generic.FourierInteger" FourierInteger.tests :
      prefix "Generic.Filter"         FilterG.tests :
      []