/** * @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};