0.0.10 • Published 4 years ago

@2utils/is-equal v0.0.10

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

@2utils/is-equal

An ordinary isEqual function.

npm i @2utils/is-equal

Tests

Tests were brazenly stolen from lodash

Passed

  • should compare primitives
  • should compare arrays
  • should treat arrays with identical values but different non-index properties as equal
  • should compare sparse arrays
  • should compare plain objects
  • should compare objects regardless of key order
  • should compare nested objects
  • should compare object instances
  • should compare functions
  • should compare objects with constructor properties
  • should compare objects with shared property values
  • should avoid common type coercions
  • should compare arguments objects
  • should compare date objects
  • should compare functions
  • should return an unwrapped value when implicitly chaining
  • should compare maps
  • should compare regexes
  • should compare sets
  • should compare buffers
  • should compare array buffers
  • should treat objects created by Object.create(null) like plain objects

Not passed

Circular

  • should compare arrays with circular references
  • should have transitive equivalence for circular references of arrays
  • should compare objects with circular references
  • should have transitive equivalence for circular references of objects
  • should compare objects with multiple circular references
  • should compare objects with complex circular references
  • should compare maps with circular references
  • should compare sets with circular references

  • should compare array views
  • should compare error objects
  • should compare promises by reference
  • should compare symbol properties
  • should compare wrapped values
  • should compare wrapped and non-wrapped values
  • should work as an iteratee for _.every
  • should not error on DOM elements
  • should return true for like-objects from different documents
  • should return false for objects with custom toString methods
  • should return a wrapped value when explicitly chaining

Benchmark

Tests were run from the fast-deep-equal package. They don 't show the real picture because I don 't cover all test cases. Just for fun.

pos.packageresults
1.fast-deep-equal218,604 ops/sec ±2.32% (80 runs sampled)
2.🐢 @2utils/is-equal201,469 ops/sec ±2.59% (83 runs sampled)
3.fast-equals195,025 ops/sec ±3.06% (79 runs sampled)
4.fast-deep-equal/es6192,544 ops/sec ±2.60% (82 runs sampled)
5.nano-equal126,143 ops/sec ±2.68% (79 runs sampled)
6.shallow-equal-fuzzy112,192 ops/sec ±1.96% (83 runs sampled)
7.underscore.isEqual62,441 ops/sec ±1.78% (86 runs sampled)
8.util.isDeepStrictEqual45,652 ops/sec ±1.69% (85 runs sampled)
9.lodash.isEqual34,102 ops/sec ±1.55% (87 runs sampled)
10.deep-eql28,662 ops/sec ±5.36% (78 runs sampled)
11.ramda.equals10,623 ops/sec ±1.84% (86 runs sampled)
12.assert.deepStrictEqual271 ops/sec ±1.22% (82 runs sampled)
13.deep-equal61.11 ops/sec ±4.58% (40 runs sampled)
0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.3

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago