@tensorflow/tfjs-core
Version:
Hardware-accelerated JavaScript library for machine intelligence
47 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rand_1 = require("./rand");
var rand_util_1 = require("./rand_util");
function isFloat(n) {
return Number(n) === n && n % 1 !== 0;
}
describe('MPRandGauss', function () {
var EPSILON = 0.05;
var SEED = 2002;
it('should default to float32 numbers', function () {
var rand = new rand_1.MPRandGauss(0, 1.5);
expect(isFloat(rand.nextValue())).toBe(true);
});
it('should handle create a mean/stdv of float32 numbers', function () {
var rand = new rand_1.MPRandGauss(0, 1.5, 'float32', false, SEED);
var values = [];
var size = 10000;
for (var i = 0; i < size; i++) {
values.push(rand.nextValue());
}
rand_util_1.expectArrayInMeanStdRange(values, 0, 1.5, EPSILON);
rand_util_1.jarqueBeraNormalityTest(values);
});
it('should handle int32 numbers', function () {
var rand = new rand_1.MPRandGauss(0, 1, 'int32');
expect(isFloat(rand.nextValue())).toBe(false);
});
it('should handle create a mean/stdv of int32 numbers', function () {
var rand = new rand_1.MPRandGauss(0, 2, 'int32', false, SEED);
var values = [];
var size = 10000;
for (var i = 0; i < size; i++) {
values.push(rand.nextValue());
}
rand_util_1.expectArrayInMeanStdRange(values, 0, 2, EPSILON);
rand_util_1.jarqueBeraNormalityTest(values);
});
it('Should not have a more than 2x std-d from mean for truncated values', function () {
var stdv = 1.5;
var rand = new rand_1.MPRandGauss(0, stdv, 'float32', true);
for (var i = 0; i < 1000; i++) {
expect(Math.abs(rand.nextValue())).toBeLessThan(stdv * 2);
}
});
});
//# sourceMappingURL=rand_test.js.map