time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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);