35 lines
943 B
JavaScript
35 lines
943 B
JavaScript
var test = require('tape');
|
|
var ss = require('../');
|
|
|
|
function rnd(x) {
|
|
return Math.round(x * 1000) / 1000;
|
|
}
|
|
|
|
test('sample covariance', function(t) {
|
|
test('can get perfect negative covariance', function(t) {
|
|
var x = [1, 2, 3, 4, 5, 6];
|
|
var y = [6, 5, 4, 3, 2, 1];
|
|
t.equal(rnd(ss.sample_covariance(x, y)), -3.5);
|
|
t.end();
|
|
});
|
|
|
|
test('covariance of something with itself is its variance', function(t) {
|
|
var x = [1, 2, 3, 4, 5, 6];
|
|
t.equal(rnd(ss.sample_covariance(x, x)), 3.5);
|
|
t.end();
|
|
});
|
|
|
|
test('covariance is zero for something with no correlation', function(t) {
|
|
var x = [1, 2, 3, 4, 5, 6];
|
|
var y = [1, 1, 2, 2, 1, 1];
|
|
t.equal(rnd(ss.sample_covariance(x, y)), 0);
|
|
t.end();
|
|
});
|
|
|
|
test('zero-length corner case', function(t) {
|
|
t.equal(rnd(ss.sample_covariance([], [])), 0);
|
|
t.end();
|
|
});
|
|
t.end();
|
|
});
|