----------------------------------------------------------------------------- -- Copyright 2009, 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) -- ----------------------------------------------------------------------------- module Documentation.DerivationUnitTests (main) where import Control.Monad import Common.Exercise import Text.XML import Domain.Math.Power.Exercises base = "test/dwo-derivations" main = make powerOfAExercise make :: Exercise a -> IO () make ex = zipWithM_ (makeTest ex) [1 ..] (examples ex) makeTest :: Exercise a -> Int -> a -> IO () makeTest ex n a = do let file = base ++ "/" ++ show (exerciseCode ex) ++ show n ++ ".xml" putStrLn $ "Writing " ++ file writeFile file $ showXML $ makeRequest a ex makeRequest :: a -> Exercise a -> XML makeRequest a ex = makeXML "request" $ do "service" .=. "derivation" "exerciseid" .=. show (exerciseCode ex) "encoding" .=. "string" element "state" $ element "expr" $ text $ prettyPrinter ex a