3v324v23's picture
Зафиксирована рабочая версия TEN-Agent для HuggingFace Space
87337b1
package extension
import (
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func TestIsPunctuation(t *testing.T) {
cases := []struct {
r rune
expect bool
}{
{',', true},
{',', true},
{'.', true},
{'。', true},
{'?', true},
{'?', true},
{'!', true},
{'!', true},
{'a', false},
{'0', false},
}
for i, c := range cases {
require.Equal(t, c.expect, isPunctuation(c.r), "case %d", i)
}
}
func TestSplitByPunctuation(t *testing.T) {
cases := []struct {
s string
expect []string
}{
{"Hello world!", []string{"Hello world"}},
{"Hey, there!", []string{"Hey", " there"}},
}
for i, c := range cases {
out := strings.FieldsFunc(c.s, isPunctuation)
require.Equal(t, c.expect, out, "case %d", i)
}
}
func TestParseSentence_Should_NoFinalSentence(t *testing.T) {
cases := []struct {
sentence string
content string
expectSentence string
expectContent string
}{
{
sentence: "",
content: "",
expectSentence: "",
expectContent: "",
},
{
sentence: "a",
content: "",
expectSentence: "a",
expectContent: "",
},
{
sentence: "",
content: "a",
expectSentence: "a",
expectContent: "",
},
{
sentence: "abc",
content: "ddd",
expectSentence: "abcddd",
expectContent: "",
},
}
for i, c := range cases {
sentence, content, final := parseSentence(c.sentence, c.content)
require.False(t, final, "case %d", i)
require.Equal(t, c.expectSentence, sentence, "case %d", i)
require.Equal(t, c.expectContent, content, "case %d", i)
}
}
func TestParseSentence_Should_FinalSentence(t *testing.T) {
cases := []struct {
sentence string
content string
expectSentence string
expectContent string
}{
{
sentence: "",
content: ",",
expectSentence: ",",
expectContent: "",
},
{
sentence: "",
content: ",ddd",
expectSentence: ",",
expectContent: "ddd",
},
{
sentence: "abc",
content: ",ddd",
expectSentence: "abc,",
expectContent: "ddd",
},
{
sentence: "abc",
content: "dd,d",
expectSentence: "abcdd,",
expectContent: "d",
},
{
sentence: "abc",
content: "ddd,",
expectSentence: "abcddd,",
expectContent: "",
},
{
sentence: "abc",
content: "ddd,eee,fff,",
expectSentence: "abcddd,",
expectContent: "eee,fff,",
},
{
sentence: "我的",
content: "你好,啊!",
expectSentence: "我的你好,",
expectContent: "啊!",
},
}
for i, c := range cases {
sentence, content, final := parseSentence(c.sentence, c.content)
require.True(t, final, "case %d", i)
require.Equal(t, c.expectSentence, sentence, "case %d", i)
require.Equal(t, c.expectContent, content, "case %d", i)
}
}