3 * This file is part of the Comparator package.
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
11 namespace SebastianBergmann\Comparator;
14 * Compares \SplObjectStorage instances for equality.
16 class SplObjectStorageComparator extends Comparator
19 * Returns whether the comparator can compare two values.
21 * @param mixed $expected The first value to compare
22 * @param mixed $actual The second value to compare
25 public function accepts($expected, $actual)
27 return $expected instanceof \SplObjectStorage && $actual instanceof \SplObjectStorage;
31 * Asserts that two values are equal.
33 * @param mixed $expected First value to compare
34 * @param mixed $actual Second value to compare
35 * @param float $delta Allowed numerical distance between two values to consider them equal
36 * @param bool $canonicalize Arrays are sorted before comparison when set to true
37 * @param bool $ignoreCase Case is ignored when set to true
39 * @throws ComparisonFailure
41 public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
43 foreach ($actual as $object) {
44 if (!$expected->contains($object)) {
45 throw new ComparisonFailure(
48 $this->exporter->export($expected),
49 $this->exporter->export($actual),
51 'Failed asserting that two objects are equal.'
56 foreach ($expected as $object) {
57 if (!$actual->contains($object)) {
58 throw new ComparisonFailure(
61 $this->exporter->export($expected),
62 $this->exporter->export($actual),
64 'Failed asserting that two objects are equal.'