403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
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.opt-2.pyc
3

�
�^[��@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)Nz<qz<dr��?l)�struct�unpack�pack)�x�n�r�./opt/alt/python36/lib64/python3.6/test_math.py�to_ulps#s
rcCs�tt|��}tj|�s tj|�r$|Stjdtjd|��d}tjdtjd|d��d}tj|�r�tjdtjd|d��d}||S||SdS)Nz<qz<dr�)�abs�float�math�isnan�isinfrrr)rrZx_nextZx_prevrrr�ulp4s
rcCs|rdt||d@�SdS)Nrr)�count_set_bits)rrrrrasrcCsD||d?}|sdS|dkr |S||dB}t||�t||�SdS)Nr)�partial_product)�start�stopZ
numfactorsZmidrrrresrcCsdd}}xJtt|j���D]6}|t||d?ddB||?ddB�9}||9}qW||t|�>S)Nr)�reversed�range�
bit_lengthrr)r�innerZouter�irrr�py_factorialss
*r&cCsLtt|�t|��}t||�}||ks0||kr4dSd}|j||||�SdS)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)Nz--z->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)Nz--z->rrr)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)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)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)Nrr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