public static function comparison($input, $check, $mode) {
        switch (mb_strtolower($mode)) {
            case 'greater':
            case 'gt':
            case '>':
                return ($input > $check);
            break;
            case 'greaterorequal':
            case 'gte':
            case '>=':
                return ($input >= $check);
            break;
            case 'less':
            case 'lt':
            case '<':
                return ($input < $check);
            break;
            case 'lessorequal':
            case 'lte':
            case '<=':
                return ($input <= $check);
            break;
            case 'equal':
            case 'eq':
            case '==':
            case '=':
                return ($input == $check);
            break;
            case 'notequal':
            case 'neq':
            case 'ne':
            case '!=':
                return ($input != $check);
            break;
            default:
                throw new InvalidArgumentException(sprintf('Unsupported mode %s for %s', $mode, __METHOD__));
            break;
        }
    }