packages feed

atp-haskell-1.7: tests/Main.hs

import Test.HUnit

import Data.Logic.ATP.DefCNF (testDefCNF)
import Data.Logic.ATP.DP (testDP)
import Data.Logic.ATP.FOL (testFOL)
import Data.Logic.ATP.Herbrand (testHerbrand)
import Data.Logic.ATP.Lib (testLib)
import Data.Logic.ATP.Prop (testProp)
import Data.Logic.ATP.PropExamples (testPropExamples)
import Data.Logic.ATP.Skolem (testSkolem)
import Data.Logic.ATP.ParserTests (testParser)
import Data.Logic.ATP.Unif (testUnif)
import Data.Logic.ATP.Tableaux (testTableaux)
import Data.Logic.ATP.Resolution (testResolution)
import Data.Logic.ATP.Prolog (testProlog)
import Data.Logic.ATP.Meson (testMeson)
import Data.Logic.ATP.Equal (testEqual)
import Extra (testExtra)

import System.Exit (exitWith, ExitCode(ExitSuccess, ExitFailure))

main :: IO Counts
main = runTestTT (TestList  [TestLabel "Lib" testLib,
                             TestLabel "Prop" testProp,
                             TestLabel "PropExamples" testPropExamples,
                             TestLabel "DefCNF" testDefCNF,
                             TestLabel "DP" testDP,
                             TestLabel "FOL" testFOL,
                             TestLabel "Skolem" testSkolem,
                             TestLabel "Parser" testParser,
                             TestLabel "Herbrand" testHerbrand,
                             TestLabel "Unif" testUnif,
                             TestLabel "Tableaux" testTableaux,
                             TestLabel "Resolution" testResolution,
                             TestLabel "Prolog" testProlog,
                             TestLabel "Meson" testMeson,
                             TestLabel "Equal" testEqual,
                             TestLabel "Extra" testExtra
                             ]) >>= doCounts
    where
      doCounts counts' = exitWith (if errors counts' /= 0 || failures counts' /= 0 then ExitFailure 1 else ExitSuccess)