Skip to main content
Home
This release is 27 versions behind 1.0.6 — the latest version of @std/bytes. Jump to latest
Works with
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score100%
Downloads50,215/wk
Published2 years ago (0.209.0)

Utilities to manipulate Uint8Arrays that are not built-in to JavaScript

// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. import { equals } from "./equals.ts"; import { assert } from "jsr:@std/assert@^0.209.0"; Deno.test("[bytes] equals", () => { const v = equals(new Uint8Array([0, 1, 2, 3]), new Uint8Array([0, 1, 2, 3])); const v2 = equals(new Uint8Array([0, 1, 2, 2]), new Uint8Array([0, 1, 2, 3])); const v3 = equals(new Uint8Array([0, 1, 2, 3]), new Uint8Array([0, 1, 2])); assert(v); assert(!v2); assert(!v3); }); Deno.test("[bytes] equals randomized testing", () => { // run tests before and after cutoff for (let len = 995; len <= 1005; len++) { const arr1 = crypto.getRandomValues(new Uint8Array(len)); const arr2 = crypto.getRandomValues(new Uint8Array(len)); const arr3 = arr1.slice(0); // the chance of arr1 equaling arr2 is basically 0 // but introduce an inequality at the end just in case arr2[arr2.length - 1] = arr1[arr1.length - 1] ^ 1; // arr3 is arr1 but with an inequality in the very last element // this is to test the equality check when length isn't a multiple of 4 arr3[arr3.length - 1] ^= 1; // arrays with same underlying ArrayBuffer should be equal assert(equals(arr1, arr1)); // equal arrays with different underlying ArrayBuffers should be equal assert(equals(arr1, arr1.slice(0))); // inequal arrays should be inequal assert(!equals(arr1, arr2)); assert(!equals(arr1, arr3)); } });