r"""
    Args:
        num (scalar):
        low (scalar):
        high (scalar):
        msg (str):

def assert_inbounds(num, low, high, msg='', eq=False, verbose=not util_arg.QUIET):
    r"""
    Args:
        num (scalar):
        low (scalar):
        high (scalar):
        msg (str):
    """
    from utool import util_str
    if util_arg.NO_ASSERTS:
        return
    passed = util_alg.inbounds(num, low, high, eq=eq)
    if isinstance(passed, np.ndarray):
        passflag = np.all(passed)
    else:
        passflag = passed
    if not passflag:
        failednum = num.compress(~passed) if isinstance(num, np.ndarray) else num
        failedlow = low.compress(~passed) if isinstance(low, np.ndarray) else low
        failedhigh = high.compress(~passed) if isinstance(high, np.ndarray) else high
        msg_ = 'num=%r is out of bounds=(%r, %r)' % (failednum, failedlow, failedhigh)
        raise AssertionError(msg_ + '\n' + msg)
    else:
        if verbose:
            op = '<=' if eq else '<'
            fmtstr = 'Passed assert_inbounds: {low} {op} {num} {op} {high}'
            print(fmtstr.format(low=low, op=op, num=util_str.truncate_str(str(num)), high=high))