UNPKG

dsa.js

Version:

Data Structures & Algorithms in JS

74 lines (61 loc) 1.74 kB
const { Queue } = require('../../index'); describe('Queue', () => { let queue; beforeEach(() => { queue = new Queue(); }); describe('#add', () => { it('should push an element to the queue', () => { expect(queue.size).toEqual(0); queue.add(1); expect(queue.size).toEqual(1); }); }); describe('#remove', () => { beforeEach(() => { queue.add('a'); queue.add('b'); }); it('should get last element entered', () => { expect(queue.remove()).toEqual('a'); expect(queue.remove()).toEqual('b'); }); it('should keep the order after some addition', () => { expect(queue.remove()).toEqual('a'); queue.add('c'); expect(queue.remove()).toEqual('b'); expect(queue.remove()).toEqual('c'); expect(queue.remove()).toBe(null); }); }); describe('#isEmpty', () => { it('should return true when empty', () => { expect(queue.isEmpty()).toBe(true); }); it('should return false when not empty', () => { queue.add('a'); // expect(queue.size).toBe(1); expect(queue.isEmpty()).toBe(false); }); }); describe('#back', () => { it('should return null if empty', () => { expect(queue.back()).toEqual(null); }); it('should return newest element', () => { queue.enqueue('oldest'); queue.enqueue('newest'); expect(queue.back()).toEqual('newest'); }); }); describe('#front', () => { it('should return null if empty', () => { expect(queue.front()).toEqual(null); }); it('should return oldest element', () => { queue.enqueue('oldest'); queue.enqueue('newest'); expect(queue.front()).toEqual('oldest'); }); }); });