403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.124
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_long.cpython-36.pyc
3

�w2_��@s,ddlZddlmZddlZddlZddlZddlZejjZ	de	Z
e
dZdZdZ
ddde
e
d?ddgZd	Zx*ede	�D]Zejed�ed>Zq|W[ed
d�eD�dd�eD�7ZejjZejjZejjZejjZdedeedZd
d�Zdd�ZGdd�dej�Z e!dk�r(ej"�dS)�N)�support���F�lUU�*UU�*l�*UU�*UU
�cCsg|]
}|�qS�r)�.0�xrr�3/opt/alt/python36/lib64/python3.6/test/test_long.py�
<listcomp>srcCsg|]
}|�qSrr)r	r
rrrrscCstjjd}tjj|}d|>}ddd	ddd
ddg}|dkr@dS|dkrTt|�S|j�|}|dkrr||>n||?t|d|>@�B}|||d@7}|||k|kr�td��|ddkr�|ddtjjks�t�|d|tjj	ks�t�t
jt|�|�S)z9
    Correctly-rounded integer-to-float conversion.

    rrrg�z%integer too large to convert to floatr������rr)
�sys�
float_info�mant_dig�max_exp�int_to_float�
bit_length�bool�
OverflowError�AssertionError�max�math�ldexp�float)�nZ	PRECISIONZ	SHIFT_MAXZQ_MAXZROUND_HALF_TO_EVEN_CORRECTION�shift�qrrrr's ,$rcCs||Adk}t|�t|�}}|s*td��|t|kr>td��|j�|j�}|dkrf|d||ks�|dkr�|d||kr�|d7}t|t�t}|t|d�>|t|d�>}}t||�\}}d||ks�d||kr�|ddkr�|d7}t	j
||�}|�r|S|S)z-Correctly-rounded true division for integers.rzdivision by zeroz)int/int too large to represent as a floatrr)�abs�ZeroDivisionError�DBL_MIN_OVERFLOWrrr�DBL_MIN_EXP�DBL_MANT_DIG�divmodrr)�a�b�negative�d�expr�r�resultrrr�truedivUs 2 $r-c@s8eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zejdd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�ZdId2d3�Zejd4d5��Zd6d7�Zej d8d9��Z!d:d;�Z"d<d=�Z#d>d?�Z$d@dA�Z%dBdC�Z&dDdE�Z'dFdG�Z(dHS)J�LongTestcCs�|j|d�|t}|td}d}d}ttj�td�dB}x�||kr�|d?d}t|||�}|jd|koztkn�||}||>}|d@r�|d|>dB}ttj�td�}qBW|j||ko�|kn�tj�dkr�|}|S)Nrrrg�?)Z
assertGreater�SHIFT�int�random�min�
assertTrue)�self�ndigitsZnbits_hiZnbits_lo�answerZnbitsr+�bitsrrr�getran{s&
zLongTest.getrancCs@d}x$t|�D]}|t>tjdt�B}qWtj�dkr<|}|S)Nrg�?)�ranger/r1Zrandint�MASK)r5r6�irrr�getran2�szLongTest.getran2c
Cs�|j}|j||d���t||�\}}||||}}||||}}	|||	d�|||d�|||d�|||||d�|dkr�|jd|ko�|knd�n |j||ko�dknd�WdQRXdS)N)r
�yzmultiplication does not commutez(divmod returns different quotient than /z#divmod returns different mod than %zx != q*y + r after divmodrzbad mod from divmod)�assertEqual�subTestr%r3)
r4r
r=�eqrr+Zq2Zr2ZpabZpbarrr�check_division�s"zLongTest.check_divisioncCsttdtd��ttttd��}|jtd�x>|D]6}|j|�}x&|D]}|j|�p\d}|j||�qLWq8W|jdd�|jdd�|jdd	�|jd
d�|jdd
�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�dS)Nr��l!Us/w��3alZW��3al+Q@{�d��B]Ol�Nl�O�Ol�Nl�t�e�o%g�q�Cgx<l�&�ghrsGlQ5��K�4+�o�-bklC�4+�o�-bkl��.#w�flD�&I-�Xl�Z��nSu9bl�c�v��
��<�Ilrd�FBu�'�pl�PhbIi|�$l1�m�{Wqi���8l�s~5^Fi�y�+l'H�
<{�Cl`<{�Cl�ED_5(�Nl�o�ybal=2zz6l�9�t�m)�listr9�	MAXDIGITS�KARATSUBA_CUTOFF�appendr8rA)r4�digits�lenxr
�lenyr=rrr�
test_division�s4


zLongTest.test_divisionc	Cs�ttdd��ttttd��}|jtdtdg�dd�|D�}x�|D]�}d|>d}xp|D]h}||krnq`|j||d��Fd|>d}||}d||>d|>d|>d}|j||�WdQRXq`WqJWdS)Nr��
�dcSsg|]}|t�qSr)r/)r	�digitrrrr�sz+LongTest.test_karatsuba.<locals>.<listcomp>)�abits�bbits)rDr9rF�extendr?r>)	r4rHr7rPr&rQr'r
r=rrr�test_karatsuba�s

zLongTest.test_karatsubacCs�|j}|j|d���||d@d�||dB|�||dA|�||d@|�||dBd�||d	A|�|||�|||@|�|||B|�|||Ad�|||@d�|||Bd
�|||Ad�||d|�|||d�WdQRXx�tdt�D]�}d|}|j|||d��n|||>|?|�|||||?�|||||>�|||@||?|>�|||@||d@�WdQRX�qWdS)N)r
rrr)r
r�p2rrrrrr)r>r?r9r/)r4r
r@rrTrrr�check_bitop_identities_1�s2z!LongTest.check_bitop_identities_1cCs�|j}|j||d���|||@||@�|||B||B�|||A||A�|||A|A|�|||@||B�|||B||@�|||A||B||@@�|||A||@||@B�|||A||B||B@�WdQRXdS)N)r
r=)r>r?)r4r
r=r@rrr�check_bitop_identities_2sz!LongTest.check_bitop_identities_2cCs�|j}|j|||d���|||@|@|||@@�|||B|B|||BB�|||A|A|||AA�||||B@||@||@B�||||@B||B||B@�WdQRXdS)N)r
r=�z)r>r?)r4r
r=rWr@rrr�check_bitop_identities_3sz!LongTest.check_bitop_identities_3cCs�xtD]}|j|�qWtdtd�}x`|D]X}|j|�}|j|�x>|D]6}|j|�}|j||�|j|||j||d��qJWq,WdS)Nrr)�specialrUr9rEr8rVrX)r4r
rHrIrJr=rrr�test_bitop_identitiess





zLongTest.test_bitop_identitiescCs�g}d}|dkrd|}}x$|r@t||�\}}|jt|��qW|j�|pRdg}dd|�ddddd�|djd	d
�|D��S)Nrr�-Z0bZ0o�Z0x)r�rM�css|]}d|VqdS)Z0123456789abcdefNr)r	r;rrr�	<genexpr>1sz'LongTest.slow_format.<locals>.<genexpr>)r%rGr0�reverse�join)r4r
�baserH�signr+rrr�slow_format%s
zLongTest.slow_formatcCs�x�dtfdtfdtfdtfdtffD]n\}}||�}|j||jd��|j||�}|j||�WdQRX|j|d��|jt	|d�|�WdQRXq$WdS)Nrr]rMr^)r
�mapper)�gotr)
�bin�oct�str�repr�hexr?�__name__rdr>r0)r4r
rbrerf�expectedrrr�check_format_13s,zLongTest.check_format_1cCsZxtD]}|j|�qWx<td�D]0}x*tdtd�D]}|j|�}|j|�q6Wq"WdS)NrMr)rYrnr9rEr8)r4r
r;rIrrr�test_format<s

zLongTest.test_formatc
Cs<d0dddddfg}x||D]t\}}xjd1D]b}x\d2D]T}|||}|}|dkr`|tk	r`|}y|jt|�|�Wq6tk
r�Yq6Xq6Wq,WqW|jttd�|jttd
�|jttd�|jttd�|jttdd�|jttdd�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd d�d�|jtdd�d�|jtd!d�d�|jtd"d�d�|jtd#d�d�|jttd$d�|jttd%d�d3d5d6d8d;d=d>d@dCd'dd'dg}x|D]}	|jttd+|	��qW|jttd,�dS)DN�1�0�rMrNr\�+r[� �	�  		  Z123LZ123lZ0Lz-37LZ0x32Lr^Z1L���+Z000rZ0o123�SZ0x123i#Z0b100rz	 0O123   z 0X123  z 0B100 z+0z-0Z00Z08z-012395i�r�r�?Z42uこんにちはZ00000000000000000000�100000000000000000000� F�x:^V)r}r~)r\rsr[)r\rtrurvis���li���lli�li�l����ll����lll����ll����l����)�
ValueErrorr>r0�assertRaises)
r4ZLL�s�vrc�prefixZssZvvZ
invalid_basesrbrrr�	test_longDsP


zLongTest.test_longcCsBGdd�d�}|jtt|��Gdd�d�}|jt|��d�dS)Nc@seZdZdd�ZdS)z*LongTest.test_conversion.<locals>.JustLongcSsdS)N�*r)r4rrr�__long__�sz3LongTest.test_conversion.<locals>.JustLong.__long__N)rl�
__module__�__qualname__r�rrrr�JustLongsr�c@seZdZdd�Zdd�ZdS)z+LongTest.test_conversion.<locals>.LongTrunccSsdS)Nr�r)r4rrrr��sz4LongTest.test_conversion.<locals>.LongTrunc.__long__cSsdS)Ni�r)r4rrr�	__trunc__�sz5LongTest.test_conversion.<locals>.LongTrunc.__trunc__N)rlr�r�r�r�rrrr�	LongTrunc�sr�i�)r��	TypeErrorr0r>)r4r�r�rrr�test_conversion}szLongTest.test_conversioncCslyt|�}Wntk
r$d}YnXyt|�}Wntk
rJd}YnXdj|||�}|j|||�dS)N�overflowzAError in conversion of integer {} to float.  Got {}, expected {}.)rrr�formatr>)r4rZactualrm�msgrrr�check_float_conversion�s


zLongTest.check_float_conversionc
Csddddddddd d"d#d%g}x0|D](}|jt|�|�|jt|�|�q"WxNd-D]F\}}x<td�D]0}|jttd|d.|��d|d/|�qfWqTWxRd@D]J\}}x>td�D]2}|jttd|dA|��d|dB|��q�W�q�Wtt�}dt}||d}|jt|�t�|jt|d�t�|jt|d�t�|jtt|�|jtd|�t�|jtt|�|jtt|d�|jtt|�|jtt|d�|jttd|d�|jttd|�|jtt||�xntd�D]b}d|dDd}d|dF}|jtt|��|�d|dH}d|dI}|jtt|��|��q�W|d||d|d||d|d||dd|dd|||g}|j|�x@tdJd�D]2}x*tdKd�D]}|j	d|d|��q�W�q�Wx$|D]}	|j
|	�|j
|	��q�WdS)LNrrr�5rC�6rrL�r
r]r�	rM���
rBr^rN�ll����ll����ll����lllll����ll����lll�rr�rr�rCr�rr�rLr�r�r��r
r])r�r�r�r�r�r�r�ll�rr�rr�rr�rCr�rr�rLr�r�r]�r
r]�r]r]�r�r]�rMr]�r�r��r�r��r�r��rBr^�rr^)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�lllllllll���i����)r>rr9r0�DBL_MAX�DBL_MAX_EXPr�rrRrGr�)
r4Zexact_valuesr
r=�pZint_dbl_maxZ	top_powerZhalfwayZtest_values�valuerrr�test_float_conversion�sl
48
"

zLongTest.test_float_conversionc$Cs~x d0D]}|jtt|��|�qWdd}dd>}|}|||td�}xd1D]}|jtt||�qLW|jt|�t|�d-�dS)2N�@��?�Z12345�xri0u)�huge�mhuge�shuger�float(huge)�float(mhuge)�
complex(huge)�complex(mhuge)�complex(huge, 1)�complex(mhuge, 1)�complex(1, huge)�complex(1, mhuge)�	1. + huge�	huge + 1.�
1. + mhuge�
mhuge + 1.�	1. - huge�	huge - 1.�
1. - mhuge�
mhuge - 1.�	1. * huge�	huge * 1.�
1. * mhuge�
mhuge * 1.�
1. // huge�
huge // 1.�1. // mhuge�mhuge // 1.�	1. / huge�	huge / 1.�
1. / mhuge�
mhuge / 1.�
1. ** huge�
huge ** 1.�1. ** mhuge�mhuge ** 1.�math.sin(huge)�math.sin(mhuge)�math.sqrt(huge)�math.sqrt(mhuge)z(float(shuge) should not equal int(shuge)����)r�r�r�r�r�)$r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)r>rr0rr�r�evalZassertNotEqual)r4r
r�r�r��	namespace�testrrr�test_float_overflow�s*
zLongTest.test_float_overflowcCs�tjtj�}xZttd��dddgD]@}d|}tj|�}|j||�||}tj|�}|j||�q$Wx8dd>ddfD]$}|jttj|�|jttj|�qzWdS)	NrMrNi�i'rrrr)	r�log10�erDr9ZassertAlmostEqual�logr�r)r4ZLOG10Er*r�r�rmr�Zbadrrr�	test_logss

zLongTest.test_logsc

s�|j}G�fdd�d��ddddddd	g}xJdD]B}|j|d|d||d|dt|d�t|�t|d�g�q0W|jdddtjttj�g�td	�}|jddddd>|d||dg�|jdd�|D��x�|D]�}�|�}x�|D]�}�|�}||k||k}|j|||d���||k||k}	|||	�|||k|dk�|||k|dk�|||k|dk�|||k|dk�|||k|dk�|||k|dk�WdQRXq�Wq�WdS)NcsHeZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)z)LongTest.test_mixed_compares.<locals>.Ratc	Ss4t|t�r||_d|_�nt|t��r$tjt|��\}}|dks\d|koRdkns\t�d}d}xd|r�tj	||�}t|�}||?dks�t�||>|B}||8}d|ko�dkns�t�||8}qfW|dkr�||>}d}n|}d|>}|dkr�|}||_||_t|�t|�|k�s0t�nt
d|��dS)Nrrg�?g�?�gzcan't deal with %r)�
isinstancer0rr)rrZfrexpr rrr�)	r4r��fr�ZCHUNK�toprOrr)rrr�__init__s6

$
z2LongTest.test_mixed_compares.<locals>.Rat.__init__cs<t|��s�|�}|j|j|j|j}}||k||kS)N)r�rr))r4�otherr
r=)�Ratrr�_cmp__Fs
z0LongTest.test_mixed_compares.<locals>.Rat._cmp__cSs|j|�dkS)Nr)r�)r4r�rrr�__eq__Ksz0LongTest.test_mixed_compares.<locals>.Rat.__eq__cSs|j|�dkS)Nr)r�)r4r�rrr�__ge__Msz0LongTest.test_mixed_compares.<locals>.Rat.__ge__cSs|j|�dkS)Nr)r�)r4r�rrr�__gt__Osz0LongTest.test_mixed_compares.<locals>.Rat.__gt__cSs|j|�dkS)Nr)r�)r4r�rrr�__le__Qsz0LongTest.test_mixed_compares.<locals>.Rat.__le__cSs|j|�dkS)Nr)r�)r4r�rrr�__lt__Ssz0LongTest.test_mixed_compares.<locals>.Rat.__lt__N)
rlr�r�r�r�r�r�r�r�r�r)r�rrr�s(r�rg����MbP?g�G�z��?g�?g�?g@��x�DgZb���tig@�0�2r�g333333�?rri NcSsg|]
}|�qSrr)r	r
rrrrasz0LongTest.test_mixed_compares.<locals>.<listcomp>)r
r=�Rcmp��B�C�@C)r�r�r�)r>rRr0r�maxsizerr?)
r4r@Zcases�tr
ZRxr=ZRyr�Zxycmpr)r�r�test_mixed_comparess09
$$


zLongTest.test_mixed_comparescCs�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd	�d
�|jtd[d	�d�|jtdd�d
�|jtd\d�d�|jtdd�d�|jtd]d�d�|jtdd�d
�|jtd^d�d�|jtdd�d�|jtd_d�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd`d�d�|jtdd�d�|jtdad�d�|jtdd�d�|jtdbd�d�|jtdcd�d�|jtddd�d�|jttdd�d�d�|jttdd�d�d �|jttdd�d�d!�|jttdd�d�d"�|jttd#d$�|jtd#d%�d&�|jtd#d'�d(�|jtdd)�d�|jtded)�d�|jtdd)�d*�|jtdfd)�d+�|jtdd,�d*�|jtdgd,�d+�|jtdd-�d.�|jtdhd-�d+�|jtdd/�d0�|jtdid/�d+�|jttd#d1�|jtd#d2�d3�|jtdd4�d5�|jtdjd4�d6�|jtdd4�d7�|jtdkd4�d8�|jtdd9�d7�|jtdld9�d8�|jtdd:�d;�|jtdmd:�d8�|jtdd<�d=�|jtdnd<�d8�|jttd#d>�|jtd?d@�dA�|jttddB�|jttddC�|jttddD�|jttddE�|jtdFtddG�|jtdFtddH�|jtdFtddI�|jtdFtddJ�|jtdKtddL�|jtdMtddN�x�dOdP�ttdQ�tdR�d�D�dSdP�ttdT�tdU�d�D�D]j}|dVk�r�|jttdW|�|jttd|�|jttdo|�|jttdXdY|�|jttdXdY|��q�Wx:dZD]2}x*dsD]"}|jt||�tt|�|���q`W�qVWdS)tNi�[r)Z	123456789�,z123,456,789�_Z123_456_789rr[rpz-1z-3z  1z -1z+3z +1z 3rtz 1rCr
�3�Xi�Z4d2z-4d2Z8xz     4d2z    -4d2Zber^ZBEz-bez-BE���Iz,xZ_xZ	4996_02d2Z_XZ	4996_02D2�oZ2322z-2322z-oz oz 2322z+oz+2322z,oZ_oZ
111_4540_1322r'Z11z-11Z10011010010z-10011010010z-bz bz 10011010010z+bz+10011010010z,bi90Z_bZ11_0000_0011_1001z1.3Z_cz,cz+czCannot specify bothz_,z,_z_,dz,_dzCannot specify ',' with 's'z,szCannot specify '_' with 's'Z_scSsg|]}t|��qSr)�chr)r	r
rrrr�sz+LongTest.test__format__.<locals>.<listcomp>r&rWcSsg|]}t|��qSr)r)r	r
rrrr�s�A�ZzbcdoxXeEfFgGn%rrrNzeEfFgG%rrrrri.���i.���i.������rri.���i.���i.���i.���ri.���i.���i.���i.���rr����.�i�)rrrrNrrr
)	r>r�r0r�rZassertRaisesRegexr9�ordr)r4�format_specr�rrr�test__format__qs� &


zLongTest.test__format__cCs:|jtttd��|jtttd��|jtttd��dS)N�infz-inf�nan)r�rr0rr)r4rrr�test_nan_inf�szLongTest.test_nan_infc
Cs�|jt��dd}WdQRX|jd	d�|jdd�|jd
d�|jdd�|jdd�|jdd�|jdd�|jdd�dS)Nrrr�rMrCr
r�rrCi�r
i����i����i����i�i����rrri�rr�ri�r�r)r�r!r>)r4rrrr�test_mod_division�szLongTest.test_mod_divisioncCs�dd>}|}|j||d�|j||d�|j||d�|j||d�|jd|d�|jd|d�|jd|d�|jd|d�|jd||d?|d�|jd||d?|d�|jd||d?|d�|jd||d?|d�|j||d>d�|jd||d�||d	�}xdD]}|jtt||��q6Wx*d D]"}t||�}|j|dd|��qVWxd!D]}|jtt||��q�WdS)"Nri@�g�?gi�gԄ@g�?i@B)r�r��float(huge)�float(mhuge)�huge / 1�huge / 2�	huge / -1�	huge / -2�mhuge / 100�mhuge / 200�1 / huge�2 / huge�	-1 / huge�	-2 / huge�100 / mhuge�200 / mhugezexpected underflow to 0 from %r�huge / 0�	mhuge / 0g�g�gԄ�gԄ�)rrrrrrrr)rrrr r!r")r#r$)r>r�rr�r!)r4r�r�r�r�Z	underflowr,Zzerorrr�test_true_division�s8


zLongTest.test_true_divisionc
Cs�|jt��dd}WdQRX|jdd�|jd
d�|jd
d�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jd d!�|jd#d$�|jd%d�dS)&NrrrrCr�rr�rrrrrrrrrri����rrCi����r�r�rr�r�rCi�rri�r�r�rr�r�r)r�r!r>)r4rrrr�
test_floordivszLongTest.test_floordivTcCs�|r"tt|�t|��dtkr"dSytt||��}Wn.tk
rLd}Yntk
rbd}YnXyt||�}Wn.tk
r�d}Yntk
r�d}YnX|j||dj||||��dS)z�Verify that the result of a/b is correctly rounded, by
        comparing it with a pure Python implementation of correctly
        rounded division.  b should be nonzero.rNr�Zzerodivisionz7Incorrectly rounded division {}/{}: expected {}, got {})	rr r$rjr-rr!r>r�)r4r&r'Z
skip_smallrmrfrrr�
check_truedivs 	

zLongTest.check_truedivcCs�|jdd�|jd&d�|jdd�|jdd'�|jdd�|jd(dtd�|jdddtt�|jddd	d
�|jd*d
dd
�dtttttf}x||D]t}xnt|d|d�D]X}|jddt|d�ddt|d��|jddt|d�ddt|d��q�Wq�Wxpddddddd	d+d,d-d.d/ddgD]F}x>td0d�D]0}|j|t||�|j|t||��qXW�qHWxBtd�D]6}|jdtddddd|dtd��q�W|jdd�|jdd�xBtd�D]6}|jd|dd|�|jd|d|d��q�Wxfddddd d!dd"ddd	d1d2d3d4d5ddgD]4}x,td6d�D]}|jdt|||��qrW�qbWx$td7d#�D]}|j|dd$��q�Wx�d8dd	ddgD]r}xjtd�D]^}tjd|�}tj|d|d�}	|j||	�|j||	�|j||	�|j||	��q�W�q�Wx~td%�D]r}
tjd�}tjdd�}tjd|�}
tjdd|�}|j|
|�|j|
|�|j|
|�|j|
|��qTWdS)9N�{ri�rCi�i90riNFrNí�r
�Qri0&iCr�rL�i3	�)r�rM���i�
l�E,J_l�J�bi�rr]r^� rri4i'i8���rige~i@l90rr���i��i���i����rrr1i��i���i����i��ld(	)	r'r�r$r#r9rr"r1�	randrange)r4�basesrbr*�mrr;�Mr&r'rZa_bitsZb_bitsr
r=rrr�$test_correctly_rounded_true_division8sf
*2""$
z-LongTest.test_correctly_rounded_true_divisionc	Cs:|jdd�|jdd�|jt��dd>WdQRXdS)NrrMrrrr)r>r�r)r4rrr�test_lshift_of_zero�szLongTest.test_lshift_of_zeroc
Cs:|jdtj>d�|jt��dtjd>WdQRXdS)Nrr)r>rr�r�r)r4rrr�test_huge_lshift_of_zero�sz!LongTest.test_huge_lshift_of_zerocCs�x�tdd�D]�}|j||d�|j||d�|j||d�|j||d�|j||d@�|j||dB�|j||dA�|j||�|j||d�|j|tt|���|j||d>d?t|��qWd	}|j||d�|jd|d�dS)
NrLirrrrr1rl)r9�assertIsr0ri)r4r;rrr�test_small_ints�szLongTest.test_small_intscCs�d}x�tdd�D]�}|j�}|j|tt|�jd���|dkrn|jd|dt|�kodd|kn�n|j|d�|dkr|j|dtj	tj
t|��tj
d�|��qW|jdj�d�|jdj�d�|jdj�d�|jdj�d�|jdj�d�x�dD]�}d|}|j|dj�|�|jd|j�|�|j|j�|d�|j|j�|d�|j|dj�|d�|j|dj�|d��q
WdS)Ng�����|�=i�z-0brrrrCrr^r+r{r0�!r|�@��i��rr)rrCrr^r+r{r0r;r|r<r=)r9rr>�lenrg�lstripr3r rZfloorr�)r4Ztinyr
�kr;r&rrr�test_bit_length�s.0&
zLongTest.test_bit_lengthcCs�ddddddddddddddddddddd�}x\td4dd�D]L}xF|j�D]:\}}t||d5�}||}|j||�|jt|�t�qJWq<W|jtd6d7�d8�|jtd9d:�d;�|jtd<d=�d>�|jtd?d@�d�|jtdAdB�d�|jtdCdD�d�|jtddE�d�|jtddF�d�|jtddG�d�|jtd
dH�d�|jtddI�d�|jtd
dJ�d�|jtddK�d	�|jtddL�d	�|jtddM�d�|jtddN�d�|jtddO�d�|jtddP�d�|jtddQ�d�|jtddR�d�|jtddS�d�|jtddT�d�|jtddU�d �|jtddV�d"�|jtddW�d$�|jtddX�d&�|jtddY�d'�|jtddZ�d�|jtdd[�d�|jtdd\�d�xNtdd�D]@}td|d+d]�}d|d,}|j||�|jt|�t��q�WxXtd�D]L}xDtd�D]8}	tjd^d-�}
t|
|�}|j||
�|jt|�t��qW�qWx4d`dadcddddddfD]}|jtd0|�d0��qlWxBtd�D]6}	tjded-�}
t|
�}|j||
�|jt|�t��q�Wdf}x|D]}
|j	t
td|
��q�WdS)gNrrMrr)rrrrCrrLr�r
r]r�rMr�r�r�rBrr^r+��ir�rr/�rN�3r��1r.�i,iԡrCi�i��i��l!l!l�~!l�!rl�!rLl`!r�l!r
l'�!r]lz+r�lv|ol,Gxr�r�i�iF�i��i'r{r|i{��brian�@�i����rij���ri8���ik���ri����i���ri����i���ri���rrrrrrrrrrrrrrrrrr�r1i����i����i����i����i����i����i�i���ri���li���lll����li���)rIrJrK)r9�items�roundr>r9�typer0r1r2r�r�)r4Z	test_dict�offsetr@r�rfrmZexpectrr;r
Zhuge_nZ
bad_exponentsr�rrr�
test_round�sx

zLongTest.test_roundc"s�d7�fdd�	}ddddd8dd9d
d:dd;dd	dd
dd<dd=dddddddd>dddd?dd@d i}||d!d"d#�dddddAddBd
dCddDdd	dd
d$dEd%dFddddd&dddGd'dd(dHd)dId*i}||d+d"d#�dddddddd,d-d.d/�
}||d!dd#�dddddd&dd'd-d0d/�
}||d+dd#��jtdjdd!dd#��jtdjdd!d"d#��jtdjdd+dd#��jtdjdd+d"d#��jtdJjd1d!dd#��jtdKjd1d+dd#��jdjdd!�d2��jdjd3d!�d4��jdjd3d!�d5��jdLjd3d!d"d#�d6��jtdjdd!�dS)MNFcsrxl|j�D]`\}}y �j|jt|�||d�|�Wq
tk
rh}ztdj|||��|�WYdd}~Xq
Xq
WdS)N)�signedz7failed to convert {0} with byteorder={1} and signed={2})rLr>�to_bytesr>�	Exceptionrr�)�tests�	byteorderrQr�rm�err)r4rr�check"s
z%LongTest.test_to_bytes.<locals>.checkr�r������r����s��s��s��s�s�si�s�i�s��i��s��is�i�s��bigT)rQs�s�ss�s��s�s��littles�s��s)
rrr[r�r`rai�i�i��isr�rLsss�����)Fri����i����i���i���i���i���i��i��ri����i����i���i���i���i���i��i��rrr)r�rrRr>)r4rW�tests1�tests2�tests3�tests4r)r4r�
test_to_bytes!s�
zLongTest.test_to_bytesc
s�d*�fdd�	}dddddd+d,d-d.d/ddd0d1d	d
dd2d
d3d4d�}||ddd�ddddd
d5d6d7d8d9ddd:d;d	d
dd<d
d=d>d�}||ddd�dddddd	d
ddd
dd�}||ddd�dddddd	d
ddd
dd�}||ddd�Gdd�dt�}�jt|jdd��|��j|jdd�d��jt|jdddd��|��j|jdddd�d��jt|jdd��|��j|jdd�d��jt|jdddd��|��j|jdddd�d��jtjd	ddgddd�d?��jtjd@ddd�dA��jtjtd�ddd�dB��jtjtd�ddd�dC��jtjtjdd�ddd�dD��jtjtd�ddd�dE��jt	tjd
gd��jt	tjdgd��jt	tjdgd��jt
tjd d��jt
tjd!d��jt
tjdd��jt
tjddd��jt
|jd d��jt
|jd!d��jt
|jdd��jt
tjddd�Gd"d#�d#t�}|jdd�}�jt|�|��j|d$�Gd%d&�d&t�}	|	jdd�}�jt|�|	��j|d��jt|d'd(�d)�dS)FNFcsnxh|j�D]\\}}y�jtj|||d�|�Wq
tk
rd}ztdj|||��|�WYdd}~Xq
Xq
WdS)N)rQz9failed to convert {0} with byteorder={1!r} and signed={2})rLr>r0�
from_bytesrSrr�)rTrUrQr�rmrV)r4rrrW�s
z'LongTest.test_from_bytes.<locals>.checkrrr[r�r^r`rai�i�i��ii�)rdrXsrYsrZs��r\r]s�r_s�s�s�s�ss�s�s��s�s�rbT)rQ)rdrXsrYsrZs��r\r]s�r_s�s�s�s�ss�s�s��s�s�rc)rdrXrYr_r]rZss�s�s��s)rdrXrYr_r]rZss�s�s��sc@seZdZdS)z'LongTest.test_from_bytes.<locals>.myintN)rlr�r�rrrr�myint�srkrXrYs��Bzbigzlittler\�c@seZdZdd�ZdS)z(LongTest.test_from_bytes.<locals>.myint2cSstj||d�S)Nr)r0�__new__)�clsr�rrrrn
sz0LongTest.test_from_bytes.<locals>.myint2.__new__N)rlr�r�rnrrrr�myint2	srprc@seZdZdd�ZdS)z(LongTest.test_from_bytes.<locals>.myint3cSs
d|_dS)N�bar)�foo)r4r�rrrr�sz1LongTest.test_from_bytes.<locals>.myint3.__init__N)rlr�r�r�rrrr�myint3srsrrZnonerq)Frri����i����i���i���i���i���i��i��rri����i����i���i���i���i���i��i��i��)r`rri��i��i��i��i��)r0r9rNrjr>�	bytearray�array�
memoryviewr�rr��getattr)
r4rWrerfrgrhrkrpr;rsr)r4r�test_from_bytes�s�

zLongTest.test_from_bytescsJGdd�dt���fdd�td�D�}xtt|�D]}|j|d�q2WdS)Nc@seZdZddd�ZdS)z<LongTest.test_access_to_nonexistent_digit_0.<locals>.IntegerrcSstj||�}d|_|S)Nrr)r0rnrr)ror�r4rrrrnszDLongTest.test_access_to_nonexistent_digit_0.<locals>.Integer.__new__N)r)rlr�r�rnrrrr�Integersrycsg|]}�d��qS)rr)r	r;)ryrrr$sz?LongTest.test_access_to_nonexistent_digit_0.<locals>.<listcomp>i�r)r0r9�mapr>)r4Zintegersrr)ryr�"test_access_to_nonexistent_digit_0sz+LongTest.test_access_to_nonexistent_digit_0cCsHxBdD]:}x4dD],}|jt||>�t�|jt||?�t�qWqWdS)NTFrr)TF)rr)r>rNr0)r4r�rrrr�test_shift_bool(s

zLongTest.test_shift_boolN)T))rlr�r�r8r<rArKrSrUrVrXrZrdrnror�r�r�rZrequires_IEEE_754r�r�r�rrrrr%r&r'r6r7Zcpython_onlyr8r:rArPrirxr{r|rrrrr.ssH'
		9F\a"
\	"Jcr.�__main__)#Zunittestr�rrr1rru�int_info�bits_per_digitr/ZBASEr:rFrErYrTr9r;rGrrr�rr��min_expr#rr$r"rr-ZTestCaser.rl�mainrrrr�<module>sH .F


Youez - 2016 - github.com/yon3zu
LinuXploit