You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

137 lines
2.7 KiB

import calculateDiff, {diffString} from "./diff";
const programWithoutWarmup = {
warmupMin: 0,
warmupCpm: 0,
cpm: 30,
cooldownCpm: 20,
};
const programWithWarmup = {
warmupMin: 10,
warmupCpm: 25,
cpm: 30,
cooldownCpm: 20,
};
const programGis = {
id: "P016e68afbab3720762a67aa30c7fdb9f",
name: "Gisle 2",
cpm: 30,
warmupMin: 5,
warmupCpm: 20,
level: 18,
warmupLevel: 16,
cooldownLevel: 16,
cooldownCpm: 20
};
describe('diffString', () => {
it("should show a plus before zero", () => {
expect(diffString(0)).toBe("+0");
});
it("should show a plus before a positive number", () => {
expect(diffString(44)).toBe("+44");
});
it("should show a minus when negatives", () => {
expect(diffString(-12)).toBe("-12");
});
});
describe("calculateDiff", () => {
it("should return zero at start", () => {
const diff = calculateDiff({
program: programWithoutWarmup,
minutes: 0,
seconds: 0,
calories: 0,
});
expect(diff).toBe(0);
});
it("should expect 300 calories after 0' / 10'", () => {
const diff = calculateDiff({
program: programWithoutWarmup,
minutes: 10,
seconds: 0,
calories: 305,
});
expect(diff).toBe(5);
});
it("should expect 865 calories after 10' / 20'50", () => {
const diff = calculateDiff({
program: programWithWarmup,
minutes: 30,
seconds: 50,
calories: 250 + 600 + 25 - 17,
});
// Aim: 875
expect(diff).toBe(-17);
});
it("should expect 755 calories after 10' / 15' / 7'45", () => {
const diff = calculateDiff({
program: programWithWarmup,
cooldownMin: 25,
minutes: 32,
seconds: 45,
calories: 250 + 450 + 140 + 15,
});
expect(diff).toBe(0);
});
it("should expect 325 calories after 5' (half) / 0' / 10'", () => {
const diff = calculateDiff({
program: programWithWarmup,
cooldownMin: 5,
minutes: 15,
seconds: 0,
calories: 325
});
expect(diff).toBe(0);
});
it("should expect 50 calories after 2.5 min of GIS", () => {
const diff = calculateDiff({
program: programGis,
cooldownMin: -1,
minutes: 2,
seconds: 30,
calories: 53,
});
expect(diff).toBe(3);
});
it("should expect 175 calories after 7.5 min of GIS", () => {
const diff = calculateDiff({
program: programGis,
cooldownMin: -1,
minutes: 7,
seconds: 30,
calories: 175,
});
expect(diff).toBe(0);
});
it("should expect 310 calories after 12.5 min of GIS", () => {
const diff = calculateDiff({
program: programGis,
cooldownMin: 11,
minutes: 12,
seconds: 30,
calories: 311,
});
expect(diff).toBe(1);
});
});