packages feed

diagrams-solve-0.1.1: tests/Test.hs

module Main where

import Diagrams.Solve.Polynomial

import Test.Tasty (defaultMain, testGroup, TestTree)
import           Test.Tasty.QuickCheck

tests :: TestTree
tests = testGroup "Solve" [
         testProperty "solutions found satisfy quadratic equation" $
         \a b c -> let sat x =  a * x * x + b * x + c =~ 0 in all sat (quadForm a b c)
-- could verify number of solutions, but we would just duplicate the function definition
        , testProperty "solutions found satisfy cubic equation" $
         \a b c d -> let sat x =  a * x * x * x + b * x * x + c * x + d =~ (0 :: Double) in all sat (cubForm a b c d)
        ]

(=~) :: Double -> Double -> Bool
(=~) a b = abs (a - b) < 0.001
infix 4 =~

main :: IO ()
main = defaultMain tests