UNPKG

@tensorflow/tfjs-core

Version:

Hardware-accelerated JavaScript library for machine intelligence

45 lines 1.74 kB
import { MPRandGauss } from './rand'; import { expectArrayInMeanStdRange, jarqueBeraNormalityTest } from './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 MPRandGauss(0, 1.5); expect(isFloat(rand.nextValue())).toBe(true); }); it('should handle create a mean/stdv of float32 numbers', function () { var rand = new MPRandGauss(0, 1.5, 'float32', false, SEED); var values = []; var size = 10000; for (var i = 0; i < size; i++) { values.push(rand.nextValue()); } expectArrayInMeanStdRange(values, 0, 1.5, EPSILON); jarqueBeraNormalityTest(values); }); it('should handle int32 numbers', function () { var rand = new MPRandGauss(0, 1, 'int32'); expect(isFloat(rand.nextValue())).toBe(false); }); it('should handle create a mean/stdv of int32 numbers', function () { var rand = new MPRandGauss(0, 2, 'int32', false, SEED); var values = []; var size = 10000; for (var i = 0; i < size; i++) { values.push(rand.nextValue()); } expectArrayInMeanStdRange(values, 0, 2, EPSILON); 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 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