protected function assert($first, $second, $msg, $cmp) { self::$tests++; switch ($cmp) { case BaseTest::CMP_E: if ($first === $second) { return true; } break; case BaseTest::CMP_G: if ($first > $second) { return true; } break; case BaseTest::CMP_GE: if ($first >= $second) { return true; } break; case BaseTest::CMP_L: if ($first < $second) { return true; } break; case BaseTest::CMP_LE: if ($first <= $second) { return true; } break; case BaseTest::CMP_NE: if ($first != $second) { return true; } break; } self::$state = BaseTest::STATE_ERROR; echo BaseTest::_indent($msg . ':', 2); echo BaseTest::_indent($first . ' <strong>' . self::$cmp_chars[$cmp] . '</strong> ' . $second, 3); return $msg; }