radian-0.1: test/hunit_tests.hs
module Main (main) where
import Test.HUnit (Assertion, Test (TestCase, TestList), (@?=), runTestTT, failures, errors)
import Prelude
import Control.Lens ((#))
import Control.Monad (when)
import System.Exit (exitFailure)
import Data.Radian
(@??=) :: Show a => a -> a -> Assertion
x @??= y = show x @?= show y
infix 1 @??=
t180 :: Assertion
t180 = toRadians # (180 :: Double) @??= pi
t90 :: Assertion
t90 = toRadians # (90 :: Double) @??= 1.5707963267948966
t359 :: Assertion
t359 = toRadians # (359 :: Double) @??= 6.265732014659643
t360 :: Assertion
t360 = toRadians # (360 :: Double) @??= 6.283185307179586
t3600 :: Assertion
t3600 = toRadians # (3600 :: Double) @??= 62.83185307179586
t1 :: Assertion
t1 = toRadians # (1 :: Double) @??= 1.7453292519943295e-2
tneg180 :: Assertion
tneg180 = toRadians # ((-180) :: Double) @??= -pi
f0 :: Assertion
f0 = fromRadians # (0 :: Double) @??= 0.0
f1 :: Assertion
f1 = fromRadians # (1 :: Double) @??= 57.29577951308232
fneg1 :: Assertion
fneg1 = fromRadians # ((-1) :: Double) @??= -57.29577951308232
f3 :: Assertion
f3 = fromRadians # (3 :: Double) @??= 171.88733853924697
tests :: Test
tests =
TestList $ fmap TestCase [
t180
, t90
, t359
, t360
, t3600
, t1
, tneg180
, f0
, f1
, fneg1
, f3
]
main :: IO ()
main = do
c <- runTestTT tests
when (errors c > 0 || failures c > 0) exitFailure