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