const { LinkedList } = require('../index'); const { reverseLinkedList } = require('.'); describe('Reverse a LinkedList', () => { let list = null; beforeEach(() => { list = new LinkedList(); list.addAtBeginning('1'); list.addAtEnd('2'); list.addAtEnd('3'); list.addAtEnd('4'); list.addAtEnd('5'); }); it('Should return `null` for empty list', () => { list.delete(); expect(reverseLinkedList(list)).toEqual(null); }); it('Should return `5`->`4`->`3`->`2`->`1` for the given list', () => { let reversedList = reverseLinkedList(list); expect(reversedList.data).toEqual('5'); expect(reversedList.next.data).toEqual('4'); expect(reversedList.next.next.data).toEqual('3'); expect(reversedList.next.next.next.data).toEqual('2'); expect(reversedList.next.next.next.next.data).toEqual('1'); }); it('Should return `3`->`2`->`1` after deleting 2 last nodes of the list', () => { list.removeFromEnd(); list.removeFromEnd(); let reversedList2 = reverseLinkedList(list); expect(reversedList2.data).toEqual('3'); expect(reversedList2.next.data).toEqual('2'); expect(reversedList2.next.next.data).toEqual('1'); }); });