protected function matches($actual) { if ($this->delta == null && $this->analyzer->isFloat($actual) === false && $this->analyzer->isFloat($this->expected) === false) { $asserter = new asserters\variable(null, $this->analyzer); if ($this->analyzer->isString($actual) && $this->ignoreCase) { $actual = strtolower($actual); } if ($this->analyzer->isArray($actual) && $this->canonicalize) { $actual = sort($actual); } $asserter->setWith($actual); if ($actual === 0 && $this->expected == '' || $actual == '' && $this->expected === 0) { $asserter->isIdenticalTo($this->expected); } else { $expected = $this->expected; if ($this->analyzer->isString($expected) && $this->ignoreCase) { $expected = strtolower($expected); } if ($this->analyzer->isArray($expected) && $this->canonicalize) { $expected = sort($expected); } $asserter->isEqualTo($expected); } } else { $asserter = new asserters\phpFloat(null, $this->analyzer); $asserter->setWith((double) $actual)->isNearlyEqualTo((double) $this->expected, $this->delta); } }