-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathleetcode_test.go
99 lines (81 loc) · 3.12 KB
/
leetcode_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
package util
import (
"testing"
"gotest.tools/assert"
)
func TestMaxLengthOfUniqueSubslice(t *testing.T) {
{
s1 := "abcdee"
assert.Assert(t, MaxLengthOfUniqueSubstring(s1) == 5)
}
{
s2 := "abcdaef"
assert.Assert(t, MaxLengthOfUniqueSubstring(s2) == 6)
}
}
func TestManacherFallback(t *testing.T) {
assert.Assert(t, ManacherFallback("") == "")
assert.Assert(t, ManacherFallback("abcd") == "a")
assert.Assert(t, ManacherFallback("babcd") == "bab")
assert.Assert(t, ManacherFallback("cbabcd") == "cbabc")
assert.Assert(t, ManacherFallback("cbaabcd") == "cbaabc")
assert.Assert(t, ManacherWithFallback("") == "")
assert.Assert(t, ManacherWithFallback("abcd") == "a")
assert.Assert(t, ManacherWithFallback("babcd") == "bab")
assert.Assert(t, ManacherWithFallback("cbabcd") == "cbabc")
assert.Assert(t, ManacherWithFallback("cbaabcd") == "cbaabc")
}
func TestReverseDigits(t *testing.T) {
assert.Assert(t, ReverseDigits(123) == 321)
assert.Assert(t, ReverseDigits(-123) == -321)
}
func TestIsPalindrome(t *testing.T) {
assert.Assert(t, IsPalindrome(121))
assert.Assert(t, IsPalindrome(1122332211))
assert.Assert(t, !IsPalindrome(123))
assert.Assert(t, IsPalindrome(0))
}
func TestPatternMatchAllRec(t *testing.T) {
assert.Assert(t, !PatternMatchAllRec("ss", "s"))
assert.Assert(t, PatternMatchAllRec("ss", "s*"))
assert.Assert(t, PatternMatchAllRec("ss", "s*s"))
assert.Assert(t, PatternMatchAllRec("ss", ".*s"))
assert.Assert(t, PatternMatchAllRec("ss", ".*"))
assert.Assert(t, PatternMatchAllRec("aab", "c*a*b"))
assert.Assert(t, !PatternMatchAllRec("mississippi", "mis*is*p*."))
assert.Assert(t, PatternMatchAllRec("", ".*"))
assert.Assert(t, PatternMatchAllRec("", ".*a*"))
}
func TestPatternMatchAllTD(t *testing.T) {
assert.Assert(t, !PatternMatchAllTD("ss", "s"))
assert.Assert(t, PatternMatchAllTD("ss", "s*"))
assert.Assert(t, PatternMatchAllTD("ss", "s*s"))
assert.Assert(t, PatternMatchAllTD("ss", ".*s"))
assert.Assert(t, PatternMatchAllTD("ss", ".*"))
assert.Assert(t, PatternMatchAllTD("aab", "c*a*b"))
assert.Assert(t, !PatternMatchAllTD("mississippi", "mis*is*p*."))
assert.Assert(t, PatternMatchAllTD("", ".*a*"))
}
func TestPatternMatchAllBU(t *testing.T) {
assert.Assert(t, !PatternMatchAllBU("ss", "s"))
assert.Assert(t, PatternMatchAllBU("ss", "s*"))
assert.Assert(t, PatternMatchAllBU("ss", "s*s"))
assert.Assert(t, PatternMatchAllBU("ss", ".*s"))
assert.Assert(t, PatternMatchAllBU("ss", ".*"))
assert.Assert(t, PatternMatchAllBU("aab", "c*a*b"))
assert.Assert(t, !PatternMatchAllBU("mississippi", "mis*is*p*."))
assert.Assert(t, PatternMatchAllBU("", ".*a*"))
}
func TestFindOnceNum(t *testing.T) {
assert.Assert(t, FindOnceNum([]int{102, 101, 102}) == 101)
assert.Assert(t, FindOnceNum([]int{999, 999, 102}) == 102)
}
func TestMinCoveringSubstr(t *testing.T) {
assert.Assert(t, MinCoveringSubstr("ADOBECODEBANC", "ABC") == "BANC")
assert.Assert(t, MinCoveringSubstr("ADOBECODEBAC", "ABC") == "BAC")
assert.Assert(t, MinCoveringSubstr("", "ABC") == "")
}
func TestLongestConsecutive(t *testing.T) {
n, len := LongestConsecutive([]int{100, 4, 200, 1, 3, 2})
assert.Assert(t, n == 1 && len == 4)
}