diff --git a/src/Aufgabe1.hs b/src/Aufgabe1.hs index 0e0a378..091f61e 100644 --- a/src/Aufgabe1.hs +++ b/src/Aufgabe1.hs @@ -97,7 +97,7 @@ getAdressM ds = do return (Adress name street pcode city) getPublicM :: [Datum] -> Maybe Public -getPublicM ds = undefined +getPublicM ds = getName ds >>= \name -> return (Public name (getAge ds) (getEmail ds)) -- Implementieren Sie nun zwei Funktionen `getAdressA` und `getPublicDataA`, die das gleiche tun, diff --git a/src/Aufgabe1.lhs b/src/Aufgabe1.lhs index 59b71ec..1b969bc 100644 --- a/src/Aufgabe1.lhs +++ b/src/Aufgabe1.lhs @@ -97,7 +97,7 @@ zurück. > return (Adress name street pcode city) > getPublicM :: [Datum] -> Maybe Public -> getPublicM ds = undefined +> getPublicM ds = getName ds >>= \name -> return (Public name (getAge ds) (getEmail ds)) Implementieren Sie nun zwei Funktionen `getAdressA` und `getPublicDataA`, die das gleiche tun, diff --git a/src/Aufgabe3.hs b/src/Aufgabe3.hs index 94eac5a..a1b89a9 100644 --- a/src/Aufgabe3.hs +++ b/src/Aufgabe3.hs @@ -24,7 +24,7 @@ berechnungMitEingabe x y z w = undefined -- Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt. nBesteEingaben :: Int -> Double -> [(Double,(Double,Double,Double,Double))] -nBesteEingaben n d = take n $ sortOn (undefined) $ undefined +nBesteEingaben n d = undefined -- Beginne mit: take n $ sortOn (undefined) $ undefined where range = [(-10),(-(10-d))..10] result = show $ nBesteEingaben 10 1 diff --git a/src/Aufgabe3.lhs b/src/Aufgabe3.lhs index 071bb02..0f1bb17 100644 --- a/src/Aufgabe3.lhs +++ b/src/Aufgabe3.lhs @@ -24,7 +24,7 @@ Definieren mithilfe von `berechnungMitEingabe` eine Funktion `nBesteEingaben`, w Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt. > nBesteEingaben :: Int -> Double -> [(Double,(Double,Double,Double,Double))] -> nBesteEingaben n d = take n $ sortOn (undefined) $ undefined +> nBesteEingaben n d = undefined --Beginne mit: take n $ sortOn (undefined) $ undefined > where range = [(-10),(-(10-d))..10] > result = show $ nBesteEingaben 10 1 diff --git a/src/Aufgabe4.hs b/src/Aufgabe4.hs index 1de1ba6..3135ac8 100644 --- a/src/Aufgabe4.hs +++ b/src/Aufgabe4.hs @@ -43,25 +43,16 @@ data Landname = Frankreich data Land = Land Landname [Landname] deriving (Show,Eq) -defaultMap = [ Land Frankreich [Spanien, Italien, Schweiz, Deutschland, Luxemburg] +defaultMap = [ Land Frankreich [Schweiz, Deutschland, Luxemburg] , Land Deutschland [Frankreich, Schweiz, Oesterreich, Luxemburg, Polen, Niederlande, Belgien, Tschechien] , Land Niederlande [Deutschland, Belgien] - , Land Grossbritannien [Irland] , Land Belgien [Frankreich, Deutschland, Luxemburg] - , Land Polen [Slowakei, Tschechien, Deutschland] - , Land Oesterreich [Italien, Schweiz, Deutschland, Slowakei, Liechtenstein, Slowenien, Ungarn, Tschechien] - , Land Ungarn [Oesterreich, Slowenien, Slowakei,Deutschland ] - , Land Island [Schweiz] - , Land Schweiz [Frankreich, Italien, Oesterreich, Deutschland] + , Land Polen [Tschechien, Deutschland] + , Land Oesterreich [Schweiz, Deutschland, Tschechien] + , Land Schweiz [Frankreich, Oesterreich, Deutschland] + , Land Island [] , Land Luxemburg [Frankreich, Deutschland] - , Land Irland [Grossbritannien] - , Land Italien [Frankreich, Schweiz, Oesterreich, Slowenien ] - , Land Portugal [Spanien] - , Land Spanien [Frankreich, Spanien] - , Land Slowenien [Italien, Oesterreich, Ungarn ] - , Land Liechtenstein [Schweiz, Oesterreich] - , Land Slowakei [Oesterreich, Ungarn, Tschechien] - , Land Tschechien [Oesterreich, Slowakei, Polen, Deutschland ] + , Land Tschechien [Oesterreich, Polen, Deutschland ] ] -- Schreiben Sie eine Funktion `gültig :: (Farbe,Land) -> [(Farbe, Land)] -> Bool`, diff --git a/src/Hui.hs b/src/Hui.hs index d564ca2..c978926 100644 --- a/src/Hui.hs +++ b/src/Hui.hs @@ -2,4 +2,4 @@ module Hui ( komplizierteFunktion ) where -komplizierteFunktion x y z w = w * exp(x*y - z) \ No newline at end of file +komplizierteFunktion x y z w = 1/exp (abs (x- 2.3))^2 * sin( (y- 2.9))^2+cos( (0.4*z- 2.6))^5 *(2*z)^2-(2*z- 2.6)^2+ (25-log(abs (w- 0.6)+1)) \ No newline at end of file diff --git a/test/Aufgabe3-Spec.hs b/test/Aufgabe3-Spec.hs index dc5c5ea..2d8be12 100644 --- a/test/Aufgabe3-Spec.hs +++ b/test/Aufgabe3-Spec.hs @@ -5,7 +5,16 @@ import Test.Framework.Providers.HUnit (testCase) import Test.Framework.Runners.Console (defaultMain) import Test.HUnit +testData = [(72.47984345237802,(2.0,-5.0,7.0,1.0)),(72.4760070010783,(2.0,-8.0,7.0,1.0)),(72.46191340940976,(2.0,-2.0,7.0,1.0)),(72.42364516911707,(2.0,1.0,7.0,1.0)),(72.40259767762782,(2.0,8.0,7.0,1.0)),(72.36808715758247,(2.0,4.0,7.0,1.0)),(72.34631205975349,(2.0,-5.0,7.0,0.0)),(72.34247560845377,(2.0,-8.0,7.0,0.0)),(72.34112944881682,(2.0,5.0,7.0,1.0)),(72.32838201678523,(2.0,-2.0,7.0,0.0))] +{- TEST CASES-} + +nBesteEingabeTest = testCase "Teste `nBesteEingabe`" + $ assertEqual "Teste `nBesteEingabe 10 1` == hard coded test data " (testData) + $ nBesteEingaben 10 1 + +tests = [nBesteEingabeTest] + main :: IO () -main = putStrLn $ "Für Aufgabe 3 liegen noch keine Tests vor" \ No newline at end of file +main = defaultMain tests \ No newline at end of file diff --git a/test/Aufgabe4-Spec.hs b/test/Aufgabe4-Spec.hs index 3e5fa30..5aacab3 100644 --- a/test/Aufgabe4-Spec.hs +++ b/test/Aufgabe4-Spec.hs @@ -5,12 +5,18 @@ import Test.Framework.Runners.Console (defaultMain) import Test.HUnit +testData = [(Rot,Land Frankreich [Schweiz,Deutschland,Luxemburg]),(Gruen,Land Deutschland [Frankreich,Schweiz,Oesterreich,Luxemburg,Polen,Niederlande,Belgien,Tschechien]),(Rot,Land Niederlande [Deutschland,Belgien]),(Gelb,Land Belgien [Frankreich,Deutschland,Luxemburg]),(Rot,Land Polen [Tschechien,Deutschland]),(Rot,Land Oesterreich [Schweiz,Deutschland,Tschechien]),(Gelb,Land Schweiz [Frankreich,Oesterreich,Deutschland]),(Rot,Land Island []),(Blau,Land Luxemburg [Frankreich,Deutschland]),(Gelb,Land Tschechien [Oesterreich,Polen,Deutschland])] -einfaerbenATest = testCase "Teste einfaerbenA" - $ assertEqual "take 2 `einfaerbenM defaultMap` und take 2 `einfaerbenA defaultMap` sollten die gleichen Färbungen ausgeben" (take 2 $ einfaerbenM defaultMap) - $ (take 2 $ einfaerbenA defaultMap) -tests = [einfaerbenATest] +einfaerbenMTest = testCase "Teste `einfaerbenM`" + $ assertEqual "Teste `head einfaerbenM defaultMap` == hard coded test data" (testData) + $ (head $ einfaerbenM defaultMap) + +einfaerbenLCTest = testCase "Teste `einfaerbenLC`" + $ assertEqual "Teste `head einfaerbenLC defaultMap` == hard coded test data" (testData) + $ (head $ einfaerbenLC defaultMap) + +tests = [einfaerbenMTest,einfaerbenLCTest] main :: IO () main = defaultMain tests