39 lines
No EOL
1.2 KiB
JavaScript
Executable file
39 lines
No EOL
1.2 KiB
JavaScript
Executable file
var test = require('tap').test,
|
|
randomAPI = require('..');
|
|
|
|
test('random iterator returns all items', function (t) {
|
|
var a = [1, 2, 3, 4, 5, 6],
|
|
aCopy = a.map(function (i) { return i; }),
|
|
shuffle = randomAPI.randomIterator(aCopy),
|
|
iterated = [];
|
|
|
|
shuffle.forEach(function (i) {
|
|
iterated.push(i);
|
|
t.ok(a.indexOf(i) !== -1, 'Shuffle iterator should return only items from original array. Passed ' + i);
|
|
});
|
|
|
|
t.ok(iterated.length === a.length, 'Number of iterated items does not match number of original array items');
|
|
t.end();
|
|
});
|
|
|
|
test('Same seed gives same values', function (t) {
|
|
var random1 = randomAPI.random(42);
|
|
var random2 = randomAPI.random(42);
|
|
|
|
t.equal(random1.next(100), random2.next(100), "Same seed should give same values");
|
|
t.end();
|
|
});
|
|
|
|
test('it can generate gaussian', function (t) {
|
|
var random = randomAPI.random(42);
|
|
t.ok(typeof random.gaussian() === 'number', 'number generated');
|
|
t.end();
|
|
});
|
|
|
|
test('can use function syntax', function (t) {
|
|
var random1 = randomAPI(42);
|
|
var random2 = randomAPI.random(42);
|
|
|
|
t.equal(random1.nextDouble(), random2.nextDouble(), "Same seed should give same values");
|
|
t.end();
|
|
}); |