Skip to content

Instantly share code, notes, and snippets.

@domdorn
Created November 22, 2009 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save domdorn/240602 to your computer and use it in GitHub Desktop.
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
#! 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