chore: establish local platform baseline
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package memoryindex
|
||||
|
||||
import (
|
||||
"math"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"data-terminal-cloud/internal/developmentembedding"
|
||||
)
|
||||
|
||||
func TestDevelopmentEmbeddingIsDeterministicAndNormalized(t *testing.T) {
|
||||
first := developmentembedding.Vector("长者谈到小时候在河边散步。")
|
||||
second := developmentembedding.Vector("长者谈到小时候在河边散步。")
|
||||
other := developmentembedding.Vector("完全不同的记忆内容。")
|
||||
if len(first) != developmentembedding.Dimensions || len(second) != len(first) {
|
||||
t.Fatalf("embedding dimensions = %d, want %d", len(first), developmentembedding.Dimensions)
|
||||
}
|
||||
var squared float64
|
||||
var different bool
|
||||
for index := range first {
|
||||
if first[index] != second[index] {
|
||||
t.Fatalf("embedding differs at %d", index)
|
||||
}
|
||||
if first[index] != other[index] {
|
||||
different = true
|
||||
}
|
||||
squared += first[index] * first[index]
|
||||
}
|
||||
if !different {
|
||||
t.Fatal("different content produced the same embedding")
|
||||
}
|
||||
if math.Abs(math.Sqrt(squared)-1) > 1e-9 {
|
||||
t.Fatalf("embedding norm = %.12f, want 1", math.Sqrt(squared))
|
||||
}
|
||||
literal := developmentembedding.Literal(first)
|
||||
if !strings.HasPrefix(literal, "[") || !strings.HasSuffix(literal, "]") || strings.Count(literal, ",") != developmentembedding.Dimensions-1 {
|
||||
t.Fatal("vector literal has an invalid shape")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user