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