| package openai |
|
|
| import "testing" |
|
|
| func TestReplaceCitationMarkersWithLinks(t *testing.T) { |
| raw := "这是一条更新[citation:1],更多信息见[citation:2]。" |
| links := map[int]string{ |
| 1: "https://example.com/news-1", |
| 2: "https://example.com/news-2", |
| } |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "这是一条更新[1](https://example.com/news-1),更多信息见[2](https://example.com/news-2)。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|
| func TestReplaceCitationMarkersWithLinksKeepsUnknownIndex(t *testing.T) { |
| raw := "只有一个来源[citation:1],未知来源[citation:3]。" |
| links := map[int]string{1: "https://example.com/a"} |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "只有一个来源[1](https://example.com/a),未知来源[citation:3]。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|
| func TestReplaceCitationMarkersWithLinksSupportsReferenceMarker(t *testing.T) { |
| raw := "新闻摘要[reference:1],详情[reference:2]。" |
| links := map[int]string{ |
| 1: "https://example.com/r1", |
| 2: "https://example.com/r2", |
| } |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "新闻摘要[1](https://example.com/r1),详情[2](https://example.com/r2)。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|
| func TestReplaceCitationMarkersWithLinksSupportsReferenceZeroBased(t *testing.T) { |
| raw := "来源[reference:0] 与 [reference:1]。" |
| links := map[int]string{ |
| 1: "https://example.com/first", |
| 2: "https://example.com/second", |
| } |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "来源[0](https://example.com/first) 与 [1](https://example.com/second)。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|
| func TestReplaceCitationMarkersWithLinksKeepsCitationOneBasedWithZeroBasedReference(t *testing.T) { |
| raw := "引用[citation:1],来源[reference:0],后续[reference:1]。" |
| links := map[int]string{ |
| 1: "https://example.com/first", |
| 2: "https://example.com/second", |
| } |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "引用[1](https://example.com/first),来源[0](https://example.com/first),后续[1](https://example.com/second)。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|
| func TestReplaceCitationMarkersWithLinksDetectsSpacedReferenceZeroBased(t *testing.T) { |
| raw := "来源[reference: 0] 与 [reference: 1]。" |
| links := map[int]string{ |
| 1: "https://example.com/first", |
| 2: "https://example.com/second", |
| } |
|
|
| got := replaceCitationMarkersWithLinks(raw, links) |
| want := "来源[0](https://example.com/first) 与 [1](https://example.com/second)。" |
| if got != want { |
| t.Fatalf("expected %q, got %q", want, got) |
| } |
| } |
|
|