Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. NumericComparator.php

class NumericComparator

Hierarchy

  • class \SebastianBergmann\Comparator\Comparator
    • class \SebastianBergmann\Comparator\ScalarComparator extends \SebastianBergmann\Comparator\Comparator
      • class \SebastianBergmann\Comparator\NumericComparator extends \SebastianBergmann\Comparator\ScalarComparator

Expanded class hierarchy of NumericComparator

File

vendor/sebastian/comparator/src/NumericComparator.php, line 21

Namespace

SebastianBergmann\Comparator
View source
final class NumericComparator extends ScalarComparator {
    public function accepts(mixed $expected, mixed $actual) : bool {
        // all numerical values, but not if both of them are strings
        return is_numeric($expected) && is_numeric($actual) && !(is_string($expected) && is_string($actual));
    }
    
    /**
     * @throws ComparisonFailure
     */
    public function assertEquals(mixed $expected, mixed $actual, float $delta = 0.0, bool $canonicalize = false, bool $ignoreCase = false) : void {
        if ($this->isInfinite($actual) && $this->isInfinite($expected)) {
            return;
        }
        if (($this->isInfinite($actual) xor $this->isInfinite($expected)) || ($this->isNan($actual) || $this->isNan($expected)) || abs($actual - $expected) > $delta) {
            $exporter = new Exporter();
            throw new ComparisonFailure($expected, $actual, '', '', sprintf('Failed asserting that %s matches expected %s.', $exporter->export($actual), $exporter->export($expected)));
        }
    }
    private function isInfinite(mixed $value) : bool {
        return is_float($value) && is_infinite($value);
    }
    private function isNan(mixed $value) : bool {
        return is_float($value) && is_nan($value);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
Comparator::$factory private property
Comparator::factory protected function
Comparator::setFactory public function
NumericComparator::accepts public function Overrides ScalarComparator::accepts
NumericComparator::assertEquals public function Overrides ScalarComparator::assertEquals
NumericComparator::isInfinite private function
NumericComparator::isNan private function
RSS feed
Powered by Drupal