20 lines
837 B
JavaScript
20 lines
837 B
JavaScript
var test = require('tape');
|
|
var Random = require('random-js');
|
|
var random = new Random(Random.engines.mt19937().seed(0));
|
|
var ss = require('../');
|
|
|
|
function rng() { return random.real(0, 1); }
|
|
|
|
test('sample', function(t) {
|
|
t.deepEqual(ss.sample([], 0, rng), [], 'edge case - zero array');
|
|
t.deepEqual(ss.sample([], 2, rng), [], 'edge case - zero array');
|
|
t.deepEqual(ss.sample([1,2,3], 0, rng, 0), [], 'edge case - zero array');
|
|
t.deepEqual(ss.sample([1,2,3], 1, rng), [1], 'edge case - sample of 1');
|
|
t.deepEqual(ss.sample([1,2,3], 1, rng), [2]);
|
|
t.deepEqual(ss.sample([1,2,3], 3, rng), [2,3,1]);
|
|
t.deepEqual(ss.sample([1,2,3,4], 2, rng), [3,1]);
|
|
t.deepEqual(ss.sample([1,2,3,4,6,7,8], 2, rng), [8,7]);
|
|
t.deepEqual(ss.sample(['foo', 'bar'], 1, rng), ['foo'], 'non-number contents');
|
|
t.end();
|
|
});
|