
    4hh/                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJrJ	r	  \" S5         " S S\\R                  5      r " S S	\\R                  5      r " S
 S\	\R                  5      r\S:X  a  \R                  " 5         gg)    N)ttk)requires
gc_collect)AbstractTkTestAbstractDefaultRootTestguic                   F   ^  \ rS rSrU 4S jrS rS rS rS rS r	Sr
U =r$ )	LabeledScaleTest
   c                 V   > U R                   R                  5         [        TU ]  5         g N)rootupdate_idletaskssupertearDownself	__class__s    F/opt/python-3.13.8/usr/lib/python3.13/test/test_ttk/test_extensions.pyr   LabeledScaleTest.tearDown   s    		""$    c                 \   [         R                  " U R                  5      nUR                  R                  nUR                  5         [        5         U R                  [        R                  UR                  R                  U5        [        R                  " U R                  5      nUR                  n[         R                  " U R                  US9nUR                  5         U R                  (       a:  U R                  UR                  R                  U5      UR                  5       5        OBU R                  [!        UR                  R                  U5      5      UR                  5       5        A[        5         U R                  [        R                  UR                  R                  U5        [        R"                  " U R                  5      n[         R                  " U R                  US9nUR                  5         [         R                  " U R                  US9  [%        [&        S5      (       a8  U R)                  [+        [&        R,                  5      [        R                  5        g [%        [&        S5      (       a/  U R)                  [&        R.                  [        R                  5        g g )Nvariablelast_exc	last_type)r   LabeledScaler   	_variable_namedestroyr   assertRaisestkinterTclErrortkglobalgetvar	DoubleVarwantobjectsassertEqualgetfloatIntVarhasattrsysassertNotEqualtyper   r   )r   xvarmyvarnames        r   test_widget_destroy$LabeledScaleTest.test_widget_destroy   s   TYY'kk			'**ADD,=,=sC !!$)),{{TYY7			QTT..t4eiikBU144#4#4T#:;UYY[I'**ADD,=,=tD tyy)TYY7			 	U33
##S\\ 2G4D4DES+&&w/?/?@ 'r   c                 P  ^  [         R                  " T R                  5      n[        R                  " U5      nT R                  UR                  U5        UR                  5         SSSS[        R                  S-   [        R                  S-   4SS4nU HT  n[        R                  " T R                  US   S	9nT R                  UR                  US   5        UR                  5         MV     [        R                  " T R                  S S	9nT R                  [        [         R                  4UR                  R                  5        UR                  5         [         R                   " T R                  S
S9n[        R                  " T R                  US9nT R                  UR                  S5        UR                  5         [        R                  " T R                  USS9nT R                  UR                  S5        T R                  UR                  R"                  UR"                  5        UR                  5         U 4S jn[        R                  " T R                  SS9nU" UR$                  SUR&                  S5        UR                  5         [        R                  " T R                  SS9nU" UR$                  SUR&                  S5        UR                  5         [        R                  " T R                  SS9nU" UR$                  SUR&                  S5        UR                  5         [        R                  " T R                  5      nU" UR$                  SUR&                  S5        UR                  5         T R                  [         R                  [        R                  USS9  g )N)0r   )r   r   )r   r   )r8      )g      @   )z2.5r:   r   )from_   )valuer   g      ?)r   r;   c                    > TR                  U R                  5       S   U5        TR                  UR                  5       S   U5        g )Nsideanchor)r(   	pack_info
place_info)scale	scale_poslabel	label_posr   s       r   check_positions=LabeledScaleTest.test_initialization.<locals>.check_positionsS   s=    U__.v6	BU--/99Er   top)compoundbottomnsunknownb)a)r"   Framer   r   r   r(   masterr    r-   maxsizer=   r!   
ValueErrorr#   r   r)   r&   r   rC   rE   )r   rR   r0   passed_expectedpairr2   rG   s   `      r   test_initialization$LabeledScaleTest.test_initialization5   s   tyy)V$6*			 $VXs{{Qa8j" $D  $q':AQWWd1g.IIK $ TYYd3:w'7'78!++//J			!!$))26TYY7!$			TYYcB#&**EKK8				F TYY7177C8			TYY:5			TYY;5			TYY'177C8			 	'**C,<,<fLr   c                 d   [         R                  " U R                  SSS9nUR                  5         UR	                  5         UR
                  R                  5       nUR                  R                  5       S   nU R                  U[        US   5      5        UR                  R                  SSS9  UR	                  5         UR                  R                  5       S   nU R                  X45        UR
                  R                  5       nU R                  UR
                  S   U R                  (       a  SOS5        U R                  U[        US   5      5        UR                  R                  SSS9  U R                  X45        U R                  U[        US   5      5        UR                  5         g )	Nr   r   )r;   tor0      textr7   )r   r   r   packupdaterE   rB   rC   coordsr(   int	configurer.   r'   r    )r   lscalelinfo_1prev_xcoordcurr_xcoordlinfo_2s         r   test_horizontal_range&LabeledScaleTest.test_horizontal_rangeh   sM   !!$))1<,,))+ll))+A.c'#,&78 	RA. 	ll))+A.K5,,))+f-D4D4Dq#Nc'#,&78Q2.K5c'#,&78r   c                    [         R                  " U R                  5      nUR                  5         UR	                  5         UR
                  R                  5       S   nUR                  S-   nX1l        UR	                  5         U R                  UR                  U5        U R                  UR                  S   U R                  (       a  UO
[        U5      5        U R                  [        UR
                  R                  5       5      U5        U R                  UR
                  R                  5       S   U5        U R                  UR
                  R                  5       S   [        UR                  R!                  5       S   5      5        U R                  (       a  S nO[        nU" UR
                  S   5      S-   Ul        UR	                  5         U R                  UR                  U5        U R                  U" UR                  S   5      U5        U R                  [        UR
                  R                  5       5      U5        U R                  UR
                  R                  5       S   [        UR                  R!                  5       S   5      5        US-   =Ul        nUR	                  5         U R                  UR                  [        U5      5        U R                  U" UR                  S   5      [        U5      5        U R                  [        UR
                  R                  5       5      U5        UR#                  5         g )Nr   r9   r]   r0   c                     U $ r    )r0   s    r   <lambda>7LabeledScaleTest.test_variable_change.<locals>.<lambda>   s    Qr   rZ   g      ?)r   r   r   r^   r_   rC   r`   r=   r(   rE   r'   strr*   r)   assertGreaterra   rB   r    )r   r0   rf   newvalconvs        r   test_variable_change%LabeledScaleTest.test_variable_change   sN   TYY'		
ggnn&q)1 	

&)#'#3#3V	Fqww{{}-v6177>>+A.<)!,""$S)*	, DDqwwt}%)	
&)aggfo.7qww{{}-v6)!,""$S)*	, "C<'&	
#f+.aggfo.F<qww{{}-v6			r   c                 |   [         R                  " U R                  5      nUR                  SSS9  [	        5         UR                  5         UR                  R                  5       UR                  R                  5       p2US-  US-  pTSUl	        UR                  5         UR                  R                  SXE4-  5        U R                  [        UR                  R                  5       S   5      UR                  R!                  5       S   5        UR                  R                  SX#4-  5        UR#                  5         g )	NTboth)expandfillr:      z%dx%dr0   r   )r   r   r   r^   r   r_   rR   winfo_widthwinfo_heightr=   wm_geometryr(   ra   rE   rB   rC   r`   r    )r   r0   widthheight	width_new
height_news         r   test_resizeLabeledScaleTest.test_resize   s    TYY'	d(	
,,.0E0E0Gv %	6A::	
	W	'>>?QWW//1#67GGNNQ	! 	
W67			r   rl   )__name__
__module____qualname____firstlineno__r   r4   rW   rh   rs   r   __static_attributes____classcell__r   s   @r   r
   r
   
   s+    #AJ0Mf:'T r   r
   c                   R   ^  \ rS rSrU 4S jrU 4S jrS rS rS rS r	S r
S	rU =r$ )
OptionMenuTest   c                 l   > [         TU ]  5         [        R                  " U R                  5      U l        g r   )r   setUpr"   	StringVarr   textvarr   s    r   r   OptionMenuTest.setUp   s"    ((3r   c                 &   > U ? [        TU ]	  5         g r   )r   r   r   r   s    r   r   OptionMenuTest.tearDown   s    Lr   c                    [         R                  " U R                  5      n[        R                  " U R                  U5      nUR
                  nUR                  5         UR                  5         U R                  UR                  R                  U5      UR                  5       5        A[        5         U R                  [         R                  UR                  R                  U5        g r   )r"   r   r   r   
OptionMenur   r   r    r(   r$   r%   r)   r   r!   r#   )r   r1   optmenur3   s       r   r4   "OptionMenuTest.test_widget_destroy   s    		*..C0yy  "006	B'**GJJ,C,CTJr   c                    U R                  [        R                  [        R                  U R
                  U R                  SS9  [        R                  " U R
                  U R                  SSS5      nU R                  UR                  R                  5       S5        U R                  US   5        U R                  US   5        UR                  5         g )Nthing)invalidrO   rP   menutextvariable)r!   r"   r#   r   r   r   r   r(   r   r)   
assertTruer    )r   r   s     r   rW   "OptionMenuTest.test_initialization   s    '**NNDIIt||W 	 	F ..DLL#sCH**..0#6(/0r   c                   ^ ^	^
 Sm	Sn[         R                  " T R                  T R                  U/T	Q76 nSn[	        [        T	5      5       H6  nUS   R                  US5      nT R                  UT	U   5        XQ:X  d  M4  SnM8     T R                  U5        UR                  5         Sn[         R                  " T R                  T R                  U/T	Q76 nS nSn XbS   R                  US5      pgXv:X  a  OT R                  Xa5        US	-  nM3  T R                  U[        T	5      5        UR                  5         [        5         US   R                  S5        T R                  UR                  R!                  5       T	S   5        T R#                  [$        R&                  US   R                  S
5        T R                  UR                  R!                  5       T	S   5        UR                  5         / m
U	U U
4S jn[         R                  " T R                  T R                  S/T	Q7SU06nUS   R                  S	5        T
(       d  T R)                  S5        UR                  5         g )NrP   rO   crP   Fr   r=   Tdr   r9   r8   c                 R   > TR                  U TS   5        TR                  S5        g )Nr9   T)r(   append)itemitemsr   successs    r   cb_test)OptionMenuTest.test_menu.<locals>.cb_test  s#    T58,NN4 r   commandzMenu callback not invoked)r   r   r   r   rangelen	entrycgetr(   r   r    entryconfigurer.   r^   r   invoker   r)   r!   r"   r#   fail)r   defaultr   found_defaultir=   currlastr   r   r   s   `        @@r   	test_menuOptionMenuTest.test_menu   s   ..DLL'JEJs5z"AFO--a9EUE!H- $	 #
 	& ..DLL'JEJv==aI$|.FA  	CJ' 	q!**..0%(; 	'**GFO,B,BBG**..0%(; 	! ..DLL# w q!II12r   c                    SnSn[         R                  " U R                  U R                  U/UQ76 n[        R
                  " U R                  5      n[         R                  " U R                  XB/UQ76 nUR                  5         UR                  5         US   R                  S5        US   R                  S5        US   R                  SS5      nUS   R                  SS5      nU R                  UU5        U R                  U R                  R                  R                  U5      US   5        U R                  U R                  R                  R                  U5      US   5        UR                  5         UR                  5         g )Nr   rP   r   r9   r:   r   r   )r   r   r   r   r"   r   r^   r   r   r.   r(   r$   r%   r    )r   r   r   r   textvar2optmenu2optmenu_stringvar_nameoptmenu2_stringvar_names           r   test_unique_radiobuttons'OptionMenuTest.test_unique_radiobuttons  s@   ..DLL'JEJ$$TYY/>>$))XGGq!"!(!:!:1j!I"*6"2"<"<Q
"K23	5223IJq	#223JKq	# 	r   c                   ^^ / mSn[         R                  " U R                  5      mUU4S jn[        R                  " U R                  TS/UQ76 nUR                  5         TR                  SU5      nUS   R                  S5        U R                  TS/5        U R                  TR                  5       S5        TR                  SU5        UR                  5         g )Nr   c                  D   > TR                  TR                  5       5        g r   )r   r)   )argsr   r   s    r   r   3OptionMenuTest.test_trace_variable.<locals>.cb_test7  s    NN7;;=)r   rP   writer   r9   rO   )r"   r   r   r   r   r^   	trace_addr   r(   r)   trace_remover    )r   r   r   r   cb_namer   r   s        @@r   test_trace_variable"OptionMenuTest.test_trace_variable2  s    ##DII.	*..GSA5A##GW5q!3%(,Wg.r   )r   )r   r   r   r   r   r   r4   rW   r   r   r   r   r   r   s   @r   r   r      s-    4
	K
2h. r   r   c                       \ rS rSrS rSrg)DefaultRootTestiC  c                 B    U R                  [        R                  5        g r   )_test_widgetr   r   )r   s    r   test_labeledscale!DefaultRootTest.test_labeledscaleE  s    #**+r   rl   N)r   r   r   r   r   r   rl   r   r   r   r   C  s    ,r   r   __main__)r-   unittestr"   r   test.supportr   r   test.test_tkinter.supportr   r   TestCaser
   r   r   r   mainrl   r   r   <module>r      sy    
    - M v~x'8'8 vr}^X%6%6 }@,-x/@/@ , zMMO r   