ts-collection
Version:
This is re-write of the java collection classes in typescript. There is some tweak as typescript templates are not as equivalent as Java.
70 lines (69 loc) • 3.06 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var TreeSet_1 = require("../../util/TreeSet");
var Integer_1 = require("./Integer");
var assert = require("assert");
describe('testing TreeSet with Integer Comparator', function () {
var ts = null;
beforeEach(function (done) {
ts = new TreeSet_1.TreeSet(new Integer_1.IntegerComparator());
ts.add(new Integer_1.Integer(4));
ts.add(new Integer_1.Integer(1));
ts.add(new Integer_1.Integer(3));
ts.add(new Integer_1.Integer(2));
ts.add(new Integer_1.Integer(16));
ts.add(new Integer_1.Integer(9));
ts.add(new Integer_1.Integer(10));
ts.add(new Integer_1.Integer(14));
ts.add(new Integer_1.Integer(8));
ts.add(new Integer_1.Integer(7));
done();
});
afterEach(function (done) {
done();
});
it('testing add operation', function (done) {
assert(ts.size() === 10, 'size of the treeset should be 10 after adding all the elemnts');
done();
});
it('testing lower', function (done) {
assert(ts.lower(new Integer_1.Integer(16)).num === 14);
assert(ts.lower(new Integer_1.Integer(14)).num === 10);
assert(ts.lower(new Integer_1.Integer(10)).num === 9);
assert(ts.lower(new Integer_1.Integer(9)).num === 8);
assert(ts.lower(new Integer_1.Integer(8)).num === 7);
assert(ts.lower(new Integer_1.Integer(7)).num === 4);
assert(ts.lower(new Integer_1.Integer(4)).num === 3);
assert(ts.lower(new Integer_1.Integer(3)).num === 2);
assert(ts.lower(new Integer_1.Integer(2)).num === 1);
done();
});
it('testing higher', function (done) {
assert(ts.higher(new Integer_1.Integer(14)).num === 16);
assert(ts.higher(new Integer_1.Integer(10)).num === 14);
assert(ts.higher(new Integer_1.Integer(9)).num === 10);
assert(ts.higher(new Integer_1.Integer(8)).num === 9);
assert(ts.higher(new Integer_1.Integer(7)).num === 8);
assert(ts.higher(new Integer_1.Integer(4)).num === 7);
assert(ts.higher(new Integer_1.Integer(3)).num === 4);
assert(ts.higher(new Integer_1.Integer(2)).num === 3);
assert(ts.higher(new Integer_1.Integer(1)).num === 2);
done();
});
it('testing remove', function (done) {
assert(ts.size() === 10);
var arr = [16, 14, 10, 9, 8, 7, 4, 3, 2, 1];
for (var i = 0; i < arr.length; i++) {
assert(ts.contains(new Integer_1.Integer(arr[i])) === true, 'initial contains test' + arr[i]);
}
while (arr.length !== 0) {
var e = arr[arr.length - 1];
arr.splice(arr.length - 1, 1);
assert(ts.remove(new Integer_1.Integer(e)) === true, 'remove should return true');
for (var i = 0; i < arr.length; i++) {
assert(ts.contains(new Integer_1.Integer(arr[i])) === true, 'contains ' + arr[i] + 'after removing ' + e);
}
}
done();
});
});