/**
  * 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.
  *
  * @param  mixed                                        $other        Value or object to evaluate.
  * @param  string                                       $description  Additional information about the test
  * @param  bool                                         $returnResult Whether to return a result or throw an exception
  * @return mixed
  * @throws PHPUnit_Framework_ExpectationFailedException
  */
 public function evaluate($other, $description = '', $returnResult = false)
 {
     $comparatorFactory = PHPUnit_Framework_ComparatorFactory::getDefaultInstance();
     try {
         $comparator = $comparatorFactory->getComparatorFor($other, $this->value);
         $comparator->assertEquals($this->value, $other, $this->delta, $this->canonicalize, $this->ignoreCase);
     } catch (PHPUnit_Framework_ComparisonFailure $f) {
         if ($returnResult) {
             return false;
         }
         throw new PHPUnit_Framework_ExpectationFailedException(trim($description . "\n" . $f->getMessage()), $f);
     }
     return true;
 }
 static function setUpBeforeClass()
 {
     \PHPUnit_Framework_ComparatorFactory::getDefaultInstance()->register(new \Tests\Testing\Comparator_ArrayEnumerable());
 }