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  }