double_test_pairs.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * @fileoverview Test data for double encoding and decoding.
  3. */
  4. goog.module('protobuf.binary.doubleTestPairs');
  5. const BufferDecoder = goog.require('protobuf.binary.BufferDecoder');
  6. const {createBufferDecoder} = goog.require('protobuf.binary.bufferDecoderHelper');
  7. /**
  8. * An array of Pairs of double values and their bit representation.
  9. * This is used to test encoding and decoding from the protobuf wire format.
  10. * @return {!Array<{name: string, doubleValue:number, bufferDecoder:
  11. * !BufferDecoder}>}
  12. */
  13. function getDoublePairs() {
  14. const doublePairs = [
  15. {
  16. name: 'zero',
  17. doubleValue: 0,
  18. bufferDecoder:
  19. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
  20. },
  21. {
  22. name: 'minus zero',
  23. doubleValue: -0,
  24. bufferDecoder:
  25. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80)
  26. },
  27. {
  28. name: 'one',
  29. doubleValue: 1,
  30. bufferDecoder:
  31. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F)
  32. },
  33. {
  34. name: 'minus one',
  35. doubleValue: -1,
  36. bufferDecoder:
  37. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xBF)
  38. },
  39. {
  40. name: 'PI',
  41. doubleValue: Math.PI,
  42. bufferDecoder:
  43. createBufferDecoder(0x18, 0x2D, 0x44, 0x54, 0xFB, 0x21, 0x09, 0x40)
  44. },
  45. {
  46. name: 'max value',
  47. doubleValue: Number.MAX_VALUE,
  48. bufferDecoder:
  49. createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7F)
  50. },
  51. {
  52. name: 'min value',
  53. doubleValue: Number.MIN_VALUE,
  54. bufferDecoder:
  55. createBufferDecoder(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
  56. },
  57. {
  58. name: 'Infinity',
  59. doubleValue: Infinity,
  60. bufferDecoder:
  61. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F)
  62. },
  63. {
  64. name: 'minus Infinity',
  65. doubleValue: -Infinity,
  66. bufferDecoder:
  67. createBufferDecoder(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF)
  68. },
  69. {
  70. name: 'Number.MAX_SAFE_INTEGER',
  71. doubleValue: Number.MAX_SAFE_INTEGER,
  72. bufferDecoder:
  73. createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x43)
  74. },
  75. {
  76. name: 'Number.MIN_SAFE_INTEGER',
  77. doubleValue: Number.MIN_SAFE_INTEGER,
  78. bufferDecoder:
  79. createBufferDecoder(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xC3)
  80. },
  81. ];
  82. return [...doublePairs];
  83. }
  84. exports = {getDoublePairs};