github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/ss/fields_test.go (about) 1 package ss_test 2 3 import ( 4 "testing" 5 6 "github.com/bingoohuang/gg/pkg/ss" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestFieldsX(t *testing.T) { 11 assert.Nil(t, ss.FieldsX("(a b) c", "(", ")", 0)) 12 assert.Equal(t, []string{"(a b) c"}, ss.FieldsX("(a b) c ", "(", ")", 1)) 13 assert.Equal(t, []string{"(a b)", "c"}, ss.FieldsX("(a b) c", "(", ")", 2)) 14 assert.Equal(t, []string{"(a b)", "c d e"}, ss.FieldsX("(a b) c d e ", "(", ")", 2)) 15 assert.Equal(t, []string{"(a b)", "c"}, ss.FieldsX("(a b) c", "(", ")", -1)) 16 assert.Equal(t, []string{"(a b)", "(c d)"}, ss.FieldsX(" (a b) (c d) ", "(", ")", -1)) 17 assert.Equal(t, []string{"(中 华) (人 民)"}, ss.FieldsX("(中 华) (人 民) ", "(", ")", 1)) 18 assert.Equal(t, []string{"(中 华)", "(人 民)"}, ss.FieldsX(" (中 华) (人 民) ", "(", ")", -1)) 19 assert.Equal(t, []string{"(中 华)", "(人 民) 共和国"}, ss.FieldsX(" (中 华) (人 民) 共和国", "(", ")", 2)) 20 } 21 22 func TestFields(t *testing.T) { 23 assert.Nil(t, ss.FieldsN("a b c", 0), nil) 24 assert.Equal(t, []string{"a b c"}, ss.FieldsN(" a b c ", 1)) 25 assert.Equal(t, ss.FieldsN(" a b c", 2), []string{"a", "b c"}) 26 assert.Equal(t, ss.FieldsN("a b c", 3), []string{"a", "b", "c"}) 27 assert.Equal(t, ss.FieldsN("a b c", 4), []string{"a", "b", "c"}) 28 assert.Equal(t, ss.FieldsN("a b c", -1), []string{"a", "b", "c"}) 29 assert.Equal(t, []string{"中国", "c"}, ss.FieldsN("中国 c", -1)) 30 assert.Equal(t, []string{"中国 c"}, ss.FieldsN("中国 c", 1)) 31 assert.Equal(t, []string{"中国", "人民 共和国"}, ss.FieldsN(" 中国 人民 共和国 ", 2)) 32 assert.Equal(t, []string{"中国", "人民共和国"}, ss.FieldsN(" 中国 人民共和国 ", 2)) 33 assert.Equal(t, []string{"中国", "人民共和国"}, ss.FieldsN(" 中国 人民共和国 ", 3)) 34 }