UNPKG

binomial

Version:

A simple binomial coefficient generator with memoization.

116 lines (66 loc) 1.96 kB
var Benchmark = require('benchmark') , binomial = require('../src/binomial'); // callbacks for tests function target(event) { console.log(String(event.target)); }; function on_complete() { console.log('Fastest is ' + this.filter('fastest').pluck('name')); }; var bench_options = { 'async': false, 'minSamples': 200 }; var suite = new Benchmark.Suite; suite.add('binomial.get 80 random', function() { var n = Math.ceil( Math.random() * 80 ) , k = Math.ceil( Math.random() * 80 ); binomial.get(n, k); }) .add('binomial.get_no_memo 80 random', function() { var n = Math.ceil( Math.random() * 80 ) , k = Math.ceil( Math.random() * 80 ); binomial.get_no_memo(n, k); }) .on('cycle', target ) .on('complete', on_complete) .run(bench_options); var high_suite = new Benchmark.Suite; high_suite.add('binomial.get 500 random', function() { var n = Math.ceil( Math.random() * 500 ) , k = Math.ceil( Math.random() * 500 ); binomial.get(n, k); }) .add('binomial.get_no_memo 500 random', function() { var n = Math.ceil( Math.random() * 500 ) , k = Math.ceil( Math.random() * 500 ); binomial.get_no_memo(n, k); }) .on('cycle', target) .on('complete', on_complete) .run(bench_options); var repeat_low_suite = new Benchmark.Suite; repeat_low_suite.add('repeat binomial.get - 50 choose 10', function() { var n = 50 , k = 5; binomial.get(n, k); }) .add('repeat binomial.get_no_memo - 50 choose 10', function() { var n = 50 , k = 5; binomial.get_no_memo(n, k); }) .on('cycle', target) .on('complete', on_complete) .run(bench_options); var repeat_high_suite = new Benchmark.Suite; repeat_high_suite.add('repeat binomial.get - 500 choose 100', function() { var n = 500 , k = 100; binomial.get(n, k); }) .add('repeat binomial.get_no_memo - 500 choose 100', function() { var n = 500 , k = 100; binomial.get_no_memo(n, k); }) .on('cycle', target ) .on('complete', on_complete ) .run(bench_options);