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 }