implicit-0.4.1.0: tests/Main.hs
{- ORMOLU_DISABLE -}
-- Implicit CAD. Copyright (C) 2011, Christopher Olah (chris@colah.ca)
-- Copyright (C) 2018, Julia Longtin (julial@turinglace.com)
-- Released under the GNU AGPLV3+, see LICENSE
-- be explicit about what we import.
import Prelude (($), IO)
-- our testing engine.
import Test.Hspec(hspec, describe)
-- the parser test for statements.
import ParserSpec.Statement(statementSpec)
-- the parser test for expressions.
import ParserSpec.Expr(exprSpec)
-- the execution test for expressions.
import ExecSpec.Expr(exprExec)
-- the execution test for warnings.
import MessageSpec.Message(programExec)
import PropertySpec (propSpec)
import qualified GoldenSpec.Spec as Golden
import qualified ImplicitSpec as Implicit
import qualified RewriteSpec as Rewrite
import qualified TesselationSpec as Tesselation
main :: IO ()
main = hspec $ do
-- run the golden tests to ensure we haven't broken mesh generation
describe "golden tests" Golden.spec
describe "extopenscad tests" $ do
-- run tests against the expression parsing engine.
describe "expression parsing" exprSpec
-- and now, against the statement parsing engine.
describe "statements parsing" statementSpec
-- run tests against the expression execution engine. single statements.
describe "expression execution" exprExec
-- run tests against the evaluation engine, checking for messages.
describe "program execution" programExec
-- Generate data to be evaluated, and ensure the properties hold.
describe "property tests" propSpec
Implicit.spec
Tesselation.spec
Rewrite.spec