79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
|
/**
|
||
|
* @fileoverview Test data for float encoding and decoding.
|
||
|
*/
|
||
|
goog.module('protobuf.binary.floatTestPairs');
|
||
|
|
||
|
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, floatValue:number, bufferDecoder:
|
||
|
* !BufferDecoder}>}
|
||
|
*/
|
||
|
function getFloatPairs() {
|
||
|
const floatPairs = [
|
||
|
{
|
||
|
name: 'zero',
|
||
|
floatValue: 0,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x00, 0x00),
|
||
|
},
|
||
|
{
|
||
|
name: 'minus zero',
|
||
|
floatValue: -0,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x00, 0x80)
|
||
|
},
|
||
|
{
|
||
|
name: 'one ',
|
||
|
floatValue: 1,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x80, 0x3F)
|
||
|
},
|
||
|
{
|
||
|
name: 'minus one',
|
||
|
floatValue: -1,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x80, 0xBF)
|
||
|
},
|
||
|
{
|
||
|
name: 'two',
|
||
|
floatValue: 2,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x00, 0x40)
|
||
|
},
|
||
|
{
|
||
|
name: 'max float32',
|
||
|
floatValue: Math.pow(2, 127) * (2 - 1 / Math.pow(2, 23)),
|
||
|
bufferDecoder: createBufferDecoder(0xFF, 0xFF, 0x7F, 0x7F)
|
||
|
},
|
||
|
|
||
|
{
|
||
|
name: 'min float32',
|
||
|
floatValue: 1 / Math.pow(2, 127 - 1),
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x80, 0x00)
|
||
|
},
|
||
|
|
||
|
{
|
||
|
name: 'Infinity',
|
||
|
floatValue: Infinity,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x80, 0x7F)
|
||
|
},
|
||
|
{
|
||
|
name: 'minus Infinity',
|
||
|
floatValue: -Infinity,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0x80, 0xFF)
|
||
|
},
|
||
|
{
|
||
|
name: '1.5',
|
||
|
floatValue: 1.5,
|
||
|
bufferDecoder: createBufferDecoder(0x00, 0x00, 0xC0, 0x3F)
|
||
|
},
|
||
|
{
|
||
|
name: '1.6',
|
||
|
floatValue: 1.6,
|
||
|
bufferDecoder: createBufferDecoder(0xCD, 0xCC, 0xCC, 0x3F)
|
||
|
},
|
||
|
];
|
||
|
return [...floatPairs];
|
||
|
}
|
||
|
|
||
|
exports = {getFloatPairs};
|