UNPKG

binary-data

Version:

Declarative binary data encoder / decoder.

1 lines 3.87 kB
{"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"]}