UNPKG

amqp-node

Version:

An AMQP 0-9-1 (e.g., RabbitMQ) library and client.

71 lines (56 loc) 1.71 kB
'use strict'; var claire = require('claire'); var forAll = claire.forAll, arb = claire.data, label = claire.label, choice = claire.choice, transform = claire.transform; var BitSet = require('../lib/bitset').BitSet; var PosInt = transform(Math.floor, arb.Positive); var EmptyBitSet = label('bitset', transform( function (size) { return new BitSet(size); }, choice(arb.Nothing, PosInt))); describe('BitSet', function () { it('get bit', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); return b.get(bit); }).asTest()); it('clear bit', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); b.clear(bit); return !b.get(bit); }).asTest()); it('next set of empty', forAll(EmptyBitSet) .satisfy(function (b) { return b.nextSetBit(0) === -1; }).asTest()); it('next set of one bit', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); return b.nextSetBit(0) === bit; }).asTest()); it('next set same bit', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); return b.nextSetBit(bit) === bit; }).asTest()); it('next set following bit', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); return b.nextSetBit(bit + 1) === -1; }).asTest()); it('next clear of empty', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { return b.nextClearBit(bit) === bit; }) .asTest()); it('next clear of one set', forAll(EmptyBitSet, PosInt) .satisfy(function (b, bit) { b.set(bit); return b.nextClearBit(bit) === bit + 1; }).asTest()); });