ml5-save
Version:
47 lines (38 loc) • 1.44 kB
JavaScript
// Copyright (c) 2019 ml5
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
const {
kmeans
} = ml5;
const KMEANS_DEFAULTS = {
'k': 2,
'maxIter': 5,
'threshold': 0.5,
};
describe('kMeans', () => {
let kmeansModel;
const dataurl = 'https://raw.githubusercontent.com/ml5js/ml5-examples/development/d3/KMeans/KMeans_GaussianClusterDemo/data/gaussian2d_2clusters.csv'
beforeAll(async () => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
kmeansModel = await kmeans(dataurl, KMEANS_DEFAULTS, (err, result) => {
return;
});
await kmeansModel.load(dataurl)
});
it('Should create kmeans with all the defaults', async () => {
expect(kmeansModel.config.k).toBe(KMEANS_DEFAULTS.k);
expect(kmeansModel.config.maxIter).toBe(KMEANS_DEFAULTS.maxIter);
expect(kmeansModel.config.threshold).toBe(KMEANS_DEFAULTS.threshold);
});
it('kmeans dataset gaussian 2d: Should have length 200', async () => {
// await kmeansModel.load(dataurl)
expect(kmeansModel.dataset.length).toBe(200);
});
it('kmeans dataset gaussian 2d: Should have 2 unique centroids', async () => {
// await kmeansModel.load(dataurl)
const centroids = kmeansModel.dataset.map(val => val.centroid);
const unique = [...new Set(centroids)].length
expect(unique).toBe(2);
});
});