github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/algorithm/datastructures/kmp/kmp_test.go (about)

     1  package kmp
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestMarchSubstr(t *testing.T) {
     8  	tests := []struct {
     9  		mainStr  string
    10  		subStr   string
    11  		expected int
    12  	}{
    13  		{"BBC ABCDAB ABCDABCDABDEsddABCDABCDABDABCDABD", "ABCDABD", 3},
    14  		{"BBC ABCDAB ABCDABCDABDE", "ABCDABD", 1},
    15  		{"BBC ABCDAB ABCDABCDABDESS", "ABCDABD", 1},
    16  		{"AAAAAAAAAAAAAAAAAAAAAAAA", "BB你好", 0},
    17  	}
    18  	for i, tt := range tests {
    19  		out := MarchSubstr([]rune(tt.mainStr), []rune(tt.subStr))
    20  		if out != tt.expected {
    21  			t.Errorf("MarchSubstr() index=%d output %v, want %v", i, out, tt.expected)
    22  		}
    23  	}
    24  
    25  }
    26  
    27  func Test_prefixTable(t *testing.T) {
    28  	s := []rune("ababacd")
    29  	table1 := prefixTable(s)
    30  	table2 := prefixTable2(s)
    31  	t.Log(table1)
    32  	t.Log(table2)
    33  }