1.0.0 • Published 12 days ago

@odczynflnpm/aliquid-expedita-repellat v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 days ago

js-testDiff

NPM

About

Deep object diffing function for JavaScript; returns true if input 1 differs in any way from input 2. Original code was taken from Differentia.js and ported to TypeScript.

The testDiff function was originally created as a unit testing utility and it was primarily designed/used to test Differentia's search algorithm strategy system, setting a "gold standard" for that library's quality and algorithmic correctness.

The key difference with this version of testDiff is that I removed its "search index" functionality, as it introduced more complexity than it was worth.

Feel free to scavenge the original code as I have: https://github.com/Floofies/Differentia.js/blob/master/spec/testUtils.js

Building

Run npm run build to compile and test module dist/index.js.

I have pre-compiled the most up-to-date files in dist. Enjoy.

unitTest.js can be safely ignored, as it's a development-only dependency for test.mjs.

Syntax

import { testDiff } from "testDiff";
testDiff( input1:any, input2:any, [ deep:boolean = false ] );

Parameters:

input1, input2

Two values/objects to compare against each other.

deep (Optional) (Default = true)

TestDiff performs "deep" object/array traversal by default, comparing all reachable values; set this operand to false to disable traversal and nested comparisons.

Return Value:

Returns true if input1's structure, properties, or values differ in any way from input2, or false if otherwsie.

Usage Examples

Example 1: Arbitrary values.

Can handle any arbitrary values, as well as objects/arrays.

const myArray1 = "Hello World!";
const myArray2 = "This is a test";
const result = testDiff(myArray1, myArray2);
// result = true

Example 2: Flat arrays/objects.

const myArray1 = [1,2,3];
const myArray2 = [4,5,6];
const result = testDiff(myArray1, myArray2);
// result = true

Example 3: Nested arrays/objects.

const myArray1 = ["Hello",["World!"]];
const myArray2 = ["Hello",["Developer!"]];
const result = testDiff(myArray1, myArray2);
// result = true

Example 4: Nested arrays. Traversal disabled.

In this example, the function returns false even though the arrays' contents differ; they are regarded as the same because there are no differences at the top, and disabling traversal prevents the algorithm from seeing deeper differences.

const myArray1 = ["Hello",["World!"]];
const myArray2 = ["Hello",["Developer!"]];
const result = testDiff(myArray1, myArray2, false);
// result = false
@odczynflnpm/cum-quam-eligendi@odczynflnpm/dignissimos-voluptatum-ad@odczynflnpm/dolor-molestias-quisquam@odczynflnpm/dolorem-error-libero@odczynflnpm/doloribus-cumque-quae@odczynflnpm/ducimus-accusantium-vel@odczynflnpm/eaque-ad-ex@odczynflnpm/error-laborum-ab@odczynflnpm/et-nihil-enim@odczynflnpm/et-tempore-deleniti@odczynflnpm/eveniet-omnis-inventore@odczynflnpm/explicabo-voluptatem-ad@odczynflnpm/harum-quaerat-atque@odczynflnpm/hic-ipsa-ea@odczynflnpm/modi-fuga-possimus@odczynflnpm/mollitia-praesentium-deserunt@odczynflnpm/nam-a-doloremque@odczynflnpm/necessitatibus-numquam-aut@odczynflnpm/nihil-ratione-expedita@odczynflnpm/nisi-similique-deleniti@odczynflnpm/nulla-laborum-molestiae@odczynflnpm/odit-iure-praesentium@odczynflnpm/officiis-laboriosam-quam@odczynflnpm/omnis-blanditiis-repellendus@odczynflnpm/ad-ullam-officia@odczynflnpm/architecto-voluptate-tempore@odczynflnpm/aspernatur-amet-ut@odczynflnpm/omnis-veritatis-nesciunt@odczynflnpm/perferendis-neque-nulla@odczynflnpm/quaerat-neque-odit@odczynflnpm/quas-deserunt-optio@odczynflnpm/quia-neque-illo@odczynflnpm/quibusdam-debitis-hic@odczynflnpm/quisquam-cumque-consequuntur@odczynflnpm/quo-provident-delectus@odczynflnpm/quos-reprehenderit-voluptates@odczynflnpm/reiciendis-suscipit-odio@odczynflnpm/ab-nesciunt-error@odczynflnpm/ab-repellat-dolorum@odczynflnpm/accusamus-aliquam-non@odczynflnpm/totam-illum-necessitatibus@odczynflnpm/vel-facere-dolore@odczynflnpm/velit-nam-voluptatum@odczynflnpm/vitae-fugit-debitis@odczynflnpm/voluptate-molestiae-culpa@odczynflnpm/repudiandae-beatae-sunt@odczynflnpm/rerum-at-dignissimos@odczynflnpm/similique-perspiciatis-in@odczynflnpm/temporibus-expedita-culpa@odczynflnpm/tenetur-corporis-accusamus@odczynflnpm/totam-fuga-incidunt@odczynflnpm/hic-ratione-perspiciatis@odczynflnpm/inventore-sapiente-repudiandae@odczynflnpm/ipsa-ut-eligendi@odczynflnpm/iste-ad-facilis@odczynflnpm/laboriosam-doloribus-quia@odczynflnpm/laudantium-vitae-saepe@odczynflnpm/magni-aspernatur-impedit
1.0.0

12 days ago