Diese Aufgabe ist ein Beispiel für Aufgaben in der Programmiersprache Haskell
Als Dateiendungen sind erlaubt für Haskell Quelltext:
Eine Quelltextdatei soll ein haskell Modul enthalten.
Die Testauswertung findet mit einem eigenen kleinen Modul namens HaskellUnit statt.
Dort ist eine Funktion mit folgender Signatur definiert:
testcase :: (Eq a, Show a) => [Char] -> [Char] -> a -> a -> IO Bool
die Parameter bezeichnen der Reihe nach:
Mit dieser Funktion lässt sich eine Liste konstanter Testfälle definieren.
Dann gibt es die Funktion:
runTests :: [IO Bool] -> IO ()
Damit wird ermöglicht in der Funktion main die Liste der Testfälle auszuführen.
Für direkt ausgwertete Tests eine Datei nach dem Namensscheme: *Test.hs. Es darf nur eine solche Datei geben.
Diese muss als Modulnamen Main haben und eine Funktion main, die eine Liste von Testfällen ausführt.
Man kann hier natürlich die Tests aus unterschiedlichen Modulen imprtieren, die dann wiederum öffentlich oder nicht öffentlich gemacht werden können.
Für Abnahmetests eine Datei nach dem Namensscheme: *TestApproval.hs. Es darf nur eine solche Datei geben.
Ansonsten gilt für Abnahmetests dasselbe wie für die direkten Tests.
Eine kleine Auswahl von Haskell-Bibliotheken steht in der Testauswertung zur Verfügung. Dieses sind derzeit: