Your IP : 216.73.216.85


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_copy.cpython-35.pyc



��Yfg�@s�dZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZddlZeeee	fZ
e
efZe
eZGdd�dej�Zdd�Zedkr�ej�dS)	zUnit tests for the copy module.�N)�le�lt�ge�gt�eq�nec@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&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkdl�Z8dmdn�Z9dodp�Z:dqdr�Z;dsdt�Z<dudv�Z=dwdx�Z>dydz�Z?d{d|�Z@d}d~�ZAdd��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�S)��TestCopycCs3|jtjtj�|jttjt��dS)N)�assertIs�copy�Error�errorZ
assertTrue�
issubclass�	Exception)�self�r�3/opt/alt/python35/lib64/python3.5/test/test_copy.py�test_exceptionsszTestCopy.test_exceptionscCs)d}tj|�}|j||�dS)N�*)r
�assertEqual)r�x�yrrr�test_copy_basicszTestCopy.test_copy_basiccsgG�fdd�dt���d�}tj|�}|j|j|j�|j|j|j�dS)Ncs.eZdZdd�Z�fdd�ZdS)z"TestCopy.test_copy_copy.<locals>.CcSs
||_dS)N)�foo)rrrrr�__init__ sz+TestCopy.test_copy_copy.<locals>.C.__init__cs
�|j�S)N)r)r)�Crr�__copy__"sz+TestCopy.test_copy_copy.<locals>.C.__copy__N)�__name__�
__module__�__qualname__rrr)rrrrsrr)�objectr
r�	__class__r)rrrr)rr�test_copy_copys
zTestCopy.test_copy_copycspGdd�dt���fdd�}�d�}|jttj|�tj�|��tj|�}dS)Nc@seZdZdd�ZdS)z&TestCopy.test_copy_registry.<locals>.CcSstj|�}||_|S)N)r�__new__r)�clsr�objrrrr"+s	z.TestCopy.test_copy_registry.<locals>.C.__new__N)rrrr"rrrrr*srcs�|jffS)N)r)r$)rrr�pickle_C/sz-TestCopy.test_copy_registry.<locals>.pickle_Cr)r�assertRaises�	TypeErrorr
�copyreg�pickle)rr%rrr)rr�test_copy_registry)szTestCopy.test_copy_registrycsaG�fdd�dt�}g�|�}tj|�}|j||�|j�dg�dS)Ncs.eZdZ�fdd�Zdd�ZdS)z'TestCopy.test_copy_reduce_ex.<locals>.Ccs�jd�dS)N��)�append)r�proto)�crr�
__reduce_ex__8s
z5TestCopy.test_copy_reduce_ex.<locals>.C.__reduce_ex__cSs|jd�dS)Nzshouldn't call this)�fail)rrrr�
__reduce__;sz2TestCopy.test_copy_reduce_ex.<locals>.C.__reduce__N)rrrr0r2r)r/rrr7srr+)rr
r	r)rrrrr)r/r�test_copy_reduce_ex6s	zTestCopy.test_copy_reduce_excsaG�fdd�dt�}g�|�}tj|�}|j||�|j�dg�dS)Ncs"eZdZ�fdd�ZdS)z$TestCopy.test_copy_reduce.<locals>.Ccs�jd�dS)Nr+r,)r-)r)r/rrr2Es
z/TestCopy.test_copy_reduce.<locals>.C.__reduce__N)rrrr2r)r/rrrDsrr+)rr
r	r)rrrrr)r/r�test_copy_reduceCs	zTestCopy.test_copy_reducecCs<Gdd�dt�}|�}|jtjtj|�dS)Nc@seZdZdd�ZdS)z"TestCopy.test_copy_cant.<locals>.CcSs+|jd�rt|��tj||�S)N�__reduce)�
startswith�AttributeErrorr�__getattribute__)r�namerrrr8Psz3TestCopy.test_copy_cant.<locals>.C.__getattribute__N)rrrr8rrrrrOsr)rr&r
r)rrrrrr�test_copy_cantNs	zTestCopy.test_copy_cantcCs�Gdd�d�}Gdd�dt�}dd�}Gdd�dd	tj�}dd
tdddddddd|jdttd��td�||t|g}x'|D]}|jt	j	|�|�q�WdS)Nc@seZdZdS)z*TestCopy.test_copy_atomic.<locals>.ClassicN)rrrrrrr�ClassicZsr;c@seZdZdS)z+TestCopy.test_copy_atomic.<locals>.NewStyleN)rrrrrrr�NewStyle\sr<cSsdS)Nrrrrr�f^sz$TestCopy.test_copy_atomic.<locals>.fc@seZdZdS)z0TestCopy.test_copy_atomic.<locals>.WithMetaclassN)rrrrrrr�
WithMetaclass`sr>�	metaclass.r��dg��Q�	@TFy�?�hellouhelloሴsworld��
l)
r�abc�ABCMeta�NotImplemented�__code__�bytes�range�maxr	r
)rr;r<r=r>�testsrrrr�test_copy_atomicYs	
zTestCopy.test_copy_atomiccCswdddg}tj|�}|j||�|j||�g}tj|�}|j||�|j||�dS)Nr+r@�)r
r�assertIsNot)rrrrrr�test_copy_listjszTestCopy.test_copy_listcCsmd}|jtj|�|�f}|jtj|�|�dddgf}|jtj|�|�dS)Nr+r@rN)r+r@rN)r	r
)rrrrr�test_copy_tupletszTestCopy.test_copy_tuplecCszddddi}tj|�}|j||�|j||�i}tj|�}|j||�|j||�dS)Nrr+�barr@)r
rrO)rrrrrr�test_copy_dict|szTestCopy.test_copy_dictcCszdddh}tj|�}|j||�|j||�t�}tj|�}|j||�|j||�dS)Nr+r@rN)r
rrO�set)rrrrrr�
test_copy_set�s	zTestCopy.test_copy_setcCsTtdddh�}|jtj|�|�t�}|jtj|�|�dS)Nr+r@rN)�	frozensetr	r
)rrrrr�test_copy_frozenset�s	zTestCopy.test_copy_frozensetcCswtd�}tj|�}|j||�|j||�t�}tj|�}|j||�|j||�dS)Nsabc)�	bytearrayr
rrO)rrrrrr�test_copy_bytearray�s	zTestCopy.test_copy_bytearraycCs<Gdd�d�}|d�}|jtj|�|�dS)Nc@s(eZdZdd�Zdd�ZdS)z*TestCopy.test_copy_inst_vanilla.<locals>.CcSs
||_dS)N)r)rrrrrr�sz3TestCopy.test_copy_inst_vanilla.<locals>.C.__init__cSs|j|jkS)N)r)r�otherrrr�__eq__�sz1TestCopy.test_copy_inst_vanilla.<locals>.C.__eq__N)rrrrr[rrrrr�srr)rr
)rrrrrr�test_copy_inst_vanilla�szTestCopy.test_copy_inst_vanillacsBG�fdd�d���d�}|jtj|�|�dS)Ncs:eZdZdd�Z�fdd�Zdd�ZdS)z'TestCopy.test_copy_inst_copy.<locals>.CcSs
||_dS)N)r)rrrrrr�sz0TestCopy.test_copy_inst_copy.<locals>.C.__init__cs
�|j�S)N)r)r)rrrr�sz0TestCopy.test_copy_inst_copy.<locals>.C.__copy__cSs|j|jkS)N)r)rrZrrrr[�sz.TestCopy.test_copy_inst_copy.<locals>.C.__eq__N)rrrrrr[r)rrrr�srr)rr
)rrr)rr�test_copy_inst_copy�szTestCopy.test_copy_inst_copycCs<Gdd�d�}|d�}|jtj|�|�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z.TestCopy.test_copy_inst_getinitargs.<locals>.CcSs
||_dS)N)r)rrrrrr�sz7TestCopy.test_copy_inst_getinitargs.<locals>.C.__init__cSs
|jfS)N)r)rrrr�__getinitargs__�sz>TestCopy.test_copy_inst_getinitargs.<locals>.C.__getinitargs__cSs|j|jkS)N)r)rrZrrrr[�sz5TestCopy.test_copy_inst_getinitargs.<locals>.C.__eq__N)rrrrr^r[rrrrr�srr)rr
)rrrrrr�test_copy_inst_getinitargs�sz#TestCopy.test_copy_inst_getinitargscCs{Gdd�dt�}|d�}tj|�}|j||�|j||�|j||�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z-TestCopy.test_copy_inst_getnewargs.<locals>.CcSstj|�}||_|S)N)�intr"r)r#rrrrrr"�s	z5TestCopy.test_copy_inst_getnewargs.<locals>.C.__new__cSs
|jfS)N)r)rrrr�__getnewargs__�sz<TestCopy.test_copy_inst_getnewargs.<locals>.C.__getnewargs__cSs|j|jkS)N)r)rrZrrrr[�sz4TestCopy.test_copy_inst_getnewargs.<locals>.C.__eq__N)rrrr"rar[rrrrr�srr)r`r
�assertIsInstancerrOr)rrrrrrr�test_copy_inst_getnewargs�s	z"TestCopy.test_copy_inst_getnewargscCs~Gdd�dt�}|dd�}tj|�}|j||�|j||�|j||�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z0TestCopy.test_copy_inst_getnewargs_ex.<locals>.CcSstj|�}||_|S)N)r`r"r)r#rrrrrr"�s	z8TestCopy.test_copy_inst_getnewargs_ex.<locals>.C.__new__cSsfd|jifS)Nr)r)rrrr�__getnewargs_ex__�szBTestCopy.test_copy_inst_getnewargs_ex.<locals>.C.__getnewargs_ex__cSs|j|jkS)N)r)rrZrrrr[�sz7TestCopy.test_copy_inst_getnewargs_ex.<locals>.C.__eq__N)rrrr"rdr[rrrrr�srrr)r`r
rbrrOr)rrrrrrr�test_copy_inst_getnewargs_ex�s	z%TestCopy.test_copy_inst_getnewargs_excCs<Gdd�d�}|d�}|jtj|�|�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z+TestCopy.test_copy_inst_getstate.<locals>.CcSs
||_dS)N)r)rrrrrr�sz4TestCopy.test_copy_inst_getstate.<locals>.C.__init__cSs
d|jiS)Nr)r)rrrr�__getstate__�sz8TestCopy.test_copy_inst_getstate.<locals>.C.__getstate__cSs|j|jkS)N)r)rrZrrrr[�sz2TestCopy.test_copy_inst_getstate.<locals>.C.__eq__N)rrrrrfr[rrrrr�srr)rr
)rrrrrr�test_copy_inst_getstate�sz TestCopy.test_copy_inst_getstatecCs<Gdd�d�}|d�}|jtj|�|�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z+TestCopy.test_copy_inst_setstate.<locals>.CcSs
||_dS)N)r)rrrrrr�sz4TestCopy.test_copy_inst_setstate.<locals>.C.__init__cSs|d|_dS)Nr)r)r�staterrr�__setstate__�sz8TestCopy.test_copy_inst_setstate.<locals>.C.__setstate__cSs|j|jkS)N)r)rrZrrrr[�sz2TestCopy.test_copy_inst_setstate.<locals>.C.__eq__N)rrrrrir[rrrrr�srr)rr
)rrrrrr�test_copy_inst_setstate�sz TestCopy.test_copy_inst_setstatecCsaGdd�d�}|d�}|jtj|�|�|d�}|jtj|�|�dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z4TestCopy.test_copy_inst_getstate_setstate.<locals>.CcSs
||_dS)N)r)rrrrrr�sz=TestCopy.test_copy_inst_getstate_setstate.<locals>.C.__init__cSs|jS)N)r)rrrrrf�szATestCopy.test_copy_inst_getstate_setstate.<locals>.C.__getstate__cSs
||_dS)N)r)rrhrrrri�szATestCopy.test_copy_inst_getstate_setstate.<locals>.C.__setstate__cSs|j|jkS)N)r)rrZrrrr[�sz;TestCopy.test_copy_inst_getstate_setstate.<locals>.C.__eq__N)rrrrrfrir[rrrrr�srrg)rr
)rrrrrr� test_copy_inst_getstate_setstate�s
	z)TestCopy.test_copy_inst_getstate_setstatecCs)d}tj|�}|j||�dS)Nr)r
�deepcopyr)rrrrrr�test_deepcopy_basic	szTestCopy.test_deepcopy_basiccCsug}||g}tj|�}|j||�|j||�|j|d|d�|j|d|d�dS)Nrr+)r
rlrrOr	)rrrrrr�test_deepcopy_memoszTestCopy.test_deepcopy_memocCsLGdd�dt�}Gdd�dd|�}|jtj|�|�dS)Nc@seZdZdS)z/TestCopy.test_deepcopy_issubclass.<locals>.MetaN)rrrrrrr�Metasroc@seZdZdS)z,TestCopy.test_deepcopy_issubclass.<locals>.CN)rrrrrrrr srr?)�typerr
rl)rrorrrr�test_deepcopy_issubclasssz!TestCopy.test_deepcopy_issubclasscsgG�fdd�dt���d�}tj|�}|j|j|j�|j|j|j�dS)Ncs1eZdZdd�Zd�fdd�ZdS)z*TestCopy.test_deepcopy_deepcopy.<locals>.CcSs
||_dS)N)r)rrrrrr&sz3TestCopy.test_deepcopy_deepcopy.<locals>.C.__init__Ncs
�|j�S)N)r)r�memo)rrr�__deepcopy__(sz7TestCopy.test_deepcopy_deepcopy.<locals>.C.__deepcopy__)rrrrrsr)rrrr%srr)rr
rlrr r)rrrr)rr�test_deepcopy_deepcopy$s
zTestCopy.test_deepcopy_deepcopycspGdd�dt���fdd�}�d�}|jttj|�tj�|��tj|�}dS)Nc@seZdZdd�ZdS)z*TestCopy.test_deepcopy_registry.<locals>.CcSstj|�}||_|S)N)rr"r)r#rr$rrrr"1s	z2TestCopy.test_deepcopy_registry.<locals>.C.__new__N)rrrr"rrrrr0srcs�|jffS)N)r)r$)rrrr%5sz1TestCopy.test_deepcopy_registry.<locals>.pickle_Cr)rr&r'r
rlr(r))rr%rrr)rr�test_deepcopy_registry/szTestCopy.test_deepcopy_registrycsaG�fdd�dt�}g�|�}tj|�}|j||�|j�dg�dS)Ncs.eZdZ�fdd�Zdd�ZdS)z+TestCopy.test_deepcopy_reduce_ex.<locals>.Ccs�jd�dS)Nr+r,)r-)rr.)r/rrr0>s
z9TestCopy.test_deepcopy_reduce_ex.<locals>.C.__reduce_ex__cSs|jd�dS)Nzshouldn't call this)r1)rrrrr2Asz6TestCopy.test_deepcopy_reduce_ex.<locals>.C.__reduce__N)rrrr0r2r)r/rrr=srr+)rr
rlr	r)rrrrr)r/r�test_deepcopy_reduce_ex<s	z TestCopy.test_deepcopy_reduce_excsaG�fdd�dt�}g�|�}tj|�}|j||�|j�dg�dS)Ncs"eZdZ�fdd�ZdS)z(TestCopy.test_deepcopy_reduce.<locals>.Ccs�jd�dS)Nr+r,)r-)r)r/rrr2Ks
z3TestCopy.test_deepcopy_reduce.<locals>.C.__reduce__N)rrrr2r)r/rrrJsrr+)rr
rlr	r)rrrrr)r/r�test_deepcopy_reduceIs	zTestCopy.test_deepcopy_reducecCs<Gdd�dt�}|�}|jtjtj|�dS)Nc@seZdZdd�ZdS)z&TestCopy.test_deepcopy_cant.<locals>.CcSs+|jd�rt|��tj||�S)Nr5)r6r7rr8)rr9rrrr8Vsz7TestCopy.test_deepcopy_cant.<locals>.C.__getattribute__N)rrrr8rrrrrUsr)rr&r
rrl)rrrrrr�test_deepcopy_cantTs	zTestCopy.test_deepcopy_cantc
Cs�Gdd�d�}Gdd�dt�}dd�}dddd
ddd
dd|j||tg
}x'|D]}|jtj|�|�qlWdS)Nc@seZdZdS)z.TestCopy.test_deepcopy_atomic.<locals>.ClassicN)rrrrrrrr;`sr;c@seZdZdS)z/TestCopy.test_deepcopy_atomic.<locals>.NewStyleN)rrrrrrrr<bsr<cSsdS)Nrrrrrr=dsz(TestCopy.test_deepcopy_atomic.<locals>.frr@rAg��Q�	@TFy�?rBuhelloሴl)rrHrKr	r
rl)rr;r<r=rLrrrr�test_deepcopy_atomic_s
zTestCopy.test_deepcopy_atomiccCs]ddgdg}tj|�}|j||�|j||�|j|d|d�dS)Nr+r@rNr)r
rlrrO)rrrrrr�test_deepcopy_listls
zTestCopy.test_deepcopy_listcCs�g}|j|�tj|�}x$tD]}|jt|||�q)W|j||�|j|d|�|jt	|�d�dS)Nrr+)
r-r
rl�comparisonsr&�RecursionErrorrOr	r�len)rrr�oprrr�test_deepcopy_reflexive_listss

z%TestCopy.test_deepcopy_reflexive_listcCs)f}tj|�}|j||�dS)N)r
rlr	)rrrrrr�test_deepcopy_empty_tuple}sz"TestCopy.test_deepcopy_empty_tuplecCs]ddgdf}tj|�}|j||�|j||�|j|d|d�dS)Nr+r@rNr)r
rlrrO)rrrrrr�test_deepcopy_tuple�s
zTestCopy.test_deepcopy_tuplecCs)d}tj|�}|j||�dS)Nr+r@rN�r+r@)r�rN)r
rlr	)rrrrrr�!test_deepcopy_tuple_of_immutables�sz*TestCopy.test_deepcopy_tuple_of_immutablescCs�gf}|dj|�tj|�}x$tD]}|jt|||�q0W|j||�|j|d|d�|j|dd|�dS)Nr)r-r
rlr{r&r|rOr	)rrrr~rrr�test_deepcopy_reflexive_tuple�s	
z&TestCopy.test_deepcopy_reflexive_tuplecCscdddgddi}tj|�}|j||�|j||�|j|d|d�dS)Nrr+r@rRrN)r
rlrrO)rrrrrr�test_deepcopy_dict�s
zTestCopy.test_deepcopy_dictcCs�i}||d<tj|�}x$tD]}|jt|||�q&Wx$tD]}|jt|||�qMW|j||�|j|d|�|j	t
|�d�dS)Nrr+)r
rl�order_comparisonsr&r'�equality_comparisonsr|rOr	rr})rrrr~rrr�test_deepcopy_reflexive_dict�s


z%TestCopy.test_deepcopy_reflexive_dictcCs@i}g}tj||�}|j|t|�d|�dS)Nr)r
rlr	�id)rrrrrrrr�test_deepcopy_keepalive�sz TestCopy.test_deepcopy_keepalivecCs�i}ddddg}tj||�}|j||�|jt|�d�i}dg}tj||�}|j||�|jt|�d�dS)Nr+r@rN�)r+r@)r
rlrr})rrrrrrrr�!test_deepcopy_dont_memo_immutable�s	z*TestCopy.test_deepcopy_dont_memo_immutablecCs[Gdd�d�}|dg�}tj|�}|j||�|j|j|j�dS)Nc@s(eZdZdd�Zdd�ZdS)z.TestCopy.test_deepcopy_inst_vanilla.<locals>.CcSs
||_dS)N)r)rrrrrr�sz7TestCopy.test_deepcopy_inst_vanilla.<locals>.C.__init__cSs|j|jkS)N)r)rrZrrrr[�sz5TestCopy.test_deepcopy_inst_vanilla.<locals>.C.__eq__N)rrrrr[rrrrr�srr)r
rlrrOr)rrrrrrr�test_deepcopy_inst_vanilla�s
z#TestCopy.test_deepcopy_inst_vanillacsqG�fdd�d���dg�}tj|�}|j||�|j||�|j|j|j�dS)Ncs:eZdZdd�Z�fdd�Zdd�ZdS)z/TestCopy.test_deepcopy_inst_deepcopy.<locals>.CcSs
||_dS)N)r)rrrrrr�sz8TestCopy.test_deepcopy_inst_deepcopy.<locals>.C.__init__cs�tj|j|��S)N)r
rlr)rrr)rrrrs�sz<TestCopy.test_deepcopy_inst_deepcopy.<locals>.C.__deepcopy__cSs|j|jkS)N)r)rrZrrrr[�sz6TestCopy.test_deepcopy_inst_deepcopy.<locals>.C.__eq__N)rrrrrsr[r)rrrr�srr)r
rlrrOr)rrrr)rr�test_deepcopy_inst_deepcopy�sz$TestCopy.test_deepcopy_inst_deepcopycCskGdd�d�}|dg�}tj|�}|j||�|j||�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z2TestCopy.test_deepcopy_inst_getinitargs.<locals>.CcSs
||_dS)N)r)rrrrrr�sz;TestCopy.test_deepcopy_inst_getinitargs.<locals>.C.__init__cSs
|jfS)N)r)rrrrr^�szBTestCopy.test_deepcopy_inst_getinitargs.<locals>.C.__getinitargs__cSs|j|jkS)N)r)rrZrrrr[�sz9TestCopy.test_deepcopy_inst_getinitargs.<locals>.C.__eq__N)rrrrr^r[rrrrr�srr)r
rlrrOr)rrrrrrr�test_deepcopy_inst_getinitargs�sz'TestCopy.test_deepcopy_inst_getinitargscCs�Gdd�dt�}|dg�}tj|�}|j||�|j||�|j||�|j|j|j�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z1TestCopy.test_deepcopy_inst_getnewargs.<locals>.CcSstj|�}||_|S)N)r`r"r)r#rrrrrr"�s	z9TestCopy.test_deepcopy_inst_getnewargs.<locals>.C.__new__cSs
|jfS)N)r)rrrrra�sz@TestCopy.test_deepcopy_inst_getnewargs.<locals>.C.__getnewargs__cSs|j|jkS)N)r)rrZrrrr[�sz8TestCopy.test_deepcopy_inst_getnewargs.<locals>.C.__eq__N)rrrr"rar[rrrrr�srr)r`r
rlrbrrOr)rrrrrrr�test_deepcopy_inst_getnewargs�s	z&TestCopy.test_deepcopy_inst_getnewargscCs�Gdd�dt�}|ddg�}tj|�}|j||�|j||�|j||�|j|j|j�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z4TestCopy.test_deepcopy_inst_getnewargs_ex.<locals>.CcSstj|�}||_|S)N)r`r"r)r#rrrrrr"�s	z<TestCopy.test_deepcopy_inst_getnewargs_ex.<locals>.C.__new__cSsfd|jifS)Nr)r)rrrrrd�szFTestCopy.test_deepcopy_inst_getnewargs_ex.<locals>.C.__getnewargs_ex__cSs|j|jkS)N)r)rrZrrrr[sz;TestCopy.test_deepcopy_inst_getnewargs_ex.<locals>.C.__eq__N)rrrr"rdr[rrrrr�srrr)r`r
rlrbrrOr)rrrrrrr� test_deepcopy_inst_getnewargs_ex�s	z)TestCopy.test_deepcopy_inst_getnewargs_excCskGdd�d�}|dg�}tj|�}|j||�|j||�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z/TestCopy.test_deepcopy_inst_getstate.<locals>.CcSs
||_dS)N)r)rrrrrr
sz8TestCopy.test_deepcopy_inst_getstate.<locals>.C.__init__cSs
d|jiS)Nr)r)rrrrrfsz<TestCopy.test_deepcopy_inst_getstate.<locals>.C.__getstate__cSs|j|jkS)N)r)rrZrrrr[sz6TestCopy.test_deepcopy_inst_getstate.<locals>.C.__eq__N)rrrrrfr[rrrrrsrr)r
rlrrOr)rrrrrrr�test_deepcopy_inst_getstatesz$TestCopy.test_deepcopy_inst_getstatecCskGdd�d�}|dg�}tj|�}|j||�|j||�|j|j|j�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z/TestCopy.test_deepcopy_inst_setstate.<locals>.CcSs
||_dS)N)r)rrrrrrsz8TestCopy.test_deepcopy_inst_setstate.<locals>.C.__init__cSs|d|_dS)Nr)r)rrhrrrrisz<TestCopy.test_deepcopy_inst_setstate.<locals>.C.__setstate__cSs|j|jkS)N)r)rrZrrrr[sz6TestCopy.test_deepcopy_inst_setstate.<locals>.C.__eq__N)rrrrrir[rrrrrsrr)r
rlrrOr)rrrrrrr�test_deepcopy_inst_setstatesz$TestCopy.test_deepcopy_inst_setstatecCs�Gdd�d�}|dg�}tj|�}|j||�|j||�|j|j|j�|g�}tj|�}|j||�|j||�|j|j|j�dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z8TestCopy.test_deepcopy_inst_getstate_setstate.<locals>.CcSs
||_dS)N)r)rrrrrr)szATestCopy.test_deepcopy_inst_getstate_setstate.<locals>.C.__init__cSs|jS)N)r)rrrrrf+szETestCopy.test_deepcopy_inst_getstate_setstate.<locals>.C.__getstate__cSs
||_dS)N)r)rrhrrrri-szETestCopy.test_deepcopy_inst_getstate_setstate.<locals>.C.__setstate__cSs|j|jkS)N)r)rrZrrrr[/sz?TestCopy.test_deepcopy_inst_getstate_setstate.<locals>.C.__eq__N)rrrrrfrir[rrrrr(srr)r
rlrrOr)rrrrrrr�$test_deepcopy_inst_getstate_setstate's	z-TestCopy.test_deepcopy_inst_getstate_setstatecCs[Gdd�d�}|�}||_tj|�}|j||�|j|j|�dS)Nc@seZdZdS)z0TestCopy.test_deepcopy_reflexive_inst.<locals>.CN)rrrrrrrr>sr)rr
rlrOr	)rrrrrrr�test_deepcopy_reflexive_inst=s		z%TestCopy.test_deepcopy_reflexive_instcCs�Gdd�dt�}t|d��}tj|�}|j||�|j||�|j|j|j�|j|j|j�|j|j|�dS)Nc@seZdZdS)z'TestCopy.test_deepcopy_range.<locals>.IN)rrrrrrr�IGsr�rD)r`rJr
rlrOr�stoprb)rr�rrrrr�test_deepcopy_rangeFszTestCopy.test_deepcopy_rangecCsaGdd�dt�}|�}tj|�}|j||�tj|�}|j||�dS)Nc@seZdZdd�ZdS)z+TestCopy.test_reconstruct_string.<locals>.CcSsdS)Nr,r)rrrrr2Usz6TestCopy.test_reconstruct_string.<locals>.C.__reduce__N)rrrr2rrrrrTsr)rr
r	rl)rrrrrrr�test_reconstruct_stringSs	z TestCopy.test_reconstruct_stringcs|G�fdd�dt����}d|_tj|�}|j|j|j�tj|�}|j|j|j�dS)Ncs"eZdZ�fdd�ZdS)z,TestCopy.test_reconstruct_nostate.<locals>.Ccs
�ffS)Nr)r)rrrr2_sz7TestCopy.test_reconstruct_nostate.<locals>.C.__reduce__N)rrrr2r)rrrr^srr)rrr
r	r rl)rrrr)rr�test_reconstruct_nostate]s		z!TestCopy.test_reconstruct_nostatecs�G�fdd�dt����}dg|_tj|�}|j||�tj|�}|j||�|j|j|j�dS)Ncs.eZdZ�fdd�Zdd�ZdS)z*TestCopy.test_reconstruct_state.<locals>.Ccs�f|jfS)N)�__dict__)r)rrrr2jsz5TestCopy.test_reconstruct_state.<locals>.C.__reduce__cSs|j|jkS)N)r�)rrZrrrr[lsz1TestCopy.test_reconstruct_state.<locals>.C.__eq__N)rrrr2r[r)rrrrisrr)rrr
rrlrO)rrrr)rr�test_reconstruct_statehs	zTestCopy.test_reconstruct_statecs�G�fdd�dt����}dg|_tj|�}|j||�tj|�}|j||�|j|j|j�dS)Ncs:eZdZ�fdd�Zdd�Zdd�ZdS)z3TestCopy.test_reconstruct_state_setstate.<locals>.Ccs�f|jfS)N)r�)r)rrrr2xsz>TestCopy.test_reconstruct_state_setstate.<locals>.C.__reduce__cSs|jj|�dS)N)r��update)rrhrrrrizsz@TestCopy.test_reconstruct_state_setstate.<locals>.C.__setstate__cSs|j|jkS)N)r�)rrZrrrr[|sz:TestCopy.test_reconstruct_state_setstate.<locals>.C.__eq__N)rrrr2rir[r)rrrrwsrr)rrr
rrlrO)rrrr)rr�test_reconstruct_state_setstatevs	z(TestCopy.test_reconstruct_state_setstatecCs^Gdd�dt�}|�}||_tj|�}|j||�|j|j|�dS)Nc@seZdZdS)z.TestCopy.test_reconstruct_reflexive.<locals>.CN)rrrrrrrr�sr)rrr
rlrOr	)rrrrrrr�test_reconstruct_reflexive�s		z#TestCopy.test_reconstruct_reflexivecs�G�fdd�dt���ddgdg�}tj|�}|j||�|j||�|j|d|d�tj|�}|j||�|j||�|j|d|d�dS)Ncs.eZdZ�fdd�Zdd�ZdS)z&TestCopy.test_reduce_4tuple.<locals>.Ccs�f|jt|�fS)N)r��iter)r)rrrr2�sz1TestCopy.test_reduce_4tuple.<locals>.C.__reduce__cSs(t|�t|�ko'|j|jkS)N)�listr�)rrZrrrr[�sz-TestCopy.test_reduce_4tuple.<locals>.C.__eq__N)rrrr2r[r)rrrr�srr+r@rNr)r�r
rrOr	rl)rrrr)rr�test_reduce_4tuple�szTestCopy.test_reduce_4tuplecs�G�fdd�dt���dddgfdg�}tj|�}|j||�|j||�|j|d|d�tj|�}|j||�|j||�|j|d|d�dS)	Ncs.eZdZ�fdd�Zdd�ZdS)z&TestCopy.test_reduce_5tuple.<locals>.Ccs�f|jd|j�fS)N)r��items)r)rrrr2�sz1TestCopy.test_reduce_5tuple.<locals>.C.__reduce__cSs(t|�t|�ko'|j|jkS)N)�dictr�)rrZrrrr[�sz-TestCopy.test_reduce_5tuple.<locals>.C.__eq__N)rrrr2r[r)rrrr�srrr+r@rRrN)rRrN)r�r
rrOr	rl)rrrr)rr�test_reduce_5tuple�szTestCopy.test_reduce_5tuplecCsTGdd�dt�}|�}dg|_tj|�}|j|j|j�dS)Nc@seZdZdgZdS)z#TestCopy.test_copy_slots.<locals>.CrN)rrr�	__slots__rrrrr�srr)rrr
r	)rrrrrrr�test_copy_slots�s
	zTestCopy.test_copy_slotscCsjGdd�dt�}|�}dg|_tj|�}|j|j|j�|j|j|j�dS)Nc@seZdZdgZdS)z'TestCopy.test_deepcopy_slots.<locals>.CrN)rrrr�rrrrr�srr)rrr
rlrrO)rrrrrrr�test_deepcopy_slots�s	zTestCopy.test_deepcopy_slotscCs�Gdd�dt�}|dddi�}tj|�}|j||�|j|j|j�|j||�d|d<|j||�|j|j|j�dS)Ncs7eZdZd�fdd�Z�fdd�Z�S)z/TestCopy.test_deepcopy_dict_subclass.<locals>.CNcs5|si}t|j��|_t�j|�dS)N)r��keys�_keys�superr)r�d)r rrr�sz8TestCopy.test_deepcopy_dict_subclass.<locals>.C.__init__cs6t�j||�||jkr2|jj|�dS)N)r��__setitem__r�r-)r�key�item)r rrr��sz;TestCopy.test_deepcopy_dict_subclass.<locals>.C.__setitem__)rrrrr�rr)r rr�srr�rrr+rR)r�r
rlrr�rO�assertNotEqual)rrrrrrr�test_deepcopy_dict_subclass�s

z$TestCopy.test_deepcopy_dict_subclasscCs�Gdd�dt�}|ddgdg�}ddg|_tj|�}|jt|�t|��|j|j|j�|j|d|d�|j|j|j�dS)	Nc@seZdZdS)z+TestCopy.test_copy_list_subclass.<locals>.CN)rrrrrrrr�srr+r@rNr��r)r�rr
rr	)rrrrrrr�test_copy_list_subclass�sz TestCopy.test_copy_list_subclasscCs�Gdd�dt�}|ddgdg�}ddg|_tj|�}|jt|�t|��|j|j|j�|j|d|d�|j|j|j�dS)	Nc@seZdZdS)z/TestCopy.test_deepcopy_list_subclass.<locals>.CN)rrrrrrrr�srr+r@rNr�r�r)r�rr
rlrrO)rrrrrrr�test_deepcopy_list_subclass�sz$TestCopy.test_deepcopy_list_subclasscCsjGdd�dt�}|dddg�}|jt|�d�tj|�}|jt|�d�dS)Nc@seZdZdS)z,TestCopy.test_copy_tuple_subclass.<locals>.CN)rrrrrrrr�srr+r@rN)r+r@rN)r+r@rN)�tuplerr
)rrrrrrr�test_copy_tuple_subclass�s
z!TestCopy.test_copy_tuple_subclasscCs�Gdd�dt�}|ddgdg�}|jt|�ddgdf�tj|�}|jt|�ddgdf�|j||�|j|d|d�dS)Nc@seZdZdS)z0TestCopy.test_deepcopy_tuple_subclass.<locals>.CN)rrrrrrrr�srr+r@rNr)r�rr
rlrO)rrrrrrr�test_deepcopy_tuple_subclass�s""z%TestCopy.test_deepcopy_tuple_subclasscCs3Gdd�dt�}|jttj|��dS)Nc@seZdZdd�ZdS)z-TestCopy.test_getstate_exc.<locals>.EvilStatecSstd��dS)Nzain't got no stickin' state)�
ValueError)rrrrrfsz:TestCopy.test_getstate_exc.<locals>.EvilState.__getstate__N)rrrrfrrrr�	EvilStatesr�)rr&r�r
)rr�rrr�test_getstate_excszTestCopy.test_getstate_exccCsg|jtjt�t�dd�}|jtj|�|�dd�}|jtj|�|�dS)NcSs||S)Nr)rrrrrrsz(TestCopy.test_copy_function.<locals>.foocSsdS)Nrrrrr�<lambda>
sz-TestCopy.test_copy_function.<locals>.<lambda>)rr
�
global_foo)rrrRrrr�test_copy_functions
zTestCopy.test_copy_functioncCsg|jtjt�t�dd�}|jtj|�|�dd�}|jtj|�|�dS)NcSs||S)Nr)rrrrrrsz,TestCopy.test_deepcopy_function.<locals>.foocSsdS)Nrrrrrr�sz1TestCopy.test_deepcopy_function.<locals>.<lambda>)rr
rlr�)rrrRrrr�test_deepcopy_function
s
zTestCopy.test_deepcopy_functioncCsmGdd�dt�}|�}tj|�}||�}|j||�~||�}|j||�dS)Nc@seZdZdS)z"TestCopy._check_weakref.<locals>.CN)rrrrrrrrsr)r�weakref�refr	)rZ_copyrr$rrrrr�_check_weakrefs	zTestCopy._check_weakrefcCs|jtj�dS)N)r�r
)rrrr�test_copy_weakrefszTestCopy.test_copy_weakrefcCs|jtj�dS)N)r�r
rl)rrrr�test_deepcopy_weakref"szTestCopy.test_deepcopy_weakrefc
sGdd�dt���fdd�td�D�\}}}}|�}|||<|||<tj|�}|j||�|j||�|j|||�|j|||�|jt|�d�~~|jt|�d�����}}	|	||<|j||�dS)Nc@seZdZdS)z(TestCopy._check_copy_weakdict.<locals>.CN)rrrrrrrr&srcsg|]}���qSrr)�.0�i)rrr�
<listcomp>(s	z1TestCopy._check_copy_weakdict.<locals>.<listcomp>r�r@r+)rrJr
rOrr}ZassertNotIn)
rZ	_dicttype�a�br/r��u�vrrr)rr�_check_copy_weakdict%s +	


zTestCopy._check_copy_weakdictcCs|jtj�dS)N)r�r��WeakKeyDictionary)rrrr�test_copy_weakkeydict9szTestCopy.test_copy_weakkeydictcCs|jtj�dS)N)r�r��WeakValueDictionary)rrrr�test_copy_weakvaluedict<sz TestCopy.test_copy_weakvaluedictcsGdd�dt���fdd�td�D�\}}}}tj�}|||<|||<tj|�}|j||�|jt|�d�|j	|||�|j	|||�|j||j
|j
�|j||j
|j
�~|jt|�d�dS)Nc@seZdZdd�ZdS)z-TestCopy.test_deepcopy_weakkeydict.<locals>.CcSs
||_dS)N)r�)rr�rrrrAsz6TestCopy.test_deepcopy_weakkeydict.<locals>.C.__init__N)rrrrrrrrr@srcsg|]}�|��qSrr)r�r�)rrrr�Cs	z6TestCopy.test_deepcopy_weakkeydict.<locals>.<listcomp>r�r@r+)rrJr�r�r
rlr�rr}rOr�)rr�r�r/r�r�r�r)rr�test_deepcopy_weakkeydict?s+

z"TestCopy.test_deepcopy_weakkeydictcs[Gdd�dt���fdd�td�D�\}}}}tj�}|||<|||<tj|�}|j||�|jt|�d�t	|j
�ddd	��\\}}\}	}
|j||�|j|j|j�|j
||�|j|	|�|j|	j|j�|j
|
|�~~~	~
~|jt|�d
�dS)Nc@seZdZdd�ZdS)z/TestCopy.test_deepcopy_weakvaluedict.<locals>.CcSs
||_dS)N)r�)rr�rrrrTsz8TestCopy.test_deepcopy_weakvaluedict.<locals>.C.__init__N)rrrrrrrrrSsrcsg|]}�|��qSrr)r�r�)rrrr�Vs	z8TestCopy.test_deepcopy_weakvaluedict.<locals>.<listcomp>r�r@r�cSs|djS)Nr)r�)Zpairrrrr�^sz6TestCopy.test_deepcopy_weakvaluedict.<locals>.<lambda>r+)rrJr�r�r
rlr�rr}�sortedr�rOr�r	)rr�r�r/r�r�r�rr�z�tr)rr�test_deepcopy_weakvaluedictRs$+

0z$TestCopy.test_deepcopy_weakvaluedictcCstGdd�dt�}|�}|j|_tj|�}|j|j|j�|j|jj|�|j�dS)Nc@seZdZdd�ZdS)z0TestCopy.test_deepcopy_bound_method.<locals>.FoocSsdS)Nr)rrrr�mksz2TestCopy.test_deepcopy_bound_method.<locals>.Foo.mN)rrrr�rrrr�Foojsr�)rr�r�r
rlrr	�__self__)rr�r=�grrr�test_deepcopy_bound_methodis	z#TestCopy.test_deepcopy_bound_methodN)Prrrrrr!r*r3r4r:rMrPrQrSrUrWrYr\r]r_rcrergrjrkrmrnrqrtrurvrwrxryrzrr�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�r�rrrrrs�





	




	

	
rcCs||S)Nr)rrrrrr�usr��__main__)�__doc__r
r(r�rE�operatorrrrrrrZunittestr�r�r{ZTestCaserr�r�mainrrrr�<module>s .
���i