403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.217.130
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_math.cpython-36.pyc
3

�w2_[��@spddlmZmZmZddlmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
ed�Zed�Zed�ZejjZd*\ZZeed+kZedkr�ejdZneZejje�p�ejZejj ed�Z!ejj ed
�Z"dd�Z#dd�Z$dd�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd�Z*d,d d!�Z+Gd"d#�d#e,�Z-Gd$d%�d%ej.�Z/Gd&d'�d'ej.�Z0d(d)�Z1edk�rle1�dS)-�)�run_unittest�verbose�requires_IEEE_754)�supportNg�h㈵��>�nan�infz-inf���7y�AC��):��@��__main__zmath_testcases.txtzcmath_testcases.txtcCs.tjdtjd|��d}|dkr*|d}|S)a�Convert a non-NaN float x to an integer, in such a way that
    adjacent floats are converted to adjacent integers.  Then
    abs(ulps(x) - ulps(y)) gives the difference in ulps between two
    floats.

    The results from this function will only make sense on platforms
    where native doubles are represented in IEEE 754 binary64 format.

    Note: 0.0 and -0.0 are converted to 0 and -1, respectively.
    z<qz<dr��?l)�struct�unpack�pack)�x�n�r�3/opt/alt/python36/lib64/python3.6/test/test_math.py�to_ulps#s
rcCs�tt|��}tj|�s tj|�r$|Stjdtjd|��d}tjdtjd|d��d}tj|�r�tjdtjd|d��d}||S||SdS)a�Return the value of the least significant bit of a
    float x, such that the first float bigger than x is x+ulp(x).
    Then, given an expected result x and a tolerance of n ulps,
    the result y should be such that abs(y-x) <= n * ulp(x).
    The results from this function will only make sense on platforms
    where native doubles are represented in IEEE 754 binary64 format.
    z<qz<dr�N)�abs�float�math�isnan�isinfrrr)rrZx_nextZx_prevrrr�ulp4s
rcCs|rdt||d@�SdS)zANumber of '1' bits in binary expansion of a nonnnegative integer.rr)�count_set_bits)rrrrrasrcCsD||d?}|sdS|dkr |S||dB}t||�t||�SdS)z�Product of integers in range(start, stop, 2), computed recursively.
    start and stop should both be odd, with start <= stop.

    rN)�partial_product)�start�stopZ
numfactorsZmidrrrresrcCsdd}}xJtt|j���D]6}|t||d?ddB||?ddB�9}||9}qW||t|�>S)z�Factorial of nonnegative integer n, via "Binary Split Factorial Formula"
    described at http://www.luschny.de/math/factorial/binarysplitfact.html

    r)�reversed�range�
bit_lengthrr)r�innerZouter�irrr�py_factorialss
*r&cCsLtt|�t|��}t||�}||ks0||kr4dSd}|j||||�SdS)z�Given finite floats `expected` and `got`, check that they're
    approximately equal to within the given number of ulps or the
    given absolute tolerance, whichever is bigger.

    Returns None on success and an error message on failure.
    NzAerror = {:.3g} ({:d} ulps); permitted error = {:.3g} or {:d} ulps)rr�format)�expected�got�ulp_tol�abs_tolZ	ulp_errorZ	abs_errorZfmtrrr�
ulp_abs_check~sr,c
cs�t|���}x�|D]x}d|kr.|d|jd��}|j�s8q|jd�\}}|j�\}}}|j�}|d}	|dd�}
||t|�t|	�|
fVqWWdQRXdS)z�Parse a file with test values

    -- starts a comment
    blank lines, or lines containing only a comment, are ignored
    other lines are expected to have the form
      id fn arg -> expected [flag]*

    z--Nz->rr)�open�index�strip�splitr)�fname�fp�line�lhs�rhs�id�fn�arg�
rhs_pieces�exp�flagsrrr�parse_mtestfile�s	

r<c
cs�t|���}x�|D]�}|jd�s|j�r*q|jd�\}}|j�\}}}}|j�}	|	d|	d}
}|	dd�}||t|�t|�t|
�t|�|fVqWWdQRXdS)z�Parse a file with test values

    Empty lines or lines starting with -- are ignored
    yields id, fn, arg_real, arg_imag, exp_real, exp_imag
    z--z->rrrN)r-�
startswithr/r0r)
r1r2r3r4r5r6r7Zarg_realZarg_imagr9Zexp_realZexp_imagr;rrr�parse_testfile�s

r>��cCs�||krdSd}t|t�r.t|t�r.t|�}nt|t�rJt|t�rJt|�}t|t�r�t|t�r�tj|�rxtj|�rxd}n$tj|�s�tj|�r�nt||||�}|dk	r�d}|j||�}|dj|�7}|SdSdS)a�Compare arguments expected and got, as floats, if either
    is a float, using a tolerance expressed in multiples of
    ulp(expected) or absolutely (if given and greater).

    As a convenience, when neither argument is a float, and for
    non-finite floats, exact equality is demanded. Also, nan==nan
    as far as this function is concerned.

    Returns None on success and an error message on failure.
    Nz	not equalzexpected {!r}, got {!r}z ({}))�
isinstancer�intrrrr,r')r(r)r*r+�failure�fail_fmtZfail_msgrrr�result_check�s&
rEc@seZdZdd�Zdd�ZdS)�MyIndexablecCs
||_dS)N)�value)�selfrGrrr�__init__�szMyIndexable.__init__cCs|jS)N)rG)rHrrr�	__index__�szMyIndexable.__index__N)�__name__�
__module__�__qualname__rIrJrrrrrF�srFc@s�eZdZdjdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Ze
dd��Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zejd%d&��Zd'd(�Zd)d*�Zd+d,�Ze
ejed-�d.d/���Zd0d1�Zd2d3�Z d4d5�Z!d6d7�Z"d8d9�Z#e
d:d;��Z$e
ej%d<d�d=d>���Z&d?d@�Z'dAdB�Z(dCdD�Z)dEdF�Z*dGdH�Z+dIdJ�Z,dKdL�Z-dMdN�Z.dOdP�Z/e
eje0j1dQ�dRkdS�dTdU���Z2dVdW�Z3dXdY�Z4dZd[�Z5d\d]�Z6e
d^d_��Z7e
d`da��Z8ej9e:db�dcdd��Z;e
dedf��Z<e
dgdh��Z=diS)k�	MathTestsr?�cCs,t||||�}|dk	r(|jdj||��dS)aaCompare arguments expected and got, as floats, if either
        is a float, using a tolerance expressed in multiples of
        ulp(expected) or absolutely, whichever is greater.

        As a convenience, when neither argument is a float, and for
        non-finite floats, exact equality is demanded. Also, nan==nan
        in this function.
        Nz{}: {})rE�failr')rH�namer)r(r*r+rCrrr�ftest�s	zMathTests.ftestcCs8|jdtjd�|jdtjd�|jtjdtj�dS)N�pig-DT�!	@�egiW�
�@r)rRrrSrT�assertEqualZtau)rHrrr�
testConstantsszMathTests.testConstantscCs�|jttj�|jdtjd�tj�|jdtjd�tjd�|jdtjd�d�|jttjt�|jttjt�|jttjdt	�|jttjdt	�|j
tjtjt���dS)	Nzacos(-1)rzacos(0)rrzacos(1)���rW)
�assertRaises�	TypeErrorrZacosrRrS�
ValueError�INF�NINF�eps�
assertTruer�NAN)rHrrr�testAcosszMathTests.testAcoscCs�|jttj�|jdtjd�d�|jdtjd�d�|jttjd�|jttjd�|jtjt�t�|jttjt�|j	tj
tjt���dS)Nzacosh(1)rrzacosh(2)rg5�qB�?rW)rXrYrZacoshrRrZrUr[r\r^rr_)rHrrr�	testAcoshszMathTests.testAcoshcCs�|jttj�|jdtjd�tjd�|jdtjd�d�|jdtjd�tjd�|jttjt�|jttjt�|jttjdt	�|jttjdt	�|j
tjtjt���dS)	Nzasin(-1)rrzasin(0)rzasin(1)rWrW)
rXrYrZasinrRrSrZr[r\r]r^rr_)rHrrr�testAsin!szMathTests.testAsincCs�|jttj�|jdtjd�d�|jdtjd�d�|jdtjd�d�|jtjt�t�|jtjt�t�|jtj	tjt
���dS)	Nzasinh(0)rzasinh(1)rg'�ya64�?z	asinh(-1)rWg'�ya64�)rXrYrZasinhrRrUr[r\r^rr_)rHrrr�	testAsinh,szMathTests.testAsinhcCs�|jttj�|jdtjd
�tjd�|jdtjd�d�|jdtjd�tjd�|jdtjt�tjd�|jd	tjt�tjd�|jtj	tjt
���dS)Nzatan(-1)rr
zatan(0)rzatan(1)z	atan(inf)rz
atan(-inf)rW)rXrYr�atanrRrSr[r\r^rr_)rHrrr�testAtan5szMathTests.testAtancCs�|jttj�|jdtjd�d�|jdtjd�d�|jdtjd�d	�|jttjd�|jttjd
�|jttjt�|jttjt�|j	tj
tjt���dS)Nzatanh(0)rz
atanh(0.5)g�?g�z��?zatanh(-0.5)rg�g�z��rW)rXrYrrdrRZatanhrZr[r\r^rr_)rHrrr�	testAtanh>szMathTests.testAtanhcCs|jttj�|jdtjd%d�tjd�|jdtjd&d�tjd�|jdtjdd�d�|jdtjdd�tjd�|jd	tjdd�tjd�|jd
tjdt�tj�|jdtjdd'�tj�|jdtjdd(�tj�|jtjdd�d�|jtjdd
�d�|jtjdt�d�|j	tj
tjdt���|jdtjd)t�tj�|jdtjd*d+�tj�|jdtjd,d-�tj�|jtjd.d�d/�|jtjd0d
�d1�|jtjd2t�d3�|j	tj
tjd4t���|jdtjtt�tjdd�|jdtjtd5�tjd�|jdtjtd6�tjd�|jdtjtd�tjd�|jdtjtd
�tjd�|jdtjtt�tjd�|j	tj
tjtt���|jdtjtt�tjdd�|jdtjtd7�tjd�|jdtjtd8�tjd�|jdtjtd�tjd�|jdtjtd
�tjd�|jdtjtt�tjd�|j	tj
tjtt���|jdtjd
t�tj�|jd tjd
d9�tjd�|jd!tjd
d�tjd�|jtjd
t�d�|j	tj
tjd
t���|jd"tjd:t�tj�|jd#tjd;d<�tjd�|jd$tjd=d�tjd�|jtjd>t�d?�|j	tj
tjd@t���|j	tj
tjtt���|j	tj
tjtdA���|j	tj
tjtdB���|j	tj
tjtd���|j	tj
tjtd
���|j	tj
tjtt���|j	tj
tjtt���dS)CNzatan2(-1, 0)rrrzatan2(-1, 1)r
zatan2(0, 1)zatan2(1, 1)zatan2(1, 0)zatan2(0., -inf)gzatan2(0., -2.3)gffffff@zatan2(0., -0.)zatan2(-0., -inf)zatan2(-0., -2.3)zatan2(-0., -0.)zatan2(inf, -inf)�zatan2(inf, -2.3)zatan2(inf, -0.)zatan2(inf, 0.)zatan2(inf, 2.3)zatan2(inf, inf)zatan2(-inf, -inf)zatan2(-inf, -2.3)zatan2(-inf, -0.)zatan2(-inf, 0.)zatan2(-inf, 2.3)zatan2(-inf, inf)zatan2(2.3, -inf)zatan2(2.3, -0.)zatan2(2.3, 0.)zatan2(-2.3, -inf)zatan2(-2.3, -0.)zatan2(-2.3, 0.)rWrWgffffff�g�g�g�gffffff�g�g�g�g�g�g�g�g�g�gffffff�g�gffffff�g�g�gffffff�gffffff�g�gffffff�gffffff�g�gffffff�gffffff�g�)rXrYrZatan2rRrSr\rUr[r^rr_)rHrrr�	testAtan2Isf "zMathTests.testAtan2cCs|jttj�|jtttjd���|jdtjd�d�|jdtjd�d�|jdtjd�d�|jd	tjd�d
�|jdtjd�d�|jdtjd�d�Gd
d�d�}Gdd�d�}|jdtj|��d�|jttj|��|�}dd�|_|jttj|�|jttj|d
�dS)Ng�?z	ceil(0.5)rz	ceil(1.0)g�?z	ceil(1.5)g�?rz
ceil(-0.5)rz
ceil(-1.0)z
ceil(-1.5)c@seZdZdd�ZdS)z$MathTests.testCeil.<locals>.TestCeilcSsdS)N�*r)rHrrr�__ceil__�sz-MathTests.testCeil.<locals>.TestCeil.__ceil__N)rKrLrMrjrrrr�TestCeil�srkc@seZdZdS)z&MathTests.testCeil.<locals>.TestNoCeilN)rKrLrMrrrr�
TestNoCeil�srlzceil(TestCeil())ricWs|S)Nr)�argsrrr�<lambda>�sz$MathTests.testCeil.<locals>.<lambda>g�g�rWg��rW)	rXrYrZceilrUrB�typerRrj)rHrkrl�trrr�testCeil�s 
zMathTests.testCeilcCs�|jtjdd�d�|jtjdd�d�|jtjdd	�d
�|jtjdd�d�|jtjdd�d�|jttj�|jtjdd�d�|jtjdd
�d�|jtjtd�t�|jtjtd�t�|jtjtd�t�|jtjtd�t�|jtjdt�d�|jtjdt�d�|jtjtt�t�|jtjtt�t�|jtjtt�t�|jtjtt�t�|jtjtjt	d���|jtjtjt	t���|jtjtjt	t���|jtjtjt	t	���|jtj
tjtt	���|jttjdt	��d�dS)Nrrig�?grgg@g@g@i���g�g�g�g�g�g�g�g�)rUr�copysignrXrYr[r\r^rr_rr)rHrrr�testCopysign�s0zMathTests.testCopysigncCs�|jttj�|jdtjtjd�dtd�d�|jdtjd�d�|jdtjtjd�dtd�d�|jdtjtj�d	�y0|jtjtjt	���|jtjtjt
���Wn4tk
r�|jttjt	�|jttjt
�YnX|jtjtjt���dS)
Nz
cos(-pi/2)rrr)r+zcos(0)z	cos(pi/2)zcos(pi)rW)
rXrYrZcosrRrSrr^rr[r\rZr_)rHrrr�testCos�s$"zMathTests.testCoscCs�|jttj�|jdtjd�d�|jdtjd�dtjd�dd�|jtjt�t�|jtjt�t�|jtj	tjt
���dS)Nzcosh(0)rrzcosh(2)-2*cosh(1)**2rrW)rXrYr�coshrRrUr[r\r^rr_)rHrrr�testCosh�s&zMathTests.testCoshcCsr|jttj�|jdtjtj�d�|jdtjtjd�d�|jdtjtjd�d�|jd	tjd
�d
�dS)Nzdegrees(pi)g�f@z
degrees(pi/2)rg�V@zdegrees(-pi/4)r
g�F@z
degrees(0)rg�F�)rXrYrZdegreesrRrS)rHrrr�testDegrees�s
zMathTests.testDegreescCs�|jttj�|jdtjd�dtj�|jdtjd�d�|jdtjd�tj�|jtjt�t�|jtjt�d�|j	tj
tjt���|jttjd�dS)	Nzexp(-1)rzexp(0)rzexp(1)gi@BrW)
rXrYrr:rRrTrUr[r\r^rr_�
OverflowError)rHrrr�testExp�szMathTests.testExpcCsN|jttj�|jdtjd�d�|jdtjd�d�|jdtjd�d�dS)Nzfabs(-1)rzfabs(0)rzfabs(1)rW)rXrYrZfabsrR)rHrrr�testFabs�szMathTests.testFabscCs�|jtjd�d�|jtjd�d�d}xXtdd�D]J}||9}|jtj|�|�|jtjt|��|�|jtj|�t|��q4W|jttjd	�|jttjd
�|jttjdd�|jttjd�|jttjtj�dS)Nrrgi�g�?�
�dg}Ô%�I�TrWg�g}Ô%�I��)	rUr�	factorialr"rr&rXrZrS)rHZtotalr%rrr�
testFactorial�szMathTests.testFactorialcCs(|jttjdd�|jttjd�dS)Nr{r|g}Ô%�I�T)rXrxrr})rHrrr�testFactorialHugeInputs�sz!MathTests.testFactorialHugeInputscCs>|jttj�|jtttjd���|jdtjd�d�|jdtjd�d�|jdtjd�d�|jd	tjd�d�|jd
tjd�d�|jdtjd�d�|jd
tjd�d�|jdtjd�d�Gdd�d�}Gdd�d�}|jdtj|��d�|jttj|��|�}dd�|_|jttj|�|jttj|d�dS) Ng�?z
floor(0.5)rz
floor(1.0)g�?rz
floor(1.5)g�?zfloor(-0.5)zfloor(-1.0)zfloor(-1.5)rzfloor(1.23e167)g��Nݯ�bzfloor(-1.23e167)c@seZdZdd�ZdS)z&MathTests.testFloor.<locals>.TestFloorcSsdS)Nrir)rHrrr�	__floor__sz0MathTests.testFloor.<locals>.TestFloor.__floor__N)rKrLrMr�rrrr�	TestFloorsr�c@seZdZdS)z(MathTests.testFloor.<locals>.TestNoFloorN)rKrLrMrrrr�TestNoFloorsr�zfloor(TestFloor())ricWs|S)Nr)rmrrrrn sz%MathTests.testFloor.<locals>.<lambda>g�rWg�rWg�����g��Nݯ��g��Nݯ��)	rXrYrZfloorrUrBrorRr�)rHr�r�rprrr�	testFloors$
zMathTests.testFloorcCs�|jttj�|jdtjdd�d�|jdtjdd�d�|jdtjdd�d	�|jd
tjdd�d�|jdtjdd�d�|jdtjdd�d�|jtjtjtd	���|jtjtjd	t���|jtjtjtt���|jttjd	d�|jttjt	d	�|jttjt
d	�|jttjt	d�|jtjd
t	�d
�|jtjdt	�d�|jtjd
t
�d
�|jtjdt
�d�|jtjdd
�d�|jtjdt
�d�dS)Nzfmod(10, 1)r{rgz
fmod(10, 0.5)g�?z
fmod(10, 1.5)g�?g�?zfmod(-10, 1)zfmod(-10, 0.5)zfmod(-10, 1.5)g@i����g�i����g�i����g�g�g�g�g�)rXrYrZfmodrRr^rr_rZr[r\rU)rHrrr�testFmod$s(zMathTests.testFmodcs��jttj��fdd�}|dtjd�d
�|dtjd�d�|dtjd�d�|d	tjd
�d��jtjt�dt��jtjt�dt��jtjtjt	�d��dS)NcsB||\}}\}}t||�tks*||kr>�jd|||f�dS)Nz%s returned %r, expected %r)rr]rP)rQ�resultr(�mantr:ZemantZeexp)rHrr�	testfrexp=sz&MathTests.testFrexp.<locals>.testfrexpz	frexp(-1)r��?zfrexp(0)rzfrexp(1)zfrexp(2)rrW��)r�r)rr)r�r)r�r)
rXrYr�frexprUr[r\r^rr_)rHr�r)rHr�	testFrexp:szMathTests.testFrexpz2fsum is not exact on machines with double roundingcs>ddlm}|j�|j����fdd�}gdfdgdfddd.dd	d/d0gdfd1d2d5gd7fd8dd:gd<fd>dd@gdBfdDddFgdHfdd�tdd�D�tjd�fdd�tdd�D�tjd�fdd�td�D�dJgdKfdddgdfdLdOdQdUgdfd d�tdVd"d#�D�dXgtjd%�fg
}x�t|�D]|\}\}}ytj	|�}WnRt
k
�r^|jd&|||f�Yn*tk
�r�|jd'|||f�YnX|j
||��qWdd(lm}m}	m}
x�td�D]~}d)ddYdZd[d+gd,}d}x8td-�D],}|	d|��d)|}
||
7}|j|
��q�W|
|�||�}|j
||�tj	|���q�WdS)\Nr)�
float_infocs�d\}}xb|D]Z}tj|�\}}ttj|���|�}}||krT|||K}|}n|||K}||7}qWtttt|���d��|�}|dkr�d|d>}|d|t||@o�|d|d@�}||7}tj||�S)z�Full precision summation.  Compute sum(iterable) without any
            intermediate accumulation of error.  Based on the 'lsum' function
            at http://code.activestate.com/recipes/393090/

            rrrrg)rr)	rr�rB�ldexp�max�len�binr�bool)�iterableZtmantZtexprr�r:�tail�h)�etiny�mant_digrr�msum_s
"(z MathTests.testFsum.<locals>.msumgg}Ô%�I�Tg�?g0��.�++g�d~�QJg@�5g�?�6r|g$@g(@g@g@cSsg|]}d|�qS)g�?r)�.0rrrr�
<listcomp>�sz&MathTests.testFsum.<locals>.<listcomp>ri�z0x1.df11f45f4e61ap+2cSsg|]}d||�qS)g�?g�r)r�rrrrr��sz-0x1.62a2af1bd3624p-1cSs g|]}d|dd|�qS)g333333�?rr)r�r%rrrr��si�g333333�?g��7y�ACg��ؗ�Ҝ<g��7y�ACcSs,g|]$}d|d|dd|d�qS)g@�2�4r)r�rrrrr��si2i�ri�z0x1.5555555555555p+970zDtest %d failed: got OverflowError, expected %r for math.fsum(%.100r)zAtest %d failed: got ValueError, expected %r for math.fsum(%.100r))�random�gauss�shuffle�gh�$.5��;g#B����;r{��g}Ô%�I��g�g�d~�Q�g@Cg�i���g�<g��g@Cg������?Cg@Ci����g�9g@Cg@Cg@Cg@Ci����g�9g@Cg@Cg@Cg������?Ci���g�<g@Cg������?Cg����-�og����-��g�g��7y�ACi���g�<g�������?g��7y�ACg��7y�A�i���g�<g�������?g�������i���g�g�i����g}Ô%�I��gh�$.5���)�sysr�r��min_expr"r�fromhex�	enumeraterZfsumrxrPrZrUr�r�r��append)rHr�r�Ztest_valuesr%�valsr(�actualr�r�r��j�s�vr)r�r�r�testFsumLsT


zMathTests.testFsumcCsztj}|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|d	d
�d�d}d
}d}||}||}|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�d}||}||}|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|j|||�|�|jt|dd�|jt|dd�|j|td�td��d�dS)Nrrr����x�T�l j9W P)�}l "o�`T"-� i�	l�8P9�cC�/�[�N
S�9�b�Xl	9@{�wM�2�75�k lZ��'^%#�>�;�*Q!/61^g^@gU@rWrWrWi��i����)r�gcdrUrXrYrF)rHr��cr�y�a�brrr�testGcd�sP
zMathTests.testGcdcCs�|jttj�|jdtjdd�d�|jdtjdd�d�|jtjtt�t�|jtjtt�t�|jtjtt�t�|jtjtt�t�|jt	tjt
t
�|jtjtjdt���|jtjtjtd	���dS)
Nz
hypot(0,0)rz
hypot(3,4)rgr
r?g�?g@g�)
rXrYrZhypotrRrUr_r[r\rx�	FLOAT_MAXr^r)rHrrr�	testHypot�szMathTests.testHypotcCs@|jttj�|jdtjdd�d�|jdtjdd�d�|jdtjdd�d�|jdtjdd�d�|jttjd	d
�|jttjdd
�|jtjd	d�d�|jtjdd�d�|jtjtd�t�|jtjtd�t�|j	tj
tjtd����xFdddddgD�]0}|jtjt|�t�|jtjt|�t�|jtjd	|�d�|jtjd|�d�|jtjd|�d�|jtjd |�d!�|j	tj
tjt|���|jttjd	|�|jttjd"|�|jtjd|�d�|jtjd#|�d$�|jtjt|�t�|jtjt|�t�|j	tj
tjt|����qWdS)%Nz
ldexp(0,1)rrz
ldexp(1,1)rzldexp(1,-1)g�?zldexp(-1,1)g�?i@Bg���r{r?��(rWrWr�g�i���g�i���g�i+���i��ld(	l F�x:^Vg�g�g�g�g�g�g�)rXrYrr�rRrxrUr[r\r^rr_)rHrrrr�	testLdexp�s6zMathTests.testLdexpcCs|jttj�|jdtjdtj�d�|jdtjd�d�|jdtjtj�d�|jdtjdd�d	�|jd
tjddd�d�|jd
tjddd�d�|jdtjdd�d�|jttjd�|jttjdd�|jttjt�|jtjt	�t	�|j
tjtjt���dS)Nzlog(1/e)rzlog(1)rzlog(e)z	log(32,2)r�rr?zlog(10**40, 10)r{r�zlog(10**40, 10**20)r�z
log(10**1000)i�gO�+��@g�?rWl F�x:^Vg��)
rXrYr�logrRrTrZr\rUr[r^rr_)rHrrr�testLog�szMathTests.testLogcCsl|jttj�x6dddddgD] }|jtj|�tjt|���q"W|jttjd�|jtjt�t�dS)Nr�Zi,rrW)	rXrYrZlog1pZassertAlmostEqualrrZrUr[)rHrrrr�	testLog1ps
 zMathTests.testLog1pcCs�|jttj�|jtjd�d�|jtjd�d�|jtjd�d�|jtjdd�d�|jtjdd	�d
�|jtjdd�d�|jttjd�|jttjt�|jtjtjt	���dS)Nrgrg�?r
g@i�g��@ig�@i�g@�@g�?g��)
rXrYr�log2rUrZr\r^rr_)rHrrr�testLog2szMathTests.testLog2r{cCs8dd�tdd�D�}dd�tdd�D�}|j||�dS)NcSsg|]}tjtjd|���qS)g�?)rr�r�)r�rrrrr�,sz+MathTests.testLog2Exact.<locals>.<listcomp>i2icSsg|]}t|��qSr)r)r�rrrrr�-si���i���)r"rU)rHr�r(rrr�
testLog2Exact'szMathTests.testLog2ExactcCs�|jttj�|jdtjd�d�|jdtjd�d�|jdtjd�d�|jdtjdd	�d
�|jttjd
�|jttjdd	�|jttjt�|jtjt	�t	�|j
tjtjt���dS)Nz
log10(0.1)g�������?rzlog10(1)rz	log10(10)r{zlog10(10**1000)i�g@�@g�?rWg��)
rXrYrZlog10rRrZr\rUr�r[r^rr_)rHrrr�	testLog100szMathTests.testLog10cs��jttj��fdd�}|dtjd�d�|dtjd�d��jtjt�dtf��jtjt�dtf�tjt�}�jtj	|d	���jtj	|d
��dS)NcsF||\}}\}}t||�tks.t||�rB�jd|||f�dS)Nz%s returned %r, expected %r)rr]rP)rQr�r(Zv1Zv2Ze1Ze2)rHrr�testmodf?sz$MathTests.testModf.<locals>.testmodfz	modf(1.5)g�?��?��?z
modf(-1.5)grr)r�r�g������)r�r�g�)
rXrYrZmodfrUr[r\r_r^r)rHr�Zmodf_nanr)rHr�testModf<s
zMathTests.testModfcCs�|jttj�|jdtjdd�d�|jdtjdd�d�|jdtjdd�d�|jdtjdd �d�|jtjtd�t�|jtjtd�t�|jtjdt�d	�|jtjdt�d	�|jtj	tjt
d���|jtj	tjdt
���|jtj	tjdt
���|jtjdt
�d�|jtjd
t�d
�|jtjd
d�d
�|jtjd
d�d
�|jtjd
d
�d
�|jtjd
d
�d	�|jtjd
d!�d	�|jttjd
d"�|jttjd
d#�|jttjd
d$�|jttjd
t�|jtj	tjd
t
���|jtjtt�t�|jtjtd�t�|jtjtd�t�|jtjtd
�t�|jtjtd
�d	�|jtjtd%�d	�|jtjtd&�d
�|jtjtd'�d
�|jtjtd(�d
�|jtjtt�d
�|jtj	tjtt
���|jtjd)t�d
�|jtjd*d�d+�|jtjd,d�d
�|jtjd-d
�d
�|jtjd.d
�d	�|jtjd/d0�d	�|jttjd1d2�|jttjd3d4�|jttjd5d6�|jttjd7t�|jtj	tjd8t
���|jtjtt�t�|jtjtd�t�|jtjtd�t�|jtjtd
�t�|jtjtd
�d	�|jtjtd9�d	�|jtjtd:�d
�|jtjtd;�d
�|jtjtd<�d=�|jtjtt�d
�|jtj	tjtt
���|jtjd>t�d	�|jtjd?d�d@�|jttjdAd�|jtjdBd
�d	�|jtjdCd
�d	�|jtjdDdE�d	�|jtjdFdG�d	�|jttjdHdI�|jtjdJdK�dL�|jtjdMt�d	�|jtj	tjdNt
���|jtjd	t�d	�|jtjd	d�d	�|jtjd	d�d	�|jtjd	d
�d	�|jtjd	d
�d	�|jtjd	dO�d	�|jtjd	dP�d	�|jtjd	dQ�d	�|jtjd	dR�d	�|jtjd	t�d	�|jtjd	t
�d	�|jtjdd
�d	�|jtjdSd
�d	�|jtjt
d
�d	�|jtjddT�d	�|jtjdUdV�d	�|jtjt
dW�d	�|jttjdXd�|jttjdYdZ�|jtjdt�d
�|jtjdt�d
�|jtjdt�t�|jtjdt�t�|jtjd[t�t�|jtjd\t�t�|jtjd]t�d
�|jtjd^t�d
�|jtjdt�t�|jtjdt�t�|jtjdt�d
�|jtjdt�d
�|jtjd_t�d
�|jtjd`t�d
�|jtjdat�t�|jtjdbt�t�|jdtjdcd�dd�|jdtjded
�d�|jdtjdfd	�dg�|jdtjdhd
�d	�|jdtjdidj�d	�|jdtjdkdl�dm�|jdtjdndo�d�|jdtjdpdq�dr�|jttjdsdt�|jttjdud�dS)vNzpow(0,1)rrzpow(1,0)zpow(2,1)rz	pow(2,-1)g�?g�?gg@gffffff@g@g.@g������@gffffff�?g�������?g�������?g�������?z	(-2.)**3.g @z	(-2.)**2.g@z	(-2.)**1.z	(-2.)**0.z
(-2.)**-0.z
(-2.)**-1.z
(-2.)**-2.g�?z
(-2.)**-3.g�?rWg�g�gffffff�g�g�g�gffffff�g�g�g�g�g�g�g�g�g�g�g�g�gffffff�g�g�g�g�g�g�gffffff�g�g�g�g�g�g�g�g�g�g�g�g�g�gffffff�g�g�g�g�g�g�g�gffffff�g�gffffff�g�gffffff�g�g�g�g.�g�������g��������g�������g�������gffffff��g��������g�������g�������gffffff��g�g �g�g�g�g�g�g�g�g�g�g�g�g�g�g��g�g�g�)rXrYr�powrRrUr[r\r^rr_rZ)rHrrr�testPowOs�zMathTests.testPowcCsr|jttj�|jdtjd�tj�|jdtjd�tjd�|jdtjd�tjd�|jd	tjd
�d
�dS)Nzradians(180)�zradians(90)r�rzradians(-45)�-r
z
radians(0)ri���)rXrYrZradiansrRrS)rHrrr�testRadians�s
zMathTests.testRadianscCs�|jttj�|jdtjd�d�|jdtjtjd�d�|jdtjtjd�d�y0|jtjtjt���|jtjtjt	���Wn4t
k
r�|jt
tjt�|jt
tjt	�YnX|jtjtjt���dS)Nzsin(0)rz	sin(pi/2)rrz
sin(-pi/2)rW)rXrYrZsinrRrSr^rr[r\rZr_)rHrrr�testSin�szMathTests.testSincCs�|jttj�|jdtjd�d�|jdtjd�dtjd�dd�|jdtjd�tjd�d�|jtjt�t�|jtjt�t�|j	tj
tjt���dS)	Nzsinh(0)rzsinh(1)**2-cosh(1)**2rrzsinh(1)+sinh(-1)rWrW)rXrYrZsinhrRrurUr[r\r^rr_)rHrrr�testSinh�s&zMathTests.testSinhcCs�|jttj�|jdtjd�d�|jdtjd�d�|jdtjd�d�|jtjt�t�|jttjd�|jttjt�|j	tj
tjt���dS)	Nzsqrt(0)rzsqrt(1)rzsqrt(4)r
rrW)rXrYr�sqrtrRrUr[rZr\r^rr_)rHrrr�testSqrtszMathTests.testSqrtc
Cs�|jttj�|jdtjd�d�|jdtjtjd�d�|jdtjtjd�d�y0|jtjtjt���|jtjtjt	���Wn,|jt
tjt�|jt
tjt	�YnX|jtjtjt���dS)Nztan(0)rz	tan(pi/4)r
rz
tan(-pi/4)rW)rXrYrZtanrRrSr^rr[r\rZr_)rHrrr�testTanszMathTests.testTancCs�|jttj�|jdtjd�d�|jdtjd�tjd�dtd�d�|jdtjt�d�|jdtjt�d	�|jtj	tjt
���dS)
Nztanh(0)rztanh(1)+tanh(-1)r)r+z	tanh(inf)z
tanh(-inf)rWrW)rXrYr�tanhrRrr[r\r^rr_)rHrrr�testTanhszMathTests.testTanh�TANH_PRESERVES_ZERO_SIGNrz,system tanh() function doesn't copy the signcCs8|jtjd�d�|jtjdtjd��tjdd��dS)Ngg�?g�g�g�g�)rUrr�rr)rHrrr�testTanhSign!szMathTests.testTanhSigncCs&|jtjd�d�|jtjd�d�|jttjd��t�|jttjd��t�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�Gdd	�d	t�}Gd
d�dt�}|jtj|��d�|jttj�|jttjdd
�|jttj|��dS)Nrg�?g����?g�!��?rg-���?Y@r|c@seZdZdd�ZdS)z'MathTests.test_trunc.<locals>.TestTrunccSsdS)Nr�r)rHrrr�	__trunc__7sz1MathTests.test_trunc.<locals>.TestTrunc.__trunc__N)rKrLrMr�rrrr�	TestTrunc6sr�c@seZdZdS)z)MathTests.test_trunc.<locals>.TestNoTruncN)rKrLrMrrrr�TestNoTrunc:sr�r�rrWrWg��rWg�����rWg�!��rg-���?Y�i����)rUrZtruncrorB�objectrXrY)rHr�r�rrr�
test_trunc*s zMathTests.test_trunccCs�|jtjd��|jtjd��|jtjd��|jtjd��|jtjtd���|jtjtd���|jtjtd���dS)Ngg�?rrz-infg�g�)r^rZisfinite�assertFalser)rHrrr�testIsfiniteCszMathTests.testIsfinitecCsx|jtjtd���|jtjtd���|jtjtd�d��|jtjtd���|jtjd��|jtjd��dS)Nrz-nanrgg�?)r^rrrr�)rHrrr�	testIsnanLszMathTests.testIsnancCs�|jtjtd���|jtjtd���|jtjd��|jtjd��|jtjtd���|jtjd��|jtjd��dS)Nrz-infg�rgg�?g�)r^rrrr�)rHrrr�	testIsinfTszMathTests.testIsinfcCs|jtjtj��dS)N)r^rrr)rHrrr�test_nan_constant]szMathTests.test_nan_constantcCsJ|jtjtj��|jtjd�|jtjtd��|jtjtd��dS)Ngrz-inf)r^rrrZ
assertGreaterrUr)rHrrr�test_inf_constantaszMathTests.test_inf_constantzrequires verbose modecCs�ytjd�}Wn|jd�YnX|dkr8|jd�ytjd�}Wntk
rZYnX|jd�ytjd	�}Wntk
r�YnX|jd�dS)
Niʚ;z6underflowing exp() should not have raised an exceptionrz)underflowing exp() should have returned 0z.overflowing exp() didn't trigger OverflowErrorg�?z sqrt(-1) didn't raise ValueErrori6e�g�)rr:rPrxr�rZ)rHrrrr�test_exceptionsms 

zMathTests.test_exceptionscCstdh}d}tjdkrNtj�d}yttt|jd���}Wntk
rLYnXd}g}�x�tt	�D]�\}}}}	}
}}|	dksb|dkr�qb|dkr�qb|dk	r�|dkr�||kr�qbt
t|�}
d|ks�d|kr�d
}
nd|kr�d}
y|
|�}Wn2tk
�r�d
}Yntk
�rd}YnXd\}}t
|
|||�}|dk�r8qb|j||||�}|j|�qbW|�rp|jddj|��dS)NZtan0064�darwinr�.z{}: {}({!r}): {}��rect�polarr{r?�invalidzdivide-by-zerorZ�overflowrxzFailures in test_testfile:
  z
  )r�r�)r{r?)r?r�)r��platformZmac_ver�tuple�maprBr0rZr>�	test_file�getattrrrxrEr'r�rP�join)rHZ
SKIP_ON_TIGERZosx_versionZversion_txtrD�failuresr6r7�arZaiZerZeir;�funcr�r*r+rC�msgrrr�
test_testfile�sL



zMathTests.test_testfilecCs4d}g}�x
tt�D�]�\}}}}}tt|�}d|ks>d|krDd}nd|krPd}y||�}	Wn.tk
rtd}	Yntk
r�d}	YnXd\}
}|d	kr�d
}
n>|dkr�d}n0|d
kr�|dkr�|dkr�d}
n|dkr�d}
nd}
t||	|
|�}|dkr�q|j||||�}
|j|
�qW|�r0|j	ddj
|��dS)Nz{}: {}({!r}): {}r�zdivide-by-zerorZr�rxr?�Zgammar�ZlgammagV瞯�<Zerfcg�?r{g$@r|i�zFailures in test_mtestfile:
  z
  )r?r�)r<�math_testcasesr�rrZrxrEr'r�rPr�)rHrDr�r6r7r8r(r;r�r)r*r+rCr�rrr�test_mtestfile�sB

zMathTests.test_mtestfileN)r?rO)>rKrLrMrRrVr`rarbrcrerfrhrqrrsrtrvrwryrzr~rZcpython_onlyrr�r�r��unittestZskipIf�HAVE_DOUBLE_ROUNDINGr�r�r�r�r�r�r�Zrequires_mac_verr�r�r�r�r�r�r�r�r�r��	sysconfig�get_config_varr�r�r�r�r�r�r�Z
skipUnlessrr�r�r�rrrrrN�sl


		="
Y+ 
	

			 9rNc@s�eZdZejZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS) �IsCloseTestscOs*|j|j||f|�|�d||fd�dS)Nz%s and %s should be close!)r�)r^�isclose)rHr�r�rm�kwargsrrr�
assertIsClose
szIsCloseTests.assertIsClosecOs*|j|j||f|�|�d||fd�dS)Nz%s and %s should not be close!)r�)r�r)rHr�r�rmrrrr�assertIsNotCloseszIsCloseTests.assertIsNotClosecOs*x$|D]\}}|j||f|�|�qWdS)N)r)rH�examplesrmrr�r�rrr�assertAllCloseszIsCloseTests.assertAllClosecOs*x$|D]\}}|j||f|�|�qWdS)N)r)rHrrmrr�r�rrr�assertAllNotCloseszIsCloseTests.assertAllNotClosecCsR|jt��|jdddd�WdQRX|jt��|jddddd�WdQRXdS)Nrg0��.�++)�rel_tolg _�B)rr+g0��.�+�g _��)rXrZr)rHrrr�test_negative_tolerancessz%IsCloseTests.test_negative_tolerancescCs$d	d
ddddg}|j|ddd�dS)N�@�N���@i�;����90���@��NF)rr+)r
r
)rr)rr)rr��)rr)rr)r	)rHZidentical_examplesrrr�test_identical$szIsCloseTests.test_identicalcCs*d
d
dg}|j|dd�|j|dd�dS)N��חArg:�0�yE>g��n�yE>�	ѭ��?�fN�ӭ��?)rg��&�.>��חA)rr�:�0�yE�縦n�yE�)rr)rr)r	r
)rHZeight_decimal_places_examplesrrr�test_eight_decimal_places.s
z&IsCloseTests.test_eight_decimal_placescCs*dd
dg}|j|dd�|j|dd�dS)
N��&�.>�gu�?j�/� g�������?)rg:�0�yE>)r+)rr��&�.�)rr�u�?j�/ʠ)r r)r
r	)rHZnear_zero_examplesrrr�test_near_zero6s
zIsCloseTests.test_near_zerocCs<|jtt�|jttdd�|jtt�|jttdd�dS)Ng)r+)rr[r\)rHrrr�test_identical_infinite@sz$IsCloseTests.test_identical_infinitecCsRttftdfdtfttfttfttftdfdtftdfdtfg
}|j|dd�dS)Ng0��.�++g�?g������g�������?)r+)r_r[r\r
)rHZnot_close_examplesrrr�test_inf_ninf_nanGs
zIsCloseTests.test_inf_ninf_nancCs4d
d
dg}|j|dd�dddg}|j|dd�dS)N��?g333333@gY��n�g)r��?������?�Zb���ti�Tb���ti)r$r$�333333��333333�)r)r*�Y��n���Y��n��)r+r,)r$r%)r&r$)r'r()r	r
)rHZzero_tolerance_close_examplesZ!zero_tolerance_not_close_examplesrrr�test_zero_toleranceVsz IsCloseTests.test_zero_tolerancecCs|jddgdd�dS)N�	r{g�������?)r)r.r{)r{r.)r	)rHrrr�test_asymmetrybszIsCloseTests.test_asymmetrycCs(dd	g}|j|dd�|j|dd�dS)
N������[��[g:�0�yE>)rg��&�.>)r0r1)r2r3)r	r
)rHZinteger_examplesrrr�
test_integersfszIsCloseTests.test_integerscCshddlm}|d�|d�f|d�|d�f|d�|d�f|d	�|d
�fg}|j|dd�|j|d
d�dS)Nr)�Decimalz
1.00000001z1.0z1.00000001e-20z1.0e-20z1.00000001e-100z1.0e-100z
1.00000001e20z1.0e20g:�0�yE>)rg��&�.>)�decimalr5r	r
)rHr5Zdecimal_examplesrrr�
test_decimalsnszIsCloseTests.test_decimalscCsdddlm}|dd�d|d�f|d�|d�f|dd�|dd�fg}|j|d
d�|j|dd�dS)Nr)�Fractionri�i�r{��r�g:�0�yE>)rg��&�.>i�i�l �	(q�e�	l F�x:^V)Z	fractionsr8r	r
)rHr8Zfraction_examplesrrr�test_fractionsyszIsCloseTests.test_fractionsN)rKrLrMrrrrr	r
rrrr!r"r#r-r/r4r7r;rrrrr
s 

rcCsNddlm}tj�}|jtjt��|jtjt��|j|d��t|�dS)Nr)�DocFileSuitezieee754.txt)	Zdoctestr<r�Z	TestSuiteZaddTestZ	makeSuiterNrr)r<Zsuiterrr�	test_main�sr=)rr	g��7y�AC)r?r@)2Ztest.supportrrrZtestrr�r�osr�rr�rr]rr_r[r\r�r�r�rr�rrK�argv�file�__file__�path�dirname�curdirZtest_dirr�r�r�rrrrr&r,r<r>rEr�rFZTestCaserNrr=rrrr�<module>sX-
.{


Youez - 2016 - github.com/yon3zu
LinuXploit