PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.8.6
Kubio AI Page Builder v2.8.6
2.9.0 2.8.6 2.8.5 2.8.4 2.8.3 2.8.2 2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / vendor / sebastian / comparator / src / NumericComparator.php
kubio / vendor / sebastian / comparator / src Last commit date
exceptions 1 year ago ArrayComparator.php 1 year ago Comparator.php 1 year ago ComparisonFailure.php 1 year ago DOMNodeComparator.php 1 year ago DateTimeComparator.php 1 year ago DoubleComparator.php 1 year ago ExceptionComparator.php 1 year ago Factory.php 1 year ago MockObjectComparator.php 1 year ago NumericComparator.php 1 year ago ObjectComparator.php 1 year ago ResourceComparator.php 1 year ago ScalarComparator.php 1 year ago SplObjectStorageComparator.php 1 year ago TypeComparator.php 1 year ago
NumericComparator.php
85 lines
1 <?php declare(strict_types=1);
2 /*
3 * This file is part of sebastian/comparator.
4 *
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10 namespace SebastianBergmann\Comparator;
11
12 use function abs;
13 use function is_float;
14 use function is_infinite;
15 use function is_nan;
16 use function is_numeric;
17 use function is_string;
18 use function sprintf;
19
20 /**
21 * Compares numerical values for equality.
22 */
23 class NumericComparator extends ScalarComparator
24 {
25 /**
26 * Returns whether the comparator can compare two values.
27 *
28 * @param mixed $expected The first value to compare
29 * @param mixed $actual The second value to compare
30 *
31 * @return bool
32 */
33 public function accepts($expected, $actual)
34 {
35 // all numerical values, but not if both of them are strings
36 return is_numeric($expected) && is_numeric($actual) &&
37 !(is_string($expected) && is_string($actual));
38 }
39
40 /**
41 * Asserts that two values are equal.
42 *
43 * @param mixed $expected First value to compare
44 * @param mixed $actual Second value to compare
45 * @param float $delta Allowed numerical distance between two values to consider them equal
46 * @param bool $canonicalize Arrays are sorted before comparison when set to true
47 * @param bool $ignoreCase Case is ignored when set to true
48 *
49 * @throws ComparisonFailure
50 */
51 public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)/*: void*/
52 {
53 if ($this->isInfinite($actual) && $this->isInfinite($expected)) {
54 return;
55 }
56
57 if (($this->isInfinite($actual) xor $this->isInfinite($expected)) ||
58 ($this->isNan($actual) || $this->isNan($expected)) ||
59 abs($actual - $expected) > $delta) {
60 throw new ComparisonFailure(
61 $expected,
62 $actual,
63 '',
64 '',
65 false,
66 sprintf(
67 'Failed asserting that %s matches expected %s.',
68 $this->exporter->export($actual),
69 $this->exporter->export($expected)
70 )
71 );
72 }
73 }
74
75 private function isInfinite($value): bool
76 {
77 return is_float($value) && is_infinite($value);
78 }
79
80 private function isNan($value): bool
81 {
82 return is_float($value) && is_nan($value);
83 }
84 }
85