import { it, describe } from 'mocha'; import { expect } from 'chai'; import { Resources } from '../../src/Core/Resources'; import { calcGatheringTimings, GatheringTimings } from '../../src/Core/GatheringTimings'; describe('Gathering timings', function () { it('Can calc common from numbers', function () { const timings = GatheringTimings.create(10, 20, 15, 5); expect(20).to.equals(timings.slowest.seconds); }); it('Can calc common with never', function () { const timings = GatheringTimings.create(10, 20, 'never', 5); expect(true).to.equals(timings.slowest.never); }); it('Can calc common with all never', function () { const timings = GatheringTimings.create('never', 'never', 'never', 'never'); expect(true).to.equals(timings.slowest.never); }); it('Can calc timings', function () { const resources = new Resources(10, 10, 10, 10); const desired = new Resources(60, 60, 60, 60); const speed = new Resources(5, 5, 5, 5); const timings = calcGatheringTimings(resources, desired, speed); expect(10 * 3600).to.equals(timings.slowest.seconds); }); it('Can calc timings with different speed', function () { const resources = new Resources(10, 10, 10, 10); const desired = new Resources(60, 60, 60, 60); const speed = new Resources(5, 10, 25, 5); const timings = calcGatheringTimings(resources, desired, speed); expect(10 * 3600).to.equals(timings.lumber.seconds); expect(5 * 3600).to.equals(timings.clay.seconds); expect(2 * 3600).to.equals(timings.iron.seconds); expect(10 * 3600).to.equals(timings.crop.seconds); expect(10 * 3600).to.equals(timings.slowest.seconds); }); it('Can calc timings with negative speed', function () { const resources = new Resources(10, 10, 10, 10); const desired = new Resources(60, 60, 60, 60); const speed = new Resources(5, 10, 25, -5); const timings = calcGatheringTimings(resources, desired, speed); expect(10 * 3600).to.equals(timings.lumber.seconds); expect(5 * 3600).to.equals(timings.clay.seconds); expect(2 * 3600).to.equals(timings.iron.seconds); expect(true).to.equals(timings.crop.never); expect(true).to.equals(timings.slowest.never); }); });