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") } }