2021-08-19 14:24:30 +02:00
|
|
|
package clusters
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestKmeansClusterNumberMatches(t *testing.T) {
|
|
|
|
const (
|
|
|
|
C = 8
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
f = "data/bus-stops.csv"
|
|
|
|
i = CsvImporter()
|
|
|
|
)
|
|
|
|
|
|
|
|
d, e := i.Import(f, 4, 5)
|
|
|
|
if e != nil {
|
|
|
|
t.Errorf("Error importing data: %s\n", e.Error())
|
|
|
|
}
|
|
|
|
|
2022-04-03 17:25:37 +02:00
|
|
|
c, e := KMeans(1000, C, EuclideanDist)
|
2021-08-19 14:24:30 +02:00
|
|
|
if e != nil {
|
|
|
|
t.Errorf("Error initializing kmeans clusterer: %s\n", e.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
if e = c.Learn(d); e != nil {
|
|
|
|
t.Errorf("Error learning data: %s\n", e.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
if len(c.Sizes()) != C {
|
|
|
|
t.Errorf("Number of clusters does not match: %d vs %d\n", len(c.Sizes()), C)
|
|
|
|
}
|
|
|
|
}
|