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

46 lines
1.8 KiB
TypeScript

module TS.SpaceTac.Game.Specs {
function checkProportional(range: Range, value1: number, value2: number) {
expect(range.getProportional(value1)).toEqual(value2);
expect(range.getReverseProportional(value2)).toEqual(value1);
}
describe("Range", () => {
it("can work with proportional values", () => {
var range = new Range(1, 5);
checkProportional(range, 0, 1);
checkProportional(range, 1, 5);
checkProportional(range, 0.5, 3);
checkProportional(range, 0.4, 2.6);
expect(range.getProportional(-0.25)).toEqual(1);
expect(range.getProportional(1.8)).toEqual(5);
expect(range.getReverseProportional(0)).toEqual(0);
expect(range.getReverseProportional(6)).toEqual(1);
});
});
describe("IntegerRange", () => {
it("can work with proportional values", () => {
var range = new IntegerRange(1, 5);
expect(range.getProportional(0)).toEqual(1);
expect(range.getProportional(0.1)).toEqual(1);
expect(range.getProportional(0.2)).toEqual(2);
expect(range.getProportional(0.45)).toEqual(3);
expect(range.getProportional(0.5)).toEqual(3);
expect(range.getProportional(0.75)).toEqual(4);
expect(range.getProportional(0.8)).toEqual(5);
expect(range.getProportional(0.99)).toEqual(5);
expect(range.getProportional(1)).toEqual(5);
expect(range.getReverseProportional(1)).toEqual(0);
expect(range.getReverseProportional(2)).toEqual(0.2);
expect(range.getReverseProportional(3)).toEqual(0.4);
expect(range.getReverseProportional(4)).toEqual(0.6);
expect(range.getReverseProportional(5)).toEqual(0.8);
});
});
}