protected static function assert($condition, string $errorMessage = '', bool $exitOnError = false): bool
    {
        self::$totalCount++;
        self::$count++;
        if (!$condition) {
            $trace = debug_backtrace();
            $errorPrefix = (isset($trace[1]['class']) ? ($trace[1]['class'] 
                    . (isset($trace[1]['function']) ? '::' . $trace[1]['function'] : '') 
                    . (isset($trace[1]['line']) ? ' (' . $trace[1]['line'] . ')' : '') 
                    . ' -> ') : '')
                    . $trace[0]['class'] . ' (' . $trace[0]['line'] . ")\n    ";
            self::addError($errorPrefix . $errorMessage);
            self::$totalCountErrors++;
            if ($exitOnError) {
                exit;
            }
        }
        return (bool) $condition;
    }