|  | @@ -30,6 +30,15 @@ describe('LazyAccessor', () => {
 | 
	
		
			
				|  |  |      expect(accessor.serialize()).toEqual(new ArrayBuffer(0));
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  it('encodes and decodes max field number', () => {
 | 
	
		
			
				|  |  | +    const accessor = LazyAccessor.fromArrayBuffer(
 | 
	
		
			
				|  |  | +        createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x01));
 | 
	
		
			
				|  |  | +    expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toBe(true);
 | 
	
		
			
				|  |  | +    accessor.setBool(MAX_FIELD_NUMBER, false);
 | 
	
		
			
				|  |  | +    expect(accessor.serialize())
 | 
	
		
			
				|  |  | +        .toEqual(createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x00));
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    it('uses the default pivot point', () => {
 | 
	
		
			
				|  |  |      const accessor = LazyAccessor.fromArrayBuffer(new ArrayBuffer(0));
 | 
	
		
			
				|  |  |      expect(accessor.getPivot()).toBe(24);
 | 
	
	
		
			
				|  | @@ -147,17 +156,31 @@ describe('LazyAccessor clear field does', () => {
 | 
	
		
			
				|  |  |      expect(clonedAccessor.serialize()).toEqual(new ArrayBuffer(0));
 | 
	
		
			
				|  |  |      expect(clonedAccessor.getBoolWithDefault(1)).toEqual(false);
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  it('clear the max field number', () => {
 | 
	
		
			
				|  |  | +    const accessor = LazyAccessor.createEmpty();
 | 
	
		
			
				|  |  | +    accessor.setBool(MAX_FIELD_NUMBER, true);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    accessor.clearField(MAX_FIELD_NUMBER);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(accessor.hasFieldNumber(MAX_FIELD_NUMBER)).toEqual(false);
 | 
	
		
			
				|  |  | +    expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(false);
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  describe('LazyAccessor shallow copy does', () => {
 | 
	
		
			
				|  |  |    it('work for singular fields', () => {
 | 
	
		
			
				|  |  |      const accessor = LazyAccessor.createEmpty();
 | 
	
		
			
				|  |  |      accessor.setBool(1, true);
 | 
	
		
			
				|  |  | +    accessor.setBool(MAX_FIELD_NUMBER, true);
 | 
	
		
			
				|  |  |      const clonedAccessor = accessor.shallowCopy();
 | 
	
		
			
				|  |  |      expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
 | 
	
		
			
				|  |  | +    expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      accessor.setBool(1, false);
 | 
	
		
			
				|  |  | +    accessor.setBool(MAX_FIELD_NUMBER, false);
 | 
	
		
			
				|  |  |      expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
 | 
	
		
			
				|  |  | +    expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    it('work for repeated fields', () => {
 |