Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_float.cpython-34.pyo

�
f f���@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZmZm
Z
mZed�Zed�Zeed�Zejed�Zejeed�d	�Zejje�p
ejZejjed
�ZGdd�de�ZGd
d�de�ZGdd�dej �Z!eGdd�dej ��Z"dZ#e$e%e#��Z&dZ'e$e%e'��Z(dZ)e$e%e)��Z*dZ+e$e%e+��Z,eGdd�dej ��Z-Gdd�dej �Z.Gdd�dej �Z/Gdd�dej �Z0e
j1Gdd �d ej ��Z2Gd!d"�d"ej �Z3ej4Z5ej6Z7Gd#d$�d$ej �Z8d%d&�Z9e:d'kr�e9�ndS)(�N)�support)�isinf�isnan�copysign�ldexp�inf�nan�
__getformat__zrequires __getformat__�
__setformat__zrequires __setformat__zformatfloat_testcases.txtc@seZdZdS)�
FloatSubclassN)�__name__�
__module__�__qualname__�rr�4/opt/alt/python34/lib64/python3.4/test/test_float.pyrsrc@seZdZdS)�OtherFloatSubclassN)rr
rrrrrrsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zejd	d
d�dd
��Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejdd��Zejdd��ZdS)�GeneralFloatCasescCs�|jtd�d�|jtd�d�|jtd�d�|jttd�|jttd�|jttd�|jttd�|jttd	�|jttd
�|jttd�|jttd�|jttd
�|jttd�|jttd�|jtti�|jtdti�|jttd�|jttd�|jttd�|jtd�d�|jtd�d�tddd�tddd�dS)Ng��Q�	@i:g�s@z  3.14  z	  0x3.1  z  -0x3.p-1  z  +0x3.p-1  z++3.14z+-3.14z-+3.14z--3.14z.nanz+.inf�.z-.z
not 'dict'u�z-1.7d29z3D-14u  ٣.١٤  u
 3.14 �.�1i��1)�assertEqual�float�assertRaises�
ValueError�	TypeError�assertRaisesRegex�UnicodeEncodeError)�selfrrr�
test_float$s.zGeneralFloatCases.test_floatcs$Gdd�dt��Gdd�dt�}Gdd�dt�}tt�fdd�||tg}yd	d
lm�Wntk
r�YnX|j�fdd��xu|D]m}|d�}|jt|���D|j	t
|�d
�|jtd��t
|d��WdQXWdQXq�WdS)Nc@seZdZdS)zAGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomStrN)rr
rrrrr�	CustomStrCsr c@seZdZdS)zCGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomBytesN)rr
rrrrr�CustomBytesDsr!c@seZdZdS)zGGeneralFloatCases.test_non_numeric_input_types.<locals>.CustomByteArrayN)rr
rrrrr�CustomByteArrayEsr"cs�|j��S)N)�decode)�b)r rr�<lambda>Jsz@GeneralFloatCases.test_non_numeric_input_types.<locals>.<lambda>r)�arraycs
�d|�S)N�Br)r$)r&rrr%Tss 3.14  g��Q�	@zcould not convert�A�sAAAAAAAAAAAAAAAA)
�str�bytes�	bytearray�
memoryviewr&�ImportError�appendZsubTest�typerrrr)rr!r"Z	factories�f�xr)r r&r�test_non_numeric_input_types@s(	

z.GeneralFloatCases.test_non_numeric_input_typescCs�|jttd�dd��d�|jttd�dd��d�|jttd�dd��d�|jttd�dd��d�|jttd�dd��d�dS)	Ns12.3��gffffff@s12.3s12.3 s12.3As12.34)rrr-)rrrr�test_float_memoryview]s
&&&&z'GeneralFloatCases.test_float_memoryviewcCs~d}xq|D]i}yt|�WnBtk
re}z"|j|j�|jd�WYdd}~Xq
X|jd|�q
WdS)N�½�123½�  123 456  rz&Expected int(%r) to raise a ValueError)r7r8r9)rr�assertIn�strip�args�fail)rZtestlist�s�errr�test_error_messageds
0z$GeneralFloatCases.test_error_message�
LC_NUMERICZfr_FRZde_DEcCs�ddl}|j�ddks2|jd�n|jtd�d�|jtd�d�|jtd�d�|jtd	�d
�|jtd�d�|jtd
�d�|jtd�d�|jtd�d�|jtd�d�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jtd�d�|jtd�d�dS) NrZ
decimal_point�,zdecimal_point is not ","z  3.14  g��Q�	@z+3.14  z-3.14  z.14  g�Q���?z3.  g@z3.e3  gp�@z3.2e3  g�@z2.5e-1  g�?z5e-1g�?z  3,14  z	  +3,14  z	  -3,14  z	  0x3.1  z  -0x3.p-1  z  +0x3.p-1  z
  25.e-1  g@z
  .25e-1  g�������?g��Q�	�)�locale�
localeconvZskipTestrrrr�assertAlmostEqual)rrCrrr�test_float_with_commaos(z'GeneralFloatCases.test_float_with_commacCs�Gdd�dt�}Gdd�dt�}Gdd�dt�}Gdd�dt�}Gd	d
�d
t�}|jt|��d�|jt|��d�|jt|d��d�|jtt|d
��|jt|d��d�Gdd�d�}|jttj|��Gdd�d�}|jt|��d�|jt	t|���t
�|jt|��d�|jt	t|���t�dS)Nc@seZdZdd�ZdS)z4GeneralFloatCases.test_floatconversion.<locals>.Foo1cSsdS)NgE@r)rrrr�	__float__�sz>GeneralFloatCases.test_floatconversion.<locals>.Foo1.__float__N)rr
rrGrrrr�Foo1�srHc@seZdZdd�ZdS)z4GeneralFloatCases.test_floatconversion.<locals>.Foo2cSsdS)NgE@r)rrrrrG�sz>GeneralFloatCases.test_floatconversion.<locals>.Foo2.__float__N)rr
rrGrrrr�Foo2�srIc@s+eZdZddd�Zdd�ZdS)z4GeneralFloatCases.test_floatconversion.<locals>.Foo3gcSstj|d|�S)N�)r�__new__)�cls�valuerrrrK�sz<GeneralFloatCases.test_floatconversion.<locals>.Foo3.__new__cSs|S)Nr)rrrrrG�sz>GeneralFloatCases.test_floatconversion.<locals>.Foo3.__float__N)rr
rrKrGrrrr�Foo3�srNc@seZdZdd�ZdS)z4GeneralFloatCases.test_floatconversion.<locals>.Foo4cSsdS)N�*r)rrrrrG�sz>GeneralFloatCases.test_floatconversion.<locals>.Foo4.__float__N)rr
rrGrrrr�Foo4�srPc@seZdZdd�ZdS)z6GeneralFloatCases.test_floatconversion.<locals>.FooStrcSstt|��dS)Nr4)rr*)rrrrrG�sz@GeneralFloatCases.test_floatconversion.<locals>.FooStr.__float__N)rr
rrGrrrr�FooStr�srQgE@�rO�8g"@c@seZdZdd�ZdS)z4GeneralFloatCases.test_floatconversion.<locals>.Foo5cSsdS)N�r)rrrrrG�sz>GeneralFloatCases.test_floatconversion.<locals>.Foo5.__float__N)rr
rrGrrrr�Foo5�srUc@seZdZdd�ZdS)z1GeneralFloatCases.test_floatconversion.<locals>.FcSs
td�S)NgE@)r)rrrrrG�sz;GeneralFloatCases.test_floatconversion.<locals>.F.__float__N)rr
rrGrrrr�F�srV)�objectrr*rErr�timeZsleepZassertIsr0rr)rrHrIrNrPrQrUrVrrr�test_floatconversion�s"z&GeneralFloatCases.test_floatconversioncCs\|jdj��|jdj��|jtd�j��|jtd�j��dS)Ng�������?g�?rr)ZassertFalse�
is_integer�
assertTruer)rrrr�test_is_integer�sz!GeneralFloatCases.test_is_integercCsx6dddd!gD]"\}}|j|j�|�qWxktd
�D]]}tj�}|dtjd"d�9}|j�\}}|jt|�j|�|�qFWtj}|j|dd�|td�j���|j|d
d	�|td�j���|j|dd	�|td�j���|j|dd�|td�j���|j|d#d�|td$�j���|j|d%d�|td&�j���|j	t
td�j�|j	t
td�j�|j	ttd�j�dS)'N��?���rr4�'@�rJi'�
�d�g@g�?l�L�33�l@g������@i4gh�@rz-infr�r^r_)r]rf������rhr_)rgri�rr4)r`rj�rbrJ)rarki����l�����L�33�g�������i���gh��)r�as_integer_ratio�range�randomZrandintr�__truediv__�	fractionsZFractionr�
OverflowErrorr)rr1Zratio�i�n�d�Rrrr�test_floatasratio�s6#	z#GeneralFloatCases.test_floatasratiocCs�ttddtf}x�|D]�}|j||g�|j||f�|j||h�|j|id|6�|j|gj|�dd|�|j||�qWxD|D]<}|j|g|gkd||f�|j|f|fkd||f�|j|h|hkd||f�|jid|6id|6kd||f�|g|f|hid|6f\}}}}|j||kd	|�|j||kd
|�|j||kd|�|j||kd|�q�WdS)
Ngg�?r4z[].count('%r') != 1z[%r] != [%r]z(%r,) != (%r,)z{%r} != {%r}z{%r : None} != {%r : None}z[%r] not equal to itselfz(%r,) not equal to itselfz{%r} not equal to itselfz{%r : None} not equal to itself)�INF�NANr:r�countr[)rZfloatsr1�l�tr>rtrrr�test_float_containment�s&
#
&&& .z(GeneralFloatCases.test_float_containmentcCs2|j|td|�f|td|�f�dS)Ng�?)rr)r�ar$rrr�assertEqualAndEqualSign�sz)GeneralFloatCases.assertEqualAndEqualSigncCs9tj}|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�|j|d
d�d�|j|dd�d�|j|dd�d�|j|dd�d�dS)Ng�?gg0��.�++g�g0��.�+�g�g�g�g�g0��.�+�g�g0��.�+�g�g�g�g�g�g�g�g�g�)�operator�modr~)rr�rrr�test_float_mod�s	z GeneralFloatCases.test_float_modcCs�
x
ttjfD]n
}|jt|tt���|jt|dt���|jt|dt���|jt|d
t���|jt|dt���|jt|dt���|jt|dt���|jt|dt���|jt|tt���|jt|tt���|jt|tt���|jt|td���|jt|td���|jt|td���|jt|td���|jt|td���|jt|td���|jt|tt���|jt|dd�|jt|dd�|jt|dd�|jt|dd�|jt|dd�|jt|dd�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dt�d�|j|d t�d�|j|dt�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|dt�d�|j|dt�d�|j|td�d�|j|d%d�d�|j|d&d�d�|j|d'd�d�|j|d(d�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|td�d�|j|td�d�|j|td)�d�|j|d*d+�d�|j|d,d-�d�|j|d.d/�d�|j|d0d1�d�|j|dd2�d�|j|dd3�d�|j|dd4�d�|j|dd5�d�|j|td6�d�|j|td7�d�|j	t
|d8d9��t�|j	t
|d:d��t�|j	t
|d;d<��t�|j	t
|d=d��t�|j	t
|d>d?��t�|j	t
|d@d��t�|j|dAt�t�|j|dBt�t�|j|dt�t�|j|dt�t�|j|tt�d�|j|dCt�d�|j|dt�d�|j|tt�d�|j|dDt�d�|j|dEt�d�|j|dt�d�|j|dt�d�|j|tt�t�|j|dFt�t�|j|dt�t�|j|tt�t�|j|tdG�dH�|j|tdI�d�|j|tdJ�d�|j|td�t�|j|td�t�|j|td�t�|j|td�t�|j|td�t�|j|td�t�|j|tdK�d�|j|tdL�d�|j|tdM�d�|j|dNdO�d�|j|dPdQ�dR�|j|dSdT�d�|j|dUd�d�|j|dVd�dW�|j|dXd�d�|j|dYdZ�d�|j|d[d\�d]�|j|d^d_�d�|j|d`d�d�|j|dad�db�|j|dcd�d�|j|ddd�d�|j|dde�d�|j|ddf�d�|j|dd�d�|j|dd�d�|j|dd�d�|j|ddg�d�|j|dd�d�|j|dhdi�d�|j|djd�d�|j|dkdl�d�|j	t
|dmdn��t�|j|dodp�dq�|j|ddr�d�|j|dds�d�|j|ddt�d�|j|dud�d�|j	t
|dvd	��t�|j|dwd
�dx�|j|dd�d�|j|dd	�d�|j|dd
�d�qWdS)yNg@g�?g�?gg�?g@g}Ô%�I�Tg@�@gB�@gD�@g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g}Ô%�I��g�g}Ô%�I��g�g�g@��g�gB��g�gD��g�g@��gB��gD��g�g�g�g�)�powrr[rrwrxr�ZeroDivisionErrorr~rr0�complex)rZpow_oprrr�test_float_powsz GeneralFloatCases.test_float_powN)rr
rrr3r6r@rZrun_with_localerFrYr\rvr|r~�requires_IEEE_754r�r�rrrrr"s!/!rc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�FormatFunctionsTestCasecCs-itjd�d6tjd�d6|_dS)N�doubler)rr	�save_formats)rrrr�setUp�szFormatFunctionsTestCase.setUpcCs2tjd|jd�tjd|jd�dS)Nr�r)rr
r�)rrrr�tearDown�sz FormatFunctionsTestCase.tearDowncCst|jtjd�dddg�|jtjd�dddg�|jttjd�|jttjd�dS)Nr��unknownzIEEE, big-endianzIEEE, little-endianr�chickenr4)r:rr	rrr)rrrr�test_getformat�sz&FormatFunctionsTestCase.test_getformatcCs�x�dD]�}tj|d�|j|dkrL|jttj|d�na|j|dkr{|jttj|d�n2|jttj|d�|jttj|d�|jttj|d�qW|jttjdd�dS)Nr�rr�zIEEE, big-endianzIEEE, little-endianr�)zdoublezfloat)rr
r�rr)rr{rrr�test_setformat�s 




z&FormatFunctionsTestCase.test_setformatN)rr
rr�r�r�r�rrrrr��sr�s�s�s�s�c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�UnknownFormatTestCasecCsMitjd�d6tjd�d6|_tjdd�tjdd�dS)Nr�rr�)rr	r�r
)rrrrr�szUnknownFormatTestCase.setUpcCs2tjd|jd�tjd|jd�dS)Nr�r)rr
r�)rrrrr�szUnknownFormatTestCase.tearDowncCsXxQdtfdtfdtfdtfgD]%\}}|jttj||�q+WdS)Nz>dz<d)�
BE_DOUBLE_INF�
BE_DOUBLE_NAN�
LE_DOUBLE_INF�
LE_DOUBLE_NANrr�struct�unpack)r�fmt�datarrr� test_double_specials_dont_unpacks
		z6UnknownFormatTestCase.test_double_specials_dont_unpackcCsXxQdtfdtfdtfdtfgD]%\}}|jttj||�q+WdS)Nz>fz<f)�BE_FLOAT_INF�BE_FLOAT_NAN�LE_FLOAT_INF�LE_FLOAT_NANrrr�r�)rr�r�rrr�test_float_specials_dont_unpack#s
		z5UnknownFormatTestCase.test_float_specials_dont_unpackN)rr
rr�r�r�r�rrrrr�sr�c@s:eZdZejdd��Zejdd��ZdS)�IEEEFormatTestCasecCsOxHdtfdtfdtfdtfgD]\}}tj||�q+WdS)Nz>dz<d)r�r�r�r�r�r�)rr�r�rrr�test_double_specials_do_unpack2s
		z1IEEEFormatTestCase.test_double_specials_do_unpackcCsOxHdtfdtfdtfdtfgD]\}}tj||�q+WdS)Nz>fz<f)r�r�r�r�r�r�)rr�r�rrr�test_float_specials_do_unpack:s
		z0IEEEFormatTestCase.test_float_specials_do_unpackN)rr
rrr�r�r�rrrrr�0sr�c@s=eZdZdd�Zejdd��Zdd�ZdS)�FormatTestCasecCs|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�d)}|jt|d�t|��|jt|d�t|��|jt|d�t|��|jt|d
�t|��|jtdd�d�|jtd*d�d�|jtdd�d�|jtd+d�d�|jtdd�d�|jtd,d�d�|jtd-d�d�|jttdd�xdd�ttd�td�d�D�dd�ttd�td �d�D�D]�}|d!kr|jttd|�|jttd|�|jttd.|�|jttd"|�|jttd/|�|jttd#|�|jttd0|�qqW|jttd�d$�|jttd%�d&�|jttd�d'�|jttd%�d(�dS)1Ngr1z0.000000rTz0.0g{�G�z�?z0.01�grdg@�-�>�2g�?z1.000000z	-1.000000z fz	 1.000000z+fz	+1.000000�%z-100.000000%g@r>cSsg|]}t|��qSr)�chr)�.0r2rrr�
<listcomp>hs	z.FormatTestCase.test_format.<locals>.<listcomp>r}�zr4cSsg|]}t|��qSr)r�)r�r2rrrr�is	�A�ZzeEfFgGn%g}Ô%�I�Tg0��.�++rrVrxrrwg%I�$I�,@g�g�g�g�g�g}Ô%�I��g0��.�+�)	r�formatr*rrrm�ordrxrw)rr2Zformat_specrrr�test_formatDs>,1zFormatTestCase.test_formatcCs�tt���}x�|D]�}|jd�r1qn|j�}|sIqnttj|jd��\}}|j�\}}|j|t|�|�|j|t|�d|�qWWdQXdS)Nz--z->r�)	�open�format_testfile�
startswithr;�mapr*�splitrr)rZtestfile�lineZlhsZrhsr��argrrr�test_format_testfileys
!z#FormatTestCase.test_format_testfilecCsO|jtdd�d�|jtdd�d�|jtdd�d�dS)Ngw��/�^@z.4z123.5g
ףp=J�@z	1.235e+03g������@z	1.235e+04)rr�)rrrr�test_issue5864�szFormatTestCase.test_issue5864N)rr
rr�rr�r�r�rrrrr�Bs5r�c@sLeZdZdd�Zejeedd�dkd�dd��Zd	S)
�ReprTestCasecCs�ttjjtjjt�dd��}x^|D]V}|j�}|s2|jd�r`q2nt|�}|j	|tt
|���q2W|j�dS)Nrzfloating_points.txt�#)r��os�path�joinr��__file__r;r��evalr�repr�close)rZfloats_filer��vrrr�	test_repr�s
 zReprTestCase.test_repr�float_repr_stylerT�shortz.applies only when using short float repr stylecCs�ddddddddd	d
ddd
ddddddddddddg}x�|D]�}d|}|j|tt|���|j|tt|���|jtt|��tt|���|jtt|��tt|���qXWdS)Nz0.0z1.0z0.01z0.02z0.03z0.04z0.05z
1.23456789z10.0z100.0z1000000000000000.0z9999999999999990.0z1e+16z1e+17z0.001z0.001001z0.00010000000000001z0.0001z9.999999999999e-05z1e-05z8.72293771110361e+25z7.47005307342313e+26z2.86438000439698e+28z8.89142905246179e+28z3.08578087079232e+35r�)rr�rr*)rZtest_stringsr>Znegsrrr�test_short_repr�s>
	

(zReprTestCase.test_short_reprN)	rr
rr��unittest�
skipUnless�getattr�sysr�rrrrr��sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zeje	e
d	d
�dkd�d
d��Zeje	e
d	d
�dkd�dd��Zdd�Z
dS)�
RoundTestCasecCs�|jttt�|jttt�|jttt�|jtttd�|jtttd�|jtttd�|jttdd�dS)Ngg�?zceci n'est pas un integery�?g�)rrq�roundrwrrxr)rrrr�test_inf_nan�szRoundTestCase.test_inf_nancCsx�dddddddgD]j}|jtd	|�d	�|jtd|�d�|jtd
|�d
�|jtd|�d�qW|jtdd
�d�|jtd
d�d
�|jtdd�d�|jtdd�d�|jtdd�d�dS)NiDiEi�rJ�r4� rdgw��/�^@g�u�<�7~g�g��P.5�_i,i3go���!	@i4i5gS��i;g�ili���lllgw��/�^�gw��/�^�go���!	�go���!	�)rr�)rrsrrr�test_large_n�s"zRoundTestCase.test_large_ncCs�x�dd
dddddgD]j}|jtd|�d	�|jtd|�d�|jtd
|�d	�|jtd|�d	�qWdS)Ni4i5i�r4rJr�rdgw��/�^@gg�u�<�7~g�i���i���ip���li�li�li�l����ll����gw��/�^�g�)rr�)rrsrrr�test_small_n�s
"zRoundTestCase.test_small_ncCs0|jttdd�|jttdd�dS)Ng3t�<{�i4gv;w0�B�i���gv;w0�B�i���)rrqr�)rrrr�
test_overflow�szRoundTestCase.test_overflowr�rTr�z.applies only when using short float repr stylecCs�|jtdd�d�|jtdd�d�|jtdd�d�|jtdd�d�|jtd	d�d�|jtd
d�d�|jtdd�d�|jtd
d�d�|jtdd�d�|jtdd�d�dS)NgCr4g�������B�g9@g4@g�A@gD@g�F@g�K@gN@g@P@g�R@gT@g@U@g�W@gY@���r�r�r�r�r�r�r�)rr�)rrrr�test_previous_round_bugs�sz&RoundTestCase.test_previous_round_bugscCsOx�td�D]�}|d}|jtt|d��t|d��|jtt|d��t|d��|jtt|d��t|d��|jtt|d	��t|d
��q
Wx�tddd
�D]�}|d}|jtt|d��t|d��|jtt|d��t|d��|jtt|d��t|d��|jtt|d	��t|d
��q�Wx�td�D]�}tj�}|jtt|d��t|d��|jtt|d��t|d��|jtt|d��t|d��|jtt|d	��t|d
��q�WdS)Ni�g@�@z.0frz.1fr4z.2frJz.3fr�rei�rc)rmrrr�r�rn)rrrr2rrr�test_matches_float_formats$
(((,
(((,(((z'RoundTestCase.test_matches_float_formatcs9�fdd�}x ddddddd	d
ddd
dgD]�}d|dd�}d|dd�}||td�||td�||td�||td�||td�||td�||td�||td�||td�||td�||td�||td�q=WdS)NcsG�j||||�|dd�}�jt||�||�dS)Nr4)rr�)r�rM�expected)rrr�testsz0RoundTestCase.test_format_specials.<locals>.testz%ez%fz%gz%.0ez%.6fz%.20gz%#ez%#fz%#gz%#.20ez%#.15fz%#.3gz%+r4z% rz-infrz+infz+nanz infz nan)rwrx)rr�r�ZpfmtZsfmtr)rr�test_format_specialss"z"RoundTestCase.test_format_specialsN)rr
rr�r�r�r�r�r�r�r�r�r�r�rrrrr��s	r�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	e
edd�d
kd�dd��ZdS)�
InfNanTestcCs�|jttd���|jttd���|jttd���|jttd���|jttd���|jttd���|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd	��d�|jttd
��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd
�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�|jttd�dS)Nrz+infz-infZinfinityz	+infinityz	-infinityrwz+Infz-iNF�Infinityz	+iNfInItYz	-INFINITY�infoz+infoz-info�inz+inz-inZinfinitz+Infinz-INFIZ	infinitysz++Infz-+infz
+-infinityz
--Infinity)r[rrrr�r*rr)rrrr�test_inf_from_str=sLzInfNanTest.test_inf_from_strcCs\|jtd�d�|jtd�d�|jtd�d�|jtd	�d�dS)
Ng�u�<�7~rz-infg�g�u�<�7�g�g�g�u�<�7�g�)rr�r*)rrrr�test_inf_as_strjszInfNanTest.test_inf_as_strcCs	|jttd���|jttd���|jttd���|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd��d�|jttd�|jttd�|jttd	�|jttd
�|jttd�|jttd�|jttd
�|jttd�|jttd�|jttd�dS)Nrz+nanz-nanrxz+NAnz-NaNZnanaz+nanaz-nanaZnaz+naz-naz++nanz-+NANz+-NaNz--nAn)r[rrrr�r*rr)rrrr�test_nan_from_strqs,zInfNanTest.test_nan_from_strcCs\|jtd�d�|jtd�d�|jtd
�d�|jtd
�d�dS)Ng�u�<�7~rrg�g��g�u�<�7�g�g��g�g��g�u�<�7�g�g��)rr�r*)rrrr�test_nan_as_str�szInfNanTest.test_nan_as_strcCsB|jtdtd��d�|jtdtd��d�dS)Ng�?rz-infg�)rrr)rrrr�test_inf_signs�szInfNanTest.test_inf_signsr�rTr�z.applies only when using short float repr stylecCsB|jtdtd��d�|jtdtd��d�dS)Ng�?rz-nang�)rrr)rrrr�test_nan_signs�szInfNanTest.test_nan_signsN)
rr
rr�r�r�r�r�r�r�r�r�r�rrrrr�<s-r�c@s�eZdZed�Zed�Zed�Zed�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS)�HexFloatTestCasez0x.fffffffffffff8p+1024z	0x1p-1022z0x0.0000000000001p-1022z0x0.0000000000001p0cCs�t|�st|�r7t|�t|�krqdSn:||krq|dksmtd|�td|�krqdS|jd||f�dS)Ngg�?z%r not identical to %r)rrr=)rr2�yrrr�	identical�s6zHexFloatTestCase.identicalcCs�|j|jtdd��|j|jtdd	��|j|jtdd
��|j|jdtdd�tdd��dS)Ng�?i�i2�4g@i�i�i���i���i���)r��MINr�TINY�EPS�MAX)rrrr�	test_ends�szHexFloatTestCase.test_endsc3Cs�ddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3g3}xJ|D]B}yt|�}Wntk
r�Yq�X|jd4||f�q�WdS)5NZinfiz-Infinitz++infz-+Infz--nanz+-NaNZsnanZNaNsZnnaZanZnfZnfinityZinityZiinityZ0xnanrT� zx1.0p0z0xX1.0p0z	+ 0x1.0p0z	- 0x1.0p0z0 x1.0p0z0x 1.0p0z	0x1 2.0p0z	+0x1 .0p0z0x1. 0p0z
-0x1.0 1p0z	-0x1.0 p0z
+0x1.0p +0z	0x1.0p -0z0x1.0p 0z
+0x1.0p+ 0z
-0x1.0p- 0z
++0x1.0p-0z	--0x1.0p0z
+-0x1.0p+0z	-+0x1.0p0z	0x1.0p++0z
+0x1.0p+-0z
-0x1.0p-+0z	0x1.0p--0z0x1.0.p0z0x.p0z0x1,p0Z0x1pau0x1p0u0x1p0u0x1p0u	0x1.0p0z
0x1p0 
 0x2p0Z0x1p0 0x1p0z>Expected float.fromhex(%r) to raise ValueError; got %r instead)�fromHexrr=)rZinvalid_inputsr2�resultrrr�test_invalid_inputs�st	

	z$HexFloatTestCase.test_invalid_inputscCs�dtfdtfdtfdddg}d
ddd
ddddg}xZ|D]R\}}xC|D];}x2|D]*}t|||�}|j||�qpWqcWqPWdS)Nrz	-Infinityr�1.0��?�-0x.2g�?�-0.0grTr��	�
z
 	���
)r�r����)r�r���)r�r�)rwrxr�r�)rZvalue_pairsZ
whitespaceZinpr�Zlead�trailZgotrrr�test_whitespace�s&	
			

z HexFloatTestCase.test_whitespacecCsG|j}|j}|j}|j}|jtd�t�|jtd�t�|jtd�t�|jtd�t�|jtd�t�|jtd�t�|jtd�t�|jtd�t�|jtd	�t�|jtd
�t�|jtd�t�|jtd�t�|jtd
�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd�d�|jtd �d�|jtd!�d�|jtd"�d�|jtd#�d�|jtd$�d�|jtd%�d�|jtd&�d�|jtd'�d�|jtd(�d�|jtd)�d�|jtd*�d+�|jtd,�d+�|jtd-�d+�|jtd.�d+�|jtd/�d0�|jtd1�d0�|jtd2�d0�|jtd3�d0�|jtd4�d0�|jtd5�d0�|jtd6�d0�|jtd7�d0�td8�}|jtd9�|�|jtd:�|�|jtd;�|�|jtd<�|�|jtd=�|�|jtd>�|�|jtd?�|�|jtd@�|�|jtdA�|�|jtdB�|�|jtd8�|�|jtdC�|�|jtdD�|�|jtdE�|�|jtdF�|�|jtdG�|�|jtdH�|�|jtdI�|�|jtdJ�|�|jtdK�|�|jtdL�|�|jtdM�|�|jtdN�|�|jtdO�|�|jtdP�|�|jtdQ�|�|jtdR�|�|jtdS�|�|jtdT�|�|jtdU�|�|jtdV�|�|jtdW�|�|jt	tdX�|jt	tdY�|jt	tdZ�|jt	td[�|jt	td\�|jt	td]�|jt	td^�|jt	td_�|jt	td`�|jt	tda�|jt	tdb�|jt	tdc�|jt	tdd�|jt	tde�|jt	tdf�|jt	tdg�|jt	tdh�|jt	tdi�|jt	tdj�|jtdk�|�|jtdl�|�|jtdm�|�|jtdn�do�|jtdp�do�|jtdq�d�|jtdr�do�|jtds�d�|jtdt�do�|jtdu�do�|jtdv�d�|jtdw�d�|jtdx�do�|jtdy�d�|jtdz�d�|jtd{�d	�|jtd|�do�|jtd}�d
�|jtd~�do�|jtd�do�|jtd��d�|jtd��d�|jtd��do�|jtd��d
�|jtd��d�|jtd��|�|jtd��|�|jtd��|�|jtd��do�|jtd��do�|jtd��|�|jtd��|�|jtd��|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|�|jtd��d�|jtd��d�|jtd��|�|jtd��|�|jtd��|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��|d�|�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��|�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��||�|jtd��|d�|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|d��|jtd��d|d��|jtd��d|d��|jtd��d|d��|jtd��d|d��|jtd��d|d��|jtd��d|d��|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|jtd��d�|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��d|�|jtd��dd�|�|jtd��dd�|�|jtd��dd�|�|jtd��dd�|�|jtd��dd�|�|jtd��dd�|�|jtd��dd�|�|jtd�dd�|�|jtd�dd�|�|jtd�dd�|�dS(Nrz+Infz-INFZiNfr�z	+INFINITYz	-infinityz	-iNFiNitYrz+NaNz-NaNz-nANrg�?z+1z1.z1.0z1.0p0Z01z01.Z0x1z0x1.z0x1.0z+0x1.0Z0x1p0Z0X1p0Z0X1P0Z0x1P0z0x1.p0z0x1.0p0z0x.1p4z0x.1p04z0x.1p004z0x1p+0z0x1P-0z+0x1p0Z0x01p0Z0x1p00z 0x1p0 z
 0x1p0z0x1p0 	Z0xap0g$@Z0xAp0Z0xaP0Z0xAP0Z0xbep0g�g@Z0xBep0Z0xbEp0z0XBE0P-4Z0xBEp0z0xB.Ep4z0x.BEp8z	0x.0BEp12z0x1.921fb54442d18p1z0x.006487ed5110b46p11z0x.00c90fdaa22168cp10z0x.01921fb54442d18p9z0x.03243f6a8885a3p8z0x.06487ed5110b46p7z0x.0c90fdaa22168cp6z0x.1921fb54442d18p5z0x.3243f6a8885a3p4z0x.6487ed5110b46p3z0x.c90fdaa22168cp2z0x3.243f6a8885a3p0z0x6.487ed5110b46p-1z0xc.90fdaa22168cp-2z0x19.21fb54442d18p-3z0x32.43f6a8885a3p-4z0x64.87ed5110b46p-5z0xc9.0fdaa22168cp-6z0x192.1fb54442d18p-7z0x324.3f6a8885a3p-8z0x648.7ed5110b46p-9z0xc90.fdaa22168cp-10z0x1921.fb54442d18p-11z0x1921fb54442d1.8p-47z0x3243f6a8885a3p-48z0x6487ed5110b46p-49z0xc90fdaa22168cp-50z0x1921fb54442d18p-51z0x3243f6a8885a30p-52z0x6487ed5110b460p-53z0xc90fdaa22168c0p-54z0x1921fb54442d180p-55z	-0x1p1024z	0x1p+1025z	+0X1p1030z
-0x1p+1100Z0X1p123456789123456789z+0X.8p+1025z+0x0.8p1025z-0x0.4p1026z	0X2p+1023z	0x2.p1023z-0x2.0p+1023z
+0X4p+1022z0x1.ffffffffffffffp+1023z-0X1.fffffffffffff9p1023z0X1.fffffffffffff8p1023z+0x3.fffffffffffffp1022z0x3fffffffffffffp+970Z0x10000000000000000p960z-0Xffffffffffffffffp960z+0x1.fffffffffffffp+1023z-0X1.fffffffffffff7p1023z$0X1.fffffffffffff7fffffffffffffp1023Z0x0p0gZ0x0p1000z	-0x0p1023Z0X0p1024z	-0x0p1025Z0X0p2000Z0x0p123456789123456789z-0X0p-0z
-0X0p-1000z	0x0p-1023z
-0X0p-1024z
-0x0p-1025z
-0x0p-1072z	0X0p-1073z
-0x0p-1074z	0x0p-1075z	0X0p-1076z
-0X0p-2000z-0x0p-123456789123456789z	0X1p-1075z
-0X1p-1075z-0x1p-123456789123456789z0x1.00000000000000001p-1075z-0x1.1p-1075z0x1.fffffffffffffffffp-1075z	0x1p-1076z	0X2p-1076z	0X3p-1076z	0x4p-1076z	0X5p-1076z	0X6p-1076rJz	0x7p-1076z	0X8p-1076z	0X9p-1076z	0xap-1076z	0Xbp-1076r�z	0xcp-1076z	0Xdp-1076z	0Xep-1076r5z	0xfp-1076z
0x10p-1076z
-0x1p-1076z
-0X2p-1076z
-0x3p-1076z
-0X4p-1076z
-0x5p-1076z
-0x6p-1076z
-0X7p-1076z
-0X8p-1076z
-0X9p-1076z
-0Xap-1076z
-0xbp-1076z
-0xcp-1076z
-0Xdp-1076z
-0xep-1076z
-0Xfp-1076z-0X10p-1076z0x0.ffffffffffffd6p-1022z0x0.ffffffffffffd8p-1022z0x0.ffffffffffffdap-1022z0x0.ffffffffffffdcp-1022z0x0.ffffffffffffdep-1022z0x0.ffffffffffffe0p-1022z0x0.ffffffffffffe2p-1022z0x0.ffffffffffffe4p-1022z0x0.ffffffffffffe6p-1022z0x0.ffffffffffffe8p-1022z0x0.ffffffffffffeap-1022z0x0.ffffffffffffecp-1022z0x0.ffffffffffffeep-1022z0x0.fffffffffffff0p-1022z0x0.fffffffffffff2p-1022z0x0.fffffffffffff4p-1022z0x0.fffffffffffff6p-1022z0x0.fffffffffffff8p-1022z0x0.fffffffffffffap-1022z0x0.fffffffffffffcp-1022z0x0.fffffffffffffep-1022z0x1.00000000000000p-1022z0x1.00000000000002p-1022z0x1.00000000000004p-1022z0x1.00000000000006p-1022z0x1.00000000000008p-1022z0x1.0000000000000ap-1022z0x1.0000000000000cp-1022z0x1.0000000000000ep-1022z0x1.00000000000010p-1022z0x1.00000000000012p-1022z0x1.00000000000014p-1022z0x1.00000000000016p-1022z0x1.00000000000018p-1022z0x0.fffffffffffff0p0z0x0.fffffffffffff1p0z0X0.fffffffffffff2p0z0x0.fffffffffffff3p0z0X0.fffffffffffff4p0z0X0.fffffffffffff5p0z0X0.fffffffffffff6p0z0x0.fffffffffffff7p0z0x0.fffffffffffff8p0z0X0.fffffffffffff9p0z0X0.fffffffffffffap0z0x0.fffffffffffffbp0z0X0.fffffffffffffcp0z0x0.fffffffffffffdp0z0X0.fffffffffffffep0z0x0.ffffffffffffffp0z0X1.00000000000000p0z0X1.00000000000001p0z0x1.00000000000002p0z0X1.00000000000003p0z0x1.00000000000004p0z0X1.00000000000005p0z0X1.00000000000006p0z0X1.00000000000007p0z(0x1.00000000000007ffffffffffffffffffffp0z0x1.00000000000008p0z&0x1.00000000000008000000000000000001p0r4z0X1.00000000000009p0z0x1.0000000000000ap0z0x1.0000000000000bp0z0X1.0000000000000cp0z0x1.0000000000000dp0z0x1.0000000000000ep0z0X1.0000000000000fp0z0x1.00000000000010p0z0X1.00000000000011p0z0x1.00000000000012p0z0X1.00000000000013p0z0X1.00000000000014p0z0x1.00000000000015p0z0x1.00000000000016p0z0X1.00000000000017p0z(0x1.00000000000017ffffffffffffffffffffp0z0x1.00000000000018p0z&0X1.00000000000018000000000000000001p0z0x1.00000000000019p0z0X1.0000000000001ap0z0X1.0000000000001bp0z0x1.0000000000001cp0z0x1.0000000000001dp0z0x1.0000000000001ep0z0X1.0000000000001fp0z0x1.00000000000020p0g�g�g�g�g�g�g�g�g�g�g�g�g�g����r�r�r�r����rr���rr)
r�r�r�r�r�r�rwrxrrq)rr�r�r�r�Zpirrr�
test_from_hexs				zHexFloatTestCase.test_from_hexcCsdd�}xdtt|j|j|j|j|jdgD]4}|j|||��|j|||��q;Wddl}x�td�D]�}|jdd�}|j�}|j	dd	g�}y|t
||�}Wntk
r�Yq�X|j|tt
|���q�WdS)
NcSstt|��S)N)r��toHex)r2rrr�	roundtrip2sz2HexFloatTestCase.test_roundtrip.<locals>.roundtripgri'i�g�?iP���g�)rxrwr�r�r�r�rnrmZ	randrangeZchoicerrqr�r)rrr2rnrrr?�mr>rrr�test_roundtrip1s5
zHexFloatTestCase.test_roundtripN)rr
rr�r�r�r�r�r�r�r�r�rrrrrrr��s
@�r�c
Cs)tjtttttttt	t
�	dS)N)rZrun_unittestrr�r�r�r�r�r�r�r�rrrr�	test_mainGsr�__main__);rpZmathrr�rnr�r�rXr�r�rrrrrrrwrx�hasattrZhave_getformatr�Zrequires_getformatZrequires_setformatr��dirnamer��curdirZtest_dirr�r�rrZTestCaserr�r�r+�reversedr�r�r�r�r�r�r�r�r�r�r�r�r�r��fromhexr��hexrr�rrrrrr�<module>s`"			��%K@nf		��