
    daf/                     
   d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlmZm	Z	  ed        G d deej                        Z G d d	eej                        Z G d
 de	ej                        Zedk(  r ej                          yy)    N)ttk)requires
gc_collect)AbstractTkTestAbstractDefaultRootTestguic                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )LabeledScaleTestc                 V    | j                   j                          t        |           y N)rootupdate_idletaskssupertearDownself	__class__s    8/root/Python-3.12.4/Lib/test/test_ttk/test_extensions.pyr   zLabeledScaleTest.tearDown   s    		""$    c                 D   t        j                  | j                        }|j                  j                  }|j                          t                | j                  t        j                  |j                  j                  |       t        j                  | j                        }|j                  }t        j                  | j                  |      }|j                          | j                  r:| j                  |j                  j                  |      |j                                nB| j                  t!        |j                  j                  |            |j                                ~t                | j                  t        j                  |j                  j                  |       t        j"                  | j                        }t        j                  | j                  |      }|j                          t        j                  | j                  |       t%        t&        d      r8| j)                  t+        t&        j,                        t        j                         y t%        t&        d      r/| j)                  t&        j.                  t        j                         y y )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_destroyz$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                 j    t        j                   j                        }t        j                  |      } j                  |j                  |       |j                          ddddt        j                  dz   t        j                  dz   fddf}|D ]U  }t        j                   j                  |d   	      } j                  |j                  |d          |j                          W t        j                   j                  d 	      } j                  t        t         j                  f|j                  j                         |j                          t        j                    j                  d
      }t        j                   j                  |      } j                  |j                  d       |j                          t        j                   j                  |d      } j                  |j                  d        j                  |j                  j"                  |j"                         |j                           fd}t        j                   j                  d      } ||j$                  d|j&                  d       |j                          t        j                   j                  d      } ||j$                  d|j&                  d       |j                          t        j                   j                  d      } ||j$                  d|j&                  d       |j                          t        j                   j                        } ||j$                  d|j&                  d       |j                           j                  t         j                  t        j                  |d       y )N)0r   )r   r   )
   r5   )r6      )g      @   )z2.5r8   r   )from_   )valuer   g      ?)r   r9   c                     j                  | j                         d   |       j                  |j                         d   |       y )Nsideanchor)r&   	pack_info
place_info)scale	scale_poslabel	label_posr   s       r   check_positionsz=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   rA   rC   )r   rO   r.   passed_expectedpairr0   rE   s   `      r   test_initializationz$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                 n   t        j                  | j                  dd      }|j                          |j	                          |j
                  j                         }|j                  j                         d   }| j                  |t        |d                |j                  j                  dd       |j	                          |j                  j                         d   }| j                  ||       |j
                  j                         }| j                  |j
                  d   | j                  rdnd       | j                  |t        |d                |j                  j                  dd       | j                  ||       | j                  |t        |d                |j                          y )	Nr   r5   )r9   tor.      textr4   )r   r   r   packupdaterC   r@   rA   coordsr&   int	configurer,   r%   r   )r   lscalelinfo_1prev_xcoordcurr_xcoordlinfo_2s         r   test_horizontal_rangez&LabeledScaleTest.test_horizontal_rangeh   sQ   !!$))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                    t        j                  | j                        }|j                          |j	                          |j
                  j                         d   }|j                  dz   }||_        |j	                          | j                  |j                  |       | j                  |j                  d   | j                  r|n
t        |             | j                  t        |j
                  j                               |       | j                  |j
                  j                         d   |       | j                  |j
                  j                         d   t        |j                  j!                         d                | j                  rd }nt        } ||j
                  d         dz   |_        |j	                          | j                  |j                  |       | j                   ||j                  d         |       | j                  t        |j
                  j                               |       | j                  |j
                  j                         d   t        |j                  j!                         d                |dz   x|_        }|j	                          | j                  |j                  t        |             | j                   ||j                  d         t        |             | j                  t        |j
                  j                               |       |j#                          y )Nr   r7   rY   r.   c                     | S r    )r.   s    r   <lambda>z7LabeledScaleTest.test_variable_change.<locals>.<lambda>   s    Q r   rV   g      ?)r   r   r   rZ   r[   rA   r\   r;   r&   rC   r%   strr(   r'   assertGreaterr]   r@   r   )r   r.   rb   newvalconvs        r   test_variable_changez%LabeledScaleTest.test_variable_change   sP   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                    t        j                  | j                        }|j                  dd       t	                |j                          |j                  j                         |j                  j                         }}|dz  |dz  }}d|_	        |j                          |j                  j                  d||fz         | j                  t        |j                  j                         d         |j                  j!                         d          |j                  j                  d||fz         |j#                          y )	NTboth)expandfillr8      z%dx%dr.   r   )r   r   r   rZ   r   r[   rO   winfo_widthwinfo_heightr;   wm_geometryr&   r]   rC   r@   rA   r\   r   )r   r.   widthheight	width_new
height_news         r   test_resizezLabeledScaleTest.test_resize   s    TYY'	d(	
,,.0E0E0Gv %	6A::		
	W	:'>>?QWW//1#67GGNNQ	! 	
Wv67			r   )
__name__
__module____qualname__r   r2   rT   rd   rm   rz   __classcell__r   s   @r   r
   r
   
   s&    #AJ0Mf:'Tr   r
   c                   F     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	 xZ
S )OptionMenuTestc                 j    t         |           t        j                  | j                        | _        y r   )r   setUpr    	StringVarr   textvarr   s    r   r   zOptionMenuTest.setUp   s"    ((3r   c                 &    | ` t        | 	          y r   )r   r   r   r   s    r   r   zOptionMenuTest.tearDown   s    Lr   c                    t        j                  | j                        }t        j                  | j                  |      }|j
                  }|j                          |j                          | j                  |j                  j                  |      |j                                ~t                | j                  t         j                  |j                  j                  |       y r   )r    r   r   r   
OptionMenur   r   r   r&   r"   r#   r'   r   r   r!   )r   r/   optmenur1   s       r   r2   z"OptionMenuTest.test_widget_destroy   s    		*..C0yy  "006	B'**GJJ,C,CTJr   c                    | j                  t        j                  t        j                  | j
                  | j                  d       t        j                  | j
                  | j                  ddd      }| j                  |j                  j                         d       | j                  |d          | j                  |d          |j                          y )Nthing)invalidrL   rM   menutextvariable)r   r    r!   r   r   r   r   r&   r   r'   
assertTruer   )r   r   s     r   rT   z"OptionMenuTest.test_initialization   s    '**NNDIIt||W 	 	F ..DLL#sCH**..0#6(/0r   c                    	
 d	d}t        j                   j                   j                  |g	 }d}t	        t        	            D ]4  }|d   j                  |d      } j                  |	|          ||k(  s3d}6  j                  |       |j                          d}t        j                   j                   j                  |g	 }d }d}	 ||d   j                  |d      }}||k(  rn j                  ||       |d	z  }5 j                  |t        	             |j                          t                |d   j                  d        j                  |j                  j!                         	d           j#                  t$        j&                  |d   j                  d
        j                  |j                  j!                         	d          |j                          g 
	 
fd}t        j                   j                   j                  dg	d|i}|d   j                  d	       
s j)                  d       |j                          y )NrM   rL   crM   Fr   r;   Tdr   r7   r6   c                 R    j                  | d          j                  d       y )Nr7   T)r&   append)itemitemsr   successs    r   cb_testz)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,   rZ   r   invoker   r'   r   r    r!   fail)r   defaultr   found_defaultir;   currlastr   r   r   s   `        @@r   	test_menuzOptionMenuTest.test_menu   s   ..DLL'JEJs5z" 	%AFO--a9EUE!H- $		%
 	& ..DLL'JEJwv==aI$Dt|g.FA  	CJ' 	q!**..0%(; 	'**GFO,B,BBG**..0%(; 	! ..DLL# w q!II12r   c                    d}d}t        j                  | j                  | j                  |g| }t	        j
                  | j                        }t        j                  | j                  ||g| }|j                          |j                          |d   j                  d       |d   j                  d       |d   j                  dd      }|d   j                  dd      }| j                  ||       | j                  | j                  j                  j                  |      |d          | j                  | j                  j                  j                  |      |d          |j                          |j                          y )Nr   rM   r   r7   r8   r   r   )r   r   r   r   r    r   rZ   r   r   r,   r&   r"   r#   r   )r   r   r   r   textvar2optmenu2optmenu_stringvar_nameoptmenu2_stringvar_names           r   test_unique_radiobuttonsz'OptionMenuTest.test_unique_radiobuttons  sB   ..DLL'JEJ$$TYY/>>$))XwGGq!"!(!:!:1j!I"*6"2"<"<Q
"K23	5223IJq	#223JKq	# 	r   c                    g d}t        j                  | j                        fd}t        j                  | j                  dg| }|j                          j                  d|      }|d   j                  d       | j                  dg       | j                  j                         d       j                  d|       |j                          y )Nr   c                  D    j                  j                                y r   )r   r'   )argsr   r   s    r   r   z3OptionMenuTest.test_trace_variable.<locals>.cb_test7  s    NN7;;=)r   rM   writer   r7   rL   )r    r   r   r   r   rZ   	trace_addr   r&   r'   trace_remover   )r   r   r   r   cb_namer   r   s        @@r   test_trace_variablez"OptionMenuTest.test_trace_variable2  s    ##DII.	*..GSA5A##GW5q!3%(,Wg.r   )r{   r|   r}   r   r   r2   rT   r   r   r   r~   r   s   @r   r   r      s(    4
	K
2h.r   r   c                       e Zd Zd Zy)DefaultRootTestc                 B    | j                  t        j                         y r   )_test_widgetr   r   )r   s    r   test_labeledscalez!DefaultRootTest.test_labeledscaleE  s    #**+r   N)r{   r|   r}   r   rg   r   r   r   r   C  s    ,r   r   __main__)r+   unittestr    r   test.supportr   r   test.test_tkinter.supportr   r   TestCaser
   r   r   r{   mainrg   r   r   <module>r      s{    
    - M v~x'8'8 vr}^X%6%6 }@,-x/@/@ , zHMMO r   