Revision control
Copy as Markdown
Other Tools
function test_matchObject()
{
var f = true;
obj1 = {foo:"hey", bar:"ho"}
obj2 = {a:"1", b:"2"}
p1 = {foo:"hey"}
p2 = {bar:"ho"}
p3 = {a:"1"}
p4 = {b:"2"}
/* true, single pattern, and it matches */
f &= matchObject (obj1, p1);
/* false, single pattern matches, negated */
f &= !matchObject (obj1, p1, true);
/* false, single pattern doesn't match */
f &= !matchObject (obj1, p3);
/* true, single pattern doesn't match, negated */
f &= matchObject (obj1, p3, true);
/* true, p1 matches */
f &= matchObject (obj1, [p1, p3]);
/* false, p1 matches, negated */
f &= !matchObject (obj1, [p1, p3], true);
/* true, both paterns match */
f &= matchObject (obj2, [p3, p4]);
/* false, both patterns match, negated */
f &= !matchObject (obj2, [p3, p4], true);
/* false, neither pattern matches */
f &= !matchObject (obj1, [p3, p4]);
/* true, neither pattern matches, negated */
f &= matchObject (obj1, [p3, p4], true);
return Boolean(f); /* you've got to find any problems by hand :) */
}