HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/share/nodejs/puka/src/internal/BitSet.test.js
import test from 'ava';
import * as gen from 'chance-generators';
import unexpected from 'unexpected';
import unexpectedCheck from 'unexpected-check';
import { setUnexpected } from '../../test/helpers/ava-unexpected';
import { BitSet } from './BitSet';

const expect = unexpected.clone()
  .use(unexpectedCheck);

expect.addAssertion("<number> to <number> <assertion>",
  (expect, from, to) => {
    expect.errorMode = 'bubble';
    for (let i = from; i < to; i++) {
      expect.shift(i);
    }
  });

expect.addAssertion("<array> to be equal", (expect, [l, r]) =>
  expect(l, "to be", r));

setUnexpected(expect);

const bitSetEquivalentToSet = values => {
  const a = new BitSet();
  const b = new Set();
  for (const value of values) {
    a.add(value);
    b.add(value);
  }
  expect(0, "to", 100,
    "when passed as parameter to", i => [a.has(i), b.has(i)],
    "to be equal");
};

test("BitSet is equivalent to Set", t =>
  t.expect(bitSetEquivalentToSet, "to be valid for all",
    gen.array(gen.natural({ max: 89 }))));