-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathuint32_test_pairs.js
68 lines (65 loc) · 2.02 KB
/
uint32_test_pairs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
* @fileoverview Test data for int32 encoding and decoding.
*/
goog.module('protobuf.binary.uint32TestPairs');
const BufferDecoder = goog.require('protobuf.binary.BufferDecoder');
const {createBufferDecoder} = goog.require('protobuf.binary.bufferDecoderHelper');
/**
* An array of Pairs of float values and their bit representation.
* This is used to test encoding and decoding from/to the protobuf wire format.
* @return {!Array<{name: string, intValue:number, bufferDecoder:
* !BufferDecoder, error: (boolean|undefined),
* skip_reader: (boolean|undefined), skip_writer: (boolean|undefined)}>}
*/
function getUint32Pairs() {
const uint32Pairs = [
{
name: 'zero',
intValue: 0,
bufferDecoder: createBufferDecoder(0x00),
},
{
name: 'one ',
intValue: 1,
bufferDecoder: createBufferDecoder(0x01),
},
{
name: 'max signed int 2^31 - 1',
intValue: Math.pow(2, 31) - 1,
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x07),
},
{
name: 'max unsigned int 2^32 - 1',
intValue: Math.pow(2, 32) - 1,
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x0F),
},
{
name: 'negative one',
intValue: -1,
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x0F),
skip_reader: true,
},
{
name: 'truncates more than 32 bits',
intValue: Math.pow(2, 32) - 1,
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01),
skip_writer: true,
},
{
name: 'truncates more than 32 bits (bit 33 set)',
intValue: Math.pow(2, 28) - 1,
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0x10),
skip_writer: true,
},
{
name: 'errors out for 11 bytes',
intValue: Math.pow(2, 32) - 1,
bufferDecoder: createBufferDecoder(
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
error: true,
skip_writer: true,
},
];
return [...uint32Pairs];
}
exports = {getUint32Pairs};