uint32_test_pairs.js 1.8 KB

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