diff --git a/diff.js b/diff.js index bf1f776..60f9236 100644 --- a/diff.js +++ b/diff.js @@ -1393,6 +1393,8 @@ module.Types = { // NOTE: we can't use a == b directly because of things like // [2] == 2 -> true... return a === b + // special-case: NaN... + || (isNaN(a) && isNaN(b)) // basic patters... || a === that.ANY || b === that.ANY @@ -1515,6 +1517,8 @@ module.Types = { // NOTE: we can't use a == b directly because of things like // [2] == 2 -> true... return a === b + // special-case: NaN... + || (isNaN(a) && isNaN(b)) // basic patters... || a === that.ANY || b === that.ANY diff --git a/test.js b/test.js old mode 100644 new mode 100755 index 3db29a3..c9d6205 --- a/test.js +++ b/test.js @@ -1,88 +1,88 @@ -#!/usr/bin/env node -/********************************************************************** -* -* test.js -* -* Repo and docs: -* https://github.com/flynx/test.js -* -***********************************************/ /* c8 ignore next 2 */ -((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define) -(function(require){ var module={} // make module AMD/node compatible... -/*********************************************************************/ - -var test = require('ig-test') - -var diff = require('./diff') -var format = require('./format') - - -//--------------------------------------------------------------------- - -test.Setups({ - // XXX make this return a list... - basic: function(assert){ - return [ - { - A: {}, B: {}, - cmp: true, - }, - { - A: [], B: [], - cmp: true, - }, - { - A: 0, B: 0, - cmp: true, - }, - { - A: 123, B: 123, - cmp: true, - }, - { - A: false, B: false, - cmp: true, - }, - { - A: undefined, B: undefined, - cmp: true, - }, - // XXX special case -- fails.... - { - A: NaN, B: NaN, - cmp: true, - }, - ] }, -}) - -test.Tests({ - cmp: function(assert, setup){ - setup = setup instanceof Array ? setup : [setup] - setup.forEach(function(e){ - var res - 'cmp' in e - && assert( - (res = diff.cmp(e.A, e.B)) == e.cmp, - `cmp(..): cmp(${e.A}, ${e.B}) should be ${e.cmp} got ${res}`) }) }, -}) - -test.Cases({ - 'basics': function(assert){ - // XXX move reference objects + expected diffs to setups - a = {} - b = {} - - assert(diff.Diff(a, b), 'Diff(..)') - }, -}) - - -//--------------------------------------------------------------------- -typeof(__filename) != 'undefined' - && __filename == (require.main || {}).filename - && test.run() - - - -/********************************************************************** -* vim:set ts=4 sw=4 : */ return module }) +#!/usr/bin/env node +/********************************************************************** +* +* test.js +* +* Repo and docs: +* https://github.com/flynx/test.js +* +***********************************************/ /* c8 ignore next 2 */ +((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define) +(function(require){ var module={} // make module AMD/node compatible... +/*********************************************************************/ + +var test = require('ig-test') + +var diff = require('./diff') +var format = require('./format') + + +//--------------------------------------------------------------------- + +test.Setups({ + // XXX make this return a list... + basic: function(assert){ + return [ + { + A: {}, B: {}, + cmp: true, + }, + { + A: [], B: [], + cmp: true, + }, + { + A: 0, B: 0, + cmp: true, + }, + { + A: 123, B: 123, + cmp: true, + }, + { + A: false, B: false, + cmp: true, + }, + { + A: undefined, B: undefined, + cmp: true, + }, + // XXX special case -- fails.... + { + A: NaN, B: NaN, + cmp: true, + }, + ] }, +}) + +test.Tests({ + cmp: function(assert, setup){ + setup = setup instanceof Array ? setup : [setup] + setup.forEach(function(e){ + var res + 'cmp' in e + && assert( + (res = diff.cmp(e.A, e.B)) == e.cmp, + `cmp(..): cmp(${e.A}, ${e.B}) should be ${e.cmp} got ${res}`) }) }, +}) + +test.Cases({ + 'basics': function(assert){ + // XXX move reference objects + expected diffs to setups + a = {} + b = {} + + assert(diff.Diff(a, b), 'Diff(..)') + }, +}) + + +//--------------------------------------------------------------------- +typeof(__filename) != 'undefined' + && __filename == (require.main || {}).filename + && test.run() + + + +/********************************************************************** +* vim:set ts=4 sw=4 : */ return module })