From 3db20be3ee800c7eb4a160d9982d547663f3fd63 Mon Sep 17 00:00:00 2001 From: Cayle Sharrock Date: Wed, 19 Jul 2017 10:11:10 +0200 Subject: [PATCH] Mocha-fy and add test --- types/bintrees/bintrees-tests.ts | 52 ++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/types/bintrees/bintrees-tests.ts b/types/bintrees/bintrees-tests.ts index fa03ae5941..fb4a22a3d8 100644 --- a/types/bintrees/bintrees-tests.ts +++ b/types/bintrees/bintrees-tests.ts @@ -1,16 +1,50 @@ +/// +/// +import assert = require('assert'); import { BinTree, RBTree } from 'bintrees'; -let treeA = new RBTree((a:number, b:number) => a - b); +describe('bintrees', () => { + it('builds a simple tree', () => { + let treeA = new RBTree((a: number, b: number) => a - b); -treeA.insert(5); -treeA.insert(3); + treeA.insert(5); + treeA.insert(3); + treeA.remove(3); -let treeB = new BinTree((a:string, b:string) => a.length - b.length); + assert.equal(treeA.size, 1); + }); -treeB.insert('hi'); -treeB.insert('there'); -treeB.insert('how'); -treeB.insert('are'); + it('builds a tree of strings', () => { + let treeB = new BinTree((a:string, b:string) => a.length - b.length); -treeB.remove('how'); + treeB.insert('hi'); + treeB.insert('there'); + treeB.insert('how'); + treeB.insert('are'); // ignored + treeB.remove('how'); + + assert.equal(treeB.size, 2); + assert.equal(treeB.min(), 'hi'); + }); + + it('maintains a tree of objects', () => { + + interface C { + id: number + } + + let treeC = new BinTree((a: C, b: C) => a.id - b.id); + + treeC.insert({ id: 100 }); + treeC.insert({ id: 110 }); + treeC.insert({ id: 105 }); + + let ids: number[] = []; + treeC.each((val: C) => { + ids.push(val.id); + }); + + assert.deepEqual(ids, [100, 105, 110]); + }); +});