test.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. var test = require('tape');
  2. var intersect = require('..');
  3. test('intersect', function (t) {
  4. t.deepEqual(intersect([1], [2]), [], 'empty');
  5. t.deepEqual(intersect([1, 2], [2]), [2], 'intersection');
  6. t.end();
  7. });
  8. test('big', function (t) {
  9. t.deepEqual(intersect.big([1], [2]), [], 'empty');
  10. t.deepEqual(intersect.big([1, 2], [2]), [2], 'intersection');
  11. t.end();
  12. });
  13. test('compliance', function(t) {
  14. for (var algo in intersect) {
  15. if (intersect.hasOwnProperty(algo) && typeof intersect[algo] === 'function') {
  16. t.deepEqual(intersect[algo]([2], [2,2,2]), intersect([2], [2,2,2]), algo + '-complies-1');
  17. t.deepEqual(intersect[algo]([2,2,2], [2]), intersect([2,2,2], [2]), algo + '-complies-2');
  18. }
  19. }
  20. t.end();
  21. });
  22. test('multiple sets at once', function (t) {
  23. [intersect, intersect.big].forEach(function (fn) {
  24. t.deepEqual(
  25. fn([
  26. [1, 2, 3, 4, 6],
  27. [2, 4, 5, 6],
  28. [2, 5, 6]
  29. ]),
  30. [2,6]
  31. );
  32. t.deepEqual(
  33. fn([
  34. [1, 2, 3, 4, 6],
  35. [2, 4, 5, 6],
  36. [2, 5, 6],
  37. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  38. ]),
  39. [2,6]
  40. );
  41. t.deepEqual(
  42. fn([
  43. [1, 2, 3, 4, 6],
  44. [2, 5, 6]
  45. ]),
  46. [2,6]
  47. );
  48. t.deepEqual(
  49. fn([
  50. [1, 2, 3, 4, 6],
  51. [2, 5, 6]
  52. ]),
  53. [2,6]
  54. );
  55. t.deepEqual(
  56. fn([
  57. [2, 5, 6]
  58. ]),
  59. [2, 5, 6]
  60. );
  61. t.deepEqual(
  62. fn([]),
  63. []
  64. );
  65. });
  66. t.end();
  67. });