fixes tests, adds a more adequate komplizierteFunktion to A3
This commit is contained in:
parent
ab40846aae
commit
5c0c93b38c
@ -97,7 +97,7 @@ getAdressM ds = do
|
|||||||
return (Adress name street pcode city)
|
return (Adress name street pcode city)
|
||||||
|
|
||||||
getPublicM :: [Datum] -> Maybe Public
|
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,
|
-- Implementieren Sie nun zwei Funktionen `getAdressA` und `getPublicDataA`, die das gleiche tun,
|
||||||
|
@ -97,7 +97,7 @@ zurück.
|
|||||||
> return (Adress name street pcode city)
|
> return (Adress name street pcode city)
|
||||||
|
|
||||||
> getPublicM :: [Datum] -> Maybe Public
|
> 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,
|
Implementieren Sie nun zwei Funktionen `getAdressA` und `getPublicDataA`, die das gleiche tun,
|
||||||
|
@ -24,7 +24,7 @@ berechnungMitEingabe x y z w = undefined
|
|||||||
-- Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt.
|
-- Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt.
|
||||||
|
|
||||||
nBesteEingaben :: Int -> Double -> [(Double,(Double,Double,Double,Double))]
|
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]
|
where range = [(-10),(-(10-d))..10]
|
||||||
|
|
||||||
result = show $ nBesteEingaben 10 1
|
result = show $ nBesteEingaben 10 1
|
||||||
|
@ -24,7 +24,7 @@ Definieren mithilfe von `berechnungMitEingabe` eine Funktion `nBesteEingaben`, w
|
|||||||
Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt.
|
Eingabeparameter-Tupel zusammen mit dem möglichst maximalen Ergebnis zurückgibt.
|
||||||
|
|
||||||
> nBesteEingaben :: Int -> Double -> [(Double,(Double,Double,Double,Double))]
|
> 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]
|
> where range = [(-10),(-(10-d))..10]
|
||||||
|
|
||||||
> result = show $ nBesteEingaben 10 1
|
> result = show $ nBesteEingaben 10 1
|
||||||
|
@ -43,25 +43,16 @@ data Landname = Frankreich
|
|||||||
data Land = Land Landname [Landname]
|
data Land = Land Landname [Landname]
|
||||||
deriving (Show,Eq)
|
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 Deutschland [Frankreich, Schweiz, Oesterreich, Luxemburg, Polen, Niederlande, Belgien, Tschechien]
|
||||||
, Land Niederlande [Deutschland, Belgien]
|
, Land Niederlande [Deutschland, Belgien]
|
||||||
, Land Grossbritannien [Irland]
|
|
||||||
, Land Belgien [Frankreich, Deutschland, Luxemburg]
|
, Land Belgien [Frankreich, Deutschland, Luxemburg]
|
||||||
, Land Polen [Slowakei, Tschechien, Deutschland]
|
, Land Polen [Tschechien, Deutschland]
|
||||||
, Land Oesterreich [Italien, Schweiz, Deutschland, Slowakei, Liechtenstein, Slowenien, Ungarn, Tschechien]
|
, Land Oesterreich [Schweiz, Deutschland, Tschechien]
|
||||||
, Land Ungarn [Oesterreich, Slowenien, Slowakei,Deutschland ]
|
, Land Schweiz [Frankreich, Oesterreich, Deutschland]
|
||||||
, Land Island [Schweiz]
|
, Land Island []
|
||||||
, Land Schweiz [Frankreich, Italien, Oesterreich, Deutschland]
|
|
||||||
, Land Luxemburg [Frankreich, Deutschland]
|
, Land Luxemburg [Frankreich, Deutschland]
|
||||||
, Land Irland [Grossbritannien]
|
, Land Tschechien [Oesterreich, Polen, Deutschland ]
|
||||||
, 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 ]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
-- Schreiben Sie eine Funktion `gültig :: (Farbe,Land) -> [(Farbe, Land)] -> Bool`,
|
-- Schreiben Sie eine Funktion `gültig :: (Farbe,Land) -> [(Farbe, Land)] -> Bool`,
|
||||||
|
@ -2,4 +2,4 @@ module Hui
|
|||||||
( komplizierteFunktion
|
( komplizierteFunktion
|
||||||
) where
|
) where
|
||||||
|
|
||||||
komplizierteFunktion x y z w = w * exp(x*y - z)
|
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))
|
@ -5,7 +5,16 @@ import Test.Framework.Providers.HUnit (testCase)
|
|||||||
import Test.Framework.Runners.Console (defaultMain)
|
import Test.Framework.Runners.Console (defaultMain)
|
||||||
import Test.HUnit
|
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 :: IO ()
|
||||||
main = putStrLn $ "Für Aufgabe 3 liegen noch keine Tests vor"
|
main = defaultMain tests
|
@ -5,12 +5,18 @@ import Test.Framework.Runners.Console (defaultMain)
|
|||||||
|
|
||||||
import Test.HUnit
|
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 :: IO ()
|
||||||
main = defaultMain tests
|
main = defaultMain tests
|
||||||
|
Loading…
Reference in New Issue
Block a user