1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import { expect } from 'chai'
- import {
- set,
- unset,
- toggle,
- isset
- } from '../src/flags'
- describe('flags', function () {
- describe('set', function () {
- it('should set a single flag', function () {
- expect(set(4, 0b10010)).to.eq(0b10110)
- })
- it('should set the correct bits on empty flags', function () {
- const result = set([1, 2, 8, 32])
- expect(result).to.eq(0b101011)
- })
-
- it('should set the correct bits on exisiting flags', function () {
- const settings = 0b1111
- const result = set([1, 2, 8], settings)
- expect(result).to.eq(0b1111)
- })
- })
- describe('unset', function () {
- it('should unset a single flag', function () {
- const settings = 0b1111
- const result = unset(2, settings)
- expect(result).to.eq(0b1101)
- })
- it('should unset nothing on empty flags', function () {
- const settings = 0
- const result = unset([1, 2, 4, 8], settings)
- expect(result).to.eq(0)
- })
- it('should unset all bits', function () {
- const settings = 0b1111
- const result = unset([1, 2, 4, 8], settings)
- expect(result).to.eq(0)
- })
- it('should keep zeros as they are', function () {
- const settings = 0b10101
- const result = unset([1, 2, 8], settings)
- expect(result).to.eq(0b10100)
- })
- })
- describe('toggle', function () {
- it('should invert all flags', function () {
- const settings = 0b1111
- const result = toggle([1, 2, 4, 8], settings)
- expect(result).to.eq(0b0000)
- })
- it('should invert only specific flags', function () {
- const settings = 0b1010
- const result = toggle([8, 1], settings)
- expect(result).to.eq(0b0011)
- })
- })
- describe('isset', function () {
- it('should check a single flag', function () {
- expect(isset(4, 0b1101101)).to.eq(true)
- expect(isset(16, 0b1101101)).to.eq(false)
- })
- it('should check multiple flags', function () {
- expect(isset([4, 16, 2], 0b10010111)).to.eq(true)
- expect(isset([8, 32, 64], 0b10010111)).to.eq(false)
- expect(isset([1, 8], 0b10010111)).to.eq(false)
- expect(isset([1, 4], 0b10010111)).to.eq(true)
- })
- })
- })
|