{"version":3,"sources":["encode.js"],"names":["BinaryStream","require","describe","suites","Number","MAX_SAFE_INTEGER","suite","method","read","test","stream","buf","slice","expect","length","toBe"],"mappings":"AAAA;;AAEA,MAAMA,eAAeC,QAAQ,mBAAR,CAArB;;AAEAC,SAAS,cAAT,EAAyB,MAAM;AAC7B,QAAMC,SAAS;AACb;AACA,GAAC,UAAD,EAAa,CAAb,EAAgBC,OAAOC,gBAAP,GAA0B,CAA1C,CAFa,EAGb,CAAC,UAAD,EAAa,CAAb,EAAgBD,OAAOC,gBAAP,GAA0B,CAA1C,CAHa,EAKb,CAAC,SAAD,EAAY,CAAZ,EAAe,GAAf,CALa,EAMb,CAAC,SAAD,EAAY,CAAZ,EAAe,GAAf,CANa,EAQb,CAAC,MAAD,EAAS,CAAT,EAAY,GAAZ,CARa,EASb,CAAC,OAAD,EAAU,CAAV,EAAa,GAAb,CATa,EAWb,CAAC,SAAD,EAAY,CAAZ,EAAe,SAAS,CAAxB,CAXa,EAYb,CAAC,SAAD,EAAY,CAAZ,EAAe,SAAS,CAAxB,CAZa,EAcb,CAAC,UAAD,EAAa,CAAb,EAAgB,SAAS,CAAzB,CAda,EAeb,CAAC,UAAD,EAAa,CAAb,EAAgB,SAAS,CAAzB,CAfa,EAiBb,CAAC,SAAD,EAAY,CAAZ,EAAe,aAAa,CAA5B,CAjBa,EAkBb,CAAC,SAAD,EAAY,CAAZ,EAAe,aAAa,CAA5B,CAlBa,EAoBb,CAAC,UAAD,EAAa,CAAb,EAAgB,aAAa,CAA7B,CApBa,EAqBb,CAAC,UAAD,EAAa,CAAb,EAAgB,aAAa,CAA7B,CArBa,CAAf;;AAwBA,OAAK,MAAMC,KAAX,IAAoBH,MAApB,EAA4B;AAC1B,UAAMI,SAAU,QAAOD,MAAM,CAAN,CAAS,EAAhC;AACA,UAAME,OAAQ,OAAMF,MAAM,CAAN,CAAS,EAA7B;;AAEA;AACAG,SAAKF,MAAL,EAAa,MAAM;AACjB,YAAMG,SAAS,IAAIV,YAAJ,EAAf;AACAU,aAAOH,MAAP,EAAeD,MAAM,CAAN,CAAf;AACA,YAAMK,MAAMD,OAAOE,KAAP,EAAZ;;AAEAC,aAAOH,OAAOI,MAAd,EAAsBC,IAAtB,CAA2BT,MAAM,CAAN,CAA3B;AACAO,aAAOF,IAAIH,IAAJ,EAAU,CAAV,CAAP,EAAqBO,IAArB,CAA0BT,MAAM,CAAN,CAA1B;AACD,KAPD;AAQD;AACF,CAvCD;;AAyCAJ,SAAS,eAAT,EAA0B,MAAM;AAC9B,QAAMC,SAAS;AACb;AACA,GAAC,OAAD,EAAU,CAAV,EAAa,WAAW,CAAxB,CAFa,EAGb,CAAC,QAAD,EAAW,CAAX,EAAc,WAAW,CAAzB,CAHa,EAKb,CAAC,OAAD,EAAU,CAAV,EAAa,WAAW,CAAxB,CALa,EAMb,CAAC,QAAD,EAAW,CAAX,EAAc,WAAW,CAAzB,CANa,CAAf;;AASA,OAAK,MAAMG,KAAX,IAAoBH,MAApB,EAA4B;AAC1B,UAAMI,SAAU,QAAOD,MAAM,CAAN,CAAS,EAAhC;AACA,UAAME,OAAQ,OAAMF,MAAM,CAAN,CAAS,EAA7B;;AAEA;AACAG,SAAKF,MAAL,EAAa,MAAM;AACjB,YAAMG,SAAS,IAAIV,YAAJ,EAAf;AACAU,aAAOH,MAAP,EAAeD,MAAM,CAAN,CAAf,EAAyBA,MAAM,CAAN,CAAzB;AACA,YAAMK,MAAMD,OAAOE,KAAP,EAAZ;;AAEAC,aAAOH,OAAOI,MAAd,EAAsBC,IAAtB,CAA2BT,MAAM,CAAN,CAA3B;AACAO,aAAOF,IAAIH,IAAJ,EAAU,CAAV,EAAaF,MAAM,CAAN,CAAb,CAAP,EAA+BS,IAA/B,CAAoCT,MAAM,CAAN,CAApC;AACD,KAPD;AAQD;AACF,CAxBD","file":"encode.js","sourcesContent":["'use strict';\n\nconst BinaryStream = require('lib/binary-stream');\n\ndescribe('encode fixed', () => {\n  const suites = [\n    /* Type, size, test value */\n    ['DoubleBE', 8, Number.MAX_SAFE_INTEGER / 2],\n    ['DoubleLE', 8, Number.MAX_SAFE_INTEGER / 2],\n\n    ['FloatBE', 4, 0.5],\n    ['FloatLE', 4, 0.5],\n\n    ['Int8', 1, 127],\n    ['UInt8', 1, 255],\n\n    ['Int16BE', 2, 0x7fff - 1],\n    ['Int16LE', 2, 0x7fff - 1],\n\n    ['UInt16BE', 2, 0xffff - 1],\n    ['UInt16LE', 2, 0xffff - 1],\n\n    ['Int32BE', 4, 0x7fffffff - 1],\n    ['Int32LE', 4, 0x7fffffff - 1],\n\n    ['UInt32BE', 4, 0xffffffff - 1],\n    ['UInt32LE', 4, 0xffffffff - 1],\n  ];\n\n  for (const suite of suites) {\n    const method = `write${suite[0]}`;\n    const read = `read${suite[0]}`;\n\n    // eslint-disable-next-line no-loop-func\n    test(method, () => {\n      const stream = new BinaryStream();\n      stream[method](suite[2]);\n      const buf = stream.slice();\n\n      expect(stream.length).toBe(suite[1]);\n      expect(buf[read](0)).toBe(suite[2]);\n    });\n  }\n});\n\ndescribe('encode custom', () => {\n  const suites = [\n    /* Type, size, test value */\n    ['IntBE', 3, 0x7fffff - 1],\n    ['UIntBE', 3, 0xffffff - 1],\n\n    ['IntLE', 3, 0x7fffff - 1],\n    ['UIntLE', 3, 0xffffff - 1],\n  ];\n\n  for (const suite of suites) {\n    const method = `write${suite[0]}`;\n    const read = `read${suite[0]}`;\n\n    // eslint-disable-next-line no-loop-func\n    test(method, () => {\n      const stream = new BinaryStream();\n      stream[method](suite[2], suite[1]);\n      const buf = stream.slice();\n\n      expect(stream.length).toBe(suite[1]);\n      expect(buf[read](0, suite[1])).toBe(suite[2]);\n    });\n  }\n});\n"]}