Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2014 11:15:32

pyatil
Зарегистрирован: 2012-12-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

тестирование, граничные значения, float, long.

Добрый день уважаемые,

Допустим есть программа которая принимает на вход числа, я написал что надо проверить для ее тестирования, и споткнулся на 0, как получить минимальное значиние float со знаком + например 0.000000…1 и аналогично -.
максимальное значение float можно получить так sys.float_info.max

sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)

есть ли хорошие статьи по тестированию на питоне про граничные значения?

Офлайн

#2 Фев. 8, 2014 13:29:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

тестирование, граничные значения, float, long.

Если посмотреть библиотеку типа lapack то увидите нечто похожее на приведенный код:

def minflt():
    a=1.
    while 1:
        nv=a/2.
        if nv ==0.:
            break
        a=nv
    return a
print("{0:50.50g}".format(minflt()))
>>> 
4.9406564584124654417656879286822137236505980261432e-324
в тоже время на этой машине:
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
>>> 2.2250738585072014e-308/minflt()
4503599627370496.0
>>> "{0:10.3e}".format((2.2250738585072014e-308/minflt()))
' 4.504e+15'
:)



Отредактировано doza_and (Фев. 8, 2014 13:36:30)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version