Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:pp:haskell:lab-hunit [2018/06/08 23:44] esimon [Przykłady] |
pl:dydaktyka:pp:haskell:lab-hunit [2018/06/11 22:00] esimon [Zadania] |
import Test.HUnit | import Test.HUnit |
| |
testSum = TestCase $ assertEqual "10 + 5 = 15" 15 (10 + 5) | |
| |
testProd = TestCase $ assertEqual "10 * 15" 150 (10 * 15) | fact 1 = 1 |
| fact n = n * fact (n - 1) |
| |
testPred = TestCase $ assertBool "10 > 5" (10 > 5) | testlist = TestList ["fact 1" ~: fact 1 ~?= 1 |
| , "fact 2" ~: fact 2 ~?= 2 |
testFailure = TestCase $ assertEqual "It will fail 10 + 2 = 15" (10 + 2) 15 | , "fact 3" ~: fact 3 ~?= 6 |
| , "fact 4" ~: fact 4 ~?= 24 |
testlist = TestList [TestLabel "testSum" testSum, | , "fact 5" ~: fact 5 ~?= 120 |
TestLabel "testPred" testPred, | |
TestLabel "testFailure" testFailure, | |
TestLabel "testProd" testProd | |
] | ] |
| |
runTestTT testlist | runTestTT testlist |
return () | return () |
| |
</code> | </code> |
===== HScpec ===== | ===== HScpec ===== |
| |
===== Zadania ===== | ===== Zadania ===== |
- Napisz testy jednostkowe dla implementacji drzewa binarnego z zajęć XX | - Przerób przykład z sekcji [[pl:dydaktyka:pp:haskell:lab-hunit#przyklady|Testy jednostkowe z HUnit/Przykłady]] z wykorzystaniem operatorów |
- XX | - Dla programu poniżej, który za zadanie ma odwracanie Stringa napisz testy sprawdzające czy funkcja działa poprawnie dla pustego napisu, dla napisu z dużymi literami (Szymon - nomyzS), dla stringów ze spacjami: "Ala ma kota" - "otak am alA" itp,: <code haskell>main = do |
| line <- getLine |
| if null line |
| then return () |
| else do |
| putStrLn $ reverseWords line |
| main |
| |
| reverseWords :: String -> String |
| reverseWords = unwords . map reverse . words</code> |
| - Napisz testy jednostkowe dla implementacji drzewa binarnego z zajęć [[pl:dydaktyka:pp:haskell:lab-monads-types|Monady i Typy]] dla każdej z funkcji. |
| |
| |