
   AzVP                      d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZmZmZmZmZ  ed           d Z G d d	ee          Z ee           G d
 dee j                              Z ee           G d dee j                              Z ee           G d dee j                              Z G d dee          Z ee           G d dee j                              Z ee           G d dee j                              Z ee           G d dee j                              Z ee           G d dee j                              Z ee           G d dee j                              Z G d dee j                  Z eee           G d dee j                              Z ee           G d  d!ee j                              Z  ee           G d" d#ee j                              Z! eee           G d$ d%ee j                              Z" eee           G d& d'ee j                              Z# eee           G d( d)ee j                              Z$ eee           G d* d+ee j                              Z% ee           G d, d-ee j                              Z& ee           G d. d/ee j                              Z' eee           G d0 d1ee j                              Z( G d2 d3e
e j                  Z)ee"eeeeee#ee'e(ee&ee$e%e e!ee)fZ*e+d4k    r e j,                     dS dS )5    N)TclError)requires)requires_tkget_tk_patchlevel	widget_eqAbstractDefaultRootTest)add_standard_optionsAbstractWidgetTestStandardOptionsTestsIntegerSizeTestsPixelSizeTestssetUpModuleguic                 :    t          t          |                     S N)floatround)xs    t/nix/store/c6yb989sl77467xxwhylnkph1pqyi47p-python3-3.11.15/lib/python3.11/tkinter/test/test_tkinter/test_widgets.pyfloat_roundr      s    q??    c                   *    e Zd ZdZd Zd Zd Zd ZdS )AbstractToplevelTestFc                 4   |                                  }|                     |d         |j        j                                                   |                     |ddd           |                      d          }|                     |d         d           d S )NclassFooz2can't modify -class option after widget is createderrmsg)class_)createassertEqual	__class____name__titlecheckInvalidParamselfwidgetwidget2s      r   test_configure_classz)AbstractToplevelTest.test_configure_class   s    )288::	< 	< 	<vwK 	 	M 	M 	M++U+++)511111r   c                     |                                  }|                     |d         d           |                     |ddd           |                      d          }|                     |d         d           d S )Ncolormap newz5can't modify -colormap option after widget is createdr   )r,   r    r!   r%   r&   s      r   test_configure_colormapz,AbstractToplevelTest.test_configure_colormap"   s    
+R000vz5N 	 	P 	P 	P++u+--,e44444r   c                     |                                  }|                     |d         | j        rdnd           |                     |ddd           |                      d          }|                     |d         | j        rdnd	           d S )
N	containerr   0   z6can't modify -container option after widget is createdr   Tr2   1)r    r!   wantobjectsr%   r&   s      r   test_configure_containerz-AbstractToplevelTest.test_configure_container*   s    ,43C.LaaMMMv{AO 	 	Q 	Q 	Q+++---D4D/Mqq#NNNNNr   c                     |                                  }|                     |d         d           |                     |ddd           |                      d          }|                     |d         d           d S )Nvisualr-   defaultz3can't modify -visual option after widget is createdr   )r:   r/   r&   s      r   test_configure_visualz*AbstractToplevelTest.test_configure_visual2   s    )2...vxL 	 	N 	N 	N++Y+//*I66666r   N)r#   
__module____qualname___conv_pad_pixelsr*   r0   r8   r<    r   r   r   r      sY        2 2 25 5 5O O O7 7 7 7 7r   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )ToplevelTest)
backgroundborderwidthr   r,   r2   cursorheighthighlightbackgroundhighlightcolorhighlightthicknessmenupadxpadyreliefscreen	takefocususer:   widthc                 0    t          j        | j        fi |S r   )tkinterToplevelrootr'   kwargss     r   r    zToplevelTest.createE   s    	44V444r   c                     |                                  }t          j        | j                  }|                     |d|t
                     |                     |dd           d S )NrJ   eqr-   )r    rS   MenurU   
checkParamr   r'   r(   rJ   s      r   test_configure_menuz ToplevelTest.test_configure_menuH   sV    |DI&&;;;+++++r   c                    |                                  }|j        dk    r|                     d           |                     |d         d           	 t          j        d         }n%# t          $ r |                     d           Y nw xY w|                     |d|d           |                      |	          }|                     |d         |           d S )
Nx11zNot using Tk for X11rN   r-   DISPLAYzNo $DISPLAY set.z3can't modify -screen option after widget is createdr   )rN   )r    _windowingsystemskipTestr!   osenvironKeyErrorr%   )r'   r(   displayr)   s       r   test_configure_screenz"ToplevelTest.test_configure_screenN   s    "e++MM0111)2...	.j+GG 	. 	. 	.MM,-----	.vxL 	 	N 	N 	N++W+--*G44444s   A% %BBc                    |                                  }|                     |d         d           |                      d          }t          |                                          }|                     |          5  |                      |          }|                     |d         |           d d d            d S # 1 swxY w Y   d S )NrP   r-   Tr5   )wid)rP   )r    r!   hexwinfo_idsubTest)r'   r(   parentrj   r)   s        r   test_configure_usezToplevelTest.test_configure_use\   s    +++t,,&//##$$\\c\"" 	2 	2kkck**GWU^S111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   >3B>>CCN)r#   r=   r>   OPTIONSr    r^   rh   ro   r@   r   r   rB   rB   ;   sW        G5 5 5, , ,5 5 52 2 2 2 2r   rB   c                       e Zd ZdZd ZdS )	FrameTest)rC   rD   r   r,   r2   rE   rF   rG   rH   rI   rK   rL   rM   rO   r:   rQ   c                 0    t          j        | j        fi |S r   )rS   FramerU   rV   s     r   r    zFrameTest.createo       }TY11&111r   Nr#   r=   r>   rp   r    r@   r   r   rr   rr   f   s*        G2 2 2 2 2r   rr   c                   $    e Zd ZdZd Zd Zd ZdS )LabelFrameTest)rC   rD   r   r,   r2   rE   font
foregroundrF   rG   rH   rI   labelanchorlabelwidgetrK   rL   rM   rO   textr:   rQ   c                 0    t          j        | j        fi |S r   )rS   
LabelFramerU   rV   s     r   r    zLabelFrameTest.create~       !$)66v666r   c                     |                                  }|                     |ddddddddd	d
ddd           |                     |dd           d S )Nr{   eenesnnenwsseswwwnwscenter)r    checkEnumParamr%   r'   r(   s     r   test_configure_labelanchorz)LabelFrameTest.test_configure_labelanchor   se    FMtS$tS$	> 	> 	> 	v}h?????r   c                     |                                  }t          j        | j        dd          }|                     |d|d           |                                 d S )NMuppfoo)r}   namer|   z.fooexpected)r    rS   LabelrU   r\   destroy)r'   r(   labels      r   test_configure_labelwidgetz)LabelFrameTest.test_configure_labelwidget   sR    dif5AAAuvFFFr   N)r#   r=   r>   rp   r    r   r   r@   r   r   rx   rx   s   sK        G7 7 7@ @ @    r   rx   c                       e Zd ZdZd ZdS )AbstractLabelTestFc           
      f    |                                  }|                     |ddddddd           d S )NrI   r   ?@   10pr    checkPixelsParamr   s     r   !test_configure_highlightthicknessz3AbstractLabelTest.test_configure_highlightthickness   sC    f&:c1b%	9 	9 	9 	9 	9r   N)r#   r=   r>   _conv_pixelsr   r@   r   r   r   r      s(        L9 9 9 9 9r   r   c                       e Zd ZdZd ZdS )	LabelTest)activebackgroundactiveforegroundanchorrC   bitmaprD   compoundrE   disabledforegroundry   rz   rF   rG   rH   rI   imagejustifyrK   rL   rM   staterO   r}   textvariable	underlinerQ   
wraplengthc                 0    t          j        | j        fi |S r   )rS   r   rU   rV   s     r   r    zLabelTest.create   ru   r   Nrv   r@   r   r   r   r      s*        G2 2 2 2 2r   r   c                       e Zd ZdZd Zd ZdS )
ButtonTest) r   r   r   rC   r   rD   commandr   rE   r;   r   ry   rz   rF   rG   rH   rI   r   r   
overreliefrK   rL   rM   repeatdelayrepeatintervalr   rO   r}   r   r   rQ   r   c                 0    t          j        | j        fi |S r   )rS   ButtonrU   rV   s     r   r    zButtonTest.create       ~di226222r   c                 `    |                                  }|                     |dddd           d S )Nr;   activedisablednormalr    r   r   s     r   test_configure_defaultz!ButtonTest.test_configure_default   s1    FIxXNNNNNr   N)r#   r=   r>   rp   r    r   r@   r   r   r   r      s>        	,G3 3 3O O O O Or   r   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )CheckbuttonTest)&r   r   r   rC   r   rD   r   r   rE   r   ry   rz   rF   rG   rH   rI   r   indicatoronr   	offreliefoffvalueonvaluer   rK   rL   rM   selectcolorselectimager   rO   r}   r   tristateimagetristatevaluer   variablerQ   r   c                 0    t          j        | j        fi |S r   )rS   CheckbuttonrU   rV   s     r   r    zCheckbuttonTest.create       "4977777r   c                 b    |                                  }|                     |ddddd           d S )Nr   r4   ffffff@r-   
any stringr    checkParamsr   s     r   test_configure_offvaluez'CheckbuttonTest.test_configure_offvalue   s3    QRFFFFFr   c                 b    |                                  }|                     |ddddd           d S )Nr   r4   r   r-   r   r   r   s     r   test_configure_onvaluez&CheckbuttonTest.test_configure_onvalue   s3    AsBEEEEEr   c                    g }g }t          d          D ]}t          j        | j                  }|                                 |                    |           dD ]A}t          j        ||          }|                                 |                    |           Bd |D             }|                     t          t          |                    d|           d S )N   AB)r}   c                 8    g | ]}t          |d                    S r   )str).0bs     r   
<listcomp>z9CheckbuttonTest.test_unique_variables.<locals>.<listcomp>   s$    999AS:''999r      )
rangerS   rt   rU   packappendr   r!   lenset)r'   framesbuttonsifjr   	variabless           r   test_unique_variablesz%CheckbuttonTest.test_unique_variables   s    q 	" 	"Adi((AFFHHHMM! " "'222q!!!!" :9999	S^^,,a;;;;;r   c                    t          j        | j                  }t          j        | j                  }t          j        |dd          }t          j        |dd          }t          j        | j        d          }|                                 |                     |                                d           |                                 |                     |                                d           d S )NtestTest1)r   r}   Test2r   r4   r   )	rS   rt   rU   r   IntVarselectr!   getdeselect)r'   f1f2b1b2vs         r   test_same_namezCheckbuttonTest.test_same_name   s    ]49%%]49%% &w??? &w???N496222
		!$$$
!$$$$$r   N)	r#   r=   r>   rp   r    r   r   r   r   r@   r   r   r   r      sl        G8 8 8G G GF F F< < <
% 
% 
% 
% 
%r   r   c                       e Zd ZdZd Zd ZdS )RadiobuttonTest)%r   r   r   rC   r   rD   r   r   rE   r   ry   rz   rF   rG   rH   rI   r   r   r   r   r   rK   rL   rM   r   r   r   rO   r}   r   r   r   r   valuer   rQ   r   c                 0    t          j        | j        fi |S r   )rS   RadiobuttonrU   rV   s     r   r    zRadiobuttonTest.create  r   r   c                 b    |                                  }|                     |ddddd           d S )Nr  r4   r   r-   r   r   r   s     r   test_configure_valuez$RadiobuttonTest.test_configure_value  s3    !S"lCCCCCr   N)r#   r=   r>   rp   r    r  r@   r   r   r  r     s>        G8 8 8D D D D Dr   r  c                   T    e Zd ZdZeZd Zd Zd Ze	j
        Z
d Zd Zd Zd Zd	 Zd
S )MenubuttonTest)r   r   r   rC   r   rD   r   rE   	directionr   ry   rz   rF   rG   rH   rI   r   r   r   rJ   rK   rL   rM   r   rO   r}   r   r   rQ   r   c                 0    t          j        | j        fi |S r   )rS   
MenubuttonrU   rV   s     r   r    zMenubuttonTest.create  r   r   c           	      d    |                                  }|                     |dddddd           d S )Nr
  abovebelowflushleftrightr   r   s     r   test_configure_directionz'MenubuttonTest.test_configure_direction  s@    FK'67	< 	< 	< 	< 	<r   c                 n    |                                  }|                     |ddddt                     d S )NrF   d   r   convr    checkIntegerParamr   r   s     r   test_configure_heightz$MenubuttonTest.test_configure_height"  s6    vxdACHHHHHr   c                 d   |                                  }t          j        | j        d          }|                     |d|t
                     d}|                     t          j                  5 }d|d<   d d d            n# 1 swxY w Y   |(|                     t          |j	                  |           |                     t          j                  5 }|
                    ddi           d d d            n# 1 swxY w Y   |*|                     t          |j	                  |           d S d S )Nimage1)masterr   r   r  zimage "spam" doesn't existspam)r    rS   
PhotoImagerU   r\   r   assertRaisesr   r!   	exception	configure)r'   r(   r   r   cms        r   test_configure_imagez#MenubuttonTest.test_configure_image)  s   "$)(CCCS999.w/00 	%B$F7O	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%S..777w/00 	0Bgv.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0S..77777 s$   /BBBC99C= C=c                     |                                  }t          j        |d          }|                     |d|t                     |                                 d S )NrJ   r   rY   )r    rS   r[   r\   r   r   r]   s      r   r^   z"MenubuttonTest.test_configure_menu7  sN    |F000;;;r   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	NrK      皙@ffffff@12mr   r   r   r    r   r\   r   s     r   test_configure_padxz"MenubuttonTest.test_configure_padx=  M    ffac5AAAQ77777r   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	NrL   r(  r)  r*  r+  r   r   r   r,  r   s     r   test_configure_padyz"MenubuttonTest.test_configure_padyB  r.  r   c                 n    |                                  }|                     |ddddt                     d S )NrQ     nr   r  r  r   s     r   test_configure_widthz#MenubuttonTest.test_configure_widthG  s6    vwT13GGGGGr   N)r#   r=   r>   rp   r   r   r    r  r  r   r   r%  r^   r-  r0  r4  r@   r   r   r	  r	    s        
G L7 7 7< < <
I I I
 	> &8 8 8  8 8 8
8 8 8
H H H H Hr   r	  c                       e Zd ZddZd ZdS )OptionMenuTestr   ar   cc                 :    t          j        | j        d |g|R i |S r   )rS   
OptionMenurU   )r'   r;   valuesrW   s       r   r    zOptionMenuTest.createN  s)    !$)T7NVNNNvNNNr   c                     |                      t          d          5  t          j        | j        d dd           d d d            d S # 1 swxY w Y   d S )Nz^unknown option -image$r   r-   )r   )assertRaisesRegexr   rS   r;  rU   r'   s    r   test_bad_kwargzOptionMenuTest.test_bad_kwargQ  s    ##H.HII 	? 	?ty$2>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AAAN)r   r7  )r#   r=   r>   r    r@  r@   r   r   r6  r6  L  s;        O O O O? ? ? ? ?r   r6  c                   T    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )	EntryTest)rC   rD   rE   disabledbackgroundr   exportselectionry   rz   rG   rH   rI   insertbackgroundinsertborderwidthinsertofftimeinsertontimeinsertwidthinvalidcommandr   readonlybackgroundrM   selectbackgroundselectborderwidthselectforegroundshowr   rO   r   validatevalidatecommandrQ   xscrollcommandc                 0    t          j        | j        fi |S r   )rS   EntryrU   rV   s     r   r    zEntryTest.createe  ru   r   c                 Z    |                                  }|                     |d           d S )NrC  r    checkColorParamr   s     r   !test_configure_disabledbackgroundz+EntryTest.test_configure_disabledbackgroundh  ,    V%9:::::r   c           
          |                      d          }|                     |ddddddd	           |                     |dd
d           d S )Nr  )rI  rF  r   r   r   r   r   r   <   2   r   r,  r   s     r    test_configure_insertborderwidthz*EntryTest.test_configure_insertborderwidthl  sb    --f&9c1b%	9 	9 	9 	 3R&IIIIIr   c                     |                                  }|                     |dddd           |                     |ddd           |                     |ddd           |                     |dd	d
           d S )NrI  r   @r   g?r   r   r   g?r4   r,  r   s     r   test_configure_insertwidthz$EntryTest.test_configure_insertwidths  s    fmS#uEEEsQ???rA>>>sQ?????r   c                     |                                  }|                     |d           |                     |d           d S )NrJ  invcmdr    checkCommandParamr   s     r   test_configure_invalidcommandz'EntryTest.test_configure_invalidcommandz  sB    v'7888vx00000r   c                 Z    |                                  }|                     |d           d S )NrK  rV  r   s     r   !test_configure_readonlybackgroundz+EntryTest.test_configure_readonlybackground  rY  r   c                     |                                  }|                     |dd           |                     |dd           |                     |dd           d S )NrO  *r-    r    r\   r   s     r   test_configure_showzEntryTest.test_configure_show  sW    ,,,+++,,,,,r   c                 `    |                                  }|                     |dddd           d S )Nr   r   r   readonlyr   r   s     r   test_configure_statezEntryTest.test_configure_state  s<    FG&*	> 	> 	> 	> 	>r   c           
      f    |                                  }|                     |ddddddd           d S )NrP  allkeyfocusfocusinfocusoutnoner   r   s     r   test_configure_validatez!EntryTest.test_configure_validate  sG    FJugy*f	F 	F 	F 	F 	Fr   c                     |                                  }|                     |d           |                     |d           d S )NrQ  vcmdrc  r   s     r   test_configure_validatecommandz(EntryTest.test_configure_validatecommand  sB    v'8999vv.....r   c                 F   |                                  }|                    dd           |                     |                                           |                    dd           |                     |                                d           |                     |                                           |                    d           |	                    d           |                     |                                d           |                    dd           |                     |                                d	           |
                                 |                     |                                           |                    dd           |                    d           |                     |                                d
           |                    d           |                     |                                d           |                    d           |                     |                                d           |                    d           |                     |                                d           |                    d           d S Nr   12345endr4   r   2r(  r   41234234   2345r    insertassertFalseselection_presentselection_ranger!   selection_get
assertTrueselection_fromselection_toselection_clearselection_adjustr   s     r   test_selection_methodsz EntryTest.test_selection_methods  sU   a!!!1133444q%(((--//9990022333a   A--//555q!$$$--//555   1133444q%((("""--//888"""--//777"""--//888"""--//999"""""r   N)r#   r=   r>   rp   r    rX  r]  r`  re  rg  rl  ro  rw  rz  r  r@   r   r   rB  rB  V  s        G2 2 2; ; ;J J J@ @ @1 1 1
; ; ;- - -> > >
F F F
/ / /
# # # # #r   rB  c                   j    e Zd ZdZd ZdZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )SpinboxTest),r   rC   rD   buttonbackgroundbuttoncursorbuttondownreliefbuttonupreliefr   rE   rC  r   rD  ry   rz   formatfromrG   rH   rI   	incrementrE  rF  rG  rH  rI  rJ  r   rM   rK  r   r   rL  rM  rN  r   rO   r   torP  rQ  r<  rQ   wraprR  c                 0    t          j        | j        fi |S r   )rS   SpinboxrU   rV   s     r   r    zSpinboxTest.create      ty33F333r   Nc                 Z    |                                  }|                     |d           d S )Nr  rV  r   s     r   test_configure_buttonbackgroundz+SpinboxTest.test_configure_buttonbackground  s,    V%788888r   c                 Z    |                                  }|                     |d           d S )Nr  r    checkCursorParamr   s     r   test_configure_buttoncursorz'SpinboxTest.test_configure_buttoncursor  +    fn55555r   c                 Z    |                                  }|                     |d           d S )Nr  r    checkReliefParamr   s     r   test_configure_buttondownreliefz+SpinboxTest.test_configure_buttondownrelief  s,    f&899999r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_buttonupreliefz)SpinboxTest.test_configure_buttonuprelief  s,    f&677777r   c                 V   |                                  }|                     |dd           |                     |dd           |                     |dd           |                     |dd           |                     |dd           |                     |dd           |                     |dd           |                     |dd	           |                     |dd
           |                     |dd           |                     |dd           |                     |dd           d S )Nr  z%2fz%2.2fz%.2fz%2.fz%2e-1fz2.2z%2.-2fz%-2.02fz% 2.02fz	% -2.200fz%09.200fz%dr    r\   r%   r   s     r   test_configure_formatz!SpinboxTest.test_configure_format  s%   %000'222&111&111vx:::vx777vx:::)444)444+666*555vx66666r   c                     |                                  }|                     |dd           |                     |dddd           |                     |ddd	           d S )
Nr  g      Y@r  ffffff$@ffffff'@   *-to value must be greater than -from valuer   r    r\   checkFloatParamr%   r   s     r   test_configure_fromzSpinboxTest.test_configure_from  sv    e,,,VVS$===vvsC 	 	E 	E 	E 	E 	Er   c           	      d    |                                  }|                     |dddddd           d S )Nr  r4   r  g)@r   r    r  r   s     r   test_configure_incrementz$SpinboxTest.test_configure_increment  s5    V["atQGGGGGr   c                     |                                  }|                     |dd           |                     |dddd           |                     |ddd	           d S )
Nr  g      Yr  r  r  r  i8r  r   r  r   s     r   test_configure_tozSpinboxTest.test_configure_to  sv    ///VT3d;;;vtTC 	 	E 	E 	E 	E 	Er   c                 &   |                                  }|                     |d         d           |                     |dd           |                     |ddd           |                     |ddd           |                     |dd           d S )Nr<  r-   zmon tue wed thur)montuewedthurr   )*   gQ	@r-   r   z42 3.14 {} {any string})r    r!   r\   r   s     r   test_configure_valuesz!SpinboxTest.test_configure_values  s    )2...*<===*G!3 	 	5 	5 	5*F!: 	 	< 	< 	<"-----r   c                 Z    |                                  }|                     |d           d S )Nr  r    checkBooleanParamr   s     r   test_configure_wrapzSpinboxTest.test_configure_wrap  +    vv.....r   c                    |                                  }|                     |                    d                     |                     t          j        |j        d           |                     t          j        |j        d            |                     t          |j                   |                     t          |j        dd           d S )Nr   noindexr4   )r    assertIsBoundingBoxbboxr!  rS   r   	TypeErrorr   s     r   	test_bboxzSpinboxTest.test_bbox
  s      Q000'*FKCCC'*FK>>>)V[111)V[!Q77777r   c                    |                                  }|                    dd           |                     |                                           |                    dd           |                     |                                d           |                     |                                           |                    d           |	                    d           |                     |                                d           |                    dd           |                     |                                d	           |
                                 |                     |                                           |                    dd           |                    d           |                     |                                d
           |                    d           |                     |                                d           |                    d           |                     |                                d           |                    d           |                     |                                d           d S r|  r  r   s     r   r  z"SpinboxTest.test_selection_methods  sA   a!!!1133444q%(((--//9990022333a   A--//555q!$$$--//555   1133444q%((("""--//888"""--//777"""--//888"""--//99999r   c                 r   |                                  }|                     |                                d           |                    d           |                     |                                d           |                    d           |                     |                                d           d S )Nrv  buttonup
buttondown)r    r!   selection_elementr   s     r   test_selection_elementz"SpinboxTest.test_selection_element*  s    1133V<<<  ,,,1133Z@@@  ...1133\BBBBBr   )r#   r=   r>   rp   r    rl  r  r  r  r  r  r  r  r  r  r  r  r  r  r@   r   r   r  r    s       G"4 4 4 9 9 96 6 6: : :8 8 87 7 7E E EH H HE E E	. 	. 	./ / /8 8 8: : :0C C C C Cr   r  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
 ed	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d ZdS )TextTest))autoseparatorsrC   blockcursorrD   rE   endlinerD  ry   rz   rF   rG   rH   rI   inactiveselectbackgroundrE  rF  rG  rH  insertunfocussedrI  maxundorK   rL   rM   rL  rM  rN  setgridspacing1spacing2spacing3	startliner   tabstabstylerO   undorQ   r  rR  yscrollcommandc                 0    t          j        | j        fi |S r   )rS   TextrU   rV   s     r   r    zTextTest.createC      |DI00000r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_autoseparatorsz&TextTest.test_configure_autoseparatorsF  ,    v'788888r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_blockcursorz#TextTest.test_configure_blockcursorJ  +    v}55555r   c                    |                                  }d                    d t          d          D                       }|                    d|           |                     |ddd           |                     |dd	d           |                     |dd
d           |                     |dd           |                     |dd           |                     |ddd           d S )N
c              3      K   | ]}d V  dS zLine %dNr@   r   r   s     r   	<genexpr>z2TextTest.test_configure_endline.<locals>.<genexpr>P  "      77q777777r   r  r~  r  r  r-   r   r  r  expected integer but got "spam"r   r\  r     
   1-startline must be less than or equal to -endliner    joinr   r  r\   r%   r'   r(   r}   s      r   test_configure_endlinezTextTest.test_configure_endlineN  s   yy77E#JJ77777eT"""	3<<<	3<<<vy&8 	 	: 	: 	:	2...R000vy"J 	 	L 	L 	L 	L 	Lr   c                     |                                  }|                     |ddddd           |                     |ddd           |                     |dd	d           d S )
NrF   r  LY@fffffY@3cr  r4   r   r   r,  r   s     r   r  zTextTest.test_configure_height[  sg    fhUE4HHH$;;;!a88888r   c                 `    |                                  }|                     |dddd           d S )Nr  r   r  r  r    r  r   s     r   test_configure_maxundozTextTest.test_configure_maxundoa  s1    vy!Q;;;;;r   c                 Z    |                                  }|                     |d           d S )Nr  rV  r   s     r   'test_configure_inactiveselectbackgroundz0TextTest.test_configure_inactiveselectbackgrounde  s,    V%?@@@@@r      r   c                 `    |                                  }|                     |dddd           d S )Nr  hollowrv  solidr   r   s     r   test_configure_insertunfocussedz(TextTest.test_configure_insertunfocussedi  s=    F$6$fg	7 	7 	7 	7 	7r   c           	      f    |                                  }|                     |dddddd           d S )NrM  r   r   r   r   Fr  r   r   s     r    test_configure_selectborderwidthz)TextTest.test_configure_selectborderwidtho  sF    f&9!3E 	 	? 	? 	? 	? 	?r   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	Nr     ffffff5@皙6@0.5cr   r   r,  r   s     r   test_configure_spacing1z TextTest.test_configure_spacing1t  sM    fj"dD&III
B;;;;;r   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	Nr  r  皙@ffffff@z0.1cr  r   r   r,  r   s     r   test_configure_spacing2z TextTest.test_configure_spacing2y  sM    fj!S#vFFF
B;;;;;r   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	Nr  r  r  r  r  r  r   r   r,  r   s     r   test_configure_spacing3z TextTest.test_configure_spacing3~  sM    fj"dD&III
C!<<<<<r   c                    |                                  }d                    d t          d          D                       }|                    d|           |                     |ddd           |                     |dd	d           |                     |dd
d           |                     |dd           |                     |dd           |                     |ddd           d S )Nr  c              3      K   | ]}d V  dS r  r@   r  s     r   r  z4TextTest.test_configure_startline.<locals>.<genexpr>  r  r   r  r~  r  r  r-   r   r  r  r  r   r  r  r\  F   r  r  r  s      r   test_configure_startlinez!TextTest.test_configure_startline  s   yy77E#JJ77777eT"""S2>>>S2>>>v{F8 	 	: 	: 	:R000	2...v{BJ 	 	L 	L 	L 	L 	Lr   c                 ^    |                                  }|                     |ddd           d S Nr   r   r   r   r   s     r   ro  zTextTest.test_configure_state  /    FGZBBBBBr   c                 &   |                                  }|                     |dd           |                     |ddt          | j                  dk    rdnd           |                     |ddd           |                     |dd	d
           d S )Nr  )r  g333334@1i2iz10.2 20.7 1i 2ir  r      )z10.2z20.7r$  r%  r   z2c left 4c 6c center)2cr  4c6cr   r  zbad screen distance "spam"r   )r    r\   r   rU   r%   r   s     r   test_configure_tabszTextTest.test_configure_tabs  s    (@AAA(9$5di$@$@J$N$N ":!9&B 	 	D 	D 	D 	(>!E 	 	G 	G 	Gvvv&B 	 	D 	D 	D 	D 	Dr   c                 ^    |                                  }|                     |ddd           d S )Nr  tabularwordprocessorr   r   s     r   test_configure_tabstylez TextTest.test_configure_tabstyle  s/    FJ	?KKKKKr   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_undozTextTest.test_configure_undo  r  r   c                     |                                  }|                     |dd           |                     |ddd           |                     |ddd           d S )NrQ   r2  r3  r4   r   r   )r    r  r\   r   s     r   r4  zTextTest.test_configure_width  sa    vw444:::Q77777r   c                 `    |                                  }|                     |dddd           d S )Nr  charrv  wordr   r   s     r   r  zTextTest.test_configure_wrap  s1    FFFFFCCCCCr   c                    |                                  }|                     |                    d                     |                     |                    d                     |                     t
          j        |j        d           |                     t
          j        |j        d            |                     t          |j                   |                     t          |j        dd           d S )Nz1.1r~  r  )r    r  r  assertIsNoner!  rS   r   r  r   s     r   r  zTextTest.test_bbox  s      U!3!3444&++e,,---'*FKCCC'*FK>>>)V[111)V[%?????r   N)r#   r=   r>   rp   r    r  r  r  r  r  r  r   r  r  r  r  r  r  ro  r+  r/  r1  r4  r  r  r@   r   r   r  r  3  sz       G1 1 19 9 96 6 6L L L9 9 9< < <A A A [A7 7 7
? ? ?
< < <
< < <
= = =
L L LC C C
D 
D 
DL L L/ / /8 8 8D D D@ @ @ @ @r   r  c                       e Zd ZdZeZdZd Zd Z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dd          d             ZdS )
CanvasTest)rC   rD   closeenoughconfinerE   rF   rG   rH   rI   rE  rF  rG  rH  rI  offsetrM   scrollregionrL  rM  rN  r   rO   rR  xscrollincrementr  yscrollincrementrQ   Tc                 0    t          j        | j        fi |S r   )rS   CanvasrU   rV   s     r   r    zCanvasTest.create  r   r   c           	      p    |                                  }|                     |dddddt                     d S )Nr:     333333@r_  r  )r    r  r   r   s     r   test_configure_closeenoughz%CanvasTest.test_configure_closeenough  sE    V]BS""' 	 	) 	) 	) 	) 	)r   c                 Z    |                                  }|                     |d           d S )Nr;  r  r   s     r   test_configure_confinez!CanvasTest.test_configure_confine  +    vy11111r   c                 .   |                                  }|                     |d         d           |                     |dddddddd	d
d           |                     |dd           |                     |dd           |                     |dd           d S )Nr<  z0,0r   r   r   r   r   r   r   r   r   z10,20z#5,6r  )r    r!   r   r\   r%   r   s     r   test_configure_offsetz CanvasTest.test_configure_offset  s    )5111T3c4dH	F 	F 	F'222&111vx88888r   c                 x   |                                  }|                     |dd           |                     |ddd           |                     |dd           |                     |ddd           |                     |dd	           |                     |dd
           |                     |dd           d S )Nr=  z0 0 200 150)r   r   r     r   r-   r  zbad scrollRegion "spam"r   )r   r   r  r  )r   r   r  )r   r   r  rM  r   r  r   s     r   test_configure_scrollregionz&CanvasTest.test_configure_scrollregion  s    >>>0@!. 	 	0 	0 	0333v~v&? 	 	A 	A 	Av~7JKKKv~{CCCv~7JKKKKKr   c                 b    |                                  }|                     |dddd           d S )Nr   r   r   z0bad state value "{}": must be normal or disabledr   r   r   s     r   ro  zCanvasTest.test_configure_state  sF    FGZI 	 	K 	K 	K 	K 	Kr   c           
      f    |                                  }|                     |ddddddd           d S )Nr>  (   r   gD@gE@iz0.5ir   r   s     r   test_configure_xscrollincrementz*CanvasTest.test_configure_xscrollincrement  C    f&8 !T4f	> 	> 	> 	> 	>r   c           
      f    |                                  }|                     |ddddddd           d S )Nr?  r  r   ffffff&@g333333+@r  z0.1ir   r   s     r   test_configure_yscrollincrementz*CanvasTest.test_configure_yscrollincrement  rS  r   c                     dD ]8} ||          }|                      |                    |d          |           9|                     t          |d           d S )N)bevelmiterr   )	joinstylerZ  r  r!   itemcgetr!  r   )r'   r9  factoryrZ  r   s        r   _test_option_joinstylez!CanvasTest._test_option_joinstyle  sm    2 	D 	DI),,,AQZZ;77CCCC(Gv>>>>>r   c                    dD ]8} ||          }|                      |                    |d          d           9dD ]8} ||          }|                      |                    |d          d           9 |dd	          }|                      |                    |d          d           |                      |                    |d
          d            |dd	          }|                      |                    |d          d           |                      |                    |d
          d           |                     t          |d           d S )N)r4   Tr6   trueyeson)smoothrc  r`  )r   Fr3   falsenooffr3   T   )rc  
splinesteprh  30rawr  r[  )r'   r9  r]  rc  r   s        r   _test_option_smoothzCanvasTest._test_option_smooth  sk   7 	> 	>Fv&&&AQZZ844f====9 	; 	;Fv&&&AQZZ844c::::G4B///Ax00&999A|44d;;;G5R000Ax00%888A|44d;;;(GF;;;;;r   c           
         |                                  }|                    dddd          }|                     |                    |          g d           |                     |                    |          d           |                    g d          }|                     |                    |          g d           |                     |                    |          d	           |                    d
d          }|                     |                    |          g d           |                     |                    |          d           |                    ddg          }|                     |                    |          g d           |                     |                    |          d           |                     t          |j        ddd           |                     t          |j        g d           |                     t          |j        dddddd           |                     t          |j        g d           |                     t          |j        dd           |                     t          |j        ddg           |                     t          |j                   |                     t          |j        g            d S )Nr  rg  r[  r  )      4@      $@      N@      >@)   	   =      )   rt  rs     )      5@      &@     N@      ?@)r  r  >          r|  r{     )      6@      (@      O@      @@)ru  rv  ?   !      r  r     )      7@      *@     O@     @@)r~  r  @   "   r  rg  r[  rQ  r\  r  rg  rQ  r\  r[  r  )r    create_rectangler!   coordsr  r!  r   
IndexError)r'   r9  i1i2i3i4s         r   test_create_rectanglez CanvasTest.test_create_rectangle  s   KKMMBB//"'?'?'?@@@_555 0 0 011"'?'?'?@@@%5666(33"'?'?'?@@@%56668 455"'?'?'?@@@%5666(A$6BCCC(A$6EEE(A$6BBBOOO(A$68P8P8PQQQ(A$6B???(A$6RAAA*a&8999*a&8"=====r   c           	      	   |                                                      dddddd          }|                                         |          g d           |                                         |          d           |                                         |d	          d
           |                                         |d          d           |                                         |d          d           |                                         |d          d           |                                         |d          d           |                                         |d          d                               g d          }|                                         |          g d           |                                         |          d                               ddd          }|                                         |          g d           |                                         |          d                               g d          }|                                         |          g d           |                                         |          d           |                     t          j        ddd           |                     t          j        g d            |                     t          j        dd           |                     t          j        ddg           |                     t          j                   |                     t          j        g            d!D ]F}                    dddd|"          }|                                         |d	          |           G                    ddddd#g d$%          }|                                         |d          d&           |                     t          j        ddddd'"           d(D ]F}                    dddd|)          }|                                         |d          |           G|                     t          j        ddddd')           | 	                    fd*           | 
                    fd+           d S ),Nr  rg  rQ  r\  r[  r  rm  rp        D@      I@ro  rn     r  r{  4   arrowrv  
arrowshapez8 10 3capstylebuttrZ  r   rc  r3   rh  12ru  rt  )   3   rs  rv  rw  rz  g     D@g     I@ry  rx  )rq  rr  r  5   r}  r  r  r  r  r  g      E@g      J@r  r  )r  r  r  6   r  )+   r  r  r  r  g     E@g     J@r  r  )ru  rv  A   7   r  )rv  firstlastboth)r  r  )r  r  r  )r  r  z10 15 5r  )r  
projectingr   )r  c                       j         di | S Nr  create_linerW   r9  s    r   <lambda>z-CanvasTest.test_create_line.<locals>.<lambda>Z  s    !P!P!P!P r   c                       j         di | S )N)r  rg  r[  r  r  r  s    r   r  z-CanvasTest.test_create_line.<locals>.<lambda>\  s    !H!H!H!H r   )r    r  r!   r  r  r\  r!  r   r  r^  rk  )	r'   r  r  r  r  r  r   r  r9  s	           @r   test_create_linezCanvasTest.test_create_line.  s   KKMM]]2r2r2r22"'K'K'KLLL_555B00&999B55x@@@B
33V<<<B44g>>>B113777B55t<<<]]33344"'K'K'KLLL_555]]8Xx88"'K'K'KLLL%5666]]999::"'K'K'KLLL%5666(AM2r2>>>(AM<<<@@@(AM2r:::(AMB8<<<*am444*amR8884 	< 	<Eb"b"E::AQZZ733U;;;;MM"b"bKKKMPPA|44i@@@(AM2r2rPPP5 	B 	BHb"b"x@@AQZZ:66AAAA(AM2r2rFSSS##APPPP	R 	R 	R  HHHH	J 	J 	J 	J 	Jr   c                    |                                                      dddddd          }|                                         |          g d           |                                         |          d           |                                         |d	          d
           |                                         |d          d           |                                         |d          d                               g d          }|                                         |          g d           |                                         |          d                               ddd          }|                                         |          g d           |                                         |          d                               g d          }|                                         |          g d           |                                         |          d           |                     t          j        ddd           |                     t          j        g d           |                     t          j                   |                     t          j        g            | 	                    fd           | 
                    fd           d S )Nr  rg  rQ  r\  r[  r  r  )rq  rr  rs  r  rZ  r   rc  r3   rh  r  r  r  )r  r  r{  r  r}  r  r  r  )ru  rv  r  r  r  r  )r~  r  r  r  r  c                       j         di | S r  create_polygonr  s    r   r  z0CanvasTest.test_create_polygon.<locals>.<lambda>y      !1!1!S!SF!S!S r   c                       j         di | S r  r  r  s    r   r  z0CanvasTest.test_create_polygon.<locals>.<lambda>{  r  r   )r    r  r!   r  r  r\  r!  r   r  r^  rk  )r'   r  r  r  r  r9  s        @r   test_create_polygonzCanvasTest.test_create_polygon^  s   KKMMb"b"b"55"'K'K'KLLL_555B44g>>>B113777B55t<<<66677"'K'K'KLLL%5666h(;;"'K'K'KLLL%5666<<<=="'K'K'KLLL%5666(A$4b"bAAA(A$4lllCCC*a&6777*a&6;;;##ASSSS	U 	U 	U  SSSS	U 	U 	U 	U 	Ur   c           	      6   |                                  }|                    ddddddd          }|                     |                    |          g d	           |                     |                    d          g d	           |                     |                    |          d
           |                    |dddddd           |                     |                    |          g d           |                     |                    |          d           |                    |g d           |                     |                    |          g d           |                    |dddd           |                     |                    |          g d           |                     |                    |          d           |                     t          |j        |ddd           |                     t          |j        |g d           |                     t          |j        |dd           |                     t          |j        |ddg           |                    |dddd           |                    |          }|                     |t                     |                     t          |          d           |                     |d         d           t          d          D ]#}|                     ||         t                     $d S )Nr  rg  rQ  r\  r[  r  r   tagsr  r  r  P   Z   )r  ro  g     Q@g      T@g     V@r  )0   &   \   R   r  r  )rm  rp  ro  rn  )r  r  r{  r|  r  2030c60ir   r   r   )r    r  r!   r  r  r!  r   assertIsInstancelistr   r   r   )r'   r9  r   r  s       r   test_coordszCanvasTest.test_coords}  s   KKMMMM"b"b"bsM;;!&J&J&JKKK#(L(L(LMMMO444	BBB+++!&J&J&JKKK$4555	,,,---!&J&J&JKKK	BB###!&>&>&>???O444(AHaR<<<(AHa>>>(AHaR888(AHa"b:::	D%...!fd+++Va(((B'''q 	4 	4A!!&)U3333	4 	4r   r  r   c                    |                                  }|                    ddddd          }|                    ddddd          }|                    |          \  }}}}|                    |          \  }}}}|                    ddd	           |                    |          \  }	}
}}|                    |          \  }}}}|                     |	d           |                     |
d	           |                     ||z
  ||	z
             |                     ||z
  ||
z
             |                    ||           |                    dd
           |                    |          \  }}}}|                    |          \  }}}}|                     |d           |                     ||           |                     ||	z
  ||z
             |                     ||
z
  ||z
             d S )Nr4   r  groupr  rg  r\  r  r  r  )y)r    r  r  movetor!   	tag_lower)r'   r(   r  r  x1y1_x2y2x1_2y1_2x2_2y2_2x1_3y1_3x2_3y2_3s                    r   test_movetozCanvasTest.test_moveto  s   $$Q2r$@@$$RR'$BB{{2B1{{2B1gsC(((!;;r??dAq!;;r??dAqs###s###b$+...b$+...R   g$$$!;;r??dAq!;;r??dAqr"""t$$$dTk222dTk22222r   N)r#   r=   r>   rp   r   r   
_stringifyr    rF  rH  rK  rN  ro  rR  rV  r^  rk  r  r  r  r  r   r  r@   r   r   r9  r9    s.       G LJ3 3 3) ) )
2 2 29 9 9
L 
L 
LK K K
> > >
> > >
? ? ?< < <> > >6.J .J .J`U U U>4 4 4> [A3 3 3 3 3r   r9  c                       e Zd ZdZd Zd Z  eddd          ej                  Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )ListboxTest)activestylerC   rD   rE   r   rD  ry   rz   rF   rG   rH   rI   r   listvariablerM   rL  rM  rN  
selectmoder  r   rO   rQ   rR  r  c                 0    t          j        | j        fi |S r   )rS   ListboxrU   rV   s     r   r    zListboxTest.create  r  r   c                 `    |                                  }|                     |dddd           d S )Nr  dotboxrv  r   r   r   s     r   test_configure_activestylez&ListboxTest.test_configure_activestyle  s<    FM$fk	; 	; 	; 	; 	;r   r  r   r  c                     |                                  }t          j        | j                  }|                     |d|           d S )Nr  )r    rS   	DoubleVarrU   checkVariableParam)r'   r(   vars      r   test_configure_listvariablez'ListboxTest.test_configure_listvariable  s?    	**<<<<<r   c                     |                                  }|                     |dd           |                     |dd           |                     |dd           |                     |dd           d S )Nr  singlebrowsemultipleextendedrk  r   s     r   test_configure_selectmodez%ListboxTest.test_configure_selectmode  sm    h777h777j999j99999r   c                 ^    |                                  }|                     |ddd           d S r!  r   r   s     r   ro  z ListboxTest.test_configure_state  r"  r   c                 ~   |                                  }|                     t          d          5  |                    d           d d d            n# 1 swxY w Y   d                                } |j        dg|R   t          |          D ]\  }}|                    ||           |                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t          d          5  |                    d           d d d            n# 1 swxY w Y   t          | j
                  dk    rd	}nd
}|                     |                    dd          g |dR            |                     |                    dd          g |dR            |                     |                    dd          g |dR            |                    d          }|                     |t                     |                                D ]\  }}|                     t!          |          d           t!          |          dk    rZ|                     ||                    d|                     |                     |d         |                    d|                     d S )Nzitem number "0" out of ranger   z)red orange yellow green blue white violetr~  )rC   zbad listbox index "red"redr&  )rC   r-   r-   r-   )rC   rC   
Backgroundr-   rC   violetz@0,0)r   r  r  r   )r    r>  r   itemconfiguresplitr  	enumerater!  r  r   rU   r!   r  dictitemsassertInr   r\  )	r'   r(   colorsr   colorprefixdkr   s	            r   test_itemconfigurezListboxTest.test_itemconfigure  s   ##H.LMM 	$ 	$  ###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$<BBDDe%f%%%%!&)) 	6 	6HAu  u 5555y)) 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	###H.GHH 	( 	(  '''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(TY'':55/FFCF--a>>)6)5))	+ 	+ 	+--e\BB,6,8,,	. 	. 	.--flCC)6)5))	+ 	+ 	+   ##a&&&GGII 	> 	>DAqMM#a&&&)))1vv{{  F$8$8A$>$>???  1vq!'<'<===		> 	>s5   AAAC&&C*-C*D..D25D2c                    |                                  }|                    ddddd            |j        d
i ||i |                     |                    d|          d         |           |                     |                    d|          |           |                     t          d          5   |j        d
i |d	i d d d            d S # 1 swxY w Y   d S )Nr~  r8  r   r9  r  r   r   zunknown color name "spam"r  )r   )r    r  r  r!   r\  r>  r   )r'   r   r  r(   s       r   check_itemconfigurezListboxTest.check_itemconfigure  s-   eS#sC000004-000--a66q95AAAD115999##H.IJJ 	6 	6 F 55tVn555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   2CCCc                 2    |                      dd           d S )NrC   #ff0000r  r?  s    r   test_itemconfigure_backgroundz)ListboxTest.test_itemconfigure_background        y99999r   c                 2    |                      dd           d S )Nbgr  r  r?  s    r   test_itemconfigure_bgz!ListboxTest.test_itemconfigure_bg        y11111r   c                 2    |                      dd           d S )Nfg#110022r  r?  s    r   test_itemconfigure_fgz!ListboxTest.test_itemconfigure_fg	  r  r   c                 2    |                      dd           d S )Nrz   r  r  r?  s    r   test_itemconfigure_foregroundz)ListboxTest.test_itemconfigure_foreground  r  r   c                 2    |                      dd           d S )NrL  r  r  r?  s    r   #test_itemconfigure_selectbackgroundz/ListboxTest.test_itemconfigure_selectbackground        !3Y?????r   c                 2    |                      dd           d S )NrN  z#654321r  r?  s    r   #test_itemconfigure_selectforegroundz/ListboxTest.test_itemconfigure_selectforeground  r#  r   c                    |                                  } |j        dgd t          d          D             R   |                                 |                     |                    d                     |                     |                    d                     |                     |                    d                     |                     t          |j        d           |                     t          |j        d            |                     t          |j                   |                     t          |j        dd           d S )Nr   c              3       K   | ]	}d |z  V  
dS zel%dNr@   r  s     r   r  z'ListboxTest.test_box.<locals>.<genexpr>  &      44avz444444r   r  r  r  r  r4   )
r    r  r   r   r  r  r7  r!  r   r  r'   lbs     r   test_boxzListboxTest.test_box  s   [[]]	!5445884445555
			  ,,,"''"++&&&"''"++&&&(BGY777(BGT222)RW---)RWa33333r   c                    |                                  } |j        dgd t          d          D             R   |                    dt          j                   |                    dd           |                    d           |                     |                                d           | 	                    t          |j        d           d S )Nr   c              3       K   | ]	}d |z  V  
dS r(  r@   r  s     r   r  z0ListboxTest.test_curselection.<locals>.<genexpr>#  r)  r   r  r   r   r   )r   r(  r   r   )r    r  r   r  rS   ENDselection_setr!   curselectionr!  r  r*  s     r   test_curselectionzListboxTest.test_curselection!  s    [[]]	!5445884445555
1gk***
A
**L999)R_a88888r   c                    |                                  } |j        dgd t          d          D             R   |                     |                    d          d           |                     |                    d          d           |                     |                    d          d           |                     |                    d          d	           |                     |                    d
          d	           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     t          |j        d           |                     t          |j        d            |                     t          |j                   |                     t          |j        dd           |                     t          |j        ddd           |                     t          |j        d           d S )Nr   c              3       K   | ]	}d |z  V  
dS r(  r@   r  s     r   r  z'ListboxTest.test_get.<locals>.<genexpr>,  r)  r   r  el0r(  el3r~  el7r-   r  r  )r6  el4el5)r9  el6r7  r@   )r5  r  r4   r   rD  )r    r  r   r!   r   r!  r   r  r*  s     r   test_getzListboxTest.test_get*  s   [[]]	!5445884445555E***E***...B'''R(((1'<===5))+@AAA1r***1x000(BFI666(BFD111)RV,,,(BFE9===)RVQ1555(BFC00000r   N)r#   r=   r>   rp   r    r  r   r   test_configure_justifyr  r  ro  r  r  r  r  r  r   r"  r%  r,  r2  r;  r@   r   r   r  r    s8       	G4 4 4; ; ;
 2[[Aq112F2]^^= = =
: : :C C C> > >>6 6 6: : :2 2 22 2 2: : :@ @ @@ @ @
4 
4 
49 9 91 1 1 1 1r   r  c                   ^    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )	ScaleTest)r   rC   bigincrementrD   r   rE   digitsry   rz   r  rG   rH   rI   r   lengthorientrM   r   r   
resolution	showvaluesliderlengthsliderreliefr   rO   tickintervalr  troughcolorr   rQ   verticalc                 0    t          j        | j        fi |S r   )rS   ScalerU   rV   s     r   r    zScaleTest.createK  ru   r   c                 `    |                                  }|                     |dddd           d S )Nr?  g(@g7@r  r  r   s     r   test_configure_bigincrementz%ScaleTest.test_configure_bigincrementN  s1    V^T4DDDDDr   c                 ^    |                                  }|                     |ddd           d S )Nr@  r  r   r  r   s     r   test_configure_digitszScaleTest.test_configure_digitsR  s/    vxA66666r   c                     |                                  }t          | j                  dk    rt          nt          }|                     |dddd|           d S )N)r  r   r  r  r  -@333333.@r  )r    r   rU   r   r   r  )r'   r(   r  s      r   r  zScaleTest.test_configure_fromV  sS    )$)44
BBuuVVS$4HHHHHr   c                     |                                  }|                     |dd           |                     |dd           d S )Nr   r   r-   rk  r   s     r   test_configure_labelzScaleTest.test_configure_label[  sA    666,,,,,r   c                 b    |                                  }|                     |ddddd           d S )NrA     gffffff`@g33333`@5ir   r   s     r   test_configure_lengthzScaleTest.test_configure_length`  s3    fhUE4HHHHHr   c                 b    |                                  }|                     |ddddd           d S )NrC  g@r   g@r   r  r   s     r   test_configure_resolutionz#ScaleTest.test_configure_resolutiond  s3    V\33CCCCCr   c                 Z    |                                  }|                     |d           d S )NrD  r  r   s     r   test_configure_showvaluez"ScaleTest.test_configure_showvalueh  s+    v{33333r   c           	      d    |                                  }|                     |dddddd           d S )NrE  r  rU  333333/@rE  3mr   r   s     r   test_configure_sliderlengthz%ScaleTest.test_configure_sliderlengthl  s@    fn $b$	8 	8 	8 	8 	8r   c                 Z    |                                  }|                     |d           d S )NrF  r  r   s     r   test_configure_sliderreliefz%ScaleTest.test_configure_sliderreliefq  r  r   c           	          |                                  }|                     |dddddt                     |                     |dddt          	           d S )
NrG  r4   333333@r  r   r  r   r   )r   r  )r    r  r   r\   r   s     r   test_configure_tickintervalz%ScaleTest.test_configure_tickintervalu  sk    V^QS!"- 	 	/ 	/ 	/Q( 	 	* 	* 	* 	* 	*r   c           	      p    |                                  }|                     |dddddt                     d S )Nr  i,  rQ  rR  r  r  )r    r  r   r   s     r   r  zScaleTest.test_configure_to|  sE    VT3dC"- 	 	/ 	/ 	/ 	/ 	/r   N)r#   r=   r>   rp   default_orientr    rM  rO  r  rT  rX  rZ  r\  r`  rb  re  r  r@   r   r   r>  r>  >  s        G  N2 2 2E E E7 7 7I I I
- - -
I I ID D D4 4 48 8 8
6 6 6* * */ / / / /r   r>  c                   B    e Zd ZdZeZdZdZd Zd Z	d Z
d Zd Zd	 Zd
S )ScrollbarTest)r   activereliefrC   rD   r   rE   elementborderwidthrG   rH   rI   jumprB  rM   r   r   rO   rH  rQ   TrI  c                 0    t          j        | j        fi |S r   )rS   	ScrollbarrU   rV   s     r   r    zScrollbarTest.create  s     55f555r   c                 Z    |                                  }|                     |d           d S )Nrj  r  r   s     r   test_configure_activereliefz)ScrollbarTest.test_configure_activerelief  r  r   c                 b    |                                  }|                     |ddddd           d S )Nrk  rd  r*  r   1mr   r   s     r   !test_configure_elementborderwidthz/ScrollbarTest.test_configure_elementborderwidth  s4    f&:Cb$OOOOOr   c                 b    |                                  }|                     |dddd           d S )NrB  rI  
horizontalz4bad orientation "{}": must be vertical or horizontalr   r   r   s     r   test_configure_orientz#ScrollbarTest.test_configure_orient  sF    FHj,M 	 	O 	O 	O 	O 	Or   c                 n   |                                  }dD ]?}|                    |           |                     |                                |           @|                    d           |                     |                                           |                     t
          |j        dd           d S )N)arrow1sliderarrow2r-   rx  rz  )r    activater!   r7  r!  r  )r'   sbr   s      r   test_activatezScrollbarTest.test_activate  s    [[]]/ 	/ 	/AKKNNNR[[]]A....
B"++--((()R[(HEEEEEr   c                    |                                  }|                    dd           |                     |                                d           |                     t
          |j        dd           |                     t
          |j        dd           |                     t
          |j        dd            |                     t          |j        d           |                     t          |j        ddd           d S )	N皙?皙?)r  r  abcdefg333333?gffffff?g?)r    r   r!   r   r!  r   r  )r'   r|  s     r   test_setzScrollbarTest.test_set  s    [[]]
sC:...(BFE5999(BFC777(BFC666)RVS111)RVS#s;;;;;r   N)r#   r=   r>   rp   r   r   r  rg  r    rp  rs  rv  r}  r  r@   r   r   ri  ri    s        G LJN6 6 66 6 6P P PO O O
F F F< < < < <r   ri  c                   0   e Zd ZdZdZd Zd Zd Zd Zd Z	 e
dd	d
          d             Z e
dd	d
          d             Z e
dd	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d Zd Zd Zd Zd Zd Zd Zd  Z d! Z!d"S )#PanedWindowTest)rC   rD   rE   	handlepad
handlesizerF   opaqueresizerB  proxybackgroundproxyborderwidthproxyreliefrM   
sashcursorsashpad
sashrelief	sashwidth
showhandlerQ   ru  c                 0    t          j        | j        fi |S r   )rS   PanedWindowrU   rV   s     r   r    zPanedWindowTest.create  r   r   c           	      d    |                                  }|                     |dddddd           d S )Nr  r  r  r  rE  rr  r   r   s     r   test_configure_handlepadz(PanedWindowTest.test_configure_handlepad  s5    fk1c3DIIIIIr   c           
      h    |                                  }|                     |ddddddd           d S )	Nr  r  g"@g333333%@rE  2mFr  r   r   s     r   test_configure_handlesizez)PanedWindowTest.test_configure_handlesize  sG    flAsD"d#( 	 	* 	* 	* 	* 	*r   c                 j    |                                  }|                     |dddddddd		  	         d S )
NrF   r  r   r  r  r   r$  Fr  r   r   s     r   r  z%PanedWindowTest.test_configure_height  sI    fhUE4D#( 	 	* 	* 	* 	* 	*r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_opaqueresizez+PanedWindowTest.test_configure_opaqueresize  s+    v~66666r   r  r   r  c                 Z    |                                  }|                     |d           d S )Nr  rV  r   s     r   test_configure_proxybackgroundz.PanedWindowTest.test_configure_proxybackground  s,    V%677777r   c                 j    |                                  }|                     |dddddddd		  	         d S )
Nr  r   r   g333333@r   r   r   Fr  r   r   s     r   test_configure_proxyborderwidthz/PanedWindowTest.test_configure_proxyborderwidth  sK    f&8c1b%#( 	 	* 	* 	* 	* 	*r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_proxyreliefz*PanedWindowTest.test_configure_proxyrelief  s+    fm44444r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_sashcursorz)PanedWindowTest.test_configure_sashcursor  +    fl33333r   c           	      d    |                                  }|                     |dddddd           d S )Nr  r  r   r   r   r  r   r   s     r   test_configure_sashpadz&PanedWindowTest.test_configure_sashpad  s5    fiCb$GGGGGr   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_sashreliefz)PanedWindowTest.test_configure_sashrelief  r  r   c           
      h    |                                  }|                     |ddddddd           d S )	Nr  r  g333333&@r^  rE  rr  Fr  r   r   s     r   test_configure_sashwidthz(PanedWindowTest.test_configure_sashwidth  sG    fk2tT2t#( 	 	* 	* 	* 	* 	*r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_showhandlez)PanedWindowTest.test_configure_showhandle  s+    v|44444r   c                 j    |                                  }|                     |dddddddd		  	         d S )
NrQ   r2  gfffff6y@gIy@r3  r   rW  Fr  r   r   s     r   r4  z$PanedWindowTest.test_configure_width  sI    fgsE5$4#( 	 	* 	* 	* 	* 	*r   c                     |                                  }t          j        |          }t          j        |          }|                    |           |                    |           |||fS r   )r    rS   r   addr'   pr   r9  s       r   create2zPanedWindowTest.create2  sV    KKMMN1N1	a	a!Qwr   c                    |                                  \  }}}|                     t          |j                   |                    |          }|                     |t
                     |                                D ]\  }}|                     t          |          d           |                     ||                    ||                     |                     |d         |	                    ||                     d S )Nr  r   )
r  r!  r  paneconfigurer  r  r  r!   r   panecget)r'   r  r   r9  r  r  r   s          r   test_paneconfigurez"PanedWindowTest.test_paneconfigure
  s    ,,..1a)Q_555OOAa&&&GGII 	5 	5DAqSVVQ'''Q1 5 5666QqT1::a#3#34444	5 	5r   c                    | j         st          |          } |j        |fi ||i |                     |                    ||          d         |           |                     |                    ||          |           d S )Nr   )r7   r   r  r!   r  )r'   r  r   r   r  r   s         r   check_paneconfigurez#PanedWindowTest.check_paneconfigure  s     	%8}}H++dE]+++D11!4h???At,,h77777r   c                     |                      t          |          5   |j        |fi |di d d d            d S # 1 swxY w Y   d S )NbadValue)r>  r   r  )r'   r  r   r   msgs        r   check_paneconfigure_badz'PanedWindowTest.check_paneconfigure_bad  s    ##Hc22 	5 	5AOA44$
!3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   :>>c           	          |                                  \  }}}|                     ||d|t          |                     |                     ||dd           d S )Nafterbad window path name "badValue"r  r  r   r  r  s       r   test_paneconfigure_afterz(PanedWindowTest.test_paneconfigure_after  sg    ,,..1a  Aw3q66:::$$Q7%F	H 	H 	H 	H 	Hr   c           	          |                                  \  }}}|                     ||d|t          |                     |                     ||dd           d S )Nbeforer  r  r  s       r   test_paneconfigure_beforez)PanedWindowTest.test_paneconfigure_before%  sg    ,,..1a  AxCFF;;;$$Q8%F	H 	H 	H 	H 	Hr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NrF   r  bad screen distance "badValue"r  r  r  r  s       r   test_paneconfigure_heightz)PanedWindowTest.test_paneconfigure_height+  sa    ,,..1a  AxR888$$Q8%E	G 	G 	G 	G 	Gr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NhideFr   z)expected boolean value but got "badValue"r  r  s       r   test_paneconfigure_hidez'PanedWindowTest.test_paneconfigure_hide1  sa    ,,..1a  Avua888$$Q6%P	R 	R 	R 	R 	Rr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )Nminsizer  r  r  r  s       r   test_paneconfigure_minsizez*PanedWindowTest.test_paneconfigure_minsize7  sa    ,,..1a  Ay"b999$$Q9%E	G 	G 	G 	G 	Gr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NrK   r   r4   r  r  r  s       r   test_paneconfigure_padxz'PanedWindowTest.test_paneconfigure_padx=  a    ,,..1a  AvsA666$$Q6%E	G 	G 	G 	G 	Gr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NrL   r   r4   r  r  r  s       r   test_paneconfigure_padyz'PanedWindowTest.test_paneconfigure_padyC  r  r   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )Nstickynsewneswz[bad stickyness value "badValue": must be a string containing zero or more of n, e, s, and wr  r  s       r   test_paneconfigure_stickyz)PanedWindowTest.test_paneconfigure_stickyI  s^    ,,..1a  Ax@@@$$Q8&6	7 	7 	7 	7 	7r   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NstretchalwalwayszEbad stretch "badValue": must be always, first, last, middle, or neverr  r  s       r   test_paneconfigure_stretchz*PanedWindowTest.test_paneconfigure_stretchQ  sd    ,,..1a  Ay%BBB$$Q9&M	N 	N 	N 	N 	Nr   c                     |                                  \  }}}|                     ||ddd           |                     ||dd           d S )NrQ   r  r  r  r  s       r   test_paneconfigure_widthz(PanedWindowTest.test_paneconfigure_widthX  sa    ,,..1a  AwB777$$Q7%E	G 	G 	G 	G 	Gr   N)"r#   r=   r>   rp   rg  r    r  r  r  r  r   r  r  r  r  r  r  r  r  r4  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r@   r   r   r  r    s:       G "N8 8 8J J J* * *
* * *
7 7 7 [Aq8 8 8 [Aq* * * [Aq5 5 54 4 4H H H4 4 4* * *
5 5 5* * *
  5 5 58 8 85 5 5H H HH H HG G GR R RG G GG G GG G G7 7 7N N NG G G G Gr   r  c                   R    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )MenuTest)r   activeborderwidthr   rC   rD   rE   r   ry   rz   postcommandrM   r   rO   tearofftearoffcommandr$   typeFc                 0    t          j        | j        fi |S r   )rS   r[   rU   rV   s     r   r    zMenuTest.createj  r  r   c                     |                                  }|                    d          }|                     |           d S )Nrv  )r    indexr7  )r'   r(   r   s      r   test_indexcommand_nonezMenuTest.test_indexcommand_nonem  s:    LL  !r   c                 Z    |                                  }|                     |d           d S )Nr  rc  r   s     r   test_configure_postcommandz#MenuTest.test_configure_postcommandr  r  r   c                 Z    |                                  }|                     |d           d S )Nr  r  r   s     r   test_configure_tearoffzMenuTest.test_configure_tearoffv  rI  r   c                 Z    |                                  }|                     |d           d S )Nr  rc  r   s     r   test_configure_tearoffcommandz&MenuTest.test_configure_tearoffcommandz  r  r   c                 \    |                                  }|                     |dd           d S )Nr$   r   rk  r   s     r   test_configure_titlezMenuTest.test_configure_title~  s+    66666r   c           	          |                                  }|                                dk     rdnd}|                     |ddddd|z   	           d S )
N)r     znormal, tearoff, or menubarzmenubar, normal, or tearoffr  r   r  menubarzbad type "{}": must be r   )r    info_patchlevelr   )r'   r(   optss      r   test_configure_typezMenuTest.test_configure_type  ss    ))++f44 .-- 	 	Fi,t3 	 	 	 	 	 	r   c                 0   |                                  }|                    d           |                     t          |j                   |                     t          d          5  |                    d           d d d            n# 1 swxY w Y   |                    d          }|                     |t                     |	                                D ]\  }}|                     |t                     |                     |t                     |                     t          |          d           |                     |d         |           |                     |                    d|          |d                    |                                 d S )	Nr   r   zbad menu entry index "foo"r   r4   r  r   r   )r    add_commandr!  r  entryconfigurer>  r   r  r  r  r   tupler!   r   	entrycgetr   )r'   m1r  r  r   s        r   test_entryconfigurezMenuTest.test_entryconfigure  s   [[]]
V$$$)R%6777##H.JKK 	% 	%e$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%a  a&&&GGII 	7 	7DAq!!!S)))!!!U+++SVVQ'''QqT1%%%R\\!Q//16666


s   &BBBc                 0   |                                  }|                    d           |                     |                    dd          d           |                    dd           |                     |                    dd          d           d S )Nr   r  r4   r   changed)r    r  r!   r  r  )r'   r  s     r   test_entryconfigure_labelz"MenuTest.test_entryconfigure_label  s    [[]]
V$$$a116:::
!9---a119=====r   c                    |                                  }t          j        | j                  }t          j        | j                  }|                    |ddd           |                     t          |                    dd                    t          |                     |                    d|           |                     t          |                    dd                    t          |                     d S )NTFNonsense)r   r   r   r   r4   r   r   )	r    rS   
BooleanVarrU   add_checkbuttonr!   r   r  r  )r'   r  v1v2s       r   test_entryconfigure_variablez%MenuTest.test_entryconfigure_variable  s    [[]]	**	**
Bu!+ 	 	- 	- 	-R\\!Z88993r77CCC
!b)))R\\!Z88993r77CCCCCr   N)r#   r=   r>   rp   r   r    r  r  r  r  r  r  r  r  r	  r@   r   r   r  r  _  s        G L1 1 1  
6 6 62 2 29 9 97 7 7	 	 	   > > >D D D D Dr   r  c                   "    e Zd ZdZdZd Zd ZdS )MessageTest)r   aspectrC   rD   rE   ry   rz   rG   rH   rI   r   rK   rL   rM   rO   r}   r   rQ   Fc                 0    t          j        | j        fi |S r   )rS   MessagerU   rV   s     r   r    zMessageTest.create  r  r   c                 `    |                                  }|                     |dddd           d S )Nr     r   ir  r   s     r   test_configure_aspectz!MessageTest.test_configure_aspect  s1    vxa>>>>>r   N)r#   r=   r>   rp   r?   r    r  r@   r   r   r  r    sA        G 4 4 4? ? ? ? ?r   r  c                       e Zd Zd Zd ZdS )DefaultRootTestc                 D    |                      t          j                   d S r   )_test_widgetrS   rt   r?  s    r   
test_framezDefaultRootTest.test_frame      '-(((((r   c                 D    |                      t          j                   d S r   )r  rS   r   r?  s    r   
test_labelzDefaultRootTest.test_label  r  r   N)r#   r=   r>   r  r  r@   r   r   r  r    s2        ) ) )) ) ) ) )r   r  __main__)-unittestrS   r   rd   test.supportr   tkinter.test.supportr   r   r   r   tkinter.test.widget_testsr	   r
   r   r   r   r   r   r   TestCaserB   rr   rx   r   r   r   r   r  r	  r6  rB  r  r  r9  r  r>  ri  r  r  r  r  	tests_guir#   mainr@   r   r   <module>r"     s           				 ! ! ! ! ! !; ; ; ; ; ; ; ; ; ; ; ;               
 	  "7 "7 "7 "7 "7-~ "7 "7 "7J *++'2 '2 '2 '2 '2'): '2 '2 ,+'2T *++	2 	2 	2 	2 	2$h&7 	2 	2 ,+	2 *++    )8+<   ,+69 9 9 9 9*,< 9 9 9 *++2 2 2 2 2!8#4 2 2 ,+2 *++O O O O O"H$5 O O ,+O( *++3% 3% 3% 3% 3%'): 3% 3% ,+3%l *++D D D D D'): D D ,+D, *++=H =H =H =H =H&(9 =H =H ,+=H@? ? ? ? ?^X%6 ? ? ? &(<==X# X# X# X# X#"H$5 X# X# >=X#v *++}C }C }C }C }C)X. }C }C ,+}C@ *++E@ E@ E@ E@ E@!8#4 E@ E@ ,+E@P n&:;;t3 t3 t3 t3 t3#X%6 t3 t3 <;t3n &(<==F1 F1 F1 F1 F1$h&7 F1 F1 >=F1R n&:;;@/ @/ @/ @/ @/"H$5 @/ @/ <;@/F n&:;;/< /< /< /< /<&(9 /< /< <;/<d *++fG fG fG fG fG((*; fG fG ,+fGR *++LD LD LD LD LD!8#4 LD LD ,+LD^ n&:;;? ? ? ? ?$h&7 ? ? <;?$) ) ) ) )-x/@ ) ) ) 	J>)[+~)]X|_	 zHMOOOOO r   