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

�
f fF��
@sSddlZddlZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZdayddlZWnek
r�dZYnXGdd�dej�ZejjGdd�dej��Zdd�Zed	krOe�ndS)
�N)�assert_python_ok�assert_python_failurec@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
jed�dd��Zdd�Zdd�Zdd�Zdd�Zd d!�Ze
jeed"�d#�d$d%��Zejjd&d'��Zd(d)�Zd*d+�Zejjd,d-��Z d.d/�Z!d0d1�Z"e
jeed2�d�d3d4��Z#d5d6�Z$d7d8�Z%d9d:�Z&d;d<�Z'd=d>�Z(d?d@�Z)dAdB�Z*ejj+dCdD��Z,dEdF�Z-e
jejj.dG�dHdI��Z/e
j0ej1ej2kdJ�dKdL��Z3dMdNdO�Z4dPdQ�Z5dRdS�Z6ejj+dTdU��Z7e
jeedV�dW�dXdY��Z8dMS)Z�
SysModuleTestcCs(tj|_tj|_tj|_dS)N)�sys�stdout�orig_stdout�stderr�orig_stderr�displayhook�orig_displayhook)�self�r
�2/opt/alt/python34/lib64/python3.4/test/test_sys.py�setUpszSysModuleTest.setUpcCs5|jt_|jt_|jt_tjj	�dS)N)
rrrr	rrr
�test�supportZ
reap_children)rr
r
r�tearDownszSysModuleTest.tearDowncCs�ddl}tj�}|t_tj}|jt|�t|d�rR|`	n|d�|j
|j�d�|jt|d��|d�|j
|j�d�|j
|j	d�t`|jt
|d�dS)Nr�_��*z42
)�builtins�io�StringIOrr�__displayhook__�assertRaises�	TypeError�hasattrr�assertEqual�getvalue�
assertTrue�RuntimeError)rr�outZdhr
r
r�test_original_displayhook$s			

z'SysModuleTest.test_original_displayhookcCs/t`tddd�}|jtt|�dS)N�42z<string>�single)rr
�compilerr �eval)r�coder
r
r�test_lost_displayhook9sz#SysModuleTest.test_lost_displayhookcCs>dd�}|t_tddd�}|jtt|�dS)NcSs
t�dS)N)�
ValueError)�objr
r
r�baddisplayhook?sz=SysModuleTest.test_custom_displayhook.<locals>.baddisplayhookr#z<string>r$)rr
r%rr)r&)rr+r'r
r
r�test_custom_displayhook>s	z%SysModuleTest.test_custom_displayhookcCs�tj�}|t_tj}|jt|�ytd��Wn5tk
ru}z|tj��WYdd}~XnX|j	|j
�jd��dS)NrzValueError: 42
)rrrr�__excepthook__rrr)�exc_inforr�endswith)r�errZeh�excr
r
r�test_original_excepthookEs		#z&SysModuleTest.test_original_excepthookcCsKtjjd��}tjddd�WdQX|jd|j�k�dS)Nr��1zETypeError: print_exception(): Exception expected for value, str found)rrZcaptured_outputr�
excepthookrr)rrr
r
r�test_excepthookSs	zSysModuleTest.test_excepthookc#s
�jttjdd��jt��}tj�WdQX�j|jj�tdd�\}}}�j	|d��j	|d��j	|d��jt��}tjd�WdQX�j	|jjd��jt��}tjd�WdQX�j	|jjd��jt��}tjd�WdQX�j	|jjd��jt��}tjd�WdQX�j	|jjd�t
dd	�\}}}�j	|d
��j	|d��j	|d��fdd�}|d
d�|dd�|dddd�dS)Nrz-czimport sys; sys.exit()r��exit��zraise SystemExit(47)�/csntd||�\}}}�j|d��j|d��j|j|�dt|�t|�f�dS)Nz-cr3r7z%s doesn't start with %s)rrr�
startswith�ascii)r'�expectedZenv_vars�rcr!r0)rr
r�check_exit_message�s
z3SysModuleTest.test_exit.<locals>.check_exit_messagez?import sys; sys.stderr.write("unflushed,"); sys.exit("message")sunflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")ssurrogates:\udcffzimport sys; sys.exit("h\xe9")sh��PYTHONIOENCODINGzlatin-1)r)r9r:)r9r:)rrrr8�
SystemExitZassertIsNoneZ	exceptionr'rrr)r�cmr?r!r0r@r
)rr�	test_exit\sD	zSysModuleTest.test_exitcCs0|jttjd�|jtj�t�dS)Nr)rrr�getdefaultencoding�assertIsInstance�str)rr
r
r�test_getdefaultencoding�sz%SysModuleTest.test_getdefaultencodingcCs�tj��qtjd�|jttj�tj�}x=ddd|fD])}tj|�|jtj�|�qLWWdQXdS)N�ignorer�d�x)	�warnings�catch_warnings�simplefilterrrr�setcheckinterval�getcheckintervalr)r�orig�nr
r
r�test_setcheckinterval�s


z#SysModuleTest.test_setcheckintervalz!Threading required for this test.cCs�|jttj�|jttjd�|jttjd�|jttjd�tj�}|j|dk|�zDx=ddd|fD])}tj|�|jtj�|�q�WWdtj|�XdS)	N�ag�?gg�?g�h㈵��>g�������?g@g�)rrr�setswitchintervalr)�getswitchintervalrZassertAlmostEqual)rrQrRr
r
r�test_switchinterval�s
z!SysModuleTest.test_switchintervalcCs|jttjd�tj�}|jttj�|jttjd�tjd�|jtj�d�tj|�dS)Nri'i���)rrr�getrecursionlimit�setrecursionlimitr)r)r�oldlimitr
r
r�test_recursionlimit�s
z!SysModuleTest.test_recursionlimitcs�ttd�r+tj�r+|jd�ntj�}�fdd��zBx;dD]3}tj|�|jt��|jt��qSWWdtj|�XdS)N�gettracez(fatal error if run with a trace functioncs��dS)Nr
r
)�fr
rr]�sz5SysModuleTest.test_recursionlimit_recovery.<locals>.f�2��)r^r_)rrr\ZskipTestrXrYrr )rrZ�ir
)r]r�test_recursionlimit_recovery�s

z*SysModuleTest.test_recursionlimit_recoveryc
Cs�tjd�}tjj��txldD]d}tjtjd||gdtj	�}|j
�d}|j|j|j�|j
d|�q&WWdQXdS)	Nz�
            import sys

            def f():
                try:
                    f()
                except RuntimeError:
                    f()

            sys.setrecursionlimit(%d)
            f()r^��z-crr3s6Fatal Python error: Cannot recover from stack overflow)r^rb)�textwrap�dedentrrZSuppressCrashReport�
subprocess�Popenr�
executable�PIPE�communicater�
returncode�assertIn)rr'r`�subr0r
r
r�test_recursionlimit_fatalerror�s
	
z,SysModuleTest.test_recursionlimit_fatalerrorcCs�tjjtd�tj�}|jt|�d�|j|dt�|j|dt�|j|dt�|j|dt�|j|dt	�|j
ttj
|d�|j|jt�|j|jt�|j|jt�|j|jt�|j|jt	�|j|jt�|j|jt�|j|jt�|j|jt�|j|d|j�|j|d|j�|j|d|j�|j|d|j�|j|d|j�tj�\}}}}}dS)N�getwindowsversion�rr3���)rr�
get_attributerrnr�lenrF�intrGr�
IndexError�operator�getitem�major�minorZbuild�platformZservice_packZservice_pack_minorZservice_pack_majorZ
suite_maskZproduct_type)r�vZmaj�minZbuildnoZplatZcsdr
r
r�test_getwindowsversion�s0z$SysModuleTest.test_getwindowsversioncCs|jttjtd�dS)Nrp)rrr�call_tracing�type)rr
r
r�test_call_tracingszSysModuleTest.test_call_tracing�setdlopenflagsztest needs sys.setdlopenflags()cCs�|jttd��|jttjd�tj�}|jttj�tj|d�|jtj�|d�tj|�dS)N�getdlopenflagsrr3)rrrrrr�r�r)rZoldflagsr
r
r�test_dlopenflagsszSysModuleTest.test_dlopenflagscCs�|jttj�tjd�}da|jtjd�|d�b|jtjd�|�ttd�r�|jtj�t	�ndS)Nr3�gettotalrefcount)
rrr�getrefcountrRrrrFr�ru)r�cr
r
r�
test_refcount szSysModuleTest.test_refcountcCsU|jttjdd�|jttjd�|jtjjtj�j	k�dS)Nri�5w)
rrr�	_getframer)rr�
test_getframe�__code__�f_code)rr
r
rr�0s
	zSysModuleTest.test_getframecCsRd}yddl}Wntk
r0d}YnX|rD|j�n
|j�dS)NTrF)�_thread�ImportError�current_frames_with_threads�current_frames_without_threads)rZhave_threadsr�r
r
r�test_current_frames9s

z!SysModuleTest.test_current_framescs�ddl�ddl}�j���j��g��fdd�}����fdd���jd|�}|j��j�|jt��d��d}tj	�}�j
�}|j||�|j||�|j|�}|j
|tj�k�|j|�}|j|�}xCt|�D](\}	\}
}}}
|dkr4Pq4q4W|jd	�|j|
d
�||	d\}
}}}
|j|d�|j|
dd
g��j�|j�dS)Nrcs��dS)Nr
r
)�g456r
r�f123Rsz7SysModuleTest.current_frames_with_threads.<locals>.f123cs+�j�j���j��j�dS)N)�append�	get_ident�set�waitr
)�	entered_g�leave_g�thread_info�	threadingr
rr�Us
z7SysModuleTest.current_frames_with_threads.<locals>.g456�targetr3r�z)didn't find f123() on thread's call stackzg456()r�zleave_g.wait()zentered_g.set())r��	tracebackZEventZThread�startr�rrtr�_current_framesr�rk�poprr��
extract_stack�	enumerateZfailr��join)rr�r��tZ	thread_id�dZmain_idZframe�stackr`�filename�linenoZfuncnameZ
sourceliner
)r�r�r�r�r�rr�Fs<


%

z)SysModuleTest.current_frames_with_threadscCsStj�}|jt|�d�|jd|�|j|dtj�k�dS)Nr3r)rr�rrtrkrr�)rr�r
r
rr��sz,SysModuleTest.current_frames_without_threadscCs�|jtjt�|jtjt�|jtjd�|jtjt	�|jtj
t�|jtjt�|jtj
t�|jtjt�|jttj�d�|jtjjd�|jttj�d�|jtjjddk�|jtjjdk�|jttjj�t�|jttjj�t�|jtjt�|jttj�d�|jtjjdtjj�xUtdd	�D]D}|jt|tjjdtjj�dd
jtjj��q�W|jtjj t�|jtjj!t�|jtjj"t�t#j$d�}tjj%dkr�|jtjj&ddh�|jtjj'dddh�|dkr�|jtjj%d
�q	|dkr�|jtjj%d�q	|jtjj%dd
h�n|j|d�|j(tjj)d�|jtjj)d�|jtj*t�|jtj+t�|jtj+d�|jtj,t�|jtj-t�|jtj.t�|jtj/t�tj0}|j|dd�t	�|jt|�d�|j|dt�|j|dt�|j|dt�|j|dd�|j|dt�|j|j1t�|j|j2t�|j|j3t�|j|j4d�|j|j5t�|j|d|j1�|j|d|j2�|j|d|j3�|j|d|j4�|j|d|j5�|j|d k�|jtj6t�|jtj6d!�tj,j7d�s�|jtj8t�ndS)"N�little�big�rprorr3�	rJz'sys.hash_info.modulus {} is a non-prime�Py_HASH_ALGORITHM�fnv�	siphash24� �@��i��rq�alpha�beta�	candidate�finalrr�short�legacy�win)zlittler�>r�r�)r�r��	candidate�final)r�r�r�r�)r3rr)r�r�)9rFr�api_versionru�argv�listrk�	byteorder�builtin_module_names�tuple�	copyrightrG�exec_prefix�base_exec_prefixrgrrt�
float_info�radix�int_infor�bits_per_digit�sizeof_digitr��
hexversion�	hash_info�
assertLess�modulus�width�range�pow�format�inf�nan�imag�	sysconfig�get_config_var�	algorithm�	hash_bits�	seed_bits�assertGreaterEqual�cutoff�maxsize�
maxunicoder{�prefix�base_prefix�version�version_inforyrz�micro�releaselevel�serial�float_repr_styler<�abiflags)r�xZalgoZvir
r
r�test_attributes�s� 	zSysModuleTest.test_attributesr�cCsItj}|jt|�d�|j|jd�|j|jd�dS)	Nrq�nt�pthread�solaris�	semaphore�
mutex+cond)zntr�zsolarisN)r�r�N)rr�rrtrk�name�lock)r�infor
r
r�test_thread_info�s	zSysModuleTest.test_thread_infocCs |jtjjtjj�dS)N)rr�
__stdout__�encoding�
__stderr__)rr
r
r�
test_43581�szSysModuleTest.test_43581cCs�td7a|jttj�dtt�}|jtj|�|k�|j�j�}|jtj|�|k�Gdd�dt�}|jttj|d��dS)Nr3znever interned beforec@seZdZdd�ZdS)z$SysModuleTest.test_intern.<locals>.ScSsdS)N�{r
)rr
r
r�__hash__�sz-SysModuleTest.test_intern.<locals>.S.__hash__N)�__name__�
__module__�__qualname__r�r
r
r
r�S�sr��abc)�numrunsrrr�internrGr�swapcase)r�s�s2r�r
r
r�test_intern�s
zSysModuleTest.test_internc
Cs�|jtj�d}xO|D]G}|jttj|�|�|jtttj|��t|�qW|jttj��|jt	tj�t	|��dS)N�debug�inspect�interactive�optimize�dont_write_bytecode�no_user_site�no_site�ignore_environment�verbose�
bytes_warning�quiet�hash_randomization�isolated)
zdebugzinspectzinteractivezoptimizezdont_write_bytecodezno_user_sitezno_sitezignore_environmentzverbosez
bytes_warningzquietzhash_randomizationzisolated)
rr�flagsrrr��getattrru�reprrt)rZattrs�attrr
r
r�test_sys_flags�s
)zSysModuleTest.test_sys_flagscCsPt|�}|jt��|�WdQX|jt��|j|�WdQXdS)N)r�rr�__new__)rZsys_attrZ	attr_typer
r
r�assert_raise_on_new_sys_types

z*SysModuleTest.assert_raise_on_new_sys_typecCs|jtj�dS)N)rrr)rr
r
r�test_sys_flags_no_instantiationsz-SysModuleTest.test_sys_flags_no_instantiationcCs|jtj�dS)N)rrr�)rr
r
r�&test_sys_version_info_no_instantiationsz4SysModuleTest.test_sys_version_info_no_instantiationcCs*tjjtd�|jtj��dS)Nrn)rrrsrrrn)rr
r
r�+test_sys_getwindowsversion_no_instantiationsz9SysModuleTest.test_sys_getwindowsversion_no_instantiationcCstj�dS)N)r�_clear_type_cache)rr
r
r�test_clear_type_cachesz#SysModuleTest.test_clear_type_cachecCs5ttj�}d|d<tjtjddgdtjd|�}|j�dj	�}dtj
jd�}|j||�d	|d<tjtjddgdtjd|�}|j�dj	�}|j|d
�d|d<tjtjddgdtjdtjd|�}|j�\}}|j|d
�|j
d|�|j
d|�d|d<tjtjddgdtjdtjd|�}|j�\}}|j|d
�|j
d|�|j
d|�d|d<tjtjddgdtjd|�}|j�dj	�}|j|d�dS)N�cp424rAz-czprint(chr(0xa2))r�envr�¢z
ascii:replace�?r=rr7sUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))s�)�dict�os�environrerfrrgrhri�strip�linesep�encoderrk)rr�pr!r>r0r
r
r�test_ioencoding#sB


	
	
zSysModuleTest.test_ioencodingz*requires OS support of non-ASCII encodingscCs�ttj�}d|d<tjtjddtjj	gdtj
d|�}|j�dj�}|j
|tjtjj	��dS)NrrAz-cz	print(%a)rrr)r!r"r#rerfrrgrr�FS_NONASCIIrhrir$r�fsencode)rrr'r!r
r
r�test_ioencoding_nonasciiNs
z&SysModuleTest.test_ioencoding_nonasciizTest is not venv-compatiblecCs�|jtjjtj�tj�tjjtjjtj��}tj	dddgdtjdtj
d|�}|j�d}|j�j
d�}|j�|j|d	ttjjd
d��g�dS)NZnonexistentz-czEimport sys; print(sys.executable.encode("ascii", "backslashreplace"))rgr�cwdr�ASCIIzb''r=�backslashreplace)rr"�path�abspathrrg�dirname�realpathrerfrhrir$�decoder�rkrr&)rZ
python_dirr'rrgr
r
r�test_executableZs"!	
zSysModuleTest.test_executableNcCs7|j|�tj|�|r3|j||�ndS)N)ZassertIsNotNone�codecs�lookupr)r�fs_encodingr>r
r
r�check_fsencodingps

zSysModuleTest.check_fsencodingcCsVtj�}tjdkr$d}ntjdkr<d}nd}|j||�dS)N�darwinzutf-8�win32�mbcs)r�getfilesystemencodingr{r8)rr7r>r
r
r�test_getfilesystemencodingvs		z(SysModuleTest.test_getfilesystemencodingcCs1idd6dd6dd6dd6}|jttjd	��|jttjd
��|jttjd��|jttjd��tjj}|j|dd
�|j|jf�|jd>|jd>B|jd>B||j	d>B|j
d>B}|jtjj|�|jtjjtjjj
��dS)N�
r�r�r��r��r�r�r�r��	cache_tagrp��r�rrr)rrr�implementationr�rryrzr�r�r�r�r��lower)rZlevelsr�r�r
r
r�test_implementation�s"&/z!SysModuleTest.test_implementationcCs[ddlm}ddg}||�\}}}|jd|�|jttjd�dS)Nr)rz-cz#import sys; sys._debugmallocstats()sfree PyDictObjectsT)�test.script_helperrrkrrr�_debugmallocstats)rr�argsZretr!r0r
r
r�test_debugmallocstats�s
z#SysModuleTest.test_debugmallocstats�getallocatedblocksz0sys.getallocatedblocks unavailable on this buildcCs�tjd�}tj�}|jt|�t�|rJ|j|d�n|j|d�y|j	|tj
��Wntk
r�YnXtj
�tj�}|j||�tj
�tj�}|j|t|d|d��dS)N�
WITH_PYMALLOCrr^)r�r�rrK�assertIsr�ruZ
assertGreaterr�r�r��AttributeError�gcZcollectZassertLessEqualrkr�)rZ
with_pymallocrT�br�r
r
r�test_getallocatedblocks�s 


z%SysModuleTest.test_getallocatedblocks)9r�r�r�rrr"r(r,r2r6rDrHrS�unittestZ
skipUnlessr�rWr[rarmr~r�rrr�rrZ
refcount_testr�r�r�Zreap_threadsr�r�r�r�r�rrrrrr�cpython_onlyrr(r)r+ZskipIfr�r�r4r8r=rFrJrQr
r
r
rrsZ	B		
	
?Q	+
rcsveZdZdd�Zdd�ZejjZdd�Zdd�Z	d	d
�Z
�fdd�Zd
d�Z�S)�
SizeofTestcCsUtjd�|_tjj|_ddl}|j|_	t
tjj
d�|_dS)N�Pr�wb)�struct�calcsizerUrr�r��	longdigit�	_testcapiZSIZEOF_PYGC_HEAD�gc_headsize�openrr�TESTFN�file)rrZr
r
rr�s
zSizeofTest.setUpcCs'|jj�tjjtjj�dS)N)r^�closerr�unlinkr])rr
r
rr�s
zSizeofTest.tearDowncCsbtjj}|j}|jtjd�|d�|j�|jtjg�|d�|�dS)NTr�Pn)rr�calcvobjsizer[rr�	getsizeofrY)r�vsizeZgc_header_sizer
r
r�test_gc_head_size�s	&zSizeofTest.test_gc_head_sizecCs�Gdd�d�}|jttj|��Gdd�d�}|jttj|��dg}|jtj|�|�|�Gdd�d�}|jttj|��|jtj|�|�|�Gdd	�d	t�}|jtj|tj��tj|j	�|jt
��tj|tjd
��WdQX|jt��tj|d��WdQX|jtt
f�� tj|tjd
��WdQXdS)Nc@seZdZdd�ZdS)z)SizeofTest.test_errors.<locals>.BadSizeofcSs
t�dS)N)r))rr
r
r�
__sizeof__�sz4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__N)r�r�r�rfr
r
r
r�	BadSizeof�srgc@seZdZdd�ZdS)z-SizeofTest.test_errors.<locals>.InvalidSizeofcSsdS)Nr
)rr
r
rrf�sz8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__N)r�r�r�rfr
r
r
r�
InvalidSizeof�srh�sentinelc@seZdZdd�ZdS)z+SizeofTest.test_errors.<locals>.FloatSizeofcSsdS)Ng@r
)rr
r
rrf�sz6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__N)r�r�r�rfr
r
r
r�FloatSizeof�srjc@seZdZdd�ZdS)z.SizeofTest.test_errors.<locals>.OverflowSizeofcSs
t|�S)N)ru)rr
r
rrf�sz9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__N)r�r�r�rfr
r
r
r�OverflowSizeof�srkr3���)rr)rrcrrMrurr�r[�
OverflowError)rrgrhrirjrkr
r
r�test_errors�s$	 zSizeofTest.test_errorscCs_tjj}|jtjd�|d�|j�|jtjdd�|d�|j�dS)NTrr3rl)rrrbrrrcrY)r�sizer
r
r�test_default�s&zSizeofTest.test_defaultc#s�tjj�tjj}|j��d|d�|j��t�d��dddg}x7|D]/}t|�}�||d�|j��qeW�t	t���d���d|d	�d
��dZ|d	�d
�dd�}�|�j
d�d���|�j�d���|j�d��dd�}�|j�d�d
��tdd
��d���t
j�d��ddl}�|jj�d��ddl}�|jj�d���tj�d���ij�d���i�d[dd��id
d
6dd6dd6dd6dd6d d 6d!d!6dd6}	�|	�d\�d"tjd���ij��d���ij��d���ij��d���t	i��d#��Gd$d%�d%t�}
�|
j�d���t��d&���t ddddd��d'���t!ddddd��d'���t"ddd
d��d'���t#�d��ddl$}ddl%}|j&|j'j(�}�|�d(���t)g��d)���t*d��d���t+d��d*���t,j-|d�|j.tt,j-��ddl/}
d+}|
j0�}t|j1j2�}t|j1j3�}|j1j4|j1j5||d
}�||d,|d-d|d��d.d/�}�|�d0��G��fd1d2�d2�}d3d4�}�|��d5���t	d6��d7��ddl6}�|j7dd��d��gd
ddgd8d9d:gg}x2|D]*}�||d;�t|�|j.�q�W�t	g��d7���t*g��d���d|d���d
|d�|j��d]|d�|j�dt,j8j9}�t|�|d�d|j��t|dd
�|d�d|j��t|d�|d�d|j��t:�d<���d�d���t;�d���t��d��G��fd=d%�d%t�}
�t	t<d
���d>���t*d��d���t<d
��d?���t<d@��d?��d}gt<d�t<dA�g}�dB|dd�}x�|D]�}t|�}|dkr!d
}n|d}|}x||krM|d
>}q4W|dkr��t=|�|��t>|�|�q��t=|�||tjd���t>|�||tjd��q�W�t	t=���dC���t?d��d���t@t��d���f|d���d^|d�d|j.�|dD�}tAt,dE�r	|tjd�7}n�t|�|dD�tjdF�}|tjd�dtjd�7}tAt,dE�r�	|tjd�7}nGdGdH�dHt�}�||��|�j�d_��d8dIdJdAdKdLdMdIdNdOdPdIg}dQ}|dR}|d}x�|D]�}tBtC|��} | dSkr�
�|�t|�d
}!nt| dTkr�
�|�t|�d
}!nK| dUkr�|�dt|�d
}!n�|�dt|�d
}!�||!�q{
WtDdV�}�|�|�d�tE|dWdX��|�|�dd�ddlF}"�|"jGt��dY���|"jHt��dY��dS)`NTrZ3Pr7�ui��Zn2PiZnPrRr3�xr>r�csd��fdd�}|S)Nrcs�S)Nr
r
)r�r
r�innersz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.innerr
)rsr
)r�r�get_cellsz-SizeofTest.test_objecttypes.<locals>.get_cellrrUZ5i9Pi3Pcs�fdd�}|S)Ncs�S)Nr
r
)r�r
rrssz=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.innerr
)r�rsr
)r�r�	get_cell2sz.SizeofTest.test_objecttypes.<locals>.get_cell2Z2dZ3PPZ3P2PZ2PZn2PZ2nPnr�rprqrrro��rCZP2nPnc@seZdZdS)z&SizeofTest.test_objecttypes.<locals>.CN)r�r�r�r
r
r
r�C=srxZ5Pbz	5Pb 2P2nPZ32B2iBZn3Pr��Z12P3icZ3icSsdS)Nr
r
r
r
r�func_sz)SizeofTest.test_objecttypes.<locals>.funcZ12PcsZeZdZedd��Zedd��Z�e�d���e�d��dS)z&SizeofTest.test_objecttypes.<locals>.ccSsdS)Nr
r
r
r
r�foobsz*SizeofTest.test_objecttypes.<locals>.c.foocSsdS)Nr
)�clsr
r
r�baresz*SizeofTest.test_objecttypes.<locals>.c.barZPPN)r�r�r��staticmethodr{�classmethodr}r
)�checkror
rr�asr�css	dVdS)Nr3r
r
r
r
r�get_genmsz,SizeofTest.test_objecttypes.<locals>.get_genZPb2Pr�ZlPr4�2�3raZPnPPPcs\eZdZdd�Zdd�Zdd�Zeeeed�Z�e�d��d	S)
z&SizeofTest.test_objecttypes.<locals>.CcSs|jS)N)�_C__x)rr
r
r�getx�sz+SizeofTest.test_objecttypes.<locals>.C.getxcSs
||_dS)N)r�)r�valuer
r
r�setx�sz+SizeofTest.test_objecttypes.<locals>.C.setxcSs
|`dS)N)r�)rr
r
r�delx�sz+SizeofTest.test_objecttypes.<locals>.C.delxrZ4PiN)r�r�r�r�r�r��propertyr�r
)r�ror
rrx�s
Z4lZ4Pi�r^Z3n2PZP3nZP2n15Pl4Pn9Pn11PIPZ	getcountsz34P 3P 10P 2P 4Pc@seZdZdS)z2SizeofTest.test_objecttypes.<locals>.newstyleclassN)r�r�r�r
r
r
r�
newstyleclass�sr�rJ�ÿuĀ�(u￿u𐀀�u􏿿ZnnbPZnPnr��ii@z<stdin>r&Z2Pn2Ps
xxxxxxxxxx�n2P2nPnr�rl)r3rprqr�)Irr�calcobjsizerb�check_sizeofrYrt�	bytearray�	__alloc__�iter�__closure__r��complexrGrE�datetimeZ	timedeltaZdays�collections�defaultdict�default_factoryru�__add__�__iter__rWrX�keys�values�items�object�__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�Ellipsisr5Zencodings.iso8859_3�
charmap_build�	iso8859_3Zdecoding_tabler��reversed�floatrr�rUrZcurrentframer��co_cellvars�co_freevars�co_stacksize�
co_nlocals�re�finditerr�r�rR�NotImplementedr�r��	frozenset�slice�superr�ord�max�chrr%�weakref�ref�proxy)#rrdZsamplesZsampler�rtrur�r�Zlongdictrxr5�	encodingsrZCO_MAXBLOCKSZncellsZnfreesZextrasrzr�r�r�ZPyLong_BASEZ
PySet_MINSIZErZminusedZtmpZnewsizer�ZasciifieldsZ
compactfieldsZ
unicodefieldsZmaxchar�Lr�)�	__class__)r�ror�test_objecttypes�s	
!>$%%"*"'!
($,(	
	
$(
$



!zSizeofTest.test_objecttypescCs�tjj}tjj}|j}ddl}||j�|d��y
t�WnDtk
r�tj	�d}|dk	r�|||d��nYnX|tj
|d�|jttj
��dS)NrrUrpZ2P2ir)
rrr�rbr��_astZASTrrr.rrUrt)rrordr�r��tbr
r
r�test_pythontypes�s	

zSizeofTest.test_pythontypes)
r�r�r�rrrrr�rernrpr�r�r
r
)r�rrT�s	�rTcCstjjtt�dS)N)rrZrun_unittestrrTr
r
r
r�	test_mainsr��__main__)rRZtest.supportrrGrrrrr"rWrercrLrwr5rOr�r{r�r�r�ZTestCaserrrSrTr�r�r
r
r
r�<module>s2$
����L