import { Slab } from './index'; import BN from 'bn.js'; const SLAB_BUFFER = Buffer.from( '0900000000000000020000000000000008000000000000000400000000000000010000001e00000000000040952fe4da5c1f3c860200000004000000030000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000200000002000000000000a0ca17726dae0f1e4301000000111111111111111111111111111111111111111111111111111111111111111141010000000000000200000001000000d20a3f4eeee073c3f60fe98e010000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b00000000000000020000000300000000000040952fe4da5c1f3c8602000000131313131313131313131313131313131313131313131313131313131313131340e2010000000000010000001f0000000500000000000000000000000000000005000000060000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b00000000000000020000000400000004000000000000000000000000000000171717171717171717171717171717171717171717171717171717171717171702000000000000000100000020000000000000a0ca17726dae0f1e430100000001000000020000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000400000000000000040000000000000000000000000000001717171717171717171717171717171717171717171717171717171717171717020000000000000003000000070000000500000000000000000000000000000017171717171717171717171717171717171717171717171717171717171717170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'hex', ); describe('slab', () => { let slab; it('parses', () => { slab = Slab.from(SLAB_BUFFER); expect(slab).toBeTruthy(); expect(slab.header.bumpIndex).toBe(9); expect(slab.nodes).toHaveLength(9); }); it('finds nodes', () => { expect(slab.get(new BN('123456789012345678901234567890')).ownerSlot).toBe( 1, ); expect(slab.get(new BN('100000000000000000000000000000')).ownerSlot).toBe( 2, ); expect(slab.get(new BN('200000000000000000000000000000')).ownerSlot).toBe( 3, ); expect(slab.get(4).ownerSlot).toBe(4); }); it('does not find nonexistant nodes', () => { expect(slab.get(0)).toBeNull(); expect(slab.get(3)).toBeNull(); expect(slab.get(5)).toBeNull(); expect(slab.get(6)).toBeNull(); expect(slab.get(new BN('200000000000000000000000000001'))).toBeNull(); expect(slab.get(new BN('100000000000000000000000000001'))).toBeNull(); expect(slab.get(new BN('123456789012345678901234567889'))).toBeNull(); expect(slab.get(new BN('123456789012345678901234567891'))).toBeNull(); expect(slab.get(new BN('99999999999999999999999999999'))).toBeNull(); }); });