noncentralt-test.js (1670B)
1 var vows = require('vows'); 2 var assert = require('assert'); 3 var suite = vows.describe('jStat.distribution'); 4 5 require('../env.js'); 6 7 suite.addBatch({ 8 'non-central-t cdf': { 9 'topic': function() { 10 return jStat; 11 }, 12 //Checked against R pt(x,df,ncp) 13 'check cdf calculation': function(jStat) { 14 var tol = 0.0000001; 15 assert.epsilon(tol, jStat.noncentralt.cdf(-0.5, 3, 2), 0.007800301076444027); 16 assert.epsilon(tol, jStat.noncentralt.cdf(0.5, 3, 2), 0.06547898556460677); 17 assert.epsilon(tol, jStat.noncentralt.cdf(7, 3, 2), 0.9527511310481739); 18 19 assert.epsilon(tol, jStat.noncentralt.cdf(23, 8, 25), 0.3084615014611897); 20 assert.epsilon(tol, jStat.noncentralt.cdf(30, 8, 25), 0.695466162732754); 21 22 assert.epsilon(tol, jStat.noncentralt.cdf(2, 28, 5), 0.001787373536766708); 23 assert.epsilon(tol, jStat.noncentralt.cdf(8, 28, 5), 0.9790186262147481); 24 }, 25 //Checked against R's dt(x, df, ncp) 26 'check pdf calculation': function(jStat) { 27 var tol = 0.0000001; 28 assert.epsilon(tol, jStat.noncentralt.pdf(-0.5, 3, 2), 0.0159905834194889); 29 assert.epsilon(tol, jStat.noncentralt.pdf(0.5, 3, 2), 0.1296653879954894); 30 assert.epsilon(tol, jStat.noncentralt.pdf(7, 3, 2), 0.01796331192039574); 31 32 assert.epsilon(tol, jStat.noncentralt.pdf(23, 8, 25), 0.06329514733502346); 33 assert.epsilon(tol, jStat.noncentralt.pdf(30, 8, 25), 0.04088472607966773); 34 35 assert.epsilon(tol, jStat.noncentralt.pdf(2, 28, 5), 0.006044279465609167); 36 assert.epsilon(tol, jStat.noncentralt.pdf(8, 28, 5), 0.02883829067311495); 37 38 } 39 }, 40 }); 41 42 suite.export(module);