You are here

public function PHPUnit_Framework_Constraint_IsIdentical::evaluate in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php \PHPUnit_Framework_Constraint_IsIdentical::evaluate()

Evaluates the constraint for parameter $other

If $returnResult is set to false (the default), an exception is thrown in case of a failure. null is returned otherwise.

If $returnResult is true, the result of the evaluation is returned as a boolean value instead: true in case of success, false in case of a failure.

Parameters

mixed $other Value or object to evaluate.:

string $description Additional information about the test:

bool $returnResult Whether to return a result or throw an exception:

Return value

mixed

Throws

PHPUnit_Framework_ExpectationFailedException

Overrides PHPUnit_Framework_Constraint::evaluate

File

vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php, line 61

Class

PHPUnit_Framework_Constraint_IsIdentical
Constraint that asserts that one value is identical to another.

Code

public function evaluate($other, $description = '', $returnResult = false) {
  if (is_double($this->value) && is_double($other) && !is_infinite($this->value) && !is_infinite($other) && !is_nan($this->value) && !is_nan($other)) {
    $success = abs($this->value - $other) < self::EPSILON;
  }
  else {
    $success = $this->value === $other;
  }
  if ($returnResult) {
    return $success;
  }
  if (!$success) {
    $f = null;

    // if both values are strings, make sure a diff is generated
    if (is_string($this->value) && is_string($other)) {
      $f = new SebastianBergmann\Comparator\ComparisonFailure($this->value, $other, $this->value, $other);
    }
    $this
      ->fail($other, $description, $f);
  }
}