-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvector_test.go
More file actions
35 lines (27 loc) · 893 Bytes
/
vector_test.go
File metadata and controls
35 lines (27 loc) · 893 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package golsh
import "testing"
func TestCosine(t *testing.T) {
v123 := []float32{1.0, 2.0, 3.0}
actual, err := cosine(v123, v123)
if err != nil {
t.Fatalf("failed to get cosine: %s", err.Error())
}
if expected := float32(1.0); expected != actual {
t.Fatalf("expected %f but got %f distance", expected, actual)
}
actual, err = cosine(v123, []float32{1.0, 0.0, 0.0})
if err != nil {
t.Fatalf("failed to get cosine: %s", err.Error())
}
if expected := float32(0.2672612419124244); expected != actual {
t.Fatalf("expected %f but got %f distance", expected, actual)
}
actual, err = cosine([]float32{0.0, 1.0}, []float32{1.0, 0.0})
if err != nil {
t.Fatalf("failed to get cosine: %s", err.Error())
}
// orthogonal vectors should have 0 similarity
if expected := float32(0.0); expected != actual {
t.Fatalf("expected %f but got %f distance", expected, actual)
}
}