Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_struct.cpython-34.pyc

�
f f�k�@sdddlmZddlZddlZddlZddlZddlZddlmZej	dkZ
ddddd	d
ddd
dddfZddddddfZedd�Z
yejd
d�Wnejk
r�dZYnXdZdd�Zdd�ZGd d!�d!ej�ZGd"d#�d#ej�Zd$d%�Zed&kr`e�ndS)'�)�abcN)�support�big�b�B�h�H�i�I�l�L�q�Q�n�N��@�=�<�>�!ccstxmtD]e}x\|D]T}|dkr?|dkr?tr?qn|d	kr]|d
kr]qn||fVqWqWdS)Nrrr
rrr)rr)r
r)rr)rr)�
integer_codes�HAVE_LONG_LONG)�
byteorders�code�	byteorder�r�5/opt/alt/python34/lib64/python3.4/test/test_struct.py�iter_integer_formatss

r�FTcCs|ddd�S)N����r)�srrr�string_reverse"sr#cCstr
|St|�SdS)N)�ISBIGENDIANr#)�valuerrr�bigendian_to_native%sr&c@s	eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zejd'd(��Zd)S)*�
StructTestcCs*|jtjdd�ddkt�dS)Nz=ir r)�assertEqual�struct�packr$)�selfrrr�test_isbigendian,szStructTest.test_isbigendiancCsr|jtjtjd�tjd�}|j|dtjd��d}d}tj|�}tj|�}|j|d|�|jtjtjdd�|jtjtjdddd�|jttjftjdd�|jttjftjdd�|jtjtjd	d
�tjddd
�}|jtjtjd|�|jtjtjd|�dS)N�Zr	�Ziiizcbxxxxxxhhhhiillffd?z3c3b18x12h6i6l6f3d3?Zfoo�P�dsflap�iir �)�assertRaisesr)�error�calcsizer(r*�	TypeError�unpack)r+Zsz�fmtZfmt3Zsz3r"rrr�test_consistence/s """zStructTest.test_consistencecCsYd}d}d}d}d}d}d}d}x"dD]}	xdD]	}
|	|
}
tj|
||||||||�	}tj|
|�\}}
}}}}}}|j||�|j|
|�|j||�|j||�|j||�|jtd|�td|��|jtd|�td|��|j||�qDWq7WdS)N�ar �i��igo���!	@Trrrrrr�	xcbhilfd?�	xcBHILfd?�d)rrrrrr)r<r=)r)r*r7r(�int)r+�crrr	r�fr0�t�prefix�formatr"�cpZbpZhpZipZlp�fpZdpZtprrr�test_transitivenessDs*


'*$$zStructTest.test_transitivenessc'CsldBdCdDdEdFdGdHdIdJdOdPdRdSdTdUdWdXdZd[d]d^d`dadcdddfdgdhdjdldmdndod:gdddfdqg#}x�|D]�\}}}}}x�d>||fd?||fd@||fdA|tr�|p�|fgD]\}}tj||�}	|j|	|�|jtj|�t|	��tj||	�d}
|
|kr�|j|�q�q�Wq�WdS)rNr@r:r�xc�a�cx�ar"�0s�
helloworld�r �1s�h�9s�	helloworl�10s�11s�helloworld�20s�
�r����r�r�������D�D�rir	�,�,���,��������r
lrrrA�@�@�@r0�@�@���������?r.�Trrrr)r@r:r:r:r)rHr:rIrIr)rJr:rKrKr)r"r:r:r:r)rLrMrNrNr )rOrMrPrPr )rQrMrRrRr )rSrMrMrMr)rTrMrUrUr s
�helloworlds
�helloworld)rVrMrrrsr )rrYrZrZr���)rrtr[r[r)rrYrZrZr)rr\r[r[r)rr]r^r_r�D���)rrur`rar)rr]r^r_r�D�)rrvr`rar)r	rbrcrdr���)r	rwrerfr)r
rbrcrdr��b�w)r
rxrerfr)rrbrcrdr���)rryrerfr)rrbrcrdr��b�w)rrzrerfr)rArgrhrir)r0rgrjrkr��)rAr{rlrmr��)r0r|rnror)rprrXrXr)rpr.rqrqr )rpTrqrqr�r )rpr}rqrqr )r$r)r*r(r5�lenr7�
assertTrue)r+Ztestsr8�argrZlilZasyZxfmt�exp�resZrevrrr�test_new_features\s\	*)zStructTest.test_new_featuresc
Cs*i
dd6dd6dd6dd6dd6dd	6dd
6dd6dd
6dd6}xGtd�D]9\}}||}tj|�}|j|||�qYWd}tr�|d 7}nx]|D]U}xLd!D]D}tj||d�}tj||d�}	|j||	�q�Wq�W|jtjd�d�|jdtjd��|jdtjd
��|jtjd�tjd��|jtjd�tjd
��tr�|jdtjd
��|jtjd
�tjd
��n|jtjd�tjd��|jtjd�tjd��dS)"Nr rrr2rr�r	r
rr�r
rrrrr�bB�hH�iI�lL�nN�qQrrrrr/)rrrr)r�r�r�r�r�)r�)rr)rr)r5r(rZassertLessEqual�assertGreaterEqual)
r+Z
expected_sizerrrD�sizeZnative_pairsZformat_pairZsigned_sizeZ
unsigned_sizerrr�
test_calcsize�s8



""%"zStructTest.test_calcsizecsoddl�G���fdd�dtj��x7t�D],\}}||����}|j�q;WdS)NrcsUeZdZ��fdd�Zejej�jdd�Z�fdd�Z	�S)z+StructTest.test_integers.<locals>.IntTestercs,t�|�jdd�||_|d
|_|dd�|_|jtkrgtd|j��ntj|�|_	|j	d|_
|jtd�kr�d|_d|j
d|_
d|j
dd|_nQ|jtd	�krd
|_d|_
d|j
d|_ntd|j��dS)NZ
methodName�test_oner z"unrecognized packing byteorder: %sr�ZbhilqnTr2ZBHILQNFrzunrecognized format code: %sr!r!)�super�__init__rDrrr�
ValueErrorr)r5�bytesize�bitsize�tuple�signed�	min_value�	max_value)r+rD)�	IntTester�	__class__rrr��s&	
			z4StructTest.test_integers.<locals>.IntTester.__init__c	Ss�|j}|j|ko&|jknr||}|jrZ|dkrZ|d|j>7}n|j|d�d|}t|�d@r�d|}n|jd�}||�}d|jt|�|}|j	dks�|j	dkr�t
r�t|�}n|jt|�|j�|||�}|j||�|||�d}|j||�|j
tjtf||d|�n"|j
tttjf|||�dS)
Nrr z%x�0�asciisrrrrs)rrr)rDr�r�r�r�r�r~�encoder�rr$r#r(r3r)r4r6�
OverflowErrorr�)	r+�xr*r7�	unhexlifyrD�expected�gotZ	retrievedrrrr��s2	"

z4StructTest.test_integers.<locals>.IntTester.test_onec
s�ddlm}g}x,t|jd�D]}|jd|>�q*WxXt|j�D]G}d}x+t|j�D]}|d>|d�B}qqW|j|�qUW|jddtjd	g�xN|D]F}x=||fD].}x%dD]}||}	|j	|	�q�Wq�Wq�WGd
d�d�}
Gdd
�d
t
�}Gdd�dt
�}|jtt
jft
j|jd�|jtt
jft
j|j|�|jtt
jft
j|jd�|jtt
jft
j|j|
��|jtt
jft
j|j|��xp|d�|d�|d�|d�|d�|d�fD]2}
yt
j�|
�WqI|jd�YqIXqIWxp|d�|d�|d�|idd6�|dddg�fD]+}
|jtt
jft
j|j|
�q�WdS)Nr)�	randranger.r r��i,i`�
r�c@seZdZdd�ZdS)zAStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnIntcSsdS)N�*r)r+rrr�__int__szIStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnInt.__int__N)�__name__�
__module__�__qualname__r�rrrr�NotAnIntsr�c@s(eZdZdd�Zdd�ZdS)zBStructTest.test_integers.<locals>.IntTester.run.<locals>.IndexablecSs
||_dS)N)�_value)r+r%rrrr�szKStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__init__cSs|jS)N)r�)r+rrr�	__index__szLStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__index__N)r�r�r�r�r�rrrr�	Indexablesr�c@s(eZdZdd�Zdd�ZdS)zAStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndexcSs
t�dS)N)r6)r+rrrr�%szKStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__index__cSsdS)Nr�r)r+rrrr�(szIStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__int__N)r�r�r�r�r�rrrr�BadIndex$sr�za stringyE@rW�r�r>�z:integer code pack failed on object with '__index__' methodr:r�ar2r!)r!rr y@E@)Zrandomr��ranger��appendr��extend�sys�maxsizer��objectr3r6r)r4r*rD�fail)r+r��valuesr�r	�val�j�baseZincrr�r�r�r��obj)rDrr�run�sX


	

%,z/StructTest.test_integers.<locals>.IntTester.run)
r�r�r�r�r)r*r7r�r�r�r)r��binasciirD)r�rr��s
$r�)r��unittest�TestCaserr�)r+rrrBr)r�r�rDr�
test_integers�s%�
zStructTest.test_integerscsx�fdd�}x_dD]W}xNd
D]F}||}|tj|�|tj|d�|tj|d	�q&WqWdS)Nc
sE�jtj��}|||�WdQX�jdt|j��dS)Nzbad char in struct format)r3r)r4ZassertIn�strZ	exception)�func�args�kwargs�cm)r+rr�assertStructErrorRsz2StructTest.test_nN_code.<locals>.assertStructErrorr�rrrrrrN)rrrr)r)r5r*r7)r+r�rrrDr)r+r�test_nN_codePs


zStructTest.test_nN_codecCs�x�dddddddddddddddfgD]Y\}}}}tj||�}|j||�tj||�\}|j||�q;WdS)N�p�abc�rN�1p�2p�ar:�3p�ab�ab�4p�abc�5p�abc�6p�abcZ1000p�xi�s�i�r;)r�r�r�rN)r�r�r�rN)r�r�r�r:)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r)r*r(r7)r+r�inputr�Zexpectedbackr�rrr�test_p_code]s5zStructTest.test_p_codec	Csfddl}x�tdd�D]�}d}x"||d|krL|d}q+W||}tjd|�}tjd|�d}|j||�tjd|�}|j|t|��tjd|�d}|j||�qWd
}|j|d�}tjd|�}tjd|�d}|j||�d}|j|d�}|jt	tjd|�dS)Nrr �!g�?g@z<fz>f�r���ii����hii����g)
�mathr�r)r*r7r(r#Zldexpr3r�)	r+r�r�ZdeltaZsmaller�packedZunpackedZ	bigpackedrrrr�test_705836ms*
zStructTest.test_705836cCs�xYt�D]N\}}||}|jtjtj|d�|jtjtj|d�q
W|jtjtjdd�|jtjtjdd�dS)Ng�?g�?r/)rr3r)r4r*)r+rrrDrrr�test_1530559�s
 zStructTest.test_1530559cCsd}d}tj|�}x�ttfD]�}||�}|j|j|�d
�|j|j|d�d�|j|j|d�d�xAtd�D]3}|j|j||�|||d�f�q�Wx=tdt|�d	�D]"}|jtj	|j||�q�Wq(WxttfD]�}||�}|jtj||�d
�|jtj||d�d�|jtj||d�d�xDtd�D]6}|jtj|||�|||d�f�q�Wx@tdt|�d	�D]%}|jtj	tj|||�q�Wq WdS)Ns	abcd01234Z4s�abcdr2�cd01r��0123�r )r�)r�)r�)r�)r�)r�)
r)�Struct�bytes�	bytearrayr(�unpack_fromr�r~r3r4)r+�test_stringr8r"�cls�datar	rrr�test_unpack_from�s*1 $4 zStructTest.test_unpack_fromcCsLd}tjddd�}d}tj|�}|j|d|�|j�dt|��}|j||�|j|d|�|j�dt|�d�}|j||dd�|�tjdd
�}|jttj	f|j|d|�|jttj	f|j|d|�|}|jt
tj	ftjd	|d�dS)NsReykjavik rocks, eow!r� r>�21srrWr2rNs
          )�arrayr)r��	pack_into�tobytesr~r(r3r�r4r6)r+r��writable_bufr8r"�from_buf�	small_bufZsbrrr�test_pack_into�s$ zStructTest.test_pack_intocsd}tjddd�}d��fdd�}||d|�|j�dt|��}|j||�||d	|�|j�dt|�d	�}|j||dd	�|�tjdd�}|jttjf||d|�|jttjf||d
|�dS)NsReykjavik rocks, eow!rr�r>r�cstj�|�S)N)r)r�)r�)r8rr�<lambda>�sz.StructTest.test_pack_into_fn.<locals>.<lambda>rrWr2s
          )r�r�r~r(r3r�r)r4)r+r�r�r�r�r�r)r8r�test_pack_into_fn�s zStructTest.test_pack_into_fncCs^tjdd�}td�}x9||gD]+}tjd|�\}|j|d�q+WdS)Nrs4Vxz>IixV4)r��
memoryviewr)r7r()r+Zdata1Zdata2r�r%rrr�test_unpack_with_buffer�s
z"StructTest.test_unpack_with_bufferc
Cs0Gdd�dt�}x�td�dD]�}fggddf}dgdddddf}|dt|�}tj||�}tj||�}|dt|�}tj||�}	tj||	�}
|jt|�t|
��|jt|�t|��x|D]}|j|�qWx|
D]}|j|�q*Wtj|dd�}|jt|�tj	|d��t|�dkr�|j|dd
|�nytj|d|��Wnt
k
r�Yq'X|jd|d�q'Wx:dddddgD]#}
|jtjd|
�d�qWdS)Nc@seZdZdd�ZdS)z+StructTest.test_bool.<locals>.ExplodingBoolcSs
t�dS)N)�OSError)r+rrr�__bool__�sz4StructTest.test_bool.<locals>.ExplodingBool.__bool__N)r�r�r�rrrrr�
ExplodingBool�srz<>!=rrr �testrl��r2rp�msgz encoded bool is not one byte: %rz2Expected OSError: struct.pack(%r, ExplodingBool())sss�ss�z>?)rr!lg���A)r�r�r~r)r*r7r(ZassertFalserr5r�r�)r+rrCZfalse�trueZfalseFormatZpackedFalseZ
unpackedFalseZ
trueFormatZ
packedTrueZunpackedTruerBr�r@rrr�	test_bool�s:

#
	zStructTest.test_boolcCsldjtjd�}|jtjtj|�djtjdtjd�}|jtjtj|�dS)Nz{}br z{}b{}Hr2)rDr�r�r3r)r4r5)r+Z	hugecountZ
hugecount2rrr�test_count_overflows zStructTest.test_count_overflowcCstjddd�}|jtjtjd�|jtjtjdd�|jtjtjd|d�|jtjtjd|d�|jtjtjdd�|jtjtjdd�|jtjtjd|dd�|jtjtjd|d�|jtjtjd	d
�|jtjtjd	d
�|jtjtjd	|dd
�|jtjtjd	|d�dS)Nrr�r>Z12345rrZc12345r�Z14s42z
spam and eggs)r�r3r)r4r*r7r�r�)r+Zstorerrr�test_trailing_counters"z StructTest.test_trailing_countercCs tjd�}|jd�dS)Nr	r1)r)r�r�)r+r"rrr�test_Struct_reinitialization5sz'StructTest.test_Struct_reinitializationcCsJtjd�}|tjd�|d7}tj|tj|�|�dS)NZ2n3PZP3n0Pr )rZcalcobjsizer)r5�check_sizeofr�)r+Z
format_strZnumber_of_codesZ	totalsizerrrr	<szStructTest.check_sizeofcCs�xtD]}|j|d�qW|jdd�|jddd�|jdd�|jdd	�|jd
d�|jdd�|jdd�|jd
d�|jdd	�dS)Nr Z	BHILfdspP�	ri��fdr2ZxxxxxxxxxxxxxxrZ100HZ187sZ20prLZ0c)rr	)r+rrrr�test__sizeof__Cs
zStructTest.test__sizeof__N)r�r�r�r,r9rGr�r�r�r�r�r�r�r�r�r�r�rrrrr	rZcpython_onlyrrrrrr'+s(5%�
#+r'c@sReZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�UnpackIteratorTestzD
    Tests for iterative unpacking (struct.Struct.iter_unpack).
    cs��fdd�}tjd�}|jd�}||�|jd�}||��jtj��|jd�WdQX�jtj��|jd�WdQXtjd�}�jtj��|jd�WdQX�jtj��|jd	�WdQXdS)
Ncs*�j|tj��j|tj�dS)N)ZassertIsInstancer�Iterator�Iterable)�it)r+rr�_check_iteratorXsz:UnpackIteratorTest.test_construct.<locals>._check_iteratorz>ibcprNs1234567s123456s12345678rs12)r)r��iter_unpackr3r4)r+rr"rr)r+r�test_constructWs

z!UnpackIteratorTest.test_constructcCs�tjd�}ttdd��}|j|�}|jt|�d
�|jt|�d�|jt|�d�|jtt|�|jtt|�dS)
Nz>IBr ��r�	rW�
�)rr)rrW)rr)	r)r�r�r�rr(�nextr3�
StopIteration)r+r"rrrrr�test_iteratelszUnpackIteratorTest.test_iteratecCs�tjd�}ttdd��}|jt|��}|jt|�d�|jt|�d	�|jt	t|�|jt	t|�dS)
Nz>IBr ��r�	rW)rr)rrW)
r)r�r�r�rr�r(rr3r)r+r"rrrrr�test_arbitrary_buffervsz(UnpackIteratorTest.test_arbitrary_buffercCs�tj}tjd�}ttdd��}|j|�}|j||�d�t|�|j||�d�t|�|j||�d�t|�|j||�d�|j	t
t|�|j||�d�dS)Nz>IBr rr.r2r)�operator�length_hintr)r�r�r�rr(rr3r)r+Zlhr"rrrrr�test_length_hints	


z#UnpackIteratorTest.test_length_hintcCswtjdttdd���}|jt|�d�|jt|�d	�|jtt|�|jtt|�dS)
Nz>IBr r�r�	rW)r#r)r$rW)r)rr�r�r(rr3r)r+rrrr�test_module_func�s
!z#UnpackIteratorTest.test_module_funcN)	r�r�r��__doc__rrrr"r%rrrrr
Rs
	r
cCstjt�dS)N)rZrun_unittestr�rrrr�	test_main�sr'�__main__)�collectionsrr�r r�r)r�rrrr$rrrr*r4rr#r&r�r'r
r'r�rrrr�<module>s0*��)E