package openai import "testing" func TestNormalizeStreamingDelta_RepeatedCharBoundary(t *testing.T) { // 流式在重复数字边界分片:不得把 "43" 的首字符与 "194" 尾字符误合并。 cur, d := normalizeStreamingDelta("https://x:194", "43") if want := "https://x:19443"; cur != want { t.Fatalf("next: want %q got %q", want, cur) } if d != "43" { t.Fatalf("delta: want %q got %q", "43", d) } } func TestNormalizeStreamingDelta_CumulativePrefix(t *testing.T) { cur, d := normalizeStreamingDelta("今天", "今天天气") if cur != "今天天气" || d != "天气" { t.Fatalf("got cur=%q d=%q", cur, d) } } func TestNormalizeStreamingDelta_FullRetransmit(t *testing.T) { cur, d := normalizeStreamingDelta("今天", "今天") if d != "" || cur != "今天" { t.Fatalf("got cur=%q d=%q", cur, d) } } func TestNormalizeStreamingDelta_SingleRuneRepeated(t *testing.T) { cur, d := normalizeStreamingDelta("呀", "呀") if want := "呀呀"; cur != want { t.Fatalf("next: want %q got %q", want, cur) } if d != "呀" { t.Fatalf("delta: want %q got %q", "呀", d) } cur, d = normalizeStreamingDelta("4", "4") if want := "44"; cur != want { t.Fatalf("next: want %q got %q", want, cur) } if d != "4" { t.Fatalf("delta: want %q got %q", "4", d) } } func TestNormalizeStreamingDelta_CumulativeExtendsNumber(t *testing.T) { // 已缓冲 "194" 后收到累计串 "19443"(注意 "1943" 并非 "19443" 的前缀,不能靠误写的中间态测 HasPrefix)。 cur, d := normalizeStreamingDelta("194", "19443") if want := "19443"; cur != want { t.Fatalf("next: want %q got %q", want, cur) } if d != "43" { t.Fatalf("delta: want %q got %q", "43", d) } }