From 26d6b7877da4915fb3042403ed499c217397bfb3 Mon Sep 17 00:00:00 2001 From: Oleksii Trekhleb Date: Sat, 2 Jun 2018 08:24:31 +0300 Subject: [PATCH] Improve test-coverage for red-black tree. --- .../__test__/RedBlackTree.test.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js b/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js index 1d702438..c26763e3 100644 --- a/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js +++ b/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js @@ -285,4 +285,30 @@ describe('RedBlackTree', () => { expect(tree.isNodeRed(node3)).toBeTruthy(); expect(tree.isNodeRed(node6)).toBeTruthy(); }); + + it('should do left-left rotation with left grand-parent', () => { + const tree = new RedBlackTree(); + + tree.insert(20); + tree.insert(15); + tree.insert(25); + tree.insert(10); + tree.insert(5); + + expect(tree.toString()).toBe('5,10,15,20,25'); + expect(tree.root.height).toBe(2); + }); + + it('should do right-right rotation with left grand-parent', () => { + const tree = new RedBlackTree(); + + tree.insert(20); + tree.insert(15); + tree.insert(25); + tree.insert(17); + tree.insert(19); + + expect(tree.toString()).toBe('15,17,19,20,25'); + expect(tree.root.height).toBe(2); + }); });