47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import {expect} from 'chai';
|
|
|
|
import {EpochSchedule} from '../src';
|
|
|
|
describe('EpochSchedule', () => {
|
|
it('slot methods work', () => {
|
|
const firstNormalEpoch = 14;
|
|
const firstNormalSlot = 524_256;
|
|
const leaderScheduleSlotOffset = 432_000;
|
|
const slotsPerEpoch = 432_000;
|
|
const warmup = true;
|
|
|
|
const epochSchedule = new EpochSchedule(
|
|
slotsPerEpoch,
|
|
leaderScheduleSlotOffset,
|
|
warmup,
|
|
firstNormalEpoch,
|
|
firstNormalSlot,
|
|
);
|
|
|
|
expect(epochSchedule.getEpoch(35)).to.be.equal(1);
|
|
expect(epochSchedule.getEpochAndSlotIndex(35)).to.be.eql([1, 3]);
|
|
|
|
expect(
|
|
epochSchedule.getEpoch(firstNormalSlot + 3 * slotsPerEpoch + 12345),
|
|
).to.be.equal(17);
|
|
expect(
|
|
epochSchedule.getEpochAndSlotIndex(
|
|
firstNormalSlot + 3 * slotsPerEpoch + 12345,
|
|
),
|
|
).to.be.eql([17, 12345]);
|
|
|
|
expect(epochSchedule.getSlotsInEpoch(4)).to.be.equal(512);
|
|
expect(epochSchedule.getSlotsInEpoch(100)).to.be.equal(slotsPerEpoch);
|
|
|
|
expect(epochSchedule.getFirstSlotInEpoch(2)).to.be.equal(96);
|
|
expect(epochSchedule.getLastSlotInEpoch(2)).to.be.equal(223);
|
|
|
|
expect(epochSchedule.getFirstSlotInEpoch(16)).to.be.equal(
|
|
firstNormalSlot + 2 * slotsPerEpoch,
|
|
);
|
|
expect(epochSchedule.getLastSlotInEpoch(16)).to.be.equal(
|
|
firstNormalSlot + 3 * slotsPerEpoch - 1,
|
|
);
|
|
});
|
|
});
|