-
Notifications
You must be signed in to change notification settings - Fork 0
/
pattern_matching_test.go
121 lines (108 loc) · 3.2 KB
/
pattern_matching_test.go
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package pattern_matching
import (
"testing"
)
func TestWordPatternI290LeetCode(t *testing.T) {
if IsWordPattern290LeetCode("abba", "dog cat cat dog") != true {
t.Error("pattern matching for abba & 'dog cat cat dog' failed")
return
}
if IsWordPattern290LeetCode("abba", "dog cat cat fish") != false {
t.Error("pattern matching for abba & 'dog cat cat fish' failed")
return
}
}
func TestWordPatternII291LeetCode(t *testing.T) {
if IsWordPatternII290LeetCode("abba", "redblueredblue") != false {
t.Error("pattern matching for abba & redblueredblue failed")
return
}
if IsWordPatternII290LeetCode("abba", "redbluebluered") != true {
t.Error("pattern matching for abba & redblueredblue failed")
return
}
if IsWordPatternII290LeetCode("aaaa", "asdasdasdasd") != true {
t.Error("pattern matching for abba & redblueredblue failed")
return
}
if IsWordPatternII290LeetCode("aabb", "xyzabcxzyabc") != false {
t.Error("pattern matching for abba & redblueredblue failed")
return
}
}
func TestIsWildCardMatching(t *testing.T) {
if IsWildCardMatching("aa", "a") != false {
t.Error("wildcard matching failed for 'aa' & a")
return
}
if IsWildCardMatching("aa", "aa") != true {
t.Error("wildcard matching failed for 'aa' & 'aa'")
return
}
if IsWildCardMatching("aaa", "aa") != false {
t.Error("wildcard matching failed for 'aaa' & 'aa'")
return
}
if IsWildCardMatching("aa", "*") != true {
t.Error("wildcard matching failed for 'aa' & '*'")
return
}
if IsWildCardMatching("aa", "a*") != true {
t.Error("wildcard matching failed for 'aa' & 'a*'")
return
}
if IsWildCardMatching("aa", "?a") != true {
t.Error("wildcard matching failed for 'aa' & '?a'")
return
}
if IsWildCardMatching("aab", "c*a*b") != false {
t.Error("wildcard matching failed for 'aab' & 'c*a*b'")
return
}
if IsWildCardMatching("abc", "a******b*********c") != true {
t.Error("wildcard matching failed for 'abc' & 'a******b*********c'")
return
}
}
func TestIsRegularExpressionMatch(t *testing.T) {
if IsRegularExpressionMatch("aa", "a") == true {
t.Error("IsRegularExpressionMatching aa & a failed")
return
}
//fmt.Println("aa & a done")
if IsRegularExpressionMatch("aa", "aa") == false {
t.Error("IsRegularExpressionMatching aa & aa failed")
return
}
//fmt.Println("aa & aa done")
if IsRegularExpressionMatch("aaa", "aa") == true {
t.Error("IsRegularExpressionMatching aaa & aa failed")
return
}
//fmt.Println("aaa & aa done")
if IsRegularExpressionMatch("aa", "a*") == false {
t.Error("IsRegularExpressionMatching aa & a* failed")
return
}
//fmt.Println("aa & a* done")
if IsRegularExpressionMatch("aa", ".*") == false {
t.Error("IsRegularExpressionMatching aa & .* failed")
return
}
//fmt.Println("aa & .* done")
if IsRegularExpressionMatch("ab", ".*") == false {
t.Error("IsRegularExpressionMatching ab & .* failed")
return
}
//fmt.Println("ab & .* done")
if IsRegularExpressionMatch("aab", "c*a*b") == false {
t.Error("IsRegularExpressionMatching aab & c*a*b failed")
return
}
//fmt.Println("aab & c*a*b* done")
if IsRegularExpressionMatch("aaa", "a.a") == false {
t.Error("IsRegularExpressionMatching aaa & a.a failed")
return
}
//fmt.Println("aaa & a.a done")
}