1.0.3 • Published 6 years ago

uint8clampedarray-utils v1.0.3

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

Utility Library for Comparing Uint8ClampedArrays

Build Status Coverage Status npm version

Installation

npm install uint8clampedarray-utils
yarn add uint8clampedarray-utils

Usage

isEqual

Check if two values are equal Uint8ClampedArrays.
=> Promise

  // Promise is resolved if equal
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3]);
  await isEqual(a, b) // => true;

  // Promise is rejected on difference
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([3, 2, 1]);
  await isEqual(a, b) // => throws Error;

  // Promise is rejected when called with non Uint8ClampedArray value
  const a = [1, 2, 3];
  const b = new Uint8ClampedArray([1, 2, 3]);;
  await isEqual(a, b) // => throws Error;

isEqualSync

Check if two values are equal Uint8ClampedArrays.
=> Boolean

  // Returns true/false
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3]);
  isEqualSync(a, b) // => true

  // Pass flag to throw error on invalid arguments/difference
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3, 4]);
  const throwError = true;
  isEqualSync(a, b, throwError) // => throws Error  

diff

Calculate difference between two Uint8ClampedArray.
=> Promise

  // Promise is resolved with statistics object
  const a = new Uint8ClampedArray([1, 2, 3, 4]);
  const b = new Uint8ClampedArray([1, 2, 3, 5]);
  await diff(a, b) // => { diffCount: 1, diffPercentage: 25 }

  // Set the step size to 4 if you want to check for pixel differences in RGBA array
  const a = new Uint8ClampedArray([0, 0, 0, 0, 255, 36, 17, 50]);
  const b = new Uint8ClampedArray([0, 0, 0, 0, 0, 0, 0, 0]);
  const stepSize = 4;
  await diff(a, b, stepSize) // => { diffCount: 1, diffPercentage: 50 }

  // Promise is rejected on difference in length
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3, 4]);
  await diff(a, b) // => throws Error;

  // Promise is rejected when called with non Uint8ClampedArray value
  const a = [1, 2, 3];
  const b = new Uint8ClampedArray([1, 2, 3]);;
  await diff(a, b) // => throws Error;

diffSync

Calculate difference between two Uint8ClampedArray.
=> Object

  // Returns statistics object
  const a = new Uint8ClampedArray([1, 2, 3, 4]);
  const b = new Uint8ClampedArray([1, 2, 3, 5]);
  diffSync(a, b) // => { diffCount: 1, diffPercentage: 25 }

  // Set the step size to 4 if you want to check for pixel differences in RGBA array
  const a = new Uint8ClampedArray([0, 0, 0, 0, 255, 36, 17, 50]);
  const b = new Uint8ClampedArray([0, 0, 0, 0, 0, 0, 0, 0]);
  const stepSize = 4;
  diffSync(a, b, stepSize) // => { diffCount: 1, diffPercentage: 50 }

  // Throws Error on difference in length
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3, 4]);
  diffSync(a, b) // => throws Error;

  // Throws Error when called with non Uint8ClampedArray value
  const a = [1, 2, 3];
  const b = new Uint8ClampedArray([1, 2, 3]);;
  diffSync(a, b) // => throws Error;

isUint8ClampedArray

Check if value is Uint8ClampedArray. Basically a wrapper for value instanceof Uint8ClampedArray.
=> Boolean

  // Returns true/false
  const arr = [1, 2, 3];
  const uArr = new Uint8ClampedArray([1, 2, 3]);
  isUint8ClampedArray(arr) // => false
  isUint8ClampedArray(uArr) // => true

hasSameLength

Check if two Uint8ClampedArrays have the same length. Basically a wrapper for a.length === b.length.
=> Boolean

  // Returns true/false
  const a = new Uint8ClampedArray([1, 2, 3]);
  const b = new Uint8ClampedArray([1, 2, 3]);
  hasSameLength(a, b) // => true

  // Returns false when called with non Uint8ClampedArray value
  const a = [1, 2, 3];
  const b = new Uint8ClampedArray([1, 2, 3]);
  hasSameLength(a, b) // => false

  // Pass flag to throw error when called with non Uint8ClampedArray value
  const a = [1, 2, 3];
  const b = new Uint8ClampedArray([1, 2, 3]);
  const throwError = true;
  hasSameLength(a, b, throwError) // => throws Error

Running the tests

yarn test
yarn coverage
yarn lint

Support

Please open an issue for support.

License

MIT