Tests Aufgabe 4
Results 1 to 3 of 3

Thread: Tests Aufgabe 4

  1. #1

    Title
    Veteran
    Join Date
    Apr 2016
    Posts
    15
    Thanks
    5
    Thanked 8 Times in 5 Posts

    Tests Aufgabe 4

    HOWTO:
    1. Code in ein .hs-file im gleichen Verzeichnis wie Aufgabe4.lhs
    2. in Aufgabe4.lhs muss die 1. Zeile "> module Aufgabe4 where" lauten
    3. in hugs "load <testfilename>"
    4. "main" kommando absetzen
    5. Tests für Aufgabe 1 schreiben
    6. erweitertes Testfile hier hochstellen (danke :D )

    Code:
    
    import Aufgabe4
    import Test.HUnit hiding (State)
    
    
    import Control.Exception
    import Control.Monad
    
    
    -- Damit wir auch auf Exception Testen können
    
    
    assertException ex action
      = handleJust isWanted (const $ return ()) $ do
        action
        assertFailure $ "Expected exception: " ++ show ex
      where isWanted = guard . (== ex)
    
    
    assertError ex f =
        TestCase $ assertException (ErrorCall ex) $ evaluate f
    
    
    main = runTestTT $ TestList [test2]
    
    
    a1 = K True :: Ausdruck
    a7 = K False :: Ausdruck
    v1 = Var N1 :: Variable -- True
    v2 = Var N2 :: Variable -- False
    a2 = V v1 :: Ausdruck -- True
    a3 = Nicht a1 :: Ausdruck -- False
    a8 = Nicht a3 :: Ausdruck -- True
    a4 = Und a1 a3 :: Ausdruck -- False
    a9 = Und a1 a8 :: Ausdruck -- True
    a5 = Oder a1 a3 :: Ausdruck -- True
    a10 = Oder a9 a4 :: Ausdruck -- True
    a6 = V v2 :: Ausdruck -- False
    a11 = Nicht (Und a1 a3) :: Ausdruck --True
    a12 = Und a11 a3 :: Ausdruck --False
    
    
    b1 :: Belegung
    b1 (Var N1)        = True
    b1 (Var N2)        = False
    b1 (Var N3)        = False
    
    
    
    
    test2 = TestLabel "Test 4.2" $ ( 
      TestList [
        --                 Test name        Erwartetes    Auszufuehrendes
        --                             Ergebnis    Kommando
        TestCase $ assertEqual     "4.2.0"           True         (auswerten a1 b1), --K
        TestCase $ assertEqual     "4.2.1"           False         (auswerten a7 b1),
        TestCase $ assertEqual     "4.2.2"           True         (auswerten a2 b1), --V
        TestCase $ assertEqual     "4.2.3"           False         (auswerten a6 b1),
        TestCase $ assertEqual     "4.2.4"           True         (auswerten a8 b1), --Ni
        TestCase $ assertEqual     "4.2.5"           False         (auswerten a3 b1),
        TestCase $ assertEqual     "4.2.6"           True         (auswerten a9 b1), --Und
        TestCase $ assertEqual     "4.2.7"           False         (auswerten a4 b1),
        TestCase $ assertEqual     "4.2.8"           True         (auswerten a5 b1), --Oder
        TestCase $ assertEqual     "4.2.9"           True         (auswerten a10 b1),
        TestCase $ assertEqual     "4.2.10"           True         (auswerten a11 b1), --misc
        TestCase $ assertEqual     "4.2.11"           False         (auswerten a12 b1)
      ])

  2. The Following 3 Users Say Thank You to dzohenzi For This Useful Post:


  3. #2

    Title
    Veteran
    Join Date
    Apr 2016
    Posts
    2
    Thanks
    1
    Thanked 4 Times in 2 Posts
    Nachdem du bis jetzt unser alleiniger Held bist, hab ich das Testfile mal erweitert mit Aufgabe 1.
    Falls die Testcases nicht korrekt sind, bitte Bescheid geben bzw. ausbessern.
    Code:
    import Aufgabe4
    import Test.HUnit hiding (State)
    
    
    
    
    import Control.Exception
    import Control.Monad
    
    
    
    
    -- Damit wir auch auf Exception Testen können
    
    
    
    
    assertException ex action
      = handleJust isWanted (const $ return ()) $ do
        action
        assertFailure $ "Expected exception: " ++ show ex
      where isWanted = guard . (== ex)
    
    
    
    
    assertError ex f =
        TestCase $ assertException (ErrorCall ex) $ evaluate f
    
    
    
    
    main = runTestTT $ TestList [test1, test2]
    
    
    
    
    a = 10::Nat
    b = 15::Nat
    c = 1349::Nat
    
    
    test1 = TestLabel "Test 4.1" $ ( 
      TestList [
        --                 Test name        Erwartetes    Auszufuehrendes
        --                             Ergebnis    Kommando
        TestCase $ assertEqual     "4.1.0"           "10101000101"         (show c),
        TestCase $ assertEqual     "4.1.1"           "11001"         (show (a+b)),
        TestCase $ assertEqual     "4.1.2"           "101"         (show (b-a)),
        TestCase $ assertEqual     "4.1.3"           "0"         (show (a-b)),
        TestCase $ assertEqual     "4.1.4"           "10010110"         (show (a*b)),
        TestCase $ assertEqual     "4.1.5"           "[1010,1011,1100,1101,1110,1111]"       (show [a..b]),
        TestCase $ assertEqual     "4.1.6"           []      ([b..a]),
        TestCase $ assertEqual     "4.1.7"           "10101000101"         (show (abs c)),
        TestCase $ assertEqual     "4.1.8"           0         (signum 0),
        TestCase $ assertEqual     "4.1.9"           1         (signum c),
        TestCase $ assertEqual     "4.1.10"           True         (Null == Null),
        TestCase $ assertEqual     "4.1.11"           False         (Null == (N Null)),
        TestCase $ assertEqual     "4.1.12"           True         ((N Null) == (N Null)),
        TestCase $ assertEqual     "4.1.13"           True         (Null == (0::Nat)),
        TestCase $ assertEqual     "4.1.14"           True         ((N $ N $ N Null) == (3::Nat))
      ])
    
    
    
    
    a1 = K True :: Ausdruck
    a7 = K False :: Ausdruck
    v1 = Var N1 :: Variable -- True
    v2 = Var N2 :: Variable -- False
    a2 = V v1 :: Ausdruck -- True
    a3 = Nicht a1 :: Ausdruck -- False
    a8 = Nicht a3 :: Ausdruck -- True
    a4 = Und a1 a3 :: Ausdruck -- False
    a9 = Und a1 a8 :: Ausdruck -- True
    a5 = Oder a1 a3 :: Ausdruck -- True
    a10 = Oder a9 a4 :: Ausdruck -- True
    a6 = V v2 :: Ausdruck -- False
    a11 = Nicht (Und a1 a3) :: Ausdruck --True
    a12 = Und a11 a3 :: Ausdruck --False
    
    
    
    
    b1 :: Belegung
    b1 (Var N1)        = True
    b1 (Var N2)        = False
    b1 (Var N3)        = False
    
    
    test2 = TestLabel "Test 4.2" $ ( 
      TestList [
        --                 Test name        Erwartetes    Auszufuehrendes
        --                                          Ergebnis                    Kommando
        TestCase $ assertEqual     "4.2.0"           True         (auswerten a1 b1), --K
        TestCase $ assertEqual     "4.2.1"           False         (auswerten a7 b1),
        TestCase $ assertEqual     "4.2.2"           True         (auswerten a2 b1), --V
        TestCase $ assertEqual     "4.2.3"           False         (auswerten a6 b1),
        TestCase $ assertEqual     "4.2.4"           True         (auswerten a8 b1), --Ni
        TestCase $ assertEqual     "4.2.5"           False         (auswerten a3 b1),
        TestCase $ assertEqual     "4.2.6"           True         (auswerten a9 b1), --Und
        TestCase $ assertEqual     "4.2.7"           False         (auswerten a4 b1),
        TestCase $ assertEqual     "4.2.8"           True         (auswerten a5 b1), --Oder
        TestCase $ assertEqual     "4.2.9"           True         (auswerten a10 b1),
        TestCase $ assertEqual     "4.2.10"           True         (auswerten a11 b1), --misc
        TestCase $ assertEqual     "4.2.11"           False         (auswerten a12 b1)
      ])

  4. The Following 3 Users Say Thank You to frutti For This Useful Post:


  5. #3

    Title
    Veteran
    Join Date
    Apr 2016
    Posts
    15
    Thanks
    5
    Thanked 8 Times in 5 Posts
    Dankeschön, freut mich!
    An alle anderen gilt: Der Club der Held_innen sucht noch Leute! schreibt doch nächstes mal ein paar tests

    Code:
    import Aufgabe4
    import Test.HUnit hiding (State)
    
    
    import Control.Exception
    import Control.Monad
    
    
    -- Damit wir auch auf Exception Testen können
    
    
    assertException ex action
      = handleJust isWanted (const $ return ()) $ do
        action
        assertFailure $ "Expected exception: " ++ show ex
      where isWanted = guard . (== ex)
    
    
    assertError ex f =
        TestCase $ assertException (ErrorCall ex) $ evaluate f
    
    
    main = runTestTT $ TestList [test1, test2]
    
    
    
    
    
    
    a = 10 :: Nat
    b = 15 :: Nat
    c = 1349 :: Nat
    
    
    test1 = TestLabel "Test 4.1" $ ( 
      TestList [
        --                      Test name        Erwartetes     Auszufuehrendes
        --                                        Ergebnis       Kommando
        TestCase $ assertEqual     "4.1.0"           "10101000101"         (show c),
        TestCase $ assertEqual     "4.1.1"           "11001"                (show (a+b)),
        TestCase $ assertEqual     "4.1.2"           "101"                  (show (b-a)),
        TestCase $ assertEqual     "4.1.3"           "0"                    (show (a-b)),
        TestCase $ assertEqual     "4.1.4"           "10010110"             (show (a*b)),
        TestCase $ assertEqual     "4.1.5"           "[1010,1011,1100,1101,1110,1111]"       (show [a..b]),
        TestCase $ assertEqual     "4.1.6"           []                     ([b..a]),
        TestCase $ assertEqual     "4.1.7"           "10101000101"          (show (abs c)),
        TestCase $ assertEqual     "4.1.8"           0                      (signum 0),
        TestCase $ assertEqual     "4.1.9"           1                      (signum c),
        TestCase $ assertEqual     "4.1.10"           True                  (Null == Null),
        TestCase $ assertEqual     "4.1.11"           False                 (Null == (N Null)),
        TestCase $ assertEqual     "4.1.12"           True                  ((N Null) == (N Null)),
        TestCase $ assertEqual     "4.1.13"           True                  (Null == (0::Nat)),
        TestCase $ assertEqual     "4.1.14"           True                  ((N $ N $ N Null) == (3::Nat)),
        TestCase $ assertEqual     "4.1.15"            EQ                    (compare a a),
        TestCase $ assertEqual     "4.1.16"            LT                    (compare Null b),
        TestCase $ assertEqual     "4.1.17"            LT                    (compare a b),
        TestCase $ assertEqual     "4.1.18"            GT                    (compare b a),
        TestCase $ assertEqual     "4.1.19"            EQ                    (compare Null Null)
      ])
    
    
    
    
    
    
    a1 = K True :: Ausdruck
    a7 = K False :: Ausdruck
    v1 = Var N1 :: Variable -- True
    v2 = Var N2 :: Variable -- False
    a2 = V v1 :: Ausdruck -- True
    a3 = Nicht a1 :: Ausdruck -- False
    a8 = Nicht a3 :: Ausdruck -- True
    a4 = Und a1 a3 :: Ausdruck -- False
    a9 = Und a1 a8 :: Ausdruck -- True
    a5 = Oder a1 a3 :: Ausdruck -- True
    a10 = Oder a9 a4 :: Ausdruck -- True
    a6 = V v2 :: Ausdruck -- False
    a11 = Nicht (Und a1 a3) :: Ausdruck --True
    a12 = Und a11 a3 :: Ausdruck --False
    
    
    b1 :: Belegung
    b1 (Var N1)     = True
    b1 (Var N2)     = False
    b1 (Var N3)     = False
    
    
    
    
    test2 = TestLabel "Test 4.2" $ ( 
      TestList [
        --          Test name       Erwartetes  Auszufuehrendes
        --                      Ergebnis    Kommando
        TestCase $ assertEqual  "4.2.0"         True        (auswerten a1 b1), --K
        TestCase $ assertEqual  "4.2.1"         False       (auswerten a7 b1),
        TestCase $ assertEqual  "4.2.2"         True        (auswerten a2 b1), --V
        TestCase $ assertEqual  "4.2.3"         False       (auswerten a6 b1),
        TestCase $ assertEqual  "4.2.4"         True        (auswerten a8 b1), --Ni
        TestCase $ assertEqual  "4.2.5"         False       (auswerten a3 b1),
        TestCase $ assertEqual  "4.2.6"         True        (auswerten a9 b1), --Und
        TestCase $ assertEqual  "4.2.7"         False       (auswerten a4 b1),
        TestCase $ assertEqual  "4.2.8"         True        (auswerten a5 b1), --Oder
        TestCase $ assertEqual  "4.2.9"         True        (auswerten a10 b1),
        TestCase $ assertEqual  "4.2.10"        True        (auswerten a11 b1), --misc
        TestCase $ assertEqual  "4.2.11"        False       (auswerten a12 b1)
      ])
    Attached Files Attached Files

  6. The Following 2 Users Say Thank You to dzohenzi For This Useful Post:


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •