Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_tcl.cpython-311.opt-1.pyc
�

�Ke/m����ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZe
jd��Z
ddlZddlmZddl
mZ	ddlmZmZn#e$rejxZZYnwxYweeee
j�d	������Zdad
�ZGd�dej��ZGd
�dej��Z Gd�dej��Z!d�Z"e#dkrej$��dSdS)�N)�support)�
import_helper)�	os_helper�_tkinter)�Tcl)�TclError)�INT_MAX�PY_SSIZE_T_MAX�.c�b�t�"t��}|���atS�N)�_tk_patchlevelr�info_patchlevel��tcls �7/usr/local/apps/python3/lib/python3.11/test/test_tcl.py�get_tk_patchlevelrs(�����e�e���,�,�.�.����c��eZdZd�ZdS)�TkinterTestc�8�|�ttjd��|�ttji��|�ttjd��|�ttjdh��dS)NT�string�set)�assertRaises�	TypeErrorr�_flatten��selfs r�testFlattenLenzTkinterTest.testFlattenLen%sx�����)�X�%6��=�=�=����)�X�%6��;�;�;�	
���)�X�%6��A�A�A����)�X�%6���@�@�@�@�@rN)�__name__�
__module__�__qualname__r�rrrr#s(������A�A�A�A�Arrc�X�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zeje j!dkd��d���Z"d�Z#d �Z$d!�Z%d"�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+d(�Z,d)�Z-e.j/d*���Z0d+S),�TclTestc�r�t��|_|jj���|_dSr
)r�interp�tk�wantobjectsrs r�setUpz
TclTest.setUp2s+���e�e����;�>�5�5�7�7����rc��|j}|�d��|�|�d��d��dS)N�set a 1�set a�1)r'�eval�assertEqual�rrs  r�testEvalzTclTest.testEval6sC���k���������������'�*�*�3�/�/�/�/�/rc�f�|j}|�|�d��d��dS)Nzset a "a\0b"�ab)r'r0r/r1s  r�test_eval_null_in_resultz TclTest.test_eval_null_in_result;s1���k��������/�2�2�H�=�=�=�=�=rc�f�|j}|�|�d��d��dS)Nzset a "<\ud83d\udcbb>"�<💻>)r'�assertInr/r1s  r�test_eval_surrogates_in_resultz&TclTest.test_eval_surrogates_in_result?s0���k���
�
�c�h�h�8�9�9�>�J�J�J�J�Jrc�V�|j}|�t|jd��dS)Nr-�r'rrr/r1s  r�testEvalExceptionzTclTest.testEvalExceptionCs)���k�����(�3�8�G�4�4�4�4�4rc�V�|j}|�t|jd��dS)Nz
this is wrongr;r1s  r�testEvalException2zTclTest.testEvalException2Gs)���k�����(�3�8�O�<�<�<�<�<rc��|j}|�ddd��|�|�dd��d��dS)Nr�ar.)r'�callr0r1s  r�testCallzTclTest.testCallKsI���k������s�3����������%��,�,�S�1�1�1�1�1rc�X�|j}|�t|jdd��dS)Nrr@�r'rrrAr1s  r�testCallExceptionzTclTest.testCallExceptionPs+���k�����(�3�8�E�#�6�6�6�6�6rc�Z�|j}|�t|jddd��dS)N�this�is�wrongrDr1s  r�testCallException2zTclTest.testCallException2Ts-���k�����(�3�8�F�4��@�@�@�@�@rc��|j}|�dd��|�|�d��d��dS)Nr@r.r-�r'�setvarr0r/r1s  r�
testSetVarzTclTest.testSetVarXsE���k���
�
�3�s����������'�*�*�3�/�/�/�/�/rc��|j}|�dd��|�|�d��d��dS)N�a(1)r.zset a(1)rLr1s  r�testSetVarArrayzTclTest.testSetVarArray]sE���k���
�
�6�#����������*�-�-�c�2�2�2�2�2rc��|j}|�d��|�|�d��d��dS)Nr,r@r.�r'r/r0�getvarr1s  r�
testGetVarzTclTest.testGetVarbsA���k���������������C����-�-�-�-�-rc��|j}|�d��|�|�d��d��dS)Nz
set a(1) 1rPr.rSr1s  r�testGetVarArrayzTclTest.testGetVarArraygsC���k���������������F�+�+�C�0�0�0�0�0rc�V�|j}|�t|jd��dS�Nr@�r'rrrTr1s  r�testGetVarExceptionzTclTest.testGetVarExceptionls)���k�����(�3�:�c�2�2�2�2�2rc�V�|j}|�t|jd��dS)NrPrZr1s  r�testGetVarArrayExceptionz TclTest.testGetVarArrayExceptionps)���k�����(�3�:�f�5�5�5�5�5rc��|j}|�dd��|�|�d��d��|�d��|�|�d��d��dS)Nr@�z
info exists ar.�0�r'rMr0r/�unsetvarr1s  r�testUnsetVarzTclTest.testUnsetVartsy���k���
�
�3�q����������/�2�2�3�7�7�7����S����������/�2�2�3�7�7�7�7�7rc���|j}|�dd��|�dd��|�|�d��d��|�|�d��d��|�d��|�|�d��d��|�|�d��d��dS)	NrPr_za(2)�zinfo exists a(1)r.zinfo exists a(2)r`rar1s  r�testUnsetVarArrayzTclTest.testUnsetVarArray{s����k���
�
�6�!�����
�
�6�!����������"4�5�5�c�:�:�:�������"4�5�5�c�:�:�:����V����������"4�5�5�c�:�:�:�������"4�5�5�c�:�:�:�:�:rc�V�|j}|�t|jd��dSrY)r'rrrbr1s  r�testUnsetVarExceptionzTclTest.testUnsetVarException�s)���k�����(�3�<��4�4�4�4�4rc�.�ddddddddd	d
ddd
zdd
zf
S)Nrr_���i���i�ll����l����l����ll����rei�r#rs r�get_integerszTclTest.get_integers�s4���1�b����������4��!�T�'��#�	#rc	�(�|jj}|���D]�}|�|�d|z��|��|�|�d|z��|��|�|�d|z�dd����|��|�|�d|z��|����|�|�d��d��|�t|j��|�t|jdd��|�t|jd	��|�t|jd
��|�t|jd��|�tttf|jd��|�tttf|jd
��dS)Nz %d z %#o �o�z %#x �*�42�10s42�E@r@z42u42�)r'r(rkr0�getint�replacerrr�
ValueError�UnicodeEncodeError)rr�is   r�test_getintzTclTest.test_getint�s����k�n���"�"�$�$�	9�	9�A����S�Z�Z���
�3�3�Q�7�7�7����S�Z�Z��!��4�4�a�8�8�8����S�Z�Z��1��(=�(=�c�2�(F�(F�G�G��K�K�K����S�Z�Z��!��4�4�a�8�8�8�8�������B����,�,�,����)�S�Z�0�0�0����)�S�Z��t�<�<�<����)�S�Z��7�7�7����)�S�Z��6�6�6����(�C�J��4�4�4����9�j�(�;��*�f�	.�	.�	.����-�z�8�D��*�j�	2�	2�	2�	2�	2rc�&�|jj}|�|�d��d��|�|�d��d��|�|�d��d��|�|�d��d��|�t
|j��|�t
|jdd��|�t
|jd��|�t|jd	��|�t
ttf|jd
��|�tttf|jd��dS)Nz 42 rrz 42.5 g@E@roz42.5rqs42.5r@z42.5u42.5�)	r'r(r0�	getdoublerrrrurvr1s  r�test_getdoublezTclTest.test_getdouble�sV���k�n��������v�.�.��5�5�5�������x�0�0�$�7�7�7�������t�,�,�d�3�3�3�������r�*�*�D�1�1�1����)�S�]�3�3�3����)�S�]�F�D�A�A�A����)�S�]�G�<�<�<����(�C�M�3�7�7�7����9�j�(�;��-��	3�	3�	3����-�z�8�D��-��	7�	7�	7�	7�	7rc�h�|jj}|�|�d��d��|�|�d��d��|�|�d��d��|�|�d��d��|�t
|j��|�t
|jdd��|�t
|jd��|�t
|jd��|�t|jd	��|�t
ttf|jd
��|�tttf|jd��dS)N�onTr.rorFson��?r@zonuon�)	r'r(�assertIs�
getbooleanrrrrurvr1s  r�test_getbooleanzTclTest.test_getboolean�sh���k�n���
�
�c�n�n�T�*�*�D�1�1�1��
�
�c�n�n�S�)�)�4�0�0�0��
�
�c�n�n�R�(�(�$�/�/�/��
�
�c�n�n�Q�'�'��/�/�/����)�S�^�4�4�4����)�S�^�T�3�?�?�?����)�S�^�U�;�;�;����)�S�^�S�9�9�9����(�C�N�C�8�8�8����9�j�(�;��.�&�	2�	2�	2����-�z�8�D��.�*�	6�	6�	6�	6�	6rc��|j}tj}|�tj|��t|d��5}|�d��ddd��n#1swxYwY|�|��|�|�	d��d��|�|�	d��d��|�|�	d��d��dS)	N�wzKset a 1
            set b 2
            set c [ expr $a + $b ]
            r-r.�set b�2zset c�3�
r'r�TESTFN_ASCII�
addCleanup�unlink�open�write�evalfiler0r/�rr�filename�fs    r�testEvalFilezTclTest.testEvalFile�s%���k���)�����	�(�(�3�3�3�
�(�C�
 �
 �	�A�
�G�G��
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	���X����������'�*�*�3�/�/�/�������'�*�*�3�/�/�/�������'�*�*�3�/�/�/�/�/��A&�&A*�-A*c��|j}tj}|�tj|��t|d��5}|�d��ddd��n#1swxYwY|�|��|�|�	d��d��|�|�	d��d��dS)Nr�z>
            set a "ab"
            set b "a\0b"
            r-r4r�r�r�s    r�test_evalfile_null_in_resultz$TclTest.test_evalfile_null_in_result�s���k���)�����	�(�(�3�3�3�
�(�C�
 �
 �	�A�
�G�G��
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	���X����������'�*�*�H�5�5�5�������'�*�*�H�5�5�5�5�5r�c�H�|j}|�dd��}|�|jdd|��|�ddd��tj}|�tj|��t
|d��5}|�d��ddd��n#1swxYwY|�|��|�	|�
d��d��|�	|�
d��d��dS)	N�encoding�systemzutf-8�wbsM
            set a "<��>"
            set b "<\ud83d\udcbb>"
            r-r7r�)r'rAr�rr�r�r�r�r�r0r/)rrr�r�r�s     r�"test_evalfile_surrogates_in_resultz*TclTest.test_evalfile_surrogates_in_result�sF���k���8�8�J��1�1�������*�h��A�A�A�����X�w�/�/�/��)�����	�(�(�3�3�3�
�(�D�
!�
!�	�Q�
�G�G��
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	���X����������'�*�*�N�;�;�;�������'�*�*�N�;�;�;�;�;s�B0�0B4�7B4c��|j}d}	tj|��n#t$r
}Yd}~nd}~wwxYw|�t
|j|��dS)N�
doesnotexists)r'�os�remove�	Exceptionrrr�)rrr��es    r�testEvalFileExceptionzTclTest.testEvalFileException�sp���k��"��	��I�h�������	�	�	��D�D�D�D�����	�������(�3�<��9�9�9�9�9s� �
4�4c�V�|j}|�t|jd��dS)Nzpackage require DNEr;r1s  r�testPackageRequireExceptionz#TclTest.testPackageRequireException�s*���k�����(�3�8�,A�B�B�B�B�Br�win32zRequires Windowsc�*�tj�tj��}|ddkrtjd���dtjd�d|d�d|d	d���}tj�|��stjd
���tj
��5}|�d��tj
|dd
g��}ddd��n#1swxYwY|�d|��dS)Nr_�:z$Absolute path should have drive partz\\�COMPUTERNAME�\rz$\�zCannot connect to UNC Path�TCL_LIBRARY�-czimport tkinter; print(tkinter)stkinter)r��path�abspath�sys�
executable�unittest�SkipTest�environ�existsr�EnvironmentVarGuard�unset�
subprocess�check_outputr8)r�fullname�unc_name�env�stdouts     r�testLoadWithUNCzTclTest.testLoadWithUNC�sW���7�?�?�3�>�2�2���A�;�#����#�$J�K�K�K��%'�Z��%?�%?�%?�$,�Q�K�K�K�$,�Q�R�R�L�L�2���w�~�~�h�'�'�	B��#�$@�A�A�A�
�
*�
,�
,�	H���I�I�m�$�$�$��,��t�%E�F�H�H�F�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�
	
�
�
�j�&�)�)�)�)�)s�9-C2�2C6�9C6c�����j���ddd����ddd����fd�}��t�j����t�jdd����t�jd	����t
�jd
��|dd��|d
d��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|d d��|d!d"��|d#d"��|d$d%��|d&d'��|d(d'��|d)d*��|d+t
d,����dS)-Nrr@r��b�c�����|��}��||����|t��dSr
)�
exprstringr0�assertIsInstance�str��expr�expected�resultrrs   ��r�checkz&TclTest.test_exprstring.<locals>.checksF����^�^�D�)�)�F����V�X�.�.�.��!�!�&�#�.�.�.�.�.r�8.2�+6�8.2 + 6�spamrnr`�8.2 + 6z14.2�3.1 + $az6.1�2 + "$a.$b"z5.6�4*[llength "6 2"]�8�{word one} < "word $a"�4*2 < 7�hypot($a, 4)z5.0�5 / 4r.�5 / 4.0z1.25�$5 / ( [string length "abcd"] + 0.0 )�20.0/5.0z4.0�"0x03" > "2"�[string length "a½€"]r��[string length "a\xbd\u20ac"]�"abc"�abcu"a½€"ua½€z
"a\xbd\u20ac"z"a\0b"r4�2**64�)r'rArrr�rr��rr�rs` @r�test_exprstringzTclTest.test_exprstrings6�����k�������Q���������Q����	/�	/�	/�	/�	/�	/�
	
���)�S�^�4�4�4����)�S�^�U�D�A�A�A����)�S�^�Z�@�@�@����(�C�N�F�;�;�;�
��b�#����
��i�� � � �
��j�%� � � �
��m�U�#�#�#�
��!�3�'�'�'�
��&��,�,�,�
��i�����
��n�e�$�$�$�
��g�s����
��i�� � � �
��4�f�=�=�=�
��j�%� � � �
��n�c�"�"�"�
��-�s�3�3�3�
��.��4�4�4�
��g�u����
��o�}�-�-�-�
���
�.�.�.�
��i��"�"�"�
��g�s�5�z�z�"�"�"�"�"rc�d����j���ddd����ddd����fd�}��t�j����t�jdd����t�jd	����t
�jd
��|dd��|d
d��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|d d��|d!d"��|d#d"����t
�jd$��|d%t
d&����dS)'Nrr@r�r�r�c�����|��}��||����|t��dSr
)�
exprdoubler0r��floatr�s   ��rr�z&TclTest.test_exprdouble.<locals>.check5sF����^�^�D�)�)�F����V�X�.�.�.��!�!�&�%�0�0�0�0�0rr�r�r�r�rn�r�gffffff,@r�gffffff@r�gffffff@r�g @r�r�r�g@r�r~r�g�?r�r�g@r�r�g@r�r�r�r�)r'rArrr�rr�r�s` @r�test_exprdoublezTclTest.test_exprdouble1s�����k�������Q���������Q����	1�	1�	1�	1�	1�	1�
	
���)�S�^�4�4�4����)�S�^�U�D�A�A�A����)�S�^�Z�@�@�@����(�C�N�F�;�;�;�
��b�#����
��i�����
��j�#����
��m�S�!�!�!�
��!�3�'�'�'�
��&��,�,�,�
��i�����
��n�c�"�"�"�
��g�s����
��i�����
��4�d�;�;�;�
��j�#����
��n�c�"�"�"�
��-�s�3�3�3�
��.��4�4�4����(�C�N�G�<�<�<�
��g�u�U�|�|�$�$�$�$�$rc�t����j���ddd����ddd����fd�}��t�j����t�jdd����t�jd	����t
�jd
��|dd��|d
d��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd����t
�jd ����t
�jd!��dS)"Nrr@r�r�r�c�����|��}��||����|t��dSr
)�exprlongr0r��intr�s   ��rr�z$TclTest.test_exprlong.<locals>.checkTsF����\�\�$�'�'�F����V�X�.�.�.��!�!�&�#�.�.�.�.�.rr�r�r�r�rnrr��r�r��r��r�r�r�r�r_r�r�r��r�r�r�r�r�)r'rArrr�rr�s` @r�
test_exprlongzTclTest.test_exprlongPs	�����k�������Q���������Q����	/�	/�	/�	/�	/�	/�
	
���)�S�\�2�2�2����)�S�\�5�$�?�?�?����)�S�\�:�>�>�>����(�C�L�&�9�9�9�
��b�!����
��i�����
��j�!����
��m�Q����
��!�1�%�%�%�
��&��*�*�*�
��i�����
��n�a� � � �
��g�q����
��i�����
��4�a�8�8�8�
��j�!����
��n�a� � � �
��-�q�1�1�1�
��.��2�2�2����(�C�L�'�:�:�:����(�C�L�'�:�:�:�:�:rc�����j���ddd����ddd����fd�}��t�j����t�jdd����t�jd	����t
�jd
��|dd��d
D],}||d��|d|zd��|d|zd���-dD],}||d��|d|zd��|d|zd���-|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd����t
�jd ��|d!d��dS)"Nrr@r�r�r�c������|��}��||����|t����|t
��dSr
)�exprbooleanr0r�r��assertNotIsInstance�boolr�s   ��rr�z'TclTest.test_exprboolean.<locals>.checkss\����_�_�T�*�*�F����V�X�.�.�.��!�!�&�#�.�.�.��$�$�V�T�2�2�2�2�2rr�r�r�r�rnF)r`�false�no�offz"%s"z{%s})r.�true�yesr}Tr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)r'rArrr�r)rr��valuers`  @r�test_exprbooleanzTclTest.test_exprbooleanos������k�������Q���������Q����	3�	3�	3�	3�	3�	3�	
���)�S�_�5�5�5����)�S�_�e�T�B�B�B����)�S�_�j�A�A�A����(�C�O�V�<�<�<�
��b�%����0�	)�	)�E��E�%������E�&�5�.�%�(�(�(��E�&�5�.�%�(�(�(�(�/�	(�	(�E��E�%������E�&�5�.�$�'�'�'��E�&�5�.�$�'�'�'�'�
��i�����
��j�$����
��m�T�"�"�"�
��!�4�(�(�(�
��&��.�.�.�
��i�����
��n�d�#�#�#�
��g�t����
��i�����
��4�d�;�;�;�
��j�$����
��n�d�#�#�#�
��-�t�4�4�4�
��.��5�5�5����(�C�O�W�=�=�=�
��g�t�����rc������j���fd�}|dd��|dd��|dd��|dd��|dd��|d	d��|d
d��|dd��dS)Nc	�\����d|��}����r3��||����|t��dS��||t
t	|����f����|t��dS�Nr�)rAr)r0r�r�r8r�r�s   ��rr�z$TclTest.test_booleans.<locals>.check�s�����X�X�f�d�+�+�F���� � �
3�� � ���2�2�2��%�%�f�c�2�2�2�2�2��
�
�f�t�S��X���-?�-?�&@�A�A�A��%�%�f�c�2�2�2�2�2rr�Tr�r}r�Fr�r�z1 < 2z1 > 2)r'r�s` @r�
test_booleanszTclTest.test_booleans�s������k��	3�	3�	3�	3�	3�	3�	��f�d����
��e�T����
��d�D����
��g�u����
��d�E����
��e�U����
��g�t����
��g�u�����rc�v�|j}|���D]�}|�dt|����}|jr2|�||��|�|t���^|�|t|����|�|t����dSr�)r'rkrAr�r)r0r�r�)rrrwr�s    r�test_expr_bignumzTclTest.test_expr_bignum�s����k���"�"�$�$�	3�	3�A��X�X�f�c�!�f�f�-�-�F���
3�� � ���+�+�+��%�%�f�c�2�2�2�2�� � ���Q���0�0�0��%�%�f�c�2�2�2�2�	3�	3rc	�����fd�}��|d���jrdnd����|d���jrdnd����|d��d����|d��d����|d��d����|d	��d	����|d
��d
����|d��d����|d��d��tjd
kr>��|d��d����|d��d����|d���jrdnd	����|d���jrdnd����|d���jrdnd������D]7}��||���jr|nt|�����8ddddtjjtjjtjjtjjfD]U}�jr ��||��|���)��t||����|���V�jr�|td����}��
||����|td����td������|td����td����n���t|td������td������t|td������td������|d���jrdnd����|dd d!gg���jrd"nd#��dS)$Nc�<���j�dd|��S)Nr�_)r'rA)r�rs �r�	passValuez.TclTest.test_passing_values.<locals>.passValue�s����;�#�#�E�3��6�6�6rTr.Fr`r�	string€�
string💻�string�	string½�
string€ustring💻r��<���>�<€>�<������>r7�string�str��ing�
strÀ€ingsstr�ingustr½ingr�r~���UUUUUU�?�nan�inf�r_r���333333@z1 2 3.4r@r��c)r@)r�r�a {b c})r0r)r��platformrkr��
float_info�min�maxr��assertNotEqual)rrrwr�s`   r�test_passing_valueszTclTest.test_passing_values�s����	7�	7�	7�	7�	7�	
�����4���$�2B�*K�$�$��L�L�L������5�)�)�D�4D�+M�5�5�#�N�N�N������8�,�,�h�7�7�7������>�2�2�N�C�C�C������#5�6�6�8J�K�K�K������<�0�0�,�?�?�?������#3�4�4�6F�G�G�G������#5�6�6�8J�K�K�K������#9�:�:�/�	1�	1�	1��<�7�"�"����Y�Y�'=�>�>�'�
)�
)�
)����Y�Y�'O�P�P�+�
-�
-�
-������=�1�1�*.�*:�L����	N�	N�	N������#4�5�5�.2�.>�T�*�*�DT�	V�	V�	V������=�1�1�*.�*:�L����	N�	N�	N��"�"�$�$�	N�	N�A����Y�Y�q�\�\��0@�+L�1�1�c�!�f�f�M�M�M�M��s�D�#��.�$�c�n�&8��>�%�%���(:�':�<�	9�	9�A���
9�� � ���1���q�1�1�1�1�� � ��y�y��|�|�!4�!4�a�8�8�8�8���	M��	�%��,�,�'�'�A�����1�%�%�%����Y�Y�u�U�|�|�4�4�e�E�l�l�C�C�C����Y�Y��e���}�5�5��e���}�E�E�E�E����U�9�9�U�5�\�\�#:�#:�;�;�U�5�\�\�J�J�J����U�9�9�e�E�l�l�]�#;�#;�<�<�u�U�|�|�m�L�L�L������#3�4�4�-1�-=�L�)�)�9�	N�	N�	N������C�#�s��#4�5�5�.2�.>�M�*�*�I�	O�	O�	O�	O�	Orc����d��fd�}�j�d|�����jjjd��d,�jd���fd�}�fd�}|dd��|dd	��|d
��|d��|d��|d
��tjdkr|dd��|dd��|d��|dd
��|dd��|dd��|dd��|d��|d��|d��|dd��|dd��|dd ������D]}||t|�����d!D]}||t|�����d"tjjtjj
tjjtjj
fD]}|||����|td#��|���|td#��|���|d$d��|d%d&��|d'd(gd)d*gd+ggd&��dS)-Nc���|�|Sr
r#)�argr�s �r�testfuncz+TclTest.test_user_command.<locals>.testfunc�s
����F��Jrr#)�eqc����|�|}d��j�d|��}���t��|�|����|t��|||��dS)Nr#)r'rAr�r�)r�r�r$�rr�rs    ��rr�z(TclTest.test_user_command.<locals>.check�s{����� ���F��� � ��U�3�3�A��!�!�&�#�.�.�.��B�v�x� � � ��!�!�!�S�)�)�)��B�q�(�O�O�O�O�Orc�r����t|��|t|��dz���dS)Ng�����|�=)�delta)�assertAlmostEqualr��abs)�actualr�rs  �r�float_eqz+TclTest.test_user_command.<locals>.float_eq�sG����"�"�5��=�=�(�),�X����)>�
#�
@�
@�
@�
@�
@rTr.Fr`rustring½rrr�rrr
r7rnsstrings	string€ustring€sstring�rrr	r
rrrsstr��ing€ustrÀ€ing€)r�r~rrrr#)r_)re)r�r��5 6r#z1 2 {3 4} {5 6} {}r_rer�r�r-r
)r'�
createcommandr�r(�
deletecommandr0r�rrkr��reprrrrr�)rr#r�r,rwr�r�s`     @r�test_user_commandzTclTest.test_user_command�s2������	�	�	�	�	�	
��!�!�*�h�7�7�7�������4�j�A�A�A�		�d�.>�		�		�		�		�		�		�		�		�	@�	@�	@�	@�	@�	��d�C����
��e�S����
��h����
��l����
��n����
�� �!�!�!��<�7�"�"��E�(�*�5�5�5��E�:�N�K�K�K�
��b�	�	�	�
��i��"�"�"�
��#�%9�:�:�:�
��m�\�*�*�*�
��c�2����
��l����
������
�� �!�!�!�
��m�\�*�*�*�
���!1�2�2�2�
��+�-I�J�J�J��"�"�$�$�	�	�A��E�!�S��V�V�����!�	�	�A��E�!�T�!�W�W��������+�S�^�-?��>�%�%���(:�':�<�	"�	"�A��E�!��!�!�!�!�!�
��e�E�l�l�x�(�(�(�(�
��u�U�|�|�m��)�)�)�)�
��b�"�
�
�
�
��*�,@�A�A�A�
��q�1�$��A���r�*�,@�A�A�A�A�Arc��|jjj}|jjj}|�t
|��|�t
|dd��|�t
|d��dddddd	d
ddd
ddddddddddgdfdddggdddgff|dddd��|jrdndfg}t��}|jsd }nd!}||d"d#d$d%d&d��|fgz
}d'|j�d(t�d)|��}|D]+\}}|�	||��|d*|�d+|�����,|�t|d,��dS)-Nr@r�re)r�)r�)rnr#)�{}�rn)z""r4)z
a
 b	
 c
 �r@r�r)s
a
 b	
 c
 r5)ua €�r@�€)ua 💻�r@u💻)sa €r6)sa 💻r8)sa ��r8)s	a��b c��d)r4zcd)r�r@zb c)za b\ cr9)r9r9)za 2)r@r�)�r@rer:)za 3.4)r@�3.4)�r@rr<)r#r#r#r�listr_r�rr)r.r�r;)�12r7u€r;)�r7�€r�dict�creater?r7r@zwant objects? z, Tcl version: z, Tk patchlevel: zarg=z, �{)r'r(�	splitlistrArrr)r�tcl_versionr0r)	rrDrA�	testcases�
tk_patchlevelr��dbg_infor"�ress	         r�test_splitlistzTclTest.test_splitlists����K�N�,�	��{�~�"�����)�Y�/�/�/����)�Y��S�9�9�9����)�Y��2�2�2�����/�0�)�1�0�8�@�<�%�%�(�� �#�$��
��H��C��:�
��s�C�j� 1�2�
�T�&�!�S�&�
)�
)�$(�$4�"� � �!�
#�/
�	�6*�+�+�
���	?�>�H�H�>�H��
�T�&�(�B��/�6�
J�
J��
�
�	
�	�	�
�'�'�'����m�m�E��!�	=�	=�H�C�����Y�Y�s�^�^�S�S�-0�S�S�(�(�;�
=�
=�
=�
=����(�I�s�3�3�3�3�3rc
��tj}|jj}d}|�|||d��dddd���|�|||��dddd���d}|�|||d��d	dd
d���|�|||��d	dd
d���|�t||d��|�t||d��|�d
dd	dddd��}|�|||��|jrd	ndddd���|�dddd	dddd��}|jsdddd�}nd	ddd�}|�|||��|��dS)Nz#-a {1 2 3} -something foo status {}Fz1 2 3�foorn)�-a�
-something�status)r@�	somethingrO)rM�r_rer�rNrLrOr3rQr3z-a b -c )rMr�r�r=rMrNrOr#rArB)	�tkinter�
_splitdictr'r(r0r�RuntimeErrorrAr))r�	splitdictrr"r�s     r�test_splitdictzTclTest.test_splitdictNs���&�	��k�n��3�������3��U�3�3��%�2�>�>�	@�	@�	@������3��,�,����<�<�	>�	>�	>�E�������3��U�3�3��E�T�B�B�	D�	D�	D������3��,�,��%�4�@�@�	B�	B�	B�	
���,�	�3�
�C�C�C����,�	�3�8I�J�J�J��h�h�v��i��u�h��L�L�������3��,�,�#�/�<�)�)�W��2�
/�
/�	0�	0�	0��h�h�v�x��Y��e�X�r�K�K����	J�$�5�B�G�G�H�H�&�U�b�I�I�H������3��,�,�h�7�7�7�7�7rc�f�����tj��jj��fd�����fd�}|d��|d��|d��|d��|d��|d��|d	��|d
��|d��|d��|d
��|d��|d��|d��|d��|d��|d��|d��|d��|d��|d��|d��|d��|d��dS)Nc�2����d|d��S)N�lindexr)rA)�srs �r�unpackz!TclTest.test_join.<locals>.unpackrs����8�8�H�a��+�+�+rc
�N������|g����|������|dg����|�������|gg������|�������|dgg������|�������|gdg������|�������|dgdg������|��dS)Nr)r0)r��joinrr[s ���rr�z TclTest.test_join.<locals>.checktsG������V�V�D�D�%��M�M�2�2�E�:�:�:����V�V�D�D�%���$4�$4�5�5�u�=�=�=����V�V�F�F�4�4�%��	�?�?�$;�$;�<�<�e�D�D�D����V�V�F�F�4�4�%����+=�+=�$>�$>�?�?��G�G�G����V�V�F�F�4�4�%��!��+=�+=�$>�$>�?�?��G�G�G����V�V�F�F�4�4�%���Q��+@�+@�$A�$A�B�B�E�J�J�J�J�Jrrnr�zsp amzsp	amzsp
amz 	
z{spam}z{sp am}z"spam"z"sp am"z{"spam"}z"{spam}"zsp\amz"sp\am"z	"{}" "{}"z"\z"{z"}z
\z
{z
}z\
z{
z}
)rR�_joinr'r()rr�r]rr[s` @@@r�	test_joinzTclTest.test_joinos��������}���k�n��	,�	,�	,�	,�	,�	K�	K�	K�	K�	K�	K�	K�	��b�	�	�	�
��f�
�
�
�
��g����
��h����
��h����
��g����
��h����
��i����
��h����
��i����
��j����
��j����
��h����
��j����
��k����
��e����
��d����
��d����
��f�
�
�
�
��e����
��e����
��f�
�
�
�
��e����
��e�����rc��tj|tj��tj|tj��tj|tj��dSr
)r�check_disallow_instantiationr�Tcl_Obj�TkttType�	TkappTypers r�test_new_tcl_objzTclTest.test_new_tcl_obj�sJ���,�T�8�3C�D�D�D��,�T�8�3D�E�E�E��,�T�8�3E�F�F�F�F�FrN)1r r!r"r*r2r5r9r<r>rBrErJrNrQrUrWr[r]rcrfrhrkrxr{r�r�r�r�r�r�r��
skipUnlessr�rr�r�r�r�r�r�rrr1rJrVr_r�cpython_onlyrer#rrr%r%0s�������8�8�8�0�0�0�
>�>�>�K�K�K�5�5�5�=�=�=�2�2�2�
7�7�7�A�A�A�0�0�0�
3�3�3�
.�.�.�
1�1�1�
3�3�3�6�6�6�8�8�8�;�;�;�5�5�5�#�#�#�2�2�2�$
7�
7�
7�6�6�6� 0�0�0�6�6�6�<�<�<�":�:�:�C�C�C��X�����0�2D�E�E�*�*�F�E�*�* #� #� #�D%�%�%�>;�;�;�>&�&�&�P���&	3�	3�	3�.O�.O�.O�`6B�6B�6B�p/4�/4�/4�b8�8�8�B#�#�#�J
��G�G���G�G�Grr%c��eZdZd�Zejejee	kd��ej
edzdd���d�������Zejejee	kd��ej
edzdd���d	�������Zejejee	kd��ej
edzd
d���d�������Z
dS)
�
BigmemTclTestc�,�t��|_dSr
)rr'rs rr*zBigmemTclTest.setUp�s���e�e����rzneeds UINT_MAX < SIZE_MAXr_r�F)�size�memuse�dry_runc�b�d|z}|�t|jjdd|d��dS)N� r�indexr)r�
OverflowErrorr'rA)rrkr�s   r�test_huge_string_callz#BigmemTclTest.test_huge_string_call�s7���d�
�����-���)9�8�W�e�UV�W�W�W�W�Wrrec���|jj}dd|zz}|�t|j|��|�t|j|��|�t|j|��|�t|j|��|�t|j|��|�t|j	|��|�t|j
|��|�t|j|dd��|�t|jd|d��|�t|j|��|�t|jd|��|�t|j
|��|�t|j
|��|�t|j|��|�t|j|��|�t|j|��|�t|j|t$��|�t|j|��dS)Nr.ro�xr@)r'r(rrqrsrzr�r/r��record�adderrorinforMrbr�r�r�rDr.rr/�rrkr(r�s    r�test_huge_string_builtinsz'BigmemTclTest.test_huge_string_builtins�s���[�^���c�D�j� �����-���E�:�:�:����-���u�=�=�=����-����>�>�>����-���%�8�8�8����-���e�<�<�<����-���E�:�:�:����-���%�@�@�@����-���E�3��D�D�D����-���C���D�D�D����-���e�<�<�<����-���c�5�A�A�A����-���%�@�@�@����-����>�>�>����-���e�<�<�<����-����?�?�?����-���u�=�=�=����-��)9�5�#�F�F�F����-��)9�5�A�A�A�A�Arr�c��|jj}dd|zz}|�t|j|��|�t|j|��|�t|jd|��dS)Nr.rort)r'r(rrqr�rbrws    r�test_huge_string_builtins2z(BigmemTclTest.test_huge_string_builtins2�sq��
�[�^���c�D�j� �����-���e�<�<�<����-���e�<�<�<����-���c�5�A�A�A�A�ArN)r r!r"r*rrgr�rfr	r
�
bigmemtestrrrxrzr#rrriri�sZ���������
���X���>�1�3N�O�O��W��W�q�[��E�B�B�B�X�X�C�B�P�O���X�
���X���>�1�3N�O�O��W��W�q�[��E�B�B�B�B�B�C�B�P�O���B�,
���X���>�1�3N�O�O��W��W�q�[��E�B�B�B�B�B�C�B�P�O���B�B�Brric��tjr6t��}td|�dd��d���dSdS)Nzpatchlevel =�info�
patchlevelT)�flush)r�verboser�printrArs r�setUpModuler��sK����J��e�e��
�n�c�h�h�v�|�<�<�D�I�I�I�I�I�I�J�Jr�__main__)%r��locale�rer�r�r��warnings�testr�test.supportrr�
import_modulerrRrr�	_testcapir	r
�ImportError�maxsize�tuple�mapr��TCL_VERSION�splitrErr�TestCaserr%rir�r �mainr#rr�<module>r�s,������
�
�
�
�	�	�	�	�����
�
�
�
�	�	�	�	�����������&�&�&�&�&�&�"�"�"�"�"�"�'�=�&�z�2�2������������������+�1�1�1�1�1�1�1�1�1���+�+�+�"�{�*�G�n�n�n�+�����e�C�C��X�1�7�7��<�<�=�=�>�>�������
A�
A�
A�
A�
A�(�#�
A�
A�
A�h	G�h	G�h	G�h	G�h	G�h��h	G�h	G�h	G�T.B�.B�.B�.B�.B�H�%�.B�.B�.B�bJ�J�J��z����H�M�O�O�O�O�O��s�A�A*�)A*