* first try, failing test * fix implementation and tests * lint:fix * move method tests to seperate test * lint fix * apply starry's comments and grab the bonus points * minor fixes after starry's second review Co-authored-by: Arrowana <8245419+Arrowana@users.noreply.github.com>
		
			
				
	
	
		
			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,
 | 
						|
    );
 | 
						|
  });
 | 
						|
});
 |