1
0
Fork 0
spacetac/src/core/ShipLevel.spec.ts

63 lines
2.5 KiB
TypeScript
Raw Normal View History

2017-09-24 22:23:22 +00:00
module TK.SpaceTac.Specs {
2017-10-26 21:47:13 +00:00
testing("ShipLevel", test => {
test.case("level up from experience points", check => {
2017-03-17 00:07:00 +00:00
let level = new ShipLevel();
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 1);
check.equals(level.getNextGoal(), 100);
check.equals(level.getSkillPoints(), 10);
2017-03-17 00:07:00 +00:00
level.addExperience(60); // 60
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 1);
check.equals(level.checkLevelUp(), false);
2017-03-17 00:07:00 +00:00
level.addExperience(70); // 130
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 1);
check.equals(level.checkLevelUp(), true);
check.equals(level.get(), 2);
check.equals(level.getNextGoal(), 300);
check.equals(level.getSkillPoints(), 15);
2017-03-17 00:07:00 +00:00
level.addExperience(200); // 330
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 2);
check.equals(level.checkLevelUp(), true);
check.equals(level.get(), 3);
check.equals(level.getNextGoal(), 600);
check.equals(level.getSkillPoints(), 20);
2017-03-17 00:07:00 +00:00
level.addExperience(320); // 650
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 3);
check.equals(level.checkLevelUp(), true);
check.equals(level.get(), 4);
check.equals(level.getNextGoal(), 1000);
check.equals(level.getSkillPoints(), 25);
2017-03-17 00:07:00 +00:00
});
2017-10-26 21:47:13 +00:00
test.case("forces a given level", check => {
2017-03-17 00:07:00 +00:00
let level = new ShipLevel();
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 1);
2017-03-17 00:07:00 +00:00
level.forceLevel(10);
2017-10-26 21:47:13 +00:00
check.equals(level.get(), 10);
2017-03-17 00:07:00 +00:00
});
2017-10-26 21:47:13 +00:00
test.case("computes needed level for given points", check => {
check.equals(ShipLevel.getLevelForPoints(0), 1);
check.equals(ShipLevel.getLevelForPoints(1), 1);
check.equals(ShipLevel.getLevelForPoints(2), 1);
check.equals(ShipLevel.getLevelForPoints(5), 1);
check.equals(ShipLevel.getLevelForPoints(10), 1);
check.equals(ShipLevel.getLevelForPoints(11), 2);
check.equals(ShipLevel.getLevelForPoints(15), 2);
check.equals(ShipLevel.getLevelForPoints(16), 3);
check.equals(ShipLevel.getLevelForPoints(526), 105);
});
2017-10-26 21:47:13 +00:00
test.case("computes needed points for given level", check => {
check.equals(ShipLevel.getPointsForLevel(1), 10);
check.equals(ShipLevel.getPointsForLevel(2), 15);
check.equals(ShipLevel.getPointsForLevel(3), 20);
check.equals(ShipLevel.getPointsForLevel(105), 530);
});
2017-03-17 00:07:00 +00:00
});
}