| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package chat
- import (
- "encoding/json"
- "testing"
- )
- func TestStripThinking(t *testing.T) {
- r, c := StripThinking("<think>hi</think>\n\nhello")
- if r != "hi" {
- t.Fatalf("reasoning=%q", r)
- }
- if c != "hello" {
- t.Fatalf("content=%q", c)
- }
- }
- func TestStripThinking_Truncated(t *testing.T) {
- _, c := StripThinking("before<think>this is truncated")
- if c != "before" {
- t.Fatalf("content=%q", c)
- }
- }
- func TestExtractToolCalls(t *testing.T) {
- args, _ := json.Marshal(map[string]any{"x": 1})
- s := "before<tool_call>\n{\"name\":\"f\",\"arguments\":" + string(args) + "}\n</tool_call>after"
- content, calls, err := ExtractToolCalls(s)
- if err != nil {
- t.Fatal(err)
- }
- if content != "beforeafter" {
- t.Fatalf("content=%q", content)
- }
- if len(calls) != 1 || calls[0].Name != "f" {
- t.Fatalf("calls=%+v", calls)
- }
- }
|