random.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. var test = require('tap').test,
  2. randomAPI = require('..');
  3. test('random iterator returns all items', function (t) {
  4. var a = [1, 2, 3, 4, 5, 6],
  5. aCopy = a.map(function (i) { return i; }),
  6. shuffle = randomAPI.randomIterator(aCopy),
  7. iterated = [];
  8. shuffle.forEach(function (i) {
  9. iterated.push(i);
  10. t.ok(a.indexOf(i) !== -1, 'Shuffle iterator should return only items from original array. Passed ' + i);
  11. });
  12. t.ok(iterated.length === a.length, 'Number of iterated items does not match number of original array items');
  13. t.end();
  14. });
  15. test('Same seed gives same values', function (t) {
  16. var random1 = randomAPI.random(42);
  17. var random2 = randomAPI.random(42);
  18. t.equal(random1.next(100), random2.next(100), "Same seed should give same values");
  19. t.end();
  20. });
  21. test('it can generate gaussian', function (t) {
  22. var random = randomAPI.random(42);
  23. t.ok(typeof random.gaussian() === 'number', 'number generated');
  24. t.end();
  25. });
  26. test('can use function syntax', function (t) {
  27. var random1 = randomAPI(42);
  28. var random2 = randomAPI.random(42);
  29. t.equal(random1.nextDouble(), random2.nextDouble(), "Same seed should give same values");
  30. t.end();
  31. });