diff -Naur PHPUnit.old/Assert.php PHPUnit/Assert.php --- PHPUnit.old/Assert.php Wed Oct 16 11:17:37 2002 +++ PHPUnit/Assert.php Sat Oct 19 16:02:35 2002 @@ -33,61 +33,45 @@ * @access public */ function assertEquals($expected, $actual, $message = '', $delta = 0) { - if ((is_array($actual) && is_array($expected)) || - (is_object($actual) && is_object($expected))) { - if (is_array($actual) && is_array($expected)) { - ksort($actual); - ksort($expected); - } - $actual = serialize($actual); - $expected = serialize($expected); + $default = null; + $equiv = $this->_checkEquivalence($expected, $actual, $default, $delta); - if (empty($message)) { - $message = sprintf( - 'expected %s, actual %s', - - $expected, - $actual - ); - } + if (empty($message)) + { + $message = &$default; + } - if (serialize($actual) != serialize($expected)) { - return $this->fail($message); - } + if ($equiv) + { + return $this->pass(); } - elseif (is_numeric($actual) && is_numeric($expected)) { - if (empty($message)) { - $_delta = ($delta != 0) ? ('+/- ' . $delta) : ''; + return $this->fail($message); + } - $message = sprintf( - 'expected %s%s, actual %s', + /** + * Asserts that two variables are not equal. + * + * @param mixed + * @param mixed + * @param string + * @param mixed + * @access public + */ + function assertNotEquals($expected, $actual, $message = '', $delta = 0) { - $expected, - $_delta, - $actual - ); - } + $default = null; + $equiv = $this->_checkEquivalence($expected, $actual, $default, $delta); - if (!($actual >= ($expected - $delta) && $actual <= ($expected + $delta))) { - return $this->fail($message); - } + if (empty($message)) + { + $message = &$default; } - else { - if (empty($message)) { - $message = sprintf( - 'expected %s, actual %s', - - $expected, - $actual - ); - } - - if ($actual != $expected) { - return $this->fail($message); - } + if ($equiv) + { + return $this->fail($message); } return $this->pass(); @@ -253,5 +237,57 @@ * @abstract */ function pass() { /* abstract */ } + + /** + * Checks to see if two variables are equivalent. + * + * @param mixed + * @param mixed + * @param mixed + * @return bool + * @access private + */ + function _checkEquivalence($expected, $actual, &$message, $delta) { + if ((is_array($actual) && is_array($expected)) || + (is_object($actual) && is_object($expected))) { + if (is_array($actual) && is_array($expected)) { + ksort($actual); + ksort($expected); + } + + $actual = serialize($actual); + $expected = serialize($expected); + + $message = sprintf('expected %s, actual %s', + $expected, $actual); + + // Why do we have to re-serialize these? + if (serialize($actual) != serialize($expected)) { + return false; + } + } + + elseif (is_numeric($actual) && is_numeric($expected)) { + $_delta = ($delta != 0) ? ('+/- ' . $delta) : ''; + $message = sprintf('expected %s%s, actual %s', + $expected, $_delta, $actual); + + if (!($actual >= ($expected - $delta) + && $actual <= ($expected + $delta))) { + return false; + } + } + + else { + $message = sprintf('expected %s, actual %s', + $expected, $actual); + + if ($actual != $expected) { + return false; + } + } + + return true; + } } ?>