synthesizer-core-0.4.1: src/Test/Sound/Synthesizer/Generic/Permutation.hs
{-
wish list:
- custom Permutation type with Arbitrary instance
-}
{-# LANGUAGE NoImplicitPrelude #-}
module Test.Sound.Synthesizer.Generic.Permutation (tests) where
import qualified Synthesizer.Generic.Permutation as Permutation
import Test.QuickCheck (quickCheck, )
import NumericPrelude.Numeric
import NumericPrelude.Base
import Prelude ()
tests :: [(String, IO ())]
tests =
("inverse transposition",
quickCheck $ \n0 m0 ->
let n = mod n0 100
m = mod m0 100
in Permutation.inverse (Permutation.transposition n m)
==
Permutation.transposition m n) :
("inverse skewGrid",
quickCheck $ \n0 m0 ->
let g = gcd n0 m0
(n,m) = if g==0 then (0,0) else (abs (div n0 g), abs (div m0 g))
in Permutation.inverse (Permutation.skewGrid n m)
==
Permutation.skewGridInv n m) :
("inverse skewGridCRT",
quickCheck $ \n0 m0 ->
let g = gcd n0 m0
(n,m) = if g==0 then (0,0) else (abs (div n0 g), abs (div m0 g))
in Permutation.inverse (Permutation.skewGridCRT n m)
==
Permutation.skewGridCRTInv n m) :
{-
reverse (multiplicative (generator n) n)
==
multiplicative (recip $ generator n) n
-}
[]