UNPKG

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
"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(); }); });