def test_exceptions():
    print 'exceptions'
    try:
        x = math.exp(-1000000000)
    except:
        # mathmodule.c is failing to weed out underflows from libm, or
        # we've got an fp format with huge dynamic range
        raise TestFailed("underflowing exp() should not have raised "
                         "an exception")
    if x != 0:
        raise TestFailed("underflowing exp() should have returned 0")

    # If this fails, probably using a strict IEEE-754 conforming libm, and x
    # is +Inf afterwards.  But Python wants overflows detected by default.
    try:
        x = math.exp(1000000000)
    except OverflowError:
        pass
    else:
        raise TestFailed("overflowing exp() didn't trigger OverflowError")

    # If this fails, it could be a puzzle.  One odd possibility is that
    # mathmodule.c's macros are getting confused while comparing
    # Inf (HUGE_VAL) to a NaN, and artificially setting errno to ERANGE
    # as a result (and so raising OverflowError instead).
    try:
        x = math.sqrt(-1.0)
    except __HOLE__:
        pass
    else:
        raise TestFailed("sqrt(-1) didn't raise ValueError")
dataset/ETHPy150Open babble/babble/include/jython/Lib/test/test_math.py/test_exceptions