import { BinarySearchTree } from './binarySearchTree.js'; describe('removal', () => { test('ignores the repeats in removal sequence #0', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #1', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #2', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #3', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #4', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #5', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #6', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #7', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #8', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #9', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #10', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #11', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #12', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #13', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #14', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #15', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #16', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #17', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #18', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #19', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #20', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #21', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #22', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #23', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #24', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #25', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #26', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #27', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #28', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #29', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #30', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #31', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #32', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #33', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #34', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #35', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #36', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #37', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #38', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #39', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #40', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #41', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #42', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #43', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #44', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #45', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #46', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #47', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #48', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #49', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(1); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #50', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #51', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #52', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #53', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(0); expect(tree.toList()).toEqual([1, 2]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #54', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #55', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(0); expect(tree.toList()).toEqual([2]); tree.delete(2); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #56', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #57', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #58', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #59', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(1); expect(tree.toList()).toEqual([0, 2]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #60', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #61', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #62', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #63', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #64', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #65', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #66', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #67', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(2); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #68', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); tree.delete(2); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #69', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(2); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #70', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(0); expect(tree.toList()).toEqual([1]); tree.delete(1); expect(tree.toList()).toEqual([]); }); test('ignores the repeats in removal sequence #71', () => { const tree = new BinarySearchTree([0, 1, 2]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(2); expect(tree.toList()).toEqual([0, 1]); tree.delete(1); expect(tree.toList()).toEqual([0]); tree.delete(0); expect(tree.toList()).toEqual([]); }); });