| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
var test = require('tap').test;var distributions = require('../../distributions.js');var equals = require('../equal.js');test('testing standard normal density function', function (t) {  var normal = distributions.Normal();  var c = [    [-3.0,  0.004431848],    [-2.5,  0.017528300],    [-2.0,  0.053990967],    [-1.5,  0.129517596],    [-1.0,  0.241970725],    [-0.5,  0.352065327],    [ 0.0,  0.398942280],    [+0.5,  0.352065327],    [+1.0,  0.241970725],    [+1.5,  0.129517596],    [+2.0,  0.053990967],    [+2.5,  0.017528300],    [+3.0,  0.004431848]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.pdf.bind(normal),    limit: 0.0000005  });  t.end();});test('testing standard normal cumulative function', function (t) {  var normal = distributions.Normal();  var c = [    [-3.0,  0.001349898],    [-2.5,  0.006209665],    [-2.0,  0.022750132],    [-1.5,  0.066807201],    [-1.0,  0.158655254],    [-0.5,  0.308537539],    [ 0.0,  0.500000000],    [+0.5,  0.691462461],    [+1.0,  0.841344746],    [+1.5,  0.933192799],    [+2.0,  0.977249868],    [+2.5,  0.993790335],    [+3.0,  0.998650102]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.cdf.bind(normal),    limit: 0.0000005  });  t.end();});test('testing standard normal inverse function', function (t) {  var normal = distributions.Normal();  var c = [    [+0.0,  -Infinity],    [+0.1,  -1.2815516],    [+0.2,  -0.8416212],    [+0.3,  -0.5244005],    [+0.4,  -0.2533471],    [+0.5,   0.0],    [+0.6,  +0.2533471],    [+0.7,  +0.5244005],    [+0.8,  +0.8416212],    [+0.9,  +1.2815516],    [+1.0,  +Infinity]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.inv.bind(normal),    limit: 0.0000005  });  t.end();});test('testing standard normal key values', function (t) {  var normal = distributions.Normal();  t.equal(normal.median(), 0);  t.equal(normal.mean(), 0);  t.equal(normal.variance(), 1);  t.end();});test('testing none standard normal density function', function (t) {  var normal = distributions.Normal(1, 2);  var c = [    [-2.0,  0.0647588],    [-1.0,  0.1209854],    [ 0.0,  0.1760327],    [+1.0,  0.1994711],    [+2.0,  0.1760327],    [+3.0,  0.1209854],    [+4.0,  0.0647588]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.pdf.bind(normal),    limit: 0.0000005  });  t.end();});test('testing none standard normal cumulative function', function (t) {  var normal = distributions.Normal(1, 2);  var c = [    [-2.0,  0.0668072],    [-1.0,  0.1586553],    [ 0.0,  0.3085375],    [+1.0,  0.5000000],    [+2.0,  0.6914625],    [+3.0,  0.8413447],    [+4.0,  0.9331928]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.cdf.bind(normal),    limit: 0.0000005  });  t.end();});test('testing none standard normal inverse function', function (t) {  var normal = distributions.Normal(1, 2);  var c = [    [+0.0,  -Infinity],    [+0.2,  -0.6832425],    [+0.4,  +0.4933058],    [+0.5,   1.0],    [+0.6,  +1.5066942],    [+0.8,  +2.6832425],    [+1.0,  +Infinity]  ];  equals.absoluteEqual({    test: t,    map: c,    fn: normal.inv.bind(normal),    limit: 0.0000005  });  t.end();});test('testing none standard normal key values', function (t) {  var normal = distributions.Normal(1, 2);  t.equal(normal.median(), 1);  t.equal(normal.mean(), 1);  t.equal(normal.variance(), 4);  t.end();});
 |