packages feed

ideas-1.0: src/Domain/Math/ExerciseList.hs

-----------------------------------------------------------------------------
-- Copyright 2011, Open Universiteit Nederland. This file is distributed
-- under the terms of the GNU General Public License. For more information,
-- see the file "LICENSE.txt", which is included in the distribution.
-----------------------------------------------------------------------------
-- |
-- Maintainer  :  bastiaan.heeren@ou.nl
-- Stability   :  provisional
-- Portability :  portable (depends on ghc)
--
-- All exported exercises in the mathematical domain
--
-----------------------------------------------------------------------------
module Domain.Math.ExerciseList
   ( exerciseList, viewList, scriptList, testSuiteList
   ) where

import Common.Library
import Common.Utils (Some(..))
import Common.Utils.TestSuite
import Domain.Math.Data.Interval
import Domain.Math.Derivative.Exercises
import Domain.Math.Equation.CoverUpExercise
import Domain.Math.Expr
import Domain.Math.Numeric.Exercises
import Domain.Math.Numeric.Views
import Domain.Math.Polynomial.Balance
import Domain.Math.Polynomial.Exercises
import Domain.Math.Polynomial.IneqExercises
import Domain.Math.Polynomial.LeastCommonMultiple
import Domain.Math.Polynomial.RationalExercises
import Domain.Math.Power.Equation.Exercises
import Domain.Math.Power.Exercises
import qualified Domain.Math.Numeric.Tests as MathNum
import qualified Domain.Math.Polynomial.Tests as MathPoly
import qualified Domain.Math.SquareRoot.Tests as MathSqrt

exerciseList :: [Some Exercise]
exerciseList =
   [ -- basic math
   -- , Some naturalExercise
   -- , Some integerExercise
   -- , Some rationalExercise
     Some fractionExercise
   , Some coverUpExercise
   , Some linearExercise
   , Some linearMixedExercise
   , Some balanceExercise
   , Some quadraticExercise
   , Some higherDegreeExercise
   , Some findFactorsExercise
   , Some expandExercise
   , Some ineqLinearExercise
   , Some ineqQuadraticExercise
   , Some ineqHigherDegreeExercise
   , Some rationalEquationExercise
   , Some simplifyRationalExercise
   -- , Some divisionBrokenExercise
   , Some quadraticNoABCExercise
   , Some quadraticWithApproximation
   , Some derivativeExercise
   , Some derivativePolyExercise
   , Some derivativeProductExercise
   , Some derivativeQuotientExercise
   -- , Some derivativePowerExercise
   , Some simplifyPowerExercise
   , Some powerOfExercise
   , Some nonNegBrokenExpExercise
   , Some calcPowerExercise
   , Some powerEqExercise
   , Some expEqExercise
   , Some logEqExercise
--   , Some higherPowerEqExercise
   ]

viewList :: [ViewPackage]
viewList =
   [ exprVP sumView
   , exprVP naturalView, exprVP naturalNF
   , exprVP integerView, exprVP integerNF
   , exprVP decimalFractionView
   , exprVP rationalView, exprVP rationalNF
   , exprVP mixedFractionView, exprVP mixedFractionNF
   , exprVP doubleView, exprVP doubleNF
   ]
 where
   exprVP :: (IsView f, Show a) => f Expr a -> ViewPackage
   exprVP a = ViewPackage parseExprM (toView a)

scriptList :: [(Id, FilePath)]
scriptList =
   [ (getId linearExercise,       "math.lineq-en.txt")
   , (getId quadraticExercise,    "math.quadreq-en.txt")
   , (getId higherDegreeExercise, "math.polyeq-en.txt")
   ]

testSuiteList :: [TestSuite]
testSuiteList = [MathNum.main, MathPoly.tests, MathSqrt.tests, testMe, testLCM]