Chris@0
|
1 <?php
|
Chris@0
|
2 /*
|
Chris@14
|
3 * This file is part of sebastian/comparator.
|
Chris@0
|
4 *
|
Chris@0
|
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
|
Chris@0
|
6 *
|
Chris@0
|
7 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
8 * file that was distributed with this source code.
|
Chris@0
|
9 */
|
Chris@0
|
10
|
Chris@0
|
11 namespace SebastianBergmann\Comparator;
|
Chris@0
|
12
|
Chris@0
|
13 use SebastianBergmann\Exporter\Exporter;
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Abstract base class for comparators which compare values for equality.
|
Chris@0
|
17 */
|
Chris@0
|
18 abstract class Comparator
|
Chris@0
|
19 {
|
Chris@0
|
20 /**
|
Chris@0
|
21 * @var Factory
|
Chris@0
|
22 */
|
Chris@0
|
23 protected $factory;
|
Chris@0
|
24
|
Chris@0
|
25 /**
|
Chris@0
|
26 * @var Exporter
|
Chris@0
|
27 */
|
Chris@0
|
28 protected $exporter;
|
Chris@0
|
29
|
Chris@0
|
30 public function __construct()
|
Chris@0
|
31 {
|
Chris@0
|
32 $this->exporter = new Exporter;
|
Chris@0
|
33 }
|
Chris@0
|
34
|
Chris@0
|
35 /**
|
Chris@0
|
36 * @param Factory $factory
|
Chris@0
|
37 */
|
Chris@0
|
38 public function setFactory(Factory $factory)
|
Chris@0
|
39 {
|
Chris@0
|
40 $this->factory = $factory;
|
Chris@0
|
41 }
|
Chris@0
|
42
|
Chris@0
|
43 /**
|
Chris@0
|
44 * Returns whether the comparator can compare two values.
|
Chris@0
|
45 *
|
Chris@14
|
46 * @param mixed $expected The first value to compare
|
Chris@14
|
47 * @param mixed $actual The second value to compare
|
Chris@14
|
48 *
|
Chris@0
|
49 * @return bool
|
Chris@0
|
50 */
|
Chris@0
|
51 abstract public function accepts($expected, $actual);
|
Chris@0
|
52
|
Chris@0
|
53 /**
|
Chris@0
|
54 * Asserts that two values are equal.
|
Chris@0
|
55 *
|
Chris@0
|
56 * @param mixed $expected First value to compare
|
Chris@0
|
57 * @param mixed $actual Second value to compare
|
Chris@0
|
58 * @param float $delta Allowed numerical distance between two values to consider them equal
|
Chris@0
|
59 * @param bool $canonicalize Arrays are sorted before comparison when set to true
|
Chris@0
|
60 * @param bool $ignoreCase Case is ignored when set to true
|
Chris@0
|
61 *
|
Chris@0
|
62 * @throws ComparisonFailure
|
Chris@0
|
63 */
|
Chris@0
|
64 abstract public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false);
|
Chris@0
|
65 }
|