github.com/zhiqiangxu/util@v0.0.0-20230112053021-0a7aee056cd5/leetcode_test.go (about) 1 package util 2 3 import ( 4 "testing" 5 6 "gotest.tools/assert" 7 ) 8 9 func TestMaxLengthOfUniqueSubslice(t *testing.T) { 10 { 11 s1 := "abcdee" 12 13 assert.Assert(t, MaxLengthOfUniqueSubstring(s1) == 5) 14 } 15 16 { 17 s2 := "abcdaef" 18 19 assert.Assert(t, MaxLengthOfUniqueSubstring(s2) == 6) 20 } 21 } 22 23 func TestManacherFallback(t *testing.T) { 24 assert.Assert(t, ManacherFallback("") == "") 25 assert.Assert(t, ManacherFallback("abcd") == "a") 26 assert.Assert(t, ManacherFallback("babcd") == "bab") 27 assert.Assert(t, ManacherFallback("cbabcd") == "cbabc") 28 assert.Assert(t, ManacherFallback("cbaabcd") == "cbaabc") 29 30 assert.Assert(t, ManacherWithFallback("") == "") 31 assert.Assert(t, ManacherWithFallback("abcd") == "a") 32 assert.Assert(t, ManacherWithFallback("babcd") == "bab") 33 assert.Assert(t, ManacherWithFallback("cbabcd") == "cbabc") 34 assert.Assert(t, ManacherWithFallback("cbaabcd") == "cbaabc") 35 36 } 37 38 func TestReverseDigits(t *testing.T) { 39 assert.Assert(t, ReverseDigits(123) == 321) 40 assert.Assert(t, ReverseDigits(-123) == -321) 41 } 42 43 func TestIsPalindrome(t *testing.T) { 44 assert.Assert(t, IsPalindrome(121)) 45 assert.Assert(t, IsPalindrome(1122332211)) 46 assert.Assert(t, !IsPalindrome(123)) 47 assert.Assert(t, IsPalindrome(0)) 48 } 49 50 func TestPatternMatchAllRec(t *testing.T) { 51 assert.Assert(t, !PatternMatchAllRec("ss", "s")) 52 assert.Assert(t, PatternMatchAllRec("ss", "s*")) 53 assert.Assert(t, PatternMatchAllRec("ss", "s*s")) 54 assert.Assert(t, PatternMatchAllRec("ss", ".*s")) 55 assert.Assert(t, PatternMatchAllRec("ss", ".*")) 56 assert.Assert(t, PatternMatchAllRec("aab", "c*a*b")) 57 assert.Assert(t, !PatternMatchAllRec("mississippi", "mis*is*p*.")) 58 assert.Assert(t, PatternMatchAllRec("", ".*")) 59 assert.Assert(t, PatternMatchAllRec("", ".*a*")) 60 61 } 62 63 func TestPatternMatchAllTD(t *testing.T) { 64 assert.Assert(t, !PatternMatchAllTD("ss", "s")) 65 assert.Assert(t, PatternMatchAllTD("ss", "s*")) 66 assert.Assert(t, PatternMatchAllTD("ss", "s*s")) 67 assert.Assert(t, PatternMatchAllTD("ss", ".*s")) 68 assert.Assert(t, PatternMatchAllTD("ss", ".*")) 69 assert.Assert(t, PatternMatchAllTD("aab", "c*a*b")) 70 assert.Assert(t, !PatternMatchAllTD("mississippi", "mis*is*p*.")) 71 assert.Assert(t, PatternMatchAllTD("", ".*a*")) 72 } 73 74 func TestPatternMatchAllBU(t *testing.T) { 75 assert.Assert(t, !PatternMatchAllBU("ss", "s")) 76 assert.Assert(t, PatternMatchAllBU("ss", "s*")) 77 assert.Assert(t, PatternMatchAllBU("ss", "s*s")) 78 assert.Assert(t, PatternMatchAllBU("ss", ".*s")) 79 assert.Assert(t, PatternMatchAllBU("ss", ".*")) 80 assert.Assert(t, PatternMatchAllBU("aab", "c*a*b")) 81 assert.Assert(t, !PatternMatchAllBU("mississippi", "mis*is*p*.")) 82 assert.Assert(t, PatternMatchAllBU("", ".*a*")) 83 } 84 85 func TestFindOnceNum(t *testing.T) { 86 assert.Assert(t, FindOnceNum([]int{102, 101, 102}) == 101) 87 assert.Assert(t, FindOnceNum([]int{999, 999, 102}) == 102) 88 } 89 90 func TestMinCoveringSubstr(t *testing.T) { 91 assert.Assert(t, MinCoveringSubstr("ADOBECODEBANC", "ABC") == "BANC") 92 assert.Assert(t, MinCoveringSubstr("ADOBECODEBAC", "ABC") == "BAC") 93 assert.Assert(t, MinCoveringSubstr("", "ABC") == "") 94 } 95 96 func TestLongestConsecutive(t *testing.T) { 97 n, len := LongestConsecutive([]int{100, 4, 200, 1, 3, 2}) 98 assert.Assert(t, n == 1 && len == 4) 99 }