packages feed

cyclotomic-0.3: UnitTests.hs

{-# 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]