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_slice.cpython-34.pyo

�
g fV �@s�ddlZddlmZddlmZmZddlZddlZddlZdd�Z	dd�Z
Gdd	�d	e�ZGd
d�dej
�Zdd
�Zedkr�e�ndS)�N)�support)�loads�dumpscCs,t|d�rtj|�Std��dS)z�
    Helper function to convert a slice argument to an integer, and raise
    TypeError with a suitable message on failure.

    �	__index__zBslice indices must be integers or None or have an __index__ methodN)�hasattr�operator�index�	TypeError)�arg�r�4/opt/alt/python34/lib64/python3.4/test/test_slice.py�evaluate_slice_indexs
r
cCsxtj|�}|jdkr$dnt|j�}|dkrNtd��n|dkritd��n|dkr{dnd}|dkr�|dn|}|jdkr�|dkr�|n|}n=t|j�}|dkr�t|||�nt||�}|jdkr.|dkr%|n|}n=t|j�}|dkr\t|||�nt||�}|||fS)zA
    Reference implementation for the slice.indices method.

    N�rzlength should not be negativezslice step cannot be zero���)	rr�stepr
�
ValueError�start�max�min�stop)�slice�lengthr�lower�upperrrrrr�
slice_indicess"$..rc@s(eZdZdd�Zdd�ZdS)�MyIndexablecCs
||_dS)N)�value)�selfrrrr�__init__@szMyIndexable.__init__cCs|jS)N)r)rrrrrCszMyIndexable.__index__N)�__name__�
__module__�__qualname__rrrrrrr?src@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�	SliceTestcCs0|jtt�|jttdddd�dS)Nr���)�assertRaisesr	r)rrrr�test_constructorIszSliceTest.test_constructorcCs&|jttddd��d�dS)Nrr#r$zslice(1, 2, 3))�assertEqual�reprr)rrrr�	test_reprMszSliceTest.test_reprc	CsC|jtttd��|jt��td�j�WdQXdS)N�)r&r	�hashr�__hash__)rrrr�	test_hashPszSliceTest.test_hashcs�tddd��tddd��tddd�}|j���|j�|�|j�d�|j�d�|j�d�Gdd�dt��G�fdd	�d	t�}t|���t|���|j���|j���fd
d��td|���td|���|j���|j���fdd��tdd|���tdd|���|j���|j���fd
d��dS)Nrr#r$r%�c@seZdZdS)zSliceTest.test_cmp.<locals>.ExcN)rr r!rrrr�Exc`sr0cs"eZdZ�fdd�ZdS)z"SliceTest.test_cmp.<locals>.BadCmpcs
��dS)Nr)r�other)r0rr�__eq__dsz)SliceTest.test_cmp.<locals>.BadCmp.__eq__N)rr r!r2r)r0rr�BadCmpcsr3cs
��kS)Nrr)�s1�s2rr�<lambda>jsz$SliceTest.test_cmp.<locals>.<lambda>cs
��kS)Nrr)r4r5rrr6oscs
��kS)Nrr)r4r5rrr6ts)rr#r$)rr(�assertNotEqual�	Exception�objectr&)rZs3r3r)r0r4r5r�test_cmpVs,zSliceTest.test_cmpcCstd�}|j|jd�|j|jd�|j|jd�tdd�}|j|jd�|j|jd�|j|jd�tddd�}|j|jd�|j|jd�|j|jd�Gdd�d�}|�}t|�}|j|j|k�dS)Nrr#r$c@seZdZdS)z(SliceTest.test_members.<locals>.AnyClassN)rr r!rrrr�AnyClass�sr;)rr(rrrZ
assertTrue)r�sr;�objrrr�test_membersvs 	zSliceTest.test_memberscCs�y|j|�}Wntk
r-d}YnXyt||�}Wntk
r[d}YnX|j||�|dkr�|jdkr�t|j|��}t|�|}|j||�ndS)NZ
valueerrorr)�indicesrrr(r�range)rrrZactualZexpectedrrr�
check_indices�s

zSliceTest.check_indicesc*Cs�|jtd�jd�d�|jtddd�jd�d�|jtddd�jd�d�|jtddd�jd�d�|jtddd�jd�d�|jtddd�jd�d"�|jtdd#�jd�d$�|jtdd%�jd�d&�|jtdd'�jd�d(�|jtdd)d*�jd�d,�|jtdd-d.�jd�d1�|jtdd2d3�jd�d6�|jtdd�jd�d7�|jtdd�jd�d8�|jtdd�jd�d9�|jtdd	d:�jd�d<�|jtddd=�jd�d?�|jtddd@�jd�dB�|jtdCd
�jd�td�jd��|jtd
dDdE�jd�tdddF�jd��|jtdGd
d�jd�dH�|jttd��ddtjd�dg�ddJdLdMdNdOddd
ddPdQg}ddd
ddRdSg}xJtj|dd�D]3}t|�}x|D]}|j	||�q�Wq�W|j	tddd�dT�|j
t��td�jdU�WdQX|j
t��tddd�jd�WdQX|j
t��tddd�jd�WdQX|j
t��tddd�jd�WdQX|j
t��tddd�jd�WdQX|j
t��tddd�jd�WdQX|jtddd�jd�dV�|jtt
d�dd�jd�dW�|jtdt
d�d�jd�dX�|jtddt
d��jd�dY�|jtddd�jt
d��dZ�dS)[N�
rrr#�	r$����d��5��repeatr+gg$@g�?g@)rrBr)rrBr#)rrBr#rrr)rCrr���rrL)rCrrLrLrrL)r$rrLi����)rrri����)rrri����)rrri����rr)rCrri����rrr)rCrri�rrr)rCrr)rrCr)rrBr)rrBrrr)rCrFrrr)rCrCrrr)rCrCri����i����rri����)rrBr#ll����i@i�i���i����ri@li@l���r)rr+r)rr+r)rr+r)rr+r)rr+r)r(rr?�listr@�sys�maxsize�	itertools�productrAr&rr	r)r�valsZlengthsZ
slice_argsr<rrrr�test_indices�sd%%%%%"""%%%"""%%%%3*
%+++zSliceTest.test_indicescsag�G�fdd�dt�}|�}d|dd�<|j�tdd�dfg�dS)Ncs"eZdZ�fdd�ZdS)z3SliceTest.test_setslice_without_getslice.<locals>.Xcs�j||f�dS)N)�append)r�i�k)�tmprr�__setitem__�sz?SliceTest.test_setslice_without_getslice.<locals>.X.__setitem__N)rr r!rYr)rXrr�X�srZ�*rr#)r9r(r)rrZ�xr)rXr�test_setslice_without_getslice�s
	z(SliceTest.test_setslice_without_getslicecCs�tddd�}xqdD]i}tt||��}|j||�|j|jd�|jd��|jt|�t|��qWdS)	NrB�r$rrr#�)rrr#)rrrr(r?r7�id)rr<Zprotocol�trrr�test_pickle�s
"zSliceTest.test_pickleN)rr r!r'r*r.r:r>rArTr]rbrrrrr"Gs E
r"cCstjt�dS)N)rZrun_unittestr"rrrr�	test_main�src�__main__)ZunittestZtestr�picklerrrQrrOr
rr9rZTestCaser"rcrrrrr�<module>s
&�