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  }