Created
November 22, 2009 15:23
-
-
Save domdorn/240602 to your computer and use it in GitHub Desktop.
Testfaelle fuer Aufgabe 5 der LVA 185.161 Funktionale Programmierung im WS09/10 an der TU-Wien
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! runhugs | |
-- Testfaelle fuer Aufgabe 5 der LVA 185.161 Funktionale Programmierung im WS09/10 | |
-- an der Technischen Universitaet Wien | |
-- Aufgabenstellung: http://www.complang.tuwien.ac.at/knoop/fp185161_ws0910.html | |
-- Module ---------------------------------------------------------------------- | |
module Main where | |
-- Imports --------------------------------------------------------------------- | |
import Aufgabe5 | |
import IO (stderr, hPutStr) | |
-- Functions ------------------------------------------------------------------- | |
printTest :: Bool -> IO () | |
printTest False = putStr (" FAILED\n") | |
printTest True = putStr (" PASSED\n") | |
main = | |
do | |
putStr ("Testfaelle LVA-Leitung\n\n") | |
putStr ("isSearchTree\n\n") | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) (Node 7 Nil Nil)) == True ) | |
printTest ( isSearchTree (Node 5 (Node 5 Nil Nil) (Node 7 Nil Nil)) == False ) | |
putStr ("makeSearchTree\n\n") | |
printTest ( | |
makeSearchTree (Node 3 (Node 5 Nil Nil) (Node 7 Nil Nil)) == (Node 5 (Node 3 Nil Nil) (Node 7 Nil Nil)) || | |
makeSearchTree (Node 3 (Node 5 Nil Nil) (Node 7 Nil Nil)) == (Node 7 (Node 3 Nil (Node 5 Nil Nil)) Nil) ) | |
-- 2. gueltige Loesung | |
-- printTest ( ) | |
putStr ("layerToSearchTree\n\n") | |
printTest ( layerToSearchTree (Node 1 (Node 3 (Node 5 Nil Nil) (Node 7 Nil Nil)) (Node 9 (Node 11 Nil Nil) Nil)) 1 == (Node 9 (Node 3 Nil Nil) Nil) ) | |
printTest ( layerToSearchTree (Node 1 (Node 3 (Node 5 Nil Nil) (Node 7 Nil Nil)) (Node 9 (Node 11 Nil Nil) Nil)) 2 == (Node 7 (Node 5 Nil Nil) (Node 11 Nil Nil)) ) | |
putStr ("maxSearchTreeSum\n\n") | |
printTest ( maxSearchTreeSum (Node 1 (Node 5 (Node 3 Nil Nil) (Node 7 Nil Nil)) Nil) == 15 ) | |
printTest ( maxSearchTreeSum (Node 1 (Node 5 (Node 42 Nil Nil) Nil) (Node 2 (Node 1 Nil Nil) (Node 6 Nil Nil))) == 42 ) | |
putStr ("Eigene Testfaelle - isSearchTree\n\n") | |
printTest ( isSearchTree (Node 5 Nil Nil) == True ) | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) Nil) == True ) | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) (Node 7 Nil Nil)) == True ) | |
printTest ( isSearchTree (Node 5 (Node 6 Nil Nil) (Node 7 Nil Nil)) == False ) | |
printTest ( isSearchTree (Node 5 (Node 5 Nil Nil) (Node 7 Nil Nil)) == False ) | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) (Node 7 (Node 6 Nil Nil) (Node 8 Nil Nil))) == True ) | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) (Node 7 (Node 2 Nil Nil) (Node 8 Nil Nil))) == False ) -- 2 auf der falschen seite des baumes | |
printTest ( isSearchTree (Node 5 (Node 3 Nil Nil) (Node 7 (Node 9 Nil Nil) (Node 8 Nil Nil))) == False ) | |
printTest ( isSearchTree ( Node 9 (Node 3 Nil Nil) Nil) == True ) | |
printTest ( isSearchTree ( Node 3 Nil (Node 9 Nil Nil)) == True ) | |
printTest ( isSearchTree ( Node 5 Nil (Node 3 Nil Nil)) == False ) | |
putStr ("Eigene Testfaelle - makeSearchTree\n\n") | |
printTest ( makeSearchTree (Node 4 (Node 7 (Node 1 Nil Nil) (Node 3 Nil Nil)) (Node 6 (Node 5 Nil Nil) (Node 2 Nil Nil))) == (Node 4 (Node 2 (Node 1 Nil Nil) (Node 3 Nil Nil)) (Node 6 (Node 5 Nil Nil) (Node 7 Nil Nil))) ) | |
printTest ( makeSearchTree (Node 4 (Node 2 (Node 1 Nil Nil) (Node 3 Nil Nil)) (Node 6 (Node 5 Nil Nil) (Node 7 Nil Nil))) == (Node 4 (Node 2 (Node 1 Nil Nil) (Node 3 Nil Nil)) (Node 6 (Node 5 Nil Nil) (Node 7 Nil Nil))) ) | |
printTest ( makeSearchTree (Node 4 (Node 4 (Node 6 (Node 9 Nil Nil) Nil) (Node 8 Nil Nil)) (Node 6 (Node 1 (Node 2 Nil Nil) Nil) (Node 8 Nil Nil))) == (Node 6 (Node 2 (Node 1 Nil Nil) (Node 4 Nil Nil)) (Node 9 (Node 8 Nil Nil) Nil)) ) | |
putStr ("Eigene Testfaelle - Hilfsfunktion elementsOfLayer\n\n") | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) (-1) 0 == [] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 0 0 == [6] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 1 0 == [3,9] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 2 0 == [2,5,8,11] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 3 0 == [1,4,7,10] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 4 0 == [] ) | |
printTest ( elementsOfLayer ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 5 0 == [] ) | |
putStr ("Eigene Testfaelle - layerToSearchTree") | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) (-1) == Nil ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 0 == (Node 6 Nil Nil) ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 1 == (Node 9 (Node 3 Nil Nil) Nil) ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 2 == (Node 8 (Node 5 (Node 2 Nil Nil ) Nil) (Node 11 Nil Nil) ) ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 3 == (Node 7 (Node 4 (Node 1 Nil Nil) Nil) (Node 10 Nil Nil) ) ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 4 == Nil ) | |
printTest ( layerToSearchTree ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil)) ) 20 == Nil ) | |
putStr ("Eigene Testfaelle maxSearchTreeSum\n\n") | |
putStr ("Gueltige Suchbaeume\n\n") | |
printTest ( maxSearchTreeSum ( Node 6 (Node 3 (Node 2 (Node 1 Nil Nil) Nil) (Node 5 (Node 4 Nil Nil) Nil)) (Node 9 (Node 8 (Node 7 Nil Nil) Nil) (Node 11 (Node 10 Nil Nil) Nil))) == 66 ) | |
printTest ( maxSearchTreeSum ( Node 6 Nil Nil ) == 6 ) | |
printTest ( maxSearchTreeSum ( Node 9 (Node 3 Nil Nil) Nil) == 12 ) | |
printTest ( maxSearchTreeSum ( Node 3 Nil (Node 9 Nil Nil)) == 12 ) | |
printTest ( maxSearchTreeSum ( Node 8 (Node 5 (Node 2 Nil Nil ) Nil) (Node 11 Nil Nil) ) == 26 ) | |
printTest ( maxSearchTreeSum ( Node 7 (Node 4 (Node 1 Nil Nil) Nil) (Node 10 Nil Nil) ) == 22 ) | |
printTest ( maxSearchTreeSum ( Nil ) == 0 ) | |
putStr ("Gueltige Sub-Suchbaeume") | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 1 Nil Nil) (Node 3 (Node 1 Nil Nil) (Node 8 (Node 7 (Node 6 Nil Nil) Nil ) ( Node 20 Nil Nil ))) ) ) Nil) == 45 ) | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 1 Nil Nil) (Node 3 Nil (Node 8 (Node 7 (Node 6 Nil Nil) Nil ) ( Node 20 Nil Nil ))) ) ) Nil) == 47 ) | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 46 Nil Nil) (Node 3 (Node 1 Nil Nil) (Node 8 (Node 7 (Node 6 Nil Nil) Nil ) ( Node 20 Nil Nil ))) ) ) Nil) == 46 ) | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 43 Nil Nil) (Node 3 (Node 1 Nil Nil) (Node 8 (Node 7 (Node 6 Nil Nil) Nil ) ( Node 20 Nil Nil ))) ) ) Nil) == 45 ) | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 43 Nil Nil) (Node (-3)(Node (-1) Nil Nil) (Node 8 (Node (-7) (Node 6 Nil Nil) Nil ) ( Node 20 Nil Nil ))) ) ) Nil) == 43 ) | |
printTest ( maxSearchTreeSum ( Node 1 (Node 3 Nil (Node 2 (Node 43 Nil Nil) (Node (-3)(Node (-1) Nil Nil) (Node 8 (Node (-7) (Node 6 Nil Nil) Nil ) ( Node 80 Nil Nil ))) ) ) Nil) == 80 ) | |
putStr ("Korrektes Verhalten bei negativen zahlen\n\n") | |
printTest ( maxSearchTreeSum ( Node (-10) (Node (-20) Nil Nil) (Node (-8) Nil Nil) ) == 0 ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment