{-# LANGUAGE FlexibleContexts #-}
module Math.Programming.Tests where
import Control.Monad.IO.Class
import Test.Tasty
import Text.Printf
import Math.Programming
import Math.Programming.Tests.Api
import Math.Programming.Tests.IP
import Math.Programming.Tests.LP
makeAllTests
:: (PrintfArg (Numeric m), RealFrac (Numeric m), MonadIO m, IPMonad m)
=> String
-> (m () -> IO ())
-> TestTree
makeAllTests apiName runner
= testGroup (printf "Math.Programming tests (%s)" apiName)
[ makeApiTests runner
, makeLPTests runner
, makeIPTests runner
]