{-# OPTIONS_GHC -Wall #-} module UnitTests where import Data.Complex.Cyclotomic import Test.HUnit --import Examples import Data.Ratio rationals :: [Rational] rationals = 0 % 1 : [sign * k % j | n <- [0..], m <- [0..n-1], sign <- [1,-1] , let k = m + 1, let j = n - m, gcd k j == 1] test1 :: Test test1 = TestLabel "polarRat" $ TestList [polarRat 1 (p % q) ~=? e q^p | p <- [0..10], q <- [1..10]] test2 :: Test test2 = TestList [sqrtRat r ^ (2::Int) ~=? fromRational r | r <- take 100 rationals] test3 :: Test test3 = TestList [sqrtRat (r*r) ~=? fromRational (abs r) | r <- take 100 rationals] test4 :: Test test4 = TestList [z * (1 / z) ~=? 1 | n <- [1..10], m <- [1..10], let z = e n + e m, z /= 0] main :: IO Counts main = runTestTT $ TestList [test1,test2,test3,test4]