You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
package translate_test
|
|
|
|
import (
|
|
"context"
|
|
"yunyan/sys/google/translate"
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
// 运行前替换为本机的服务账号 JSON 文件绝对路径
|
|
const (
|
|
kGoogleSaJson = "../yunqiinnovation-gemini-458b0a37af4c.json" // 例:/Users/.../smart-bluetooth-447104-2b269474bd72.json
|
|
)
|
|
|
|
func newTestSys(t *testing.T) translate.ISys {
|
|
if kGoogleSaJson == "" {
|
|
t.Skip("kGoogleSaJson is empty, skip")
|
|
}
|
|
sys, err := translate.NewSys(
|
|
translate.SetJsonPath(kGoogleSaJson),
|
|
)
|
|
if err != nil {
|
|
t.Fatalf("NewSys err: %v", err)
|
|
}
|
|
return sys
|
|
}
|
|
|
|
func Test_Translate(t *testing.T) {
|
|
sys := newTestSys(t)
|
|
results, err := sys.Translate(context.Background(), "zh", "en", []string{"你好世界", "今天天气不错"})
|
|
if err != nil {
|
|
t.Fatalf("Translate err: %v", err)
|
|
}
|
|
if len(results) != 2 {
|
|
t.Errorf("expect 2 results, got %d", len(results))
|
|
}
|
|
fmt.Printf("zh→en: %v\n", results)
|
|
}
|
|
|
|
func Test_MissingKey(t *testing.T) {
|
|
_, err := translate.NewSys()
|
|
if err == nil {
|
|
t.Errorf("expect error when JsonPath/JsonContent missing, got nil")
|
|
}
|
|
}
|
|
|
|
func Test_Empty(t *testing.T) {
|
|
sys := newTestSys(t)
|
|
r, err := sys.Translate(context.Background(), "zh", "en", []string{})
|
|
if err != nil {
|
|
t.Fatalf("Translate err: %v", err)
|
|
}
|
|
if len(r) != 0 {
|
|
t.Errorf("expect 0 results, got %d", len(r))
|
|
}
|
|
}
|
|
|
|
func Test_AutoDetect(t *testing.T) {
|
|
sys := newTestSys(t)
|
|
results, err := sys.Translate(context.Background(), "", "zh", []string{"Hello world", "Bonjour le monde"})
|
|
if err != nil {
|
|
t.Fatalf("Translate err: %v", err)
|
|
}
|
|
fmt.Printf("auto→zh: %v\n", results)
|
|
}
|
|
|