39 lines
1 KiB
TypeScript
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]]);
|
|
});
|
|
});
|
|
}
|