mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
refactor(memory): replace sdk to twilight
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package adapters
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
func TestTruncateSnippet_ASCII(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := TruncateSnippet("hello world", 5)
|
||||
if got != "hello..." {
|
||||
t.Fatalf("expected %q, got %q", "hello...", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateSnippet_NoTruncation(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := TruncateSnippet("short", 100)
|
||||
if got != "short" {
|
||||
t.Fatalf("expected %q, got %q", "short", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateSnippet_CJK(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := TruncateSnippet("你好世界啊", 3)
|
||||
if !utf8.ValidString(got) {
|
||||
t.Fatalf("result is not valid UTF-8: %q", got)
|
||||
}
|
||||
if got != "你好世..." {
|
||||
t.Fatalf("expected %q, got %q", "你好世...", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateSnippet_Emoji(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := TruncateSnippet("😀😁😂🤣😃", 2)
|
||||
if !utf8.ValidString(got) {
|
||||
t.Fatalf("result is not valid UTF-8: %q", got)
|
||||
}
|
||||
if got != "😀😁..." {
|
||||
t.Fatalf("expected %q, got %q", "😀😁...", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateSnippet_TrimWhitespace(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := TruncateSnippet(" hello ", 100)
|
||||
if got != "hello" {
|
||||
t.Fatalf("expected %q, got %q", "hello", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeduplicateItems(t *testing.T) {
|
||||
t.Parallel()
|
||||
items := []MemoryItem{
|
||||
{ID: "a", Memory: "first"},
|
||||
{ID: "b", Memory: "second"},
|
||||
{ID: "a", Memory: "duplicate"},
|
||||
}
|
||||
result := DeduplicateItems(items)
|
||||
if len(result) != 2 {
|
||||
t.Fatalf("expected 2 items, got %d", len(result))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user