1
0
Fork 0
spacetac/src/game/Tools.spec.ts

39 lines
1 KiB
TypeScript

module TS.SpaceTac.Game.Specs {
class TestObj {
a: string;
b: any;
constructor() {
this.a = "test";
this.b = { c: 5.1, d: ["unit", "test", 5] };
}
get(): string {
return this.a;
}
}
describe("Tools", () => {
it("copies full javascript objects", function () {
var ini = new TestObj();
var cop = Tools.copyObject(ini);
expect(cop).not.toBe(ini);
expect(cop).toEqual(ini);
expect(cop.get()).toEqual("test");
});
it("merges objects", function () {
expect(Tools.merge({}, {})).toEqual({});
expect(Tools.merge({ "a": 1 }, { "b": 2 })).toEqual({ "a": 1, "b": 2 });
expect(Tools.merge({ "a": 1 }, { "a": 3, "b": 2 })).toEqual({ "a": 3, "b": 2 });
});
it("partitions arrays by a predicate", function () {
expect(Tools.binpartition([1, 2, 3, 4], i => i % 2 == 0)).toEqual([[2, 4], [1, 3]]);
});
});
}