ds-algo-study
Version:
Just experimenting with publishing a package
40 lines (34 loc) • 1.35 kB
JavaScript
describe('binarySearchTree', function() {
var binarySearchTree;
beforeEach(function() {
binarySearchTree = BinarySearchTree(5);
});
it('should have methods named "insert", "contains", and "depthFirstLog', function() {
expect(binarySearchTree.insert).to.be.a('function');
expect(binarySearchTree.contains).to.be.a('function');
expect(binarySearchTree.depthFirstLog).to.be.a('function');
});
it('should insert values at the correct location in the tree', function() {
binarySearchTree.insert(2);
binarySearchTree.insert(3);
binarySearchTree.insert(7);
binarySearchTree.insert(6);
expect(binarySearchTree.left.right.value).to.equal(3);
expect(binarySearchTree.right.left.value).to.equal(6);
});
it('should have a working "contains" method', function() {
binarySearchTree.insert(2);
binarySearchTree.insert(3);
binarySearchTree.insert(7);
expect(binarySearchTree.contains(7)).to.equal(true);
expect(binarySearchTree.contains(8)).to.equal(false);
});
it('should execute a callback on every value in a tree using "depthFirstLog"', function() {
var array = [];
var func = function(value) { array.push(value); };
binarySearchTree.insert(2);
binarySearchTree.insert(3);
binarySearchTree.depthFirstLog(func);
expect(array).to.eql([5, 2, 3]);
});
});