1<?php 2/* 3 * This file is part of the Comparator package. 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 11namespace SebastianBergmann\Comparator; 12 13/** 14 * Compares values for type equality. 15 */ 16class TypeComparator extends Comparator 17{ 18 /** 19 * Returns whether the comparator can compare two values. 20 * 21 * @param mixed $expected The first value to compare 22 * @param mixed $actual The second value to compare 23 * @return bool 24 */ 25 public function accepts($expected, $actual) 26 { 27 return true; 28 } 29 30 /** 31 * Asserts that two values are equal. 32 * 33 * @param mixed $expected First value to compare 34 * @param mixed $actual Second value to compare 35 * @param float $delta Allowed numerical distance between two values to consider them equal 36 * @param bool $canonicalize Arrays are sorted before comparison when set to true 37 * @param bool $ignoreCase Case is ignored when set to true 38 * 39 * @throws ComparisonFailure 40 */ 41 public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) 42 { 43 if (gettype($expected) != gettype($actual)) { 44 throw new ComparisonFailure( 45 $expected, 46 $actual, 47 // we don't need a diff 48 '', 49 '', 50 false, 51 sprintf( 52 '%s does not match expected type "%s".', 53 $this->exporter->shortenedExport($actual), 54 gettype($expected) 55 ) 56 ); 57 } 58 } 59} 60