Spaces:
Paused
Paused
| const assert = require('assert') | |
| const tsame = require('tsame') | |
| const { it } = require('mocha') | |
| const bytes = require('../') | |
| const test = it | |
| const same = (x, y) => assert.ok(tsame(x, y)) | |
| test('string conversion', done => { | |
| const ab = bytes('hello world') | |
| assert(ab instanceof DataView) | |
| const str = bytes.toString(ab) | |
| same(str, 'hello world') | |
| done() | |
| }) | |
| test('compare', done => { | |
| const a = bytes('hello world') | |
| const b = bytes('hello world 2') | |
| assert(bytes.compare(a, a)) | |
| assert(bytes.compare(a, 'hello world')) | |
| assert(!bytes.compare(a, b)) | |
| assert(!bytes.compare(b, a)) | |
| assert(!bytes.compare(a, '123')) | |
| assert(!bytes.compare('123', a)) | |
| done() | |
| }) | |
| test('double view', done => { | |
| const a = bytes('hello world') | |
| const b = bytes(a) | |
| same(a, b) | |
| done() | |
| }) | |
| test('typed array', done => { | |
| const ab = bytes.random(4) | |
| const view = bytes(ab) | |
| const uint = bytes.typedArray(ab, Uint32Array) | |
| assert(uint instanceof Uint32Array) | |
| assert(bytes.compare(uint, view)) | |
| done() | |
| }) | |
| test('from array buffer', done => { | |
| const a = bytes('hello world') | |
| const b = bytes(bytes.memcopy(a)) | |
| same(bytes.toString(a), bytes.toString(b)) | |
| done() | |
| }) | |
| test('to array buffer', done => { | |
| const a = bytes.arrayBuffer('hello world') | |
| const b = bytes('hello world') | |
| assert(a instanceof ArrayBuffer) | |
| assert(bytes.compare(a, b)) | |
| assert(a, bytes.arrayBuffer(a)) | |
| done() | |
| }) | |
| test('Uint8Array', done => { | |
| const a = bytes('hello world') | |
| const b = bytes(new Uint8Array(bytes.memcopy(a))) | |
| same(bytes.toString(a), bytes.toString(b)) | |
| done() | |
| }) | |
| test('native', done => { | |
| let n = bytes.native('hello world') | |
| if (process.browser) { | |
| assert(n instanceof Uint8Array) | |
| n = bytes.native(n) | |
| assert(n instanceof Uint8Array) | |
| } else { | |
| assert(n instanceof Buffer) | |
| n = bytes.native(n) | |
| assert(n instanceof Buffer) | |
| } | |
| done() | |
| }) | |
| test('slice', done => { | |
| const a = bytes.slice('hello world', 2, 7) | |
| assert(a instanceof DataView) | |
| const b = bytes.arrayBuffer('hello world').slice(2, 7) | |
| same(b, bytes.arrayBuffer(a)) | |
| done() | |
| }) | |
| test('slice memcopy', done => { | |
| const a = bytes.memcopySlice('hello world', 2, 7) | |
| assert(a instanceof ArrayBuffer) | |
| const b = bytes.arrayBuffer('hello world').slice(2, 7) | |
| same(b, a) | |
| const c = bytes.memcopySlice(a) | |
| assert(a !== c) | |
| same(a, c) | |
| done() | |
| }) | |
| test('concat', done => { | |
| let values = [bytes('1'), bytes.native('2'), bytes.arrayBuffer('3')] | |
| let ab = bytes.concat(values) | |
| assert(ab instanceof ArrayBuffer) | |
| assert(bytes.compare(ab, '123')) | |
| values = [bytes('one')] | |
| ab = bytes.concat(values) | |
| assert(bytes.compare(ab, 'one')) | |
| done() | |
| }) | |
| test('random above max entropy', done => { | |
| const maxEntropy = 65536 | |
| const size = (maxEntropy * 3) + 8 | |
| const rand = bytes.random(size) | |
| same(rand.byteLength, size) | |
| done() | |
| }) | |