HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/tkinter/test/test_ttk/__pycache__/test_widgets.cpython-37.opt-1.pyc
B

��g1
�@sddlZddlZddlmZmZddlmZddlZddlmZddl	m
Z
mZmZm
Z
ddlmZmZmZmZmZmZmZed�Gdd	�d	e�ZGd
d�de
ej�ZGdd
�d
ee�Zee�Gdd�deej��Zee�Gdd�deej��ZGdd�de�Zee�Gdd�deej��Zee�Gdd�deej��Zee�Gdd�deej��Zeee�Gdd�deej��Z eee�Gdd�de ej��Z!eee�Gdd�deej��Z"ee�Gd d!�d!eej��Z#Gd"d#�d#eej�Z$ee�Gd$d%�d%eej��Z%ee�Gd&d'�d'eej��Z&e�'ej(d(kd)�ee�Gd*d+�d+eej���Z)eee�Gd,d-�d-eej��Z*eee�Gd.d/�d/e ej��Z+ee�Gd0d1�d1eej��Z,ee�Gd2d3�d3eej��Z-ee�Gd4d5�d5eej��Z.eee!e eeee$e*e"e&e#e%e)e-e.e+e,efZ/e0d6k�re�1�dS)7�N)�ttk�TclError)�requires)�
MockTclObj)�AbstractTkTest�tcl_version�get_tk_patchlevel�simulate_mouse_click)�add_standard_options�noconv�AbstractWidgetTest�StandardOptionsTests�IntegerSizeTests�PixelSizeTests�setUpModuleZguic@s$eZdZdd�Zdd�Zdd�ZdS)�StandardTtkOptionsTestscCs\|��}|�|dd�d}t�dkr*d}|j|dd|d�|jdd�}|�|dd�dS)	N�class�z"attempt to change read-only option)��r�beta�z"Attempt to change read-only option�Foo)�errmsg)�class_)�create�assertEqualr�checkInvalidParam)�self�widgetr�widget2�r!�>/usr/local/lib/python3.7/tkinter/test/test_ttk/test_widgets.py�
test_classs
z"StandardTtkOptionsTests.test_classcCs�|��}|j|dddd�|j|dddd�|j|dddd�|j|dd	d
d�|j|dddd�|�|dd
�|j|dddd�dS)N�paddingr)�0)�expected�)�5)r'r)r(�6)r'r�)r(r)�7)r'rr*r)r(r)r+�8)Z5pZ6pZ7pZ8pr!r)r�
checkParam)rrr!r!r"�test_paddings

z$StandardTtkOptionsTests.test_paddingcCsj|��}|�|dd�d}t|d�r8dt|d���}|j|dd|d�|jdd�}|�|d	d�dS)
N�stylerzLayout Foo not found�default_orientzLayout %s.Foo not foundr)r)rr)rr�hasattr�getattr�titler)rrrr r!r!r"�
test_style)s

z"StandardTtkOptionsTests.test_styleN)�__name__�
__module__�__qualname__r#r.r4r!r!r!r"rs
rcs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�
WidgetTestz,Tests methods available in every ttk widget.cs6t���tj|jddd�|_|j��|j��dS)NrZText)�width�text)�super�setUpr�Button�rootr�pack�wait_visibility)r)�	__class__r!r"r<;s

zWidgetTest.setUpcCs�|j��|�|j�t|j��d�t|j��d��d�|�|j�dd�d�|�tj	|jjdd�|�tj	|jjdd�|�tj	|jjdd�dS)N��label���rr')
r�update_idletasksr�identify�int�winfo_width�winfo_height�assertRaises�tkinterr)rr!r!r"�
test_identifyBs

zWidgetTest.test_identifycCs>|�|j��d�|�|j�dg�d�|�|j�dg�d�|�|j�dg�d�|�|j�ddg�d�|�|j�ddg�d�|�|j�ddg�d�dd	�}|�|jjdg|d
fddi�d
ddif�|j��}|�tj|jjd
g�|�tj|jjdd
g�|�||j���|j�ddg�|�|j��d�dS)Nr!z	!disabledT�disabled)z	!disabled�active)z!activerMc[s||fS)Nr!)Zarg1�kwr!r!r"�test_cb_sz-WidgetTest.test_widget_state.<locals>.test_cb�hi�msgZthereZbadstate)rN)rr�stateZinstaterJrKr)rrPZ	currstater!r!r"�test_widget_stateOs(

zWidgetTest.test_widget_state)r5r6r7�__doc__r<rLrT�
__classcell__r!r!)rAr"r88s
r8c@seZdZeZdS)�AbstractToplevelTestN)r5r6r7r�_conv_pixelsr!r!r!r"rWssrWc@seZdZdZdd�ZdS)�	FrameTest)	�borderwidthr�cursor�heightr$�reliefr/�	takefocusr9cKstj|jf|�S)N)rZFramer>)r�kwargsr!r!r"rszFrameTest.createN)r5r6r7�OPTIONSrr!r!r!r"rYwsrYc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�LabelFrameTest)
rZrr[r\�labelanchor�labelwidgetr$r]r/r^r:�	underliner9cKstj|jf|�S)N)rZ
LabelFramer>)rr_r!r!r"r�szLabelFrameTest.createcCsB|��}|j|ddddddddd	d
ddd
dd�|�|dd�dS)Nrb�e�en�es�n�neZnw�sZse�sw�wZwnZwsz!Bad label anchor specification {})r�center)r�checkEnumParamr)rrr!r!r"�test_labelanchor�s
zLabelFrameTest.test_labelanchorcCs8|��}tj|jddd�}|j|d|dd�|��dS)NZMuppZfoo)r:�namercz.foo)r&)rr�Labelr>r-�destroy)rrrCr!r!r"�test_labelwidget�szLabelFrameTest.test_labelwidgetN)r5r6r7r`rrorsr!r!r!r"ra�srac@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�AbstractLabelTestcCs�tj|jdd�}tj|jdd�}|j|||dd�|j||ddd�|j|||fdd�|j|||d|fdd�|j||ddd�|j||d	d
d�dS)N�image1)�masterrp�image2)ru)r&rN)rurNrwzimage1 active image2�spamzimage "spam" doesn't exist)r)rKZ
PhotoImager>r-r)rrrp�imagerwr!r!r"�checkImageParam�s

z!AbstractLabelTest.checkImageParamcCs(|��}|�|ddddddddd	�
dS)
N�compound�noner:ryrm�topZbottom�left�right)rrn)rrr!r!r"�
test_compound�szAbstractLabelTest.test_compoundcCs|��}|�|dddd�dS)NrSrNrM�normal)r�checkParams)rrr!r!r"�
test_state�szAbstractLabelTest.test_statecCs|��}|�|dddd�dS)Nr9i�in���r)rr�)rrr!r!r"�
test_width�szAbstractLabelTest.test_widthN)r5r6r7rzr�r�r�r!r!r!r"rt�s
rtc@s$eZdZdZeZdd�Zdd�ZdS)�	LabelTest)�anchor�
backgroundrZrr{r[�font�
foregroundry�justifyr$r]rSr/r^r:�textvariablerdr9Z
wraplengthcKstj|jf|�S)N)rrqr>)rr_r!r!r"r�szLabelTest.createcCs|��}|�|dd�dS)Nr�z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*)rr-)rrr!r!r"�	test_font�szLabelTest.test_fontN)r5r6r7r`rrXrr�r!r!r!r"r��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
ButtonTest)r�commandr{r[�defaultryr$rSr/r^r:r�rdr9cKstj|jf|�S)N)rr=r>)rr_r!r!r"r�szButtonTest.createcCs|��}|�|dddd�dS)Nr�r�rNrM)rrn)rrr!r!r"�test_default�szButtonTest.test_defaultcs2g�tj|j�fdd�d�}|��|���dS)Ncs
��d�S)N�)�appendr!)�successr!r"�<lambda>��z(ButtonTest.test_invoke.<locals>.<lambda>)r�)rr=r>�invoke�
assertTrue)rZbtnr!)r�r"�test_invoke�szButtonTest.test_invokeN)r5r6r7r`rr�r�r!r!r!r"r��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�CheckbuttonTest)rr�r{r[ry�offvalue�onvaluer$rSr/r^r:r�rd�variabler9cKstj|jf|�S)N)r�Checkbuttonr>)rr_r!r!r"r�szCheckbuttonTest.createcCs |��}|�|ddddd�dS)Nr�r�gffffff@rz
any string)rr�)rrr!r!r"�
test_offvalue�szCheckbuttonTest.test_offvaluecCs |��}|�|ddddd�dS)Nr�r�gffffff@rz
any string)rr�)rrr!r!r"�test_onvalue�szCheckbuttonTest.test_onvaluecs�g��fdd�}tj|j|d�}|�|��d�|�tj|jj	|d�|�
�}|�|d�|�|d|j�	|d��|���d|d	<|�
�}|�t
|��|�t��d
�|�|d|j�	|d��dS)Ncs��d�dS)Nr�zcb test called)r�r!)r�r!r"�cb_test�s
z,CheckbuttonTest.test_invoke.<locals>.cb_test)r�)Z	alternater�zcb test calledr�rr�r�r�)rr�r>rrSrJrKr�tk�globalgetvarr�r��assertFalse�str�assertLessEqual�len)rr��cbtn�resr!)r�r"r��s"



zCheckbuttonTest.test_invokeN)r5r6r7r`rr�r�r�r!r!r!r"r��s
r�csxeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�	EntryTest)r�rr[�exportselectionr�r��invalidcommandr��showrSr/r^r��validate�validatecommandr9�xscrollcommandcst���|��|_dS)N)r;r<r�entry)r)rAr!r"r<!s
zEntryTest.setUpcKstj|jf|�S)N)rZEntryr>)rr_r!r!r"r%szEntryTest.createcCs|��}|�|d�dS)Nr�)r�checkCommandParam)rrr!r!r"�test_invalidcommand(szEntryTest.test_invalidcommandcCs6|��}|�|dd�|�|dd�|�|dd�dS)Nr��*r� )rr-)rrr!r!r"�	test_show,szEntryTest.test_showcCs|��}|�|dddd�dS)NrSrMr��readonly)rr�)rrr!r!r"r�2szEntryTest.test_statec
Cs$|��}|�|ddddddd�dS)Nr��all�key�focusZfocusinZfocusoutr|)rrn)rrr!r!r"�
test_validate7szEntryTest.test_validatecCs|��}|�|d�dS)Nr�)rr�)rrr!r!r"�test_validatecommand<szEntryTest.test_validatecommandcCs>|�|j�d��|�tj|jjd�|�tj|jjd�dS)NrZnoindex)�assertIsBoundingBoxr��bboxrJrKr)rr!r!r"�	test_bboxAszEntryTest.test_bboxcCs�|j��|j��|j��tjdkr@|�|j�dd�d�n|�|j�dd�d�|�|j�dd�d�|�	t
j|jjdd�|�	t
j|jjdd�|�	t
j|jjdd�dS)N�darwinr')�textareazCombobox.buttonr�rDr)r�r?r@rE�sys�platformZassertInrFrrJrKr)rr!r!r"rLGs



zEntryTest.test_identifycs�g��fdd�}d|jd<dd�|jd<||jd<|j��|���d|jd<|j��|�t��d	�||jd<d
d�|jd<|j��|�t��d	�d|jd<|j��|�t��d	�d|jd<|�tj|jj�dS)Ncs
��d�S)NT)r�r!)r�r!r"r�[r�z3EntryTest.test_validation_options.<locals>.<lambda>r|r�cSsdS)NFr!r!r!r!r"r�^r�r�r�rr�cSsdS)NTr!r!r!r!r"r�ir�T)r�r�r�rr�rJrKr)rZtest_invalidr!)r�r"�test_validation_optionsYs&










z!EntryTest.test_validation_optionscsrg��fdd�}d|jd<|j�|�df|jd<|j�dd�|j�dd	�|��d
dg�|�|j��d	�dS)Ncs6d|��krdks(n��d�dS��d�dS)N�a�zFT)�lowerr�)Z	to_insert)�
validationr!r"r�ws


z+EntryTest.test_validation.<locals>.validater�r�z%Sr��endr�r�FT)r��register�insertr�get)rr�r!)r�r"�test_validationus
zEntryTest.test_validationcCs�dd�}|j�|�df|jd<|j�dd�|�|j��d�|�|j��d�|j�d	d�|�|j��d
�|j�dd�|�|j��d�|�|j��d
�|j�d�|�|j��d�|�|j��d�dS)NcSs0x*|D]"}d|��kr"dksndSqWdS)Nr�r�FT)r�)ZcontentZletterr!r!r"r��s
z-EntryTest.test_revalidation.<locals>.validatez%Pr�r�ZavocadoTr!rrZa1bF)�invalidr�)r�r�r�rr�rS�deleter�)rr�r!r!r"�test_revalidation�szEntryTest.test_revalidation)r5r6r7r`r<rr�r�r�r�r�r�rLr�r�r�rVr!r!)rAr"r�sr�csPeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
�ZS)�ComboboxTest)r�rr[r�r�r�r\r�r��postcommandr�rSr/r^r�r�r��valuesr9r�cst���|��|_dS)N)r;r<r�combo)r)rAr!r"r<�s
zComboboxTest.setUpcKstj|jf|�S)N)r�Comboboxr>)rr_r!r!r"r�szComboboxTest.createc
Cs$|��}|�|ddddddd�dS)Nr\�dg�����LY@gfffff�Y@i����rZ1i)rr�)rrr!r!r"�test_height�szComboboxTest.test_heightcCsD|j��}|jjd|ddd�|jjd|ddd�|j��dS)Nz<ButtonPress-1>r')�x�yz<ButtonRelease-1>)r�rH�event_generaterE)rr9r!r!r"�_show_drop_down_listbox�s
z$ComboboxTest._show_drop_down_listboxcszg�dg|jd<|j�d�fdd��|j��|j��|j��}|��|j��|j�d�|j��|���dS)Nr�r�z<<ComboboxSelected>>cs
��d�S)NT)r�)�evt)r�r!r"r��r�z1ComboboxTest.test_virtual_event.<locals>.<lambda>z<Return>)	r��bindr?r@rIr��updater�r�)rr\r!)r�r"�test_virtual_event�s




zComboboxTest.test_virtual_eventcsbg��fdd�|jd<|j��|j��|��|���d|jd<|��|�t��d�dS)Ncs
��d�S)NT)r�r!)r�r!r"r��r�z/ComboboxTest.test_postcommand.<locals>.<lambda>r�rr�)r�r?r@r�r�rr�)rr!)r�r"�test_postcommand�s



zComboboxTest.test_postcommandcs��fdd�}���jdtdkr$dnd�|dd��j�jddd	d
����jdd	����jdd����jdd�dd
dg�jd<�j�d�|dd��j�d�|dd��j�d�|dd��j�d�d�jd<|dd��jjd
ddgd����jd�j�rdnd�dddg�jd<���jd�j�rDdnd�dddg�jd<���jd�j�rrdnd���t	j
�jjt�jd����t	j
�jjd�tj
�jd
ddgd�}��|d�j�r�d nd!�|��dS)"Ncs(���j��|����j��|�dS)N)rr�r��current)ZgetvalZcurrval)rr!r"�check_get_current�sz3ComboboxTest.test_values.<locals>.check_get_currentr�)rr'r!rrDzmon tue wed thur)�mon�tue�wed�thur)r&)�*g��Q�	@rz
any stringr�r��crBr�d)r�rBrr)r�)�1r�2z1 {} 2za bza	bza
b)za bza	bza
bz{a b} {a	b} {a
b}za\tbz"a"z} {)za\tbz"a"z} {za\\tb {"a"} \}\ \{)r�r�rz1 2 {})rr�rr-�setr��	configure�wantobjectsrJrKrr�rr�r>rr)rr�Zcombo2r!)rr"�test_values�sL






zComboboxTest.test_values)r5r6r7r`r<rr�r�r�r�r�rVr!r!)rAr"r��sr�csXeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Z�ZS)�PanedWindowTest)rr[r\�orientr/r^r9cst���|��|_dS)N)r;r<r�paned)r)rAr!r"r<$s
zPanedWindowTest.setUpcKstj|jf|�S)N)rZPanedWindowr>)rr_r!r!r"r(szPanedWindowTest.createcCsd|��}|�t|d�d�d}t�dkr.d}|j|dd|d�|jdd�}|�t|d�d�dS)	Nr��verticalz"attempt to change read-only option)rrrrrz"Attempt to change read-only option�
horizontal)r)r�)rrr�rr)rrrr r!r!r"�test_orient+s

zPanedWindowTest.test_orientcCst�|j�}t�|�}|�tj|jj|�|��|��t�|j�}t�|�}|�tj|jj|�|��|��t�|j�}|j�|�|�tj|jj|�t�|j�}|j�|�|�	|j�
d�|j�
d��|�tj|jj
d�|��|��|�tj|jj
d�dS)Nrr�rB)rrqr�rJrKr�addrrr>r�pane)rrC�childZ
good_childZother_childr!r!r"�test_add6s(

zPanedWindowTest.test_addcCs`|�tj|jjd�|�tj|jjd�|j�t�|j��|j�d�|�tj|jjd�dS)Nr)	rJrKrr��forgetr�rrqr>)rr!r!r"�test_forgetRs
zPanedWindowTest.test_forgetcCst|�tj|jjdd�|�tj|jjdd�|�tj|jjdd�t�|j�}t�|j�}t�|j�}|�tj|jjd|�|j�d|�|j�d|�|�|j�	�t
|�t
|�f�|j�d|�|�|j�	�t
|�t
|�f�|j�d|�|�|j�	�t
|�t
|�t
|�f�|j�	�}|j�d|�|�||j�	��|j�||�|�|j�	�t
|�t
|�t
|�f�dS)Nrr�)rJrKrr�r�rrqr>r�panesr�)rr��child2�child3r�r!r!r"�test_insert[s*
zPanedWindowTest.test_insertcCs�|�tj|jjd�t�|j�}|j�|�|�	|j�d�t
�|�|jjddd�|jr\dnd�|�|j�dd�|jr|dnd�|�|j�d�|j�t
|���|jtj|jjddd�dS)Nr)�weightr%r�Z	somevalue)Z	badoption)rJrKrr�r�rrqr>r��assertIsInstance�dictrr�r�)rr�r!r!r"�	test_pane~s zPanedWindowTest.test_panecCs|�tj|jjd�|�tj|jjd�|�tj|jjd�tj|jdd�}|jj|dd�|�tj|jjd�tj|jdd�}|j�|�|�tj|jjd�|jjdd	d
�|j�	�|j�d�}|j�dd�|�
||j�d��|�|j�d�t�dS)Nrrr�)r:r�)r��bTZboth)�expand�filli�)
rJrKrr�Zsashposrrqr�r?r@�assertNotEqualrrG)rr�r�Zcurr_posr!r!r"�test_sashpos�s
zPanedWindowTest.test_sashpos)
r5r6r7r`r<rr�r�r�r�rrrVr!r!)rAr"r�s	#r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�RadiobuttonTest)rr�r{r[ryr$rSr/r^r:r�rd�valuer�r9cKstj|jf|�S)N)r�Radiobuttonr>)rr_r!r!r"r�szRadiobuttonTest.createcCs |��}|�|ddddd�dS)Nr	r�gffffff@rz
any string)rr�)rrr!r!r"�
test_value�szRadiobuttonTest.test_valuecs6g��fdd�}t�|j�}tj|j||dd�}tj|j||dd�}|jrTdd�}nt}|��}|�|d�|�||d	�|�	��|�|�	�||j
�|d
���|���d|d<|��}|�t
|�d�|�t��d�|�||d	�|�	��|�|�	�||j
�|d
���|�t
|d
�t
|d
��dS)
Ncs��d�dS)Nr�zcb test called)r�r!)r�r!r"r��s
z,RadiobuttonTest.test_invoke.<locals>.cb_testr)r�r�r	r�cSs|S)Nr!)r�r!r!r"r��r�z-RadiobuttonTest.test_invoke.<locals>.<lambda>zcb test calledr	r�rr�)rKZIntVarr>rr
r�rGr�rr�r�r�r�r�r�r�)rr�Zmyvarr�Zcbtn2�convr�r!)r�r"r��s0







zRadiobuttonTest.test_invokeN)r5r6r7r`rrr�r!r!r!r"r�src@s(eZdZdZdd�Zdd�Zdd�ZdS)	�MenubuttonTest)rr{r[�	directionry�menur$rSr/r^r:r�rdr9cKstj|jf|�S)N)rZ
Menubuttonr>)rr_r!r!r"r�szMenubuttonTest.createc	Cs"|��}|�|dddddd�dS)NrZaboveZbelowr~r�flush)rrn)rrr!r!r"�test_direction�szMenubuttonTest.test_directioncCs4|��}tj|dd�}|j|d|td�|��dS)Nr)rp)r)rrKZMenur-r�rr)rrrr!r!r"�	test_menu�szMenubuttonTest.test_menuN)r5r6r7r`rrrr!r!r!r"r
�sr
csheZdZdZeZdZ�fdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Z�ZS)�	ScaleTest)rr�r[�from�lengthr�r/r^�tor	r�r�cs,t���|��|_|j��|j��dS)N)r;r<r�scaler?r�)r)rAr!r"r<�s


zScaleTest.setUpcKstj|jf|�S)N)rZScaler>)rr_r!r!r"r�szScaleTest.createcCs"|��}|j|dddddd�dS)Nrr�g������-@g333333.@F)r)r�checkFloatParam)rrr!r!r"�	test_fromszScaleTest.test_fromcCs |��}|�|ddddd�dS)Nr�gffffff`@g33333�`@Z5i)r�checkPixelsParam)rrr!r!r"�test_lengthszScaleTest.test_lengthc	Cs$|��}|j|ddddddd�dS)Nri,g������-@g333333.@i����F)r)rr)rrr!r!r"�test_to	szScaleTest.test_toc	Cs$|��}|j|ddddddd�dS)Nr	i,g������-@g333333.@i����F)r)rr)rrr!r!r"r
szScaleTest.test_valuecs�dddg�|j�d�fdd��}d|jd<d|jd<d|jd	<|���dddg�|jjd
dd�|jjd
dd�|jjdd�|���dS)Nr�z<<RangeChanged>>cs���S)N)�pop)r�)�failurer!r"r�r�z-ScaleTest.test_custom_event.<locals>.<lambda>�
r�from_rrrBr')r!rr���)r)rr�r�r�)rZfuncidr!)rr"�test_custom_events





zScaleTest.test_custom_eventcCs�|jrdd�}nt}|j��}|�|j�|d�|jd�|�||j�dd��||jd��|�|j��|jd�d|jd<|�|j��|jd�|�tj|jjdd�|�tj|jjdd�dS)	NcSs|S)Nr!)r�r!r!r"r�&r�z$ScaleTest.test_get.<locals>.<lambda>rrrr	�r)	r��floatrrHrr�rJrKr)rrZscale_widthr!r!r"�test_get$s

$
zScaleTest.test_getcCst|jrdd�}nt}||jd�}|d}|j�|�|�||j���|�||jd�}|j�|d�|�||j���|�t�|j�}||jd<|�|d�|�||j���|���|�||j���|d�~|d|jd	<|�||j���|d�|�||j���||jd	��|�||j�d
d
��|�|�||j�|j�	�d
��|�|�
tj|jjd�dS)NcSs|S)Nr!)r�r!r!r"r�8r�z$ScaleTest.test_set.<locals>.<lambda>rr rr�r�r'r	r)r�r%rr�rr�rKZ	DoubleVarr>rHrJr)rr�maxZnew_max�min�varr!r!r"�test_set6s,

  zScaleTest.test_set)r5r6r7r`rrXr0r<rrrrrr#r&r*rVr!r!)rAr"r�src@sHeZdZdZeZdZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�ProgressbarTest)rr[r�r�mode�maximumZphaser/r^r	r�r�cKstj|jf|�S)N)rZProgressbarr>)rr_r!r!r"rdszProgressbarTest.createcCs|��}|�|dddd�dS)NrgfffffY@g�����YL@Z2i)rr)rrr!r!r"rgszProgressbarTest.test_lengthc	Cs$|��}|j|ddddddd�dS)Nr-gfffff�b@g�����lS@ri����F)r)rr)rrr!r!r"�test_maximumkszProgressbarTest.test_maximumcCs|��}|�|ddd�dS)Nr,ZdeterminateZ
indeterminate)rrn)rrr!r!r"�	test_modeoszProgressbarTest.test_modecCsdS)Nr!)rr!r!r"�
test_phasesszProgressbarTest.test_phasec	Cs$|��}|j|ddddddd�dS)Nr	gfffff�b@g�����lS@ri����F)r)rr)rrr!r!r"rwszProgressbarTest.test_valueN)
r5r6r7r`rrXr0rrr.r/r0rr!r!r!r"r+Zsr+r�z"ttk.Scrollbar is special on MacOSXc@seZdZdZdZdd�ZdS)�
ScrollbarTest)rr�r[r�r/r^r�cKstj|jf|�S)N)rZ	Scrollbarr>)rr_r!r!r"r�szScrollbarTest.createN)r5r6r7r`r0rr!r!r!r"r1}sr1cspeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�NotebookTest)rr[r\r$r/r^r9cs\t���|jdd�|_t�|j�|_t�|j�|_|jj	|jdd�|jj	|jdd�dS)Nr)r$r�)r:r)
r;r<r�nbrrqr>�child1r�r�)r)rAr!r"r<�s
zNotebookTest.setUpcKstj|jf|�S)N)rZNotebookr>)rr_r!r!r"r�szNotebookTest.createc	Cs:|j�d�|j�|j�|�tj|jj|j�|�	|j�
d�d�|j�|j�|�	|j�
d�d�|j�|j�|�
|j�d��|jj|jdd�|j��|j��tjdkr�d}nd	}|�	|j�|�|j�d��xXtd
dd
�D]>}y |jjd|dd�dk�rPWq�tjk
�r&Yq�Xq�W|�d
�dS)Nrr�r�r�r�)r:r�z@20,5z@5,5r'r�z@%d, 5zTab with text 'a' not found)r3r��hider�rJrKr�tabr4r�indexr��selectr�r?r@r�r��range�fail)rZtb_idx�ir!r!r"�test_tab_identifiers�s,



z!NotebookTest.test_tab_identifierscCsd|�tj|jjd�|�tj|jjd�|�tj|jjd�|�tj|jjd�|jtj|jjt�|j�dd�|j�	�}|j�|j
�|j�|j
�|�|j�	�|�t�|j�}|jj|dd�|j�	�}|j�d�}|j�|j
�}|j�|j
�|j�|j
�|�|j�	�|�|�|j�|j
�|�|�t|j
�|j�	�|�|�|j�d�|d�dS)	NrDrQ�option)�unknownr�)r:r�r�)rJrKrr3r5r�rrqr>�tabsr4rr7r�r�)rr?r�ZcurrZchild2_indexr!r!r"�test_add_and_hidden�s*

z NotebookTest.test_add_and_hiddencCs�|�tj|jjd�|�tj|jjd�|�tj|jjd�|j��}|j�|j�}|j�|j�|�t	|j�|j���|�
t|�dt|j����|j�|j�|�
|j�|j�d�|�
||j�|j��dS)NrDrQr�)rJrKrr3r�r?r7r4ZassertNotInr�rr�r�r)rr?Zchild1_indexr!r!r"r��s
zNotebookTest.test_forgetcCs�|�tj|jjd�|�tj|jjd�|�|j�d�t�|�|j�|j�d�|�|j�|j	�d�|�|j�d�d�dS)NrDr�rr�rB)
rJrKrr3r7rrGrr4r�)rr!r!r"�
test_index�szNotebookTest.test_indexcCs�|j��}|j�d|d�|�|j��|d|df�|j�|j|j�|�|j��|�|j�d|j�|�|j��|d|df�|j�dd�|�|j��|�|�tj|jjd|d�|�tj|jjd|d�t	�
|j�}|j�d|�|�|j��|dt|�|df�|j�
|�|�|j��|�|j�|j|�|�|j��t|�f|�|j�
|�|�tj|jjd|�|�tj|jjd|�|�tj|jjdd�|�tj|jjdd�|�tj|jjdd�dS)Nr�rr�rBrD)r3r?r�rr4r�rJrKrrrqr>r�r�)rr?r�r!r!r"r��s0
$zNotebookTest.test_insertcs�|j��|j��g�g�|j�d�fdd��|j�d�fdd��|�|j��t|j��|j�|j�|�	��|�|j��t|j��|j�
�|�	��dS)Nz<Unmap>cs
��d�S)NT)r�)r�)r�r!r"r�r�z*NotebookTest.test_select.<locals>.<lambda>z<<NotebookTabChanged>>cs
��d�S)NT)r�)r�)�tab_changedr!r"r�r�)r3r?r@r4r�rr8r�r�r�r�)rr!)r�rBr"�test_selects



zNotebookTest.test_selectcCs�|�tj|jjd�|�tj|jjd�|�tj|jjd�|�|j�|j�t�|�|jj|jdd�d�|�|j�|jd�d�|jj|jdd�|�|jj|jdd�d�|�|j�|jd�d�dS)NrDZnotab)r:r�r:�abc)	rJrKrr3r6rr4rr)rr!r!r"�test_tab&szNotebookTest.test_tabcCsH|�t|j���d�|j�|j�|j�|j�|�|j��d�dS)NrBr!)rr�r3r?r�r4r�)rr!r!r"�	test_tabs4szNotebookTest.test_tabscCs0|j��|j��|j�d�t|jdd�|j��|j�d�|�|j��t|j	��|j��|j�d�|�|j��t|j
��|j��|j�d�|�|j��t|j	��|jj|j
ddd�|j��|j��t|jdd�t
jdk�r|j�d�n|j�d	�|�|j��t|j
��dS)
Nrr'z
<Control-Tab>z<Shift-Control-Tab>r�)r:rdr�z
<Option-a>z<Alt-a>)r3r?r@r8r	Zfocus_forcer�rr�r�r4r6Zenable_traversalr�r�)rr!r!r"�test_traversal=s*






zNotebookTest.test_traversal)r5r6r7r`r<rr<r@r�rAr�rCrErFrGrVr!r!)rAr"r2�s
!	r2cspeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�SpinboxTest)r�rr�r[r�r�r��formatr�	incrementr�r�r�rSr/r^r�rr�r�r�r9�wrapr�cs"t���|��|_|j��dS)N)r;r<r�spinr?)r)rAr!r"r<bs

zSpinboxTest.setUpcKstj|jf|�S)N)r�Spinboxr>)rr_r!r!r"rgszSpinboxTest.createcCsZ|j��}|j��}|d}|dd}|jjd||d�|jjd||d�|j��dS)Nr'rBz<ButtonPress-1>)r�r�z<ButtonRelease-1>)rLrHrIr�rE)rr9r\r�r�r!r!r"�_click_increment_arrowjs

z"SpinboxTest._click_increment_arrowcCsZ|j��}|j��}|d}|dd}|jjd||d�|jjd||d�|j��dS)Nr'rB�z<ButtonPress-1>)r�r�z<ButtonRelease-1>)rLrHrIr�rE)rr9r\r�r�r!r!r"�_click_decrement_arrowss

z"SpinboxTest._click_decrement_arrowcs�g��fdd�|jd<|j��|��|j��|���|��|�t��d�d|jd<|j��|��|��|j��|�t��d�dS)Ncs
��d�S)NT)r�r!)r�r!r"r�r�z*SpinboxTest.test_command.<locals>.<lambda>r�rBr)rLr�rNr�rPrr�rE)rr!)r�r"�test_command|s





zSpinboxTest.test_commandcCsbd|jd<d|jd<|j�d�|j��|��|�|j��d�|��|�|j��d�dS)Nrrr'rrOr()rLr�r�rNrr�)rr!r!r"r�s


zSpinboxTest.test_tocCsbd|jd<d|jd<|j�d�|j��|��|�|j��d�|��|�|j��d�dS)Nr�rr rrBr�)rLr�r�rPrr�)rr!r!r"r�s


zSpinboxTest.test_fromcCs�d|jd<d|jd<d|jd<|j�d�|j��|��|�|j��d�d	|jd<|j��|��|�|j��d
�dS)Nrrr rrOrJr�r(rB�3)rLr�r�rNrr�rP)rr!r!r"�test_increment�s





zSpinboxTest.test_incrementcCs�|j�d�d|jd<|j��|��|j��}|�t|�d�|�|�d�d�d|jd<|j��|��|j��}|�d|k�|�t|�d�dS)Nr�z%10.3frIr �.rr)	rLr�r�rNr�rr�r7r�)rr	r!r!r"�test_format�s





zSpinboxTest.test_formatcCs�d|jd<d|jd<|j�d�d|jd<|j��|��|�|j��d�|��|�|j��d�d	|jd<|j��|��|�|j��d�dS)
Nr rr�rTrK�10r�F)rLr�r�rPrr�rN)rr!r!r"�	test_wrap�s





zSpinboxTest.test_wrapcCs�|�|jdtdkrdnd�|j|jdddd�|�|jdd�|�|jdd�|�|jdd�d	d
dg|jd<|j�d	�|j��|��|�|j��d�|��|�|j��d	�|jj	d
dd
gd�|�|jd|j
r�dnd�dddg|jd<|�|jd|j
�rdnd�dddg|jd<|�|jd|j
�rBdnd�tj|j
d
d
dgd�}|�|d|j
�rtdnd�|��dS)Nr�)rr'r!rzmon tue wed thur)r�r�r�r�)r&)r�g��Q�	@rz
any stringr�r�r�r�rB)r�)r�rr�z1 {} 2za bza	bza
b)za bza	bza
bz{a b} {a	b} {a
b}za\tbz"a"z} {)za\tbz"a"z} {za\\tb {"a"} \}\ \{)r�r�rz1 2 {})rrLrr-r�r�rNr�rPr�r�rrMr>rr)rZspin2r!r!r"r��s<


zSpinboxTest.test_values)r5r6r7r`r<rrNrPrQrrrSrUrWr�rVr!r!)rAr"rHXs		
rHcs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�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.d/�Z�ZS)0�TreeviewTest)r�columnsr[�displaycolumnsr\r$�
selectmoder�r/r^r�Zyscrollcommandcst���|jdd�|_dS)Nr)r$)r;r<r�tv)r)rAr!r"r<
s
zTreeviewTest.setUpcKstj|jf|�S)N)rZTreeviewr>)rr_r!r!r"rszTreeviewTest.createcCs:|��}|j|dddd�|�|dd�|�|dd�dS)NrYza b c)r�rr�)r&r)rr-)rrr!r!r"�test_columnss

zTreeviewTest.test_columnscCs�|��}d|d<|j|dddd�|�|dd�|j|dddd�|�|dd	�|j|dd
dd�|j|dd
dd�|j|dddd�dS)N)r�rr�rYrZzb a c)rr�r�)r&z#all)z#all)rBr�r)r�rr�zInvalid column index d)r)r�rBrzColumn index 3 out of bounds)r�r"zColumn index -2 out of bounds)rr-r)rrr!r!r"�test_displaycolumnss




z TreeviewTest.test_displaycolumnsc	Cs8|��}|j|ddddddd�|j|ddd	td�dS)
Nr\r�i����rZ3cF)rg�����LY@gfffff�Y@)rrr)rrr!r!r"r�+szTreeviewTest.test_heightcCs|��}|�|dddd�dS)Nr[r|ZbrowseZextended)rrn)rrr!r!r"�test_selectmode0szTreeviewTest.test_selectmodecCs^|��}|j|dddd�|�|dd�|�|dd�|j|dddd�|j|ddd	d�dS)
Nr�z
tree headings)�tree�headings)r&)rar`r`)r`ra)ra)rr-)rrr!r!r"r�5s
zTreeviewTest.test_showcCs�|j��|�|j�d�d�|j��|j��|j�dd�}|j��}|�|�|j�|d�}|�	|�dg|jd<|jj
ddd�|j�|dd�}|jj
ddd�}|js�t|�}|�|d|d|�|j�|d�}|�|j�|�d�dS)	Nrr�r�testrY�2)r9z#0)
r\r?rr�r@r�r��get_childrenr�r��columnr�rG)r�item_idZchildrenr�Zbbox_column0Z
root_widthr4r!r!r"r�>s$





zTreeviewTest.test_bboxcCs�|�|j��d�|j�dd�}|�|j��t�|�|j��d|�|j�dd�}|j�dd�}|j�|||�|�|j�|�||f�|�tj	|jj||�|j�|�|�|j�|�d�|j�d�|�|j��d�dS)Nr!rr�r)
rr\rdr�r�tupleZset_childrenrJrKr)rrfr�r�r!r!r"�
test_childrenYszTreeviewTest.test_childrencCs�|�|j�d�t�|jr2|�|jjddd�t�|jjddd�|�|j�dd�|jr\dnd�|�|jjddd�|jr~dnd�|jtj	|jjddd�|�tj	|jjd�d	d
iddid
diddiddig}x$|D]}|jtj	|jjdf|�q�WdS)Nz#0)r9r r9rV�X)�idr�Zunknown_optionz
some valueZstretchZwrongr�Zminwidth)
rr\rerr�rGrrJrKr)rZinvalid_kwsrOr!r!r"�test_columnus
zTreeviewTest.test_columncCs�|�tj|jjd�|j�dd�}|j�|d�}|�|j��|f�|�|j�|�|f�|j�|�|�|j���|�tj|jj	|dd�|j�dd�}|j�dd�}|�|j��||f�|j�||�|�|j���dS)Nz#0rr�)
rJrKrr\r�r�rrdr��reattach)rrf�item2�item1r!r!r"�test_delete�szTreeviewTest.test_deletecCs�|j�dd�}|j�|d�}|j��}|j��|�||j���|�|j��|f�|�|j�|�|f�|j�|�|�|j���|j�|dd�|�|j��|f�|�|j�|�|f�|j�|dd�|�|j��||f�|�|j�|�d�|�t	j
|jjddd�|�t	j
|jjd�|�t	j
|jj|dd�|�t	j
|jj|dd�|j�||�|�|j��d�|�|j�|�d�dS)Nrr�r!ZnonexistentZotherparentr�)r\r�rd�detachrr�rl�moverJrKr)rrfrm�prevr!r!r"�test_detach_reattach�s4

z!TreeviewTest.test_detach_reattachcCsT|�|j�d�d�|�|j�d�d�|�|j�i�d�|�tj|jjd�dS)NZ	somethingFrT)rr\�existsrJrKr)rr!r!r"�test_exists�szTreeviewTest.test_existscCst|�|j��d�|j�dd�}|j�|�|�|j��|�|j�|�|�|j��d�|�tj|jjd�dS)Nrr�rQ)rr\r�r�r�rJrKr)rrnr!r!r"�
test_focus�szTreeviewTest.test_focuscCs�|�|j�d�t�|jjddd�|�|j�dd�d�|�|jjddd�d�|jtj|jjddd�|jtj|jjddd�dS)Nz#0rQ)r:r:)r�r�)r�)rr\�headingrrrJrKr)rr!r!r"�test_heading�szTreeviewTest.test_headingcs��fdd�}g��j���j���jjd�fdd�d��jjddd��j��|d	d	��sn��d
�g��jjj}�jjdt	�jjddd��d���
|�jjj�|d	d	��sƈ�d
�dS)Ncst�j||��j��dS)N)r	r\r�)r�r�)rr!r"�simulate_heading_click�szBTreeviewTest.test_heading_callback.<locals>.simulate_heading_clickz#0cs
��d�S)NT)r�r!)r�r!r"r�r�z4TreeviewTest.test_heading_callback.<locals>.<lambda>)r�r�)r9r'z>The command associated to the treeview heading wasn't invoked.)r\r?r@rwrer�r:rvZ_tclCommandsr�r)rryZcommandsr!)rr�r"�test_heading_callback�s"





 
z"TreeviewTest.test_heading_callbackcCsL|�tj|jjd�|�|j�d�d�|j�dd�}|j�dd�}|j�|d�}|j�|d�}|�|j�|�d�|�|j�|�d�|�|j�|�d�|�|j�|�d�|j�|dd�|�|j�|�d�|�|j�|�d�|j�|�|�|j�|�d�|j�|�|�|j�|�d�|j�	|�|�tj|jj|�dS)NZwhatrrr�r�)
rJrKrr\r7rr�rqrpr�)rrnrm�c1�c2r!r!r"rAs&zTreeviewTest.test_indexc	Cs�|�tj|jjdd�|jtj|jjdddd�|jtj|jjdddd�|�|j�|jjdddd���|�|j�|jjdddd���|�tj|jjdd�|j�ddd	�}|�|d	�|�tj|jjddd	�|�tj|jjddtd	��d
}|jjdd|fd�}|�|j�	|d�|j
�r&|fn|�|�|jj	|dd�|j
�rL|fn|�|jj	||j�|jj	|dd��d�|�|jj	|dd�|j
�r�|fn|�|�
|j�	|�t�|jj	|dd�|�|jj	|dd��|jjddd
d|gd�}|�|jj	|dd�|j
�rdd|fnd|�|jj	|gd�|�|jj	|dd��|jj	|dd�|�|jj	|dd�|j
�rpdnd�|jjdddd||ffd�}|�|jj	|dd�|j
�r�dd||ffn
d||f�|�|jj	|jjdddd�dd�d�|�|jj	|jjdd|d�dd�|�|j�ddd�}|�|d�|j�ddd�}|�|d�|�tj|jjddd�|�tj|jjddd�dS)Nr|r�r)�openZpleaseTFZmiddlez
first-itemuába)r�r�r�rB)�tagsr�r�z1 2 %s)r�rB)r�r�z1 2za b cz%s %sz{a b c} {%s %s}z
Label here)r:rr%gz0.0)rJrKrr\r�r�r�rr�itemr�r>Z	splitlistrr)rZitemidr	rr!r!r"�test_insert_item<sh  
$


zTreeviewTest.test_insert_itemc	Cs|�t|jjd�|�tj|jjd�|�tj|jjd�|�tj|jjd�|�tj|jj	d�|j�
dd�}|j�
dd�}|j�
|d�}|j�
|d�}|j�
|d�}|�|j��d�|j�||�|�|j��||f�|j�|�|�|j��|f�|j�||�|�|j��|||f�|j�|�|�|j��||||f�|j��|�|j��||||f�|j�||�|�|j��|||f�|j�|�|�|j��||f�|j��|�|j��||f�|j�	||�|�|j��||f�|j�	|�|�|j��|f�|j�	�|�|j��|f�|jj
dddd�|j�d�|�|j��d�|jj
ddd	d�|j�d	�|�|j��d
�|jj
dddd�|j�d�|�|j��d�|jj
ddd
d�|j�d
�|�|j��d�|j��|�|j��d�|j�||f�|�|j��||f�|j�||f�|�|j��|||f�|j�||f�|�|j��||f�|j�	||f�|�|j��||f�tj
dk�r�ddl}|�d�|j��|�|j��d�|�t��|j�d||f�WdQRX|�|j��||f�|�t��|j�d||f�WdQRX|�|j��|||f�|�t��|j�d||f�WdQRX|�|j��||f�|�t��|j�d||f�WdQRX|�|j��||f�|�t��|j�d�}WdQRX|�|||f�dS)Nrxr|rr�r!zwith spaces)rj)zwith spacesz{brace)z{braceu
unicode€)u
unicode€sbytes€)ubytes€)rrrz8Deprecated API of Treeview.selection() should be removedr�r��removeZtoggle)rJ�	TypeErrorr\�	selectionrKrZ
selection_setZ
selection_addZselection_removeZselection_toggler�rr��version_info�warnings�warnZassertWarns�DeprecationWarning)rrnrmr{r|Zc3r�r�r!r!r"�test_selection�s�




zTreeviewTest.test_selectioncCs�ddg|jd<|jjddddgd�}|�|j�|�ddd	��|j�|dd�|�|jj|dd�|jrjd
nd�dg|jd<|�|j�|�ddi�|j�|dd�|�|jj|dd�d�|�|jj|dd�|jr�d
nd�|j�|dd�|�|j�|d�|j�r
dnd�|�|jj|dd�|j�r.dnd�|�|j�|�|j�rRddinddi�|�tj|jj|d�|�tj|jj|dd�|�tj|jjd�dS)N�A�BrYrr�r�r)r�)r�r�)r�r�za a)re)rr�zb a�{Z123)r�r�z123 aZnotme)	r\r�rr�rr�rJrKr)rrr!r!r"r*�s,zTreeviewTest.test_setc	sLg�|jjdddgd�}|jjdddgd�}|j�dd�fdd��|j�dd�fd	d��|j��|j��|j��t�}t�}xNtd
dd�D]>}t|�d
kr�P|j�	|�}|r�||kr�|�
|�|�
|�q�W|�t|�d
�x|D]}t|jd
|�q�W|�t��d�x4t
�ddd
��ddd
��D]}|�|d��q2WdS)Nrr�Zcall)r~z<ButtonPress-1>cs
��d�S)Nr�)r�)r�)�eventsr!r"r�r�z,TreeviewTest.test_tag_bind.<locals>.<lambda>z<ButtonRelease-1>cs
��d�S)NrB)r�)r�)r�r!r"r�
r�rr�r rBrOr�)r�rB)r\r�Ztag_bindr?r@r�r�r9r�Zidentify_rowr�rr	�zip)	rrnrmZpos_y�foundr;rfr�r�r!)r�r"�
test_tag_binds2






$zTreeviewTest.test_tag_bindcCs�|�t|jj�|jtj|jjddd�|jjddd�|�t|j�dd��d�|�t|jjddd��d�|�|j�d�t	�dS)NrbZblue)Zsky)r�r�)
rJr�r\Z
tag_configurerKrrr�rr)rr!r!r"�test_tag_configure(s
zTreeviewTest.test_tag_configurecCs|jjddddgd�}|jjddddgd�}|�t|jj�|�t|jjdd�|�|j�d|��|�|j�d|��|�|j�d|��|�|j�d|��|�|j�d	|��|�|j�d	|��|�|j�d�|f�|�|j�d�|f�|�|j�d	�d
�dS)Nrr�zItem 1Ztag1)r:r~zItem 2Ztag2znon-existingZtag3r!)	r\r�rJr�Ztag_hasrr�r�r)rrnrmr!r!r"�test_tag_has4szTreeviewTest.test_tag_has)r5r6r7r`r<rr]r^r�r_r�r�rhrkrorsrurvrxrzrAr�r�r*r�r�r�rVr!r!)rAr"rXs0	*"M\!"rXc@seZdZdZdZdd�ZdS)�
SeparatorTest)rr[r�r/r^r�cKstj|jf|�S)N)rZ	Separatorr>)rr_r!r!r"rLszSeparatorTest.createN)r5r6r7r`r0rr!r!r!r"r�Dsr�c@seZdZdZdd�ZdS)�SizegripTest)rr[r/r^cKstj|jf|�S)N)rZSizegripr>)rr_r!r!r"rWszSizegripTest.createN)r5r6r7r`rr!r!r!r"r�Psr��__main__)2ZunittestrKrrZtest.supportrr�Z$tkinter.test.test_ttk.test_functionsrZtkinter.test.supportrrrr	Ztkinter.test.widget_testsr
rrr
rrrrZTestCaser8rWrYrartr�r�r�r�r�r�rr
rr+ZskipIfr�r1r2rHrXr�r�Z	tests_guir5�mainr!r!r!r"�<module>s�$';0	|3j"
N-B