You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package stringx
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestReplacer_Replace(t *testing.T) {
|
|
mapping := map[string]string{
|
|
"一二三四": "1234",
|
|
"二三": "23",
|
|
"二": "2",
|
|
}
|
|
assert.Equal(t, "零1234五", NewReplacer(mapping).Replace("零一二三四五"))
|
|
}
|
|
|
|
func TestReplacer_ReplaceSingleChar(t *testing.T) {
|
|
mapping := map[string]string{
|
|
"二": "2",
|
|
}
|
|
assert.Equal(t, "零一2三四五", NewReplacer(mapping).Replace("零一二三四五"))
|
|
}
|
|
|
|
func TestReplacer_ReplaceExceedRange(t *testing.T) {
|
|
mapping := map[string]string{
|
|
"二三四五六": "23456",
|
|
}
|
|
assert.Equal(t, "零一二三四五", NewReplacer(mapping).Replace("零一二三四五"))
|
|
}
|
|
|
|
func TestReplacer_ReplacePartialMatch(t *testing.T) {
|
|
mapping := map[string]string{
|
|
"二三四七": "2347",
|
|
}
|
|
assert.Equal(t, "零一二三四五", NewReplacer(mapping).Replace("零一二三四五"))
|
|
}
|
|
|
|
func TestReplacer_ReplaceMultiMatches(t *testing.T) {
|
|
mapping := map[string]string{
|
|
"二三": "23",
|
|
}
|
|
assert.Equal(t, "零一23四五一23四五", NewReplacer(mapping).Replace("零一二三四五一二三四五"))
|
|
}
|