HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //proc/self/root/opt/alt/python312/lib64/python3.12/test/__pycache__/test_tcl.cpython-312.pyc
�

�h�e�l����ddlZddlZddlZddlZddlmZddlmZddlmZejd�Z
ddlZddlmZddl
m
Z
	ddlmZmZeeee
j,j/d	���ZGd
�dej2�ZGd�d
ej2�ZGd�dej2�Zd�Zedk(rej>�yy#e$rej$xZZY��wxYw)�N)�support)�
import_helper)�	os_helper�_tkinter)�Tcl)�TclError)�INT_MAX�PY_SSIZE_T_MAX�.c��eZdZd�Zy)�TkinterTestc�.�|jttjd�|jttji�|jttjd�|jttjdh�y)NT�string�set)�assertRaises�	TypeErrorr�_flatten��selfs �4/opt/alt/python312/lib64/python3.12/test/test_tcl.py�testFlattenLenzTkinterTest.testFlattenLensf�����)�X�%6�%6��=����)�X�%6�%6��;�	
���)�X�%6�%6��A����)�X�%6�%6���@�N)�__name__�
__module__�__qualname__r�rrr
r
s��Arr
c�`�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�Zej>e jBdk(d�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*��Z0y+),�TclTestc�t�t�|_|jjj�|_y�N)r�interp�tk�wantobjectsrs r�setUpz
TclTest.setUp's$���e����;�;�>�>�5�5�7��rc��|j}|jd�|j|jd�d�y)N�set a 1�set a�1)r!�eval�assertEqual�r�tcls  r�testEvalzTclTest.testEval+s0���k�k�������������'�*�3�/rc�^�|j}|j|jd�d�y)Nzset a "a\0b"�ab)r!r*r)r+s  r�test_eval_null_in_resultz TclTest.test_eval_null_in_result0s$���k�k��������/�2�H�=rc�^�|j}|j|jd�d�y)Nzset a "<\ud83d\udcbb>"�<💻>)r!�assertInr)r+s  r�test_eval_surrogates_in_resultz&TclTest.test_eval_surrogates_in_result4s#���k�k���
�
�c�h�h�8�9�>�Jrc�^�|j}|jt|jd�y)Nr'�r!rrr)r+s  r�testEvalExceptionzTclTest.testEvalException8s!���k�k�����(�3�8�8�G�4rc�^�|j}|jt|jd�y)Nz
this is wrongr6r+s  r�testEvalException2zTclTest.testEvalException2<s!���k�k�����(�3�8�8�O�<rc��|j}|jddd�|j|jdd�d�y)Nr�ar()r!�callr*r+s  r�testCallzTclTest.testCall@s6���k�k������s�3��������%��,�S�1rc�`�|j}|jt|jdd�y)Nrr;�r!rrr<r+s  r�testCallExceptionzTclTest.testCallExceptionEs#���k�k�����(�3�8�8�E�#�6rc�b�|j}|jt|jddd�y)N�this�is�wrongr?r+s  r�testCallException2zTclTest.testCallException2Is%���k�k�����(�3�8�8�F�4��@rc��|j}|jdd�|j|jd�d�y)Nr;r(r'�r!�setvarr*r)r+s  r�
testSetVarzTclTest.testSetVarMs2���k�k���
�
�3�s��������'�*�3�/rc��|j}|jdd�|j|jd�d�y)N�a(1)r(zset a(1)rGr+s  r�testSetVarArrayzTclTest.testSetVarArrayRs2���k�k���
�
�6�#��������*�-�c�2rc��|j}|jd�|j|jd�d�y)Nr&r;r(�r!r)r*�getvarr+s  r�
testGetVarzTclTest.testGetVarWs/���k�k�������������C���-rc��|j}|jd�|j|jd�d�y)Nz
set a(1) 1rKr(rNr+s  r�testGetVarArrayzTclTest.testGetVarArray\s0���k�k�������������F�+�C�0rc�^�|j}|jt|jd�y�Nr;�r!rrrOr+s  r�testGetVarExceptionzTclTest.testGetVarExceptionas!���k�k�����(�3�:�:�c�2rc�^�|j}|jt|jd�y)NrKrUr+s  r�testGetVarArrayExceptionz TclTest.testGetVarArrayExceptiones!���k�k�����(�3�:�:�f�5rc���|j}|jdd�|j|jd�d�|j	d�|j|jd�d�y)Nr;�z
info exists ar(�0�r!rHr*r)�unsetvarr+s  r�testUnsetVarzTclTest.testUnsetVarisW���k�k���
�
�3�q��������/�2�3�7����S��������/�2�3�7rc��|j}|jdd�|jdd�|j|jd�d�|j|jd�d�|j	d�|j|jd�d�|j|jd�d�y)	NrKrZza(2)�zinfo exists a(1)r(zinfo exists a(2)r[r\r+s  r�testUnsetVarArrayzTclTest.testUnsetVarArrayps����k�k���
�
�6�!���
�
�6�!��������"4�5�c�:�������"4�5�c�:����V��������"4�5�c�:�������"4�5�c�:rc�^�|j}|jt|jd�yrT)r!rrr]r+s  r�testUnsetVarExceptionzTclTest.testUnsetVarExceptionzs!���k�k�����(�3�<�<��4rc�.�ddddddddd	d
ddd
zdd
zf
S)NrrZ���i���i�ll����l����l����ll����r`i�rrs r�get_integerszTclTest.get_integers~s4���1�b����������4��!�T�'��#�	#rc	��|jj}|j�D]�}|j|j	d|z�|�|j|j	d|z�|�|j|j	d|zjdd��tdkr|n
td|z��|j|j	d|z�|���|j|j	d�d�|jt|j�|jt|jd	d
�|jt|jd�|jt|jd�|jt|jd
�|jtttf|jd�|jtttf|jd�y)Nz %d z %#o �o�)�	rz%oz %#x �*�42�10s42�E@r;z42u42�)
r!r"rfr*�getint�replace�tcl_version�intrrr�
ValueError�UnicodeEncodeError)rr,�is   r�test_getintzTclTest.test_getint�s����k�k�n�n���"�"�$�	9�A����S�Z�Z���
�3�Q�7����S�Z�Z��!��4�a�8�
���S�Z�Z��1��(=�(=�c�2�(F�G�"-��"6�Q�C��q��M�
K����S�Z�Z��!��4�a�8�	9�	
������B���,����)�S�Z�Z�0����)�S�Z�Z��t�<����)�S�Z�Z��7����)�S�Z�Z��6����(�C�J�J��4����9�j�(�;��*�*�f�	.����-�z�8�D��*�*�j�	2rc���|jj}|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�|j	t
|j�|j	t
|jdd�|j	t
|jd�|j	t|jd	�|j	t
ttf|jd
�|j	tttf|jd�y)Nz 42 rnz 42.5 g@E@rkz42.5rms42.5r;z42.5u42.5�)	r!r"r*�	getdoublerrrrsrtr+s  r�test_getdoublezTclTest.test_getdouble�s���k�k�n�n��������v�.��5�������x�0�$�7�������t�,�d�3�������r�*�D�1����)�S�]�]�3����)�S�]�]�F�D�A����)�S�]�]�G�<����(�C�M�M�3�7����9�j�(�;��-�-��	3����-�z�8�D��-�-��	7rc�2�|jj}|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�|j	t
|j�|j	t
|jdd�|j	t
|jd�|j	t
|jd�|j	t|jd	�|j	t
ttf|jd
�|j	tttf|jd�y)N�onTr(rkrFson��?r;zonuon�)	r!r"�assertIs�
getbooleanrrrrsrtr+s  r�test_getbooleanzTclTest.test_getboolean�s���k�k�n�n���
�
�c�n�n�T�*�D�1��
�
�c�n�n�S�)�4�0��
�
�c�n�n�R�(�$�/��
�
�c�n�n�Q�'��/����)�S�^�^�4����)�S�^�^�T�3�?����)�S�^�^�U�;����)�S�^�^�S�9����(�C�N�N�C�8����9�j�(�;��.�.�&�	2����-�z�8�D��.�.�*�	6rc���|j}tj}|jtj|�t|d�5}|j
d�ddd�|j|�|j|jd�d�|j|jd�d�|j|jd�d�y#1swY�~xYw)	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�evalfiler*r)�rr,�filename�fs    r�testEvalFilezTclTest.testEvalFile�s����k�k���)�)�����	�(�(�(�3�
�(�C�
 �	�A�
�G�G��
�	�
	���X��������'�*�3�/�������'�*�3�/�������'�*�3�/�	�	�s�	C�C!c��|j}tj}|jtj|�t|d�5}|j
d�ddd�|j|�|j|jd�d�|j|jd�d�y#1swY�]xYw)Nr�z>
            set a "ab"
            set b "a\0b"
            r'r/r�r�r�s    r�test_evalfile_null_in_resultz$TclTest.test_evalfile_null_in_result�s����k�k���)�)�����	�(�(�(�3�
�(�C�
 �	�A�
�G�G��
�	�
	���X��������'�*�H�5�������'�*�H�5�	�	�s�	B7�7Cc��|j}|jdd�}|j|jdd|�|jddd�tj}|jtj
|�t
|d�5}|jd�ddd�|j|�|j|jd�d�|j|jd�d�y#1swY�]xYw)	N�encoding�systemzutf-8�wbsM
            set a "<��>"
            set b "<\ud83d\udcbb>"
            r'r2r�)r!r<r�rr�r�r�r�r�r*r))rr,r�r�r�s     r�"test_evalfile_surrogates_in_resultz*TclTest.test_evalfile_surrogates_in_result�s����k�k���8�8�J��1��������*�h��A�����X�w�/��)�)�����	�(�(�(�3�
�(�D�
!�	�Q�
�G�G��
�	�
	���X��������'�*�N�;�������'�*�N�;�	�	�s�C:�:Dc��|j}d}	tj|�|j	t
|j|�y#t$r
}Yd}~�0d}~wwxYw)N�
doesnotexists)r!�os�remove�	Exceptionrrr�)rr,r��es    r�testEvalFileExceptionzTclTest.testEvalFileException�sN���k�k��"��	��I�I�h��	
���(�3�<�<��9���	���	�s�A�	A�Ac�^�|j}|jt|jd�y)Nzpackage require DNEr6r+s  r�testPackageRequireExceptionz#TclTest.testPackageRequireException�s"���k�k�����(�3�8�8�,A�Br�win32zRequires Windowsc��tjjtj�}|ddk7rtjd��dtjd�d|d�d|d	d��}tjj|�stjd
��tj�5}|jd�tj|dd
g�}ddd�|jd�y#1swY�xYw)NrZ�: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_outputr3)r�fullname�unc_name�env�stdouts     r�testLoadWithUNCzTclTest.testLoadWithUNC�s����7�7�?�?�3�>�>�2���A�;�#���#�#�$J�K�K��%'�Z�Z��%?�$,�Q�K�$,�Q�R�L�2���w�w�~�~�h�'��#�#�$@�A�A�
�
*�
*�
,�	H���I�I�m�$��,�,��t�%E�F�H�F�	H�
	
�
�
�j�&�)�	H�	H�s�5*C:�:Dc�����j��jddd��jddd���fd�}�jt�j��jt�jdd��jt�jd	��jt
�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,��y)-Nrr;r��b�c�x���j|�}�j||��j|t�yr )�
exprstringr*�assertIsInstance�str��expr�expected�resultrr,s   ��r�checkz&TclTest.test_exprstring.<locals>.checks1����^�^�D�)�F����V�X�.��!�!�&�#�.r�8.2�+6�8.2 + 6�spamrir[�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"r/�2**64�)r!r<rrr�rr��rr�r,s` @r�test_exprstringzTclTest.test_exprstrings\����k�k�������Q�������Q��	/�
	
���)�S�^�^�4����)�S�^�^�U�D�A����)�S�^�^�Z�@����(�C�N�N�F�;�
�b�#��
�i�� �
�j�%� �
�m�U�#�
�!�3�'�
�&��,�
�i���
�n�e�$�
�g�s��
�i�� �
�4�f�=�
�j�%� �
�n�c�"�
�-�s�3�
�.��4�
�g�u��
�o�}�-�
��
�.�
�i��"�
�g�s�5�z�"rc������j��jddd��jddd���fd�}�jt�j��jt�jdd��jt�jd	��jt
�jd
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|d d�|d!d"�|d#d"��jt
�jd$�|d%t
d&��y)'Nrr;r�r�r�c�x���j|�}�j||��j|t�yr )�
exprdoubler*r��floatr�s   ��rr�z&TclTest.test_exprdouble.<locals>.check-s1����^�^�D�)�F����V�X�.��!�!�&�%�0rr�r�r�r�ri�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!r<rrr�rr�r�s` @r�test_exprdoublezTclTest.test_exprdouble)sI����k�k�������Q�������Q��	1�
	
���)�S�^�^�4����)�S�^�^�U�D�A����)�S�^�^�Z�@����(�C�N�N�F�;�
�b�#��
�i���
�j�#��
�m�S�!�
�!�3�'�
�&��,�
�i���
�n�c�"�
�g�s��
�i���
�4�d�;�
�j�#��
�n�c�"�
�-�s�3�
�.��4����(�C�N�N�G�<�
�g�u�U�|�$rc�����j��jddd��jddd���fd�}�jt�j��jt�jdd��jt�jd	��jt
�jd
�|dd�|d
d�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|dd��jt
�jd ��jt
�jd!�y)"Nrr;r�r�r�c�x���j|�}�j||��j|t�yr )�exprlongr*r�rrr�s   ��rr�z$TclTest.test_exprlong.<locals>.checkLs1����\�\�$�'�F����V�X�.��!�!�&�#�.rr�r�r�r�rirr��r�r��r��r�r�r�r�rZr�r�r��r�r�r�r�r�)r!r<rrr�rr�s` @r�
test_exprlongzTclTest.test_exprlongHsQ����k�k�������Q�������Q��	/�
	
���)�S�\�\�2����)�S�\�\�5�$�?����)�S�\�\�:�>����(�C�L�L�&�9�
�b�!��
�i���
�j�!��
�m�Q��
�!�1�%�
�&��*�
�i���
�n�a� �
�g�q��
�i���
�4�a�8�
�j�!��
�n�a� �
�-�q�1�
�.��2����(�C�L�L�'�:����(�C�L�L�'�:rc�����j��jddd��jddd���fd�}�jt�j��jt�jdd��jt�jd	��jt
�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��jt
�jd �|d!d�y)"Nrr;r�r�r�c����j|�}�j||��j|t��j	|t
�yr )�exprbooleanr*r�rr�assertNotIsInstance�boolr�s   ��rr�z'TclTest.test_exprboolean.<locals>.checkksA����_�_�T�*�F����V�X�.��!�!�&�#�.��$�$�V�T�2rr�r�r�r�riF)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!r<rrr�r)rr��valuer,s`  @r�test_exprbooleanzTclTest.test_exprbooleangs�����k�k�������Q�������Q��	3�	
���)�S�_�_�5����)�S�_�_�e�T�B����)�S�_�_�j�A����(�C�O�O�V�<�
�b�%��0�	)�E��%����&�5�.�%�(��&�5�.�%�(�	)�0�	(�E��%����&�5�.�$�'��&�5�.�$�'�	(�	�i���
�j�$��
�m�T�"�
�!�4�(�
�&��.�
�i���
�n�d�#�
�g�t��
�i���
�4�d�;�
�j�$��
�n�d�#�
�-�t�4�
�.��5����(�C�O�O�W�=�
�g�t�rc�����j���fd�}|dd�|dd�|dd�|dd�|dd�|d	d�|d
d�|dd�y)Nc	����jd|�}�j�r)�j||��j|t�y�j||t
t	|��f��j|t�y�Nr�)r<r#r*r�rrr3r�r�s   ��rr�z$TclTest.test_booleans.<locals>.check�si����X�X�f�d�+�F���� �� � ���2��%�%�f�c�2��
�
�f�t�S��X��-?�&@�A��%�%�f�c�2rr�Tr�r{r�Fr�r�z1 < 2z1 > 2)r!r�s` @r�
test_booleanszTclTest.test_booleans�sc����k�k��	3�	�f�d��
�e�T��
�d�D��
�g�u��
�d�E��
�e�U��
�g�t��
�g�u�rc�H�|j}|j�D]�}|jdt|��}|jr)|j||�|j
|t��S|j|t|��|j
|t���yr�)r!rfr<r�r#r*r�rr)rr,rur�s    r�test_expr_bignumzTclTest.test_expr_bignum�s����k�k���"�"�$�	3�A��X�X�f�c�!�f�-�F����� � ���+��%�%�f�c�2�� � ���Q��0��%�%�f�c�2�	3rc	�����fd�}�j|d��jrdnd��j|d��jrdnd��j|d�d��j|d�d��j|d�d��j|d	�d	��j|d
�d
��j|d�d��j|d�d�tjd
k7r0�j|d�d��j|d�d��j|d��jrdnd	��j|d��jrdnd��j|d��jrdnd��j	�D]1}�j||��jr|n
t|���3ddddtjjtjjtjjtjjfD]H}�jr�j||�|��(�jt||��|��J�jrz|td��}�j||��j|td��td���j|td��td��nh�jt|td���td���jt|td���td���j|d��jrdnd��j|dd d!gg��jrd"�yd#�y)$Nc�>���jjdd|�S)Nr�_)r!r<)r�rs �r�	passValuez.TclTest.test_passing_values.<locals>.passValue�s����;�;�#�#�E�3��6�6rTr(Fr[r�	string€�
string💻�string�	string½�
string€ustring💻r��<���>�<€>�<������>r2�string�str��ing�
strÀ€ingsstr�ingustr½ingr�r|���UUUUUU�?�nan�inf�rZr���333333@z1 2 3.4r;r��c)r;)r�r�a {b c})r*r#r��platformrfr��
float_info�min�maxr��assertNotEqual)rrrur�s`   r�test_passing_valueszTclTest.test_passing_values�s\���	7�	
����4��$�2B�2B�$��L�����5�)�D�4D�4D�5�#�N�����8�,�h�7�����>�2�N�C�����#5�6�8J�K�����<�0�,�?�����#3�4�6F�G�����#5�6�8J�K�����#9�:�/�	1��<�<�7�"����Y�'=�>�'�
)����Y�'O�P�+�
-�����=�1�*.�*:�*:���	N�����#4�5�.2�.>�.>�*�DT�	V�����=�1�*.�*:�*:���	N��"�"�$�	N�A����Y�q�\��0@�0@�1�c�!�f�M�	N��s�D�#��.�.�$�$�c�n�n�&8�&8��>�>�%�%�%����(:�(:�':�<�	9�A����� � ��1��q�1�� � ��y��|�!4�a�8�
	9�����%��,�'�A�����1�%����Y�u�U�|�4�e�E�l�C����Y��e��}�5��e��}�E����U�9�U�5�\�#:�;�U�5�\�J����U�9�e�E�l�]�#;�<�u�U�|�m�L�����#3�4�-1�-=�-=�)�9�	N�����C�#�s��#4�5�.2�.>�.>�*�	O�DM�	Orc�P���d��fd�}�jjd|��j�jjjd�d,�j
d���fd�}�fd�}|dd�|dd	�|d
�|d�|d�|d
�tjdk7r|dd�|dd�|d�|dd
�|dd�|dd�|dd�|d�|d�|d�|dd�|dd�|dd ��j�D]}||t|���d!D]}||t|���d"tjjtjjtjjtjjfD]}|||���|td#�|��|td#�|��|d$d�|d%d&�|d'd(gd)d*gd+ggd&�y)-Nc���|�|Sr r)�argr�s �r�testfuncz+TclTest.test_user_command.<locals>.testfunc�s
����F��Jrr)�eqc����|�|}d��jjd|�}�j�t�|�|��j|t�|||�y)Nr)r!r<r�r�)r�r�r �rr�rs    ��rr�z(TclTest.test_user_command.<locals>.check�s\����� ���F���� � ��U�3�A��!�!�&�#�.��v�x� ��!�!�!�S�)��q�(�Orc�X���jt|�|t|�dz��y)Ng�����|�=)�delta)�assertAlmostEqualr��abs)�actualr�rs  �r�float_eqz+TclTest.test_user_command.<locals>.float_eq�s+����"�"�5��=�(�),�X���)>�
#�
@rTr(Fr[rustring½rrr�rrr	r2risstrings	string€ustring€sstring�rrrrr
rrsstr��ing€ustrÀ€ing€)r�r|r
rrr)rZ)r`)r�r��5 6rz1 2 {3 4} {5 6} {}rZr`r�r�r)r )r!�
createcommandr�r"�
deletecommandr*r�rrfr��reprrrrr�)rrr�r(rur�r�s`     @r�test_user_commandzTclTest.test_user_command�s�����	�	
���!�!�*�h�7���������4�4�j�A�		�d�.>�.>�		�	@�	�d�C��
�e�S��
�h��
�l��
�n��
� �!��<�<�7�"��(�*�5��:�N�K�
�b�	�
�i��"�
�#�%9�:�
�m�\�*�
�c�2��
�l��
���
� �!�
�m�\�*�
��!1�2�
�+�-I�J��"�"�$�	�A��!�S��V��	�!�	�A��!�T�!�W��	�����+�+�S�^�^�-?�-?��>�>�%�%�%����(:�(:�':�<�	"�A��!��!�	"�	�e�E�l�x�(�
�u�U�|�m��)�
�b�"�
�
�*�,@�A�
�q�1�$��A���r�*�,@�Arc��|jjj}|jjj}|j	t
|�|j	t
|dd�|j	t
|d�dddddd	d
ddd
ddddddddddgdfdddggdddgff|dddd�|jrdndfg}|jsd }nd!}||d"d#d$d%d&d�|fgz
}d'|j�d(t�d)|jj���}|D]$\}}|j||�|d*|�d+|����&|j	t|d,�y)-Nr;r�r`)r�)r�)rir)�{}�ri)z""r0)z
a
 b	
 c
 �r;r�r)s
a
 b	
 c
 r1)ua €�r;�€)ua 💻�r;u💻)sa €r2)sa 💻r4)sa ��r4)s	a��b c��d)r/zcd)r�r;zb c)za b\ cr5)r5r5)za 2)r;r�)�r;r`r6)za 3.4)r;�3.4)�r;rr8)rrrr�listrZr�rr)r(r�r7)�12r3u€r7)�r3�€r�dict�creater;r3r<zwant objects? z, Tcl version: z, Tcl patchlevel: zarg=z, �{)r!r"�	splitlistr<rrr#rq�info_patchlevelr*r)rr@r<�	testcasesr��dbg_infor�ress        r�test_splitlistzTclTest.test_splitlists����K�K�N�N�,�,�	��{�{�~�~�"�"�����)�Y�/����)�Y��S�9����)�Y��2�����/�0�)�1�0�8�@�<�%�%�(�� �#�$��
��H��C��:�
��s�C�j� 1�2�
�&�!�S�&�
)�$(�$4�$4� �!�
#�/
�	�6���>�H�>�H��
�&�(�B��/�6�
J��
�
�	
�	�
�'�'��d�k�k�6Q�6Q�6S�U��!�	=�H�C�����Y�s�^�S�-0�(�;�
=�	=�	
���(�I�s�3rc
��tj}|jj}d}|j	|||d�dddd��|j	|||�dddd��d}|j	|||d�d	dd
d��|j	|||�d	dd
d��|jt||d�|jt||d�|jd
dd	dddd�}|j	|||�|jrd	ndddd��|jdddd	dddd�}|jsdddd�}nd	ddd�}|j	|||�|�y)Nz#-a {1 2 3} -something foo status {}Fz1 2 3�foori)�-a�
-something�status)r;�	somethingrJ)rH�rZr`r�rIrGrJr/rLr/z-a b -c )rHr�r�r9rHrIrJrr=r>)	�tkinter�
_splitdictr!r"r*r�RuntimeErrorr<r#)r�	splitdictr,rr�s     r�test_splitdictzTclTest.test_splitdictEs����&�&�	��k�k�n�n��3������3��U�3��%�2�>�	@�����3��,����<�	>�E������3��U�3��E�T�B�	D�����3��,��%�4�@�	B�	
���,�	�3�
�C����,�	�3�8I�J��h�h�v��i��u�h��L������3��,�#�/�/�)�W��2�
/�	0��h�h�v�x��Y��e�X�r�K�����$�5�B�G�H�&�U�b�I�H�����3��,�h�7rc�������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�y)Nc�*���jd|d�S)N�lindexr)r<)�sr,s �r�unpackz!TclTest.test_join.<locals>.unpackis����8�8�H�a��+�+rc
����j��|g��|��j��|dg��|��j���|gg���|��j���|dgg���|��j���|gdg���|��j���|dgdg���|�y)Nr)r*)r��joinrrVs ���rr�z TclTest.test_join.<locals>.checkks�������V�D�%��M�2�E�:����V�D�%���$4�5�u�=����V�F�4�%��	�?�$;�<�e�D����V�F�4�%����+=�$>�?��G����V�F�4�%��!��+=�$>�?��G����V�F�4�%���Q��+@�$A�B�E�Jrrir�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}
)rM�_joinr!r")rr�rXr,rVs` @@@r�	test_joinzTclTest.test_joinfs�����}�}���k�k�n�n��	,�	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
�yr )r�check_disallow_instantiationr�Tcl_Obj�TkttType�	TkappTypers r�test_new_tcl_objzTclTest.test_new_tcl_obj�sD���,�,�T�8�3C�3C�D��,�,�T�8�3D�3D�E��,�,�T�8�3E�3E�FrN)1rrrr$r-r0r4r7r9r=r@rErIrLrPrRrVrXr^rarcrfrvryrr�r�r�r�r�r��
skipUnlessr�rr�r�r�r�r�r�r�rr-rErQrZr�cpython_onlyr`rrrrr%s��8�0�
>�K�5�=�2�
7�A�0�
3�
.�
1�
3�6�8�;�5�#�2�*
7�6� 0�6�<�":�C��X�������0�2D�E�*�F�*�* #�D%�>;�>&�P�&	3�.O�`6B�p.4�`8�B#�J
���G��Grrc��eZdZd�Zej
ejee	kd�ejedzdd��d����Zej
ejee	kd�ejedzdd��d	����Zej
ejee	kd�ejedzd
d��d����Z
y)
�
BigmemTclTestc�"�t�|_yr )rr!rs rr$zBigmemTclTest.setUp�s���e��rzneeds UINT_MAX < SIZE_MAXrZr�F)�size�memuse�dry_runc�j�d|z}|jt|jjdd|d�y)N� r�indexr)r�
OverflowErrorr!r<)rrfr�s   r�test_huge_string_callz#BigmemTclTest.test_huge_string_call�s0���d�
�����-����)9�)9�8�W�e�UV�Wrr`c��|jj}dd|zz}|jt|j|�|jt|j
|�|jt|j|�|jt|j|�|jt|j|�|jt|j|�|jt|j|�|jt|j|dd�|jt|jd|d�|jt|j|�|jt|jd|�|jt|j|�|jt|j|�|jt|j|�|jt|j|�|jt|j |�|jt|j"|t$�|jt|j&|�y)Nr(rj�xr;)r!r"rrlrorxr~r)r��record�adderrorinforHr]r�r�r�r@r*rr+�rrfr"r�s    r�test_huge_string_builtinsz'BigmemTclTest.test_huge_string_builtins�s����[�[�^�^���c�D�j� �����-����E�:����-����u�=����-�����>����-����%�8����-����e�<����-����E�:����-����%�@����-����E�3��D����-����C���D����-����e�<����-����c�5�A����-����%�@����-�����>����-����e�<����-�����?����-����u�=����-��)9�)9�5�#�F����-��)9�)9�5�Arr�c��|jj}dd|zz}|jt|j|�|jt|j
|�|jt|j
d|�y)Nr(rjro)r!r"rrlr�r]rrs    r�test_huge_string_builtins2z(BigmemTclTest.test_huge_string_builtins2�sc��
�[�[�^�^���c�D�j� �����-����e�<����-����e�<����-����c�5�ArN)rrrr$rrbr�rar	r
�
bigmemtestrmrsrurrrrdrd�s���
����X����>�1�3N�O��W���W�q�[��E�B�X�C�P��X�
����X����>�1�3N�O��W���W�q�[��E�B�B�C�P��B�,
����X����>�1�3N�O��W���W�q�[��E�B�B�C�P��Brrdc�v�tjr)t�}td|j	dd�d��yy)Nzpatchlevel =�info�
patchlevelT)�flush)r�verboser�printr<)r,s r�setUpModuler}�s,������e��
�n�c�h�h�v�|�<�D�I�r�__main__) r�r�r�r��testr�test.supportrr�
import_modulerrMrr�	_testcapir	r
�ImportError�maxsize�tuple�maprr�TCL_VERSION�splitrq�TestCaser
rrdr}r�mainrrr�<module>r�s�����
�	��&�"�'�=�&�&�z�2�����+�1��C��X�1�1�7�7��<�=�>��
A�(�#�#�
A�j	G�h���j	G�X.B�H�%�%�.B�bJ��z���H�M�M�O���m�+�"�{�{�*�G�n�+�s�C�C&�%C&