import { assert, expect } from 'chai'; import { describe } from 'mocha'; import { squares } from 'squares-rng'; import { compare } from './helpers/compare.js'; import { LlRbTree, treeToStr } from '../src/index.js'; import { countValues } from './helpers/count-values.js'; import { countNodes } from './helpers/count-nodes.js'; import { objNodeToStr } from './helpers/obj-node-to-str.js'; import { numberNodeToStr } from '../src/number-node-to-str.js'; describe('Full stress test', function() { it('it should count nodes and values correctly', function() { { const N = 999; const tree = new LlRbTree(compare); let removed = 0; for (let i=N-1; i>=0; i--) { // const v = squares(i) % 20; // ensure some duplicates const v = i; tree.insert(v); } if (tree.remove(111, false) !== undefined) { removed++ }; if (tree.remove(222, false) !== undefined) { removed++ }; if (tree.remove(333, false) !== undefined) { removed++ }; const mods = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67]; for (let i=0; i=0; i--) { const v = squares(i) % 20; // ensure some duplicates tree.insert(v); } if (tree.remove(111, false) !== undefined) { removed++ }; if (tree.remove(222, false) !== undefined) { removed++ }; if (tree.remove(333, false) !== undefined) { removed++ }; const mods = [5,7,11]; for (let i=0; i