1/** 2 * @fileoverview Test data for int32 encoding and decoding. 3 */ 4goog.module('protobuf.binary.int32TestPairs'); 5 6const BufferDecoder = goog.require('protobuf.binary.BufferDecoder'); 7const {createBufferDecoder} = goog.require('protobuf.binary.bufferDecoderHelper'); 8 9/** 10 * An array of Pairs of float values and their bit representation. 11 * This is used to test encoding and decoding from/to the protobuf wire format. 12 * @return {!Array<{name: string, intValue:number, bufferDecoder: 13 * !BufferDecoder, error: ?boolean, skip_writer: ?boolean}>} 14 */ 15function getInt32Pairs() { 16 const int32Pairs = [ 17 { 18 name: 'zero', 19 intValue: 0, 20 bufferDecoder: createBufferDecoder(0x00), 21 }, 22 { 23 name: 'one ', 24 intValue: 1, 25 bufferDecoder: createBufferDecoder(0x01), 26 }, 27 { 28 name: 'minus one', 29 intValue: -1, 30 bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x0F), 31 // The writer will encode this with 64 bits, see below 32 skip_writer: true, 33 }, 34 { 35 name: 'minus one (64bits)', 36 intValue: -1, 37 bufferDecoder: createBufferDecoder( 38 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01), 39 }, 40 { 41 name: 'max signed int 2^31 - 1', 42 intValue: Math.pow(2, 31) - 1, 43 bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x07), 44 45 }, 46 { 47 name: 'min signed int -2^31', 48 intValue: -Math.pow(2, 31), 49 bufferDecoder: createBufferDecoder(0x80, 0x80, 0x80, 0x80, 0x08), 50 // The writer will encode this with 64 bits, see below 51 skip_writer: true, 52 }, 53 { 54 name: 'value min signed int -2^31 (64 bit)', 55 intValue: -Math.pow(2, 31), 56 bufferDecoder: createBufferDecoder( 57 0x80, 0x80, 0x80, 0x80, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x01), 58 }, 59 { 60 name: 'errors out for 11 bytes', 61 intValue: -1, 62 bufferDecoder: createBufferDecoder( 63 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), 64 error: true, 65 skip_writer: true, 66 }, 67 ]; 68 return [...int32Pairs]; 69} 70 71exports = {getInt32Pairs}; 72