mirror of
https://github.com/flynx/diff.js.git
synced 2025-10-28 18:40:09 +00:00
added NaN special case...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
a7573e8f19
commit
3be394b85d
4
diff.js
4
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
|
||||
|
||||
176
test.js
Normal file → Executable file
176
test.js
Normal file → Executable file
@ -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 })
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user