-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathElimina_aisladas_Spec.hs
55 lines (51 loc) · 1.82 KB
/
Elimina_aisladas_Spec.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
module Elimina_aisladas_Spec (main, spec) where
import Elimina_aisladas
import Test.Hspec
import Test.QuickCheck
main :: IO ()
main = hspec spec
specG :: (Char -> String -> String) -> Spec
specG eliminaAisladas = do
it "e1" $
eliminaAisladas 'X' "" `shouldBe` ""
it "e2" $
eliminaAisladas 'X' "X" `shouldBe` ""
it "e3" $
eliminaAisladas 'X' "XX" `shouldBe` "XX"
it "e4" $
eliminaAisladas 'X' "XXX" `shouldBe` "XXX"
it "e5" $
eliminaAisladas 'X' "abcd" `shouldBe` "abcd"
it "e6" $
eliminaAisladas 'X' "Xabcd" `shouldBe` "abcd"
it "e7" $
eliminaAisladas 'X' "XXabcd" `shouldBe` "XXabcd"
it "e8" $
eliminaAisladas 'X' "XXXabcd" `shouldBe` "XXXabcd"
it "e9" $
eliminaAisladas 'X' "abcdX" `shouldBe` "abcd"
it "e10" $
eliminaAisladas 'X' "abcdXX" `shouldBe` "abcdXX"
it "e11" $
eliminaAisladas 'X' "abcdXXX" `shouldBe` "abcdXXX"
it "e12" $
eliminaAisladas 'X' "abXcd" `shouldBe` "abcd"
it "e13" $
eliminaAisladas 'X' "abXXcd" `shouldBe` "abXXcd"
it "e14" $
eliminaAisladas 'X' "abXXXcd" `shouldBe` "abXXXcd"
it "e15" $
eliminaAisladas 'X' "XabXcdX" `shouldBe` "abcd"
it "e16" $
eliminaAisladas 'X' "XXabXXcdXX" `shouldBe` "XXabXXcdXX"
it "e17" $
eliminaAisladas 'X' "XXXabXXXcdXXX" `shouldBe` "XXXabXXXcdXXX"
it "e18" $
eliminaAisladas 'X' "XabXXcdXeXXXfXx" `shouldBe` "abXXcdeXXXfx"
spec :: Spec
spec = do
describe "def. 1" $ specG eliminaAisladas1
describe "def. 2" $ specG eliminaAisladas2
describe "def. 3" $ specG eliminaAisladas3
describe "def. 4" $ specG eliminaAisladas4
describe "equivalencia" $ it "p1" $ property prop_eliminaAisladas