
    0hhz                        S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  \R                  " S5      r
S SKrS SKJr  S SK
Jr   S SKJrJr  \" \" \\
R,                  R/                  S	5      5      5      r " S
 S\ R2                  5      r " S S\ R2                  5      r " S S\ R2                  5      rS r\S:X  a  \ R>                  " 5         gg! \ a    \R$                  =rr Nf = f)    N)support)import_helper)	os_helper_tkinter)Tcl)TclError)INT_MAXPY_SSIZE_T_MAX.c                       \ rS rSrS rSrg)TkinterTest   c                 .   U R                  [        [        R                  S5        U R                  [        [        R                  0 5        U R                  [        [        R                  S5        U R                  [        [        R                  S15        g )NTstringset)assertRaises	TypeErrorr   _flattenselfs    6/opt/python-3.13.8/usr/lib/python3.13/test/test_tcl.pytestFlattenLenTkinterTest.testFlattenLen   sf    )X%6%6=)X%6%6; 	)X%6%6A)X%6%6@     N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s    Ar   r   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#\$RJ                  " \&RN                  S":H  S#5      S$ 5       r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/ r3S0 r4\5Rl                  S1 5       r7S2r8g3)4TclTest%   c                 t    [        5       U l        U R                  R                  R                  5       U l        g N)r   interptkwantobjectsr   s    r   setUpTclTest.setUp'   s$    e;;>>557r   c                     U R                   nUR                  S5        U R                  UR                  S5      S5        g )Nset a 1set a1)r&   evalassertEqualr   tcls     r   testEvalTclTest.testEval+   s0    kk'*3/r   c                 ^    U R                   nU R                  UR                  S5      S5        g )Nzset a "a\0b"a br&   r0   r/   r1   s     r   test_eval_null_in_result TclTest.test_eval_null_in_result0   s$    kk/2H=r   c                 ^    U R                   nU R                  UR                  S5      S5        g )Nzset a "<\ud83d\udcbb>"   <💻>r7   r1   s     r   test_eval_surrogates_in_result&TclTest.test_eval_surrogates_in_result4   s%    kk";<nMr   c                 ^    U R                   nU R                  [        UR                  S5        g )Nr-   r&   r   r   r/   r1   s     r   testEvalExceptionTclTest.testEvalException8   s!    kk(388G4r   c                 ^    U R                   nU R                  [        UR                  S5        g )Nzthis is wrongr?   r1   s     r   testEvalException2TclTest.testEvalException2<   s!    kk(388O<r   c                     U R                   R                  nUR                  S5        UR                  S5      nSnU R                  X#5        g )N7set a "\u20ac \ud83d\udcbb \0 \udcab"; regexp -about $ar-      € 💻   )r&   r'   r/   r0   r   r2   aexpecteds       r   test_eval_returns_tcl_obj!TclTest.test_eval_returns_tcl_obj@   s=    kknnKLHHW<%r   c                     U R                   nUR                  SSS5        U R                  UR                  SS5      S5        g )Nr   rI   r.   )r&   callr0   r1   s     r   testCallTclTest.testCallG   s6    kks3%,S1r   c                    U R                   nUR                  SSS5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        U R                  UR	                  S5      S5        UR                  SSS5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        U R                  UR	                  S5      S5        g )Nr   rI   r6   r-      € )r&   rN   r0   getvarr/   r1   s     r   test_call_passing_nullTclTest.test_call_passing_nullL   s    kkV$C(3%-x8'*H5Z(C,7%-|<'*L9r   c                 `    U R                   nU R                  [        UR                  SS5        g )Nr   rI   r&   r   r   rN   r1   s     r   testCallExceptionTclTest.testCallExceptionX   s#    kk(388E#6r   c                 b    U R                   nU R                  [        UR                  SSS5        g )NthisiswrongrW   r1   s     r   testCallException2TclTest.testCallException2\   s%    kk(388F4@r   c                 f   U R                   R                  nUR                  S5        UR                  SS5      nSnU R                  (       aT  U R                  [        U5      U5        U R                  UR                  U5        U R                  UR                  S5        g U R                  X#5        g )NrF   r   rI   rG   regexp)	r&   r'   r/   rN   r(   r0   strr   typenamerH   s       r   test_call_returns_tcl_obj!TclTest.test_call_returns_tcl_obj`   s    kknnKLHHUC <SVX.QXXx0QZZ2Q)r   c                     U R                   nUR                  SS5        U R                  UR                  S5      S5        g )NrI   r.   r-   r&   setvarr0   r/   r1   s     r   
testSetVarTclTest.testSetVarl   s2    kk

3s'*3/r   c                    U R                   nUR                  SS5        U R                  UR                  S5      S5        U R                  UR	                  SS5      S5        U R                  UR                  S5      S5        UR                  SS5        U R                  UR                  S5      S5        U R                  UR	                  SS5      S5        U R                  UR                  S5      S5        g )NrI   r6   r   r-   rR   )r&   rh   r0   rS   rN   r/   r1   s     r   test_setvar_passing_null TclTest.test_setvar_passing_nullq   s    kk

3C(3%-x8'*H5

3
#C,7%-|<'*L9r   c                     U R                   nUR                  SS5        U R                  UR                  S5      S5        g )Na(1)r.   zset a(1)rg   r1   s     r   testSetVarArrayTclTest.testSetVarArray}   s2    kk

6#*-c2r   c                     U R                   nUR                  S5        U R                  UR                  S5      S5        g )Nr,   rI   r.   r&   r/   r0   rS   r1   s     r   
testGetVarTclTest.testGetVar   s/    kkC-r   c                     U R                   nUR                  S5        U R                  UR                  S5      S5        g )Nz
set a(1) 1ro   r.   rs   r1   s     r   testGetVarArrayTclTest.testGetVarArray   s0    kkF+C0r   c                 ^    U R                   nU R                  [        UR                  S5        g NrI   r&   r   r   rS   r1   s     r   testGetVarExceptionTclTest.testGetVarException   s!    kk(3::c2r   c                 ^    U R                   nU R                  [        UR                  S5        g )Nro   r{   r1   s     r   testGetVarArrayException TclTest.testGetVarArrayException   s!    kk(3::f5r   c                 d   U R                   R                  nUR                  S5        UR                  S5      nSnU R                  (       aT  U R                  [        U5      U5        U R                  UR                  U5        U R                  UR                  S5        g U R                  X#5        g )NrF   rI   rG   ra   )	r&   r'   r/   rS   r(   r0   rb   r   rc   rH   s       r   test_getvar_returns_tcl_obj#TclTest.test_getvar_returns_tcl_obj   s    kknnKLJJsO<SVX.QXXx0QZZ2Q)r   c                     U R                   nUR                  SS5        U R                  UR                  S5      S5        UR	                  S5        U R                  UR                  S5      S5        g )NrI      zinfo exists ar.   0r&   rh   r0   r/   unsetvarr1   s     r   testUnsetVarTclTest.testUnsetVar   sW    kk

3q/237S/237r   c                    U R                   nUR                  SS5        UR                  SS5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        UR	                  S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        g )	Nro   r   za(2)   zinfo exists a(1)r.   zinfo exists a(2)r   r   r1   s     r   testUnsetVarArrayTclTest.testUnsetVarArray   s    kk

6!

6!"45c:"45c:V"45c:"45c:r   c                 ^    U R                   nU R                  [        UR                  S5        g rz   )r&   r   r   r   r1   s     r   testUnsetVarExceptionTclTest.testUnsetVarException   s!    kk(3<<4r   c                 .    SSSSSSSSS	S
SSS-  SS-  * 4$ )Nr   r   ii   l        l    l    l         l            l        r   i  r   r   s    r   get_integersTclTest.get_integers   s4    1b4!T'# 	#r   c           	      
   U R                   R                  nU R                  5        H  nU R                  UR	                  SU-  5      U5        U R                  UR	                  SU-  5      U5        U R                  UR	                  SU-  R                  SS5      5      [        S:  a  UO[        SU-  5      5        U R                  UR	                  SU-  5      U5        M     U R                  UR	                  S5      S5        U R                  [        UR                  5        U R                  [        UR                  S	S
5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        [        [        4UR                  S5        U R                  [        [        [        4UR                  S5        g )Nz %d z %#o o 	   r   z%oz %#x *   4210s   42      E@rI   z42 u   42)r&   r'   r   r0   getintreplacetcl_versionintr   r   r   
ValueErrorUnicodeEncodeError)r   r2   is      r   test_getintTclTest.test_getint   s   kknn""$ASZZ
3Q7SZZ!4a8 SZZ1(=(=c2(FG"-"6QCqMKSZZ!4a8 % 	B,)SZZ0)SZZt<)SZZ7)SZZ6(CJJ49j(;**f	.-z8D**j	2r   c                    U R                   R                  nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R	                  [
        UR                  5        U R	                  [
        UR                  SS5        U R	                  [
        UR                  S5        U R	                  [        UR                  S	5        U R	                  [
        [        [        4UR                  S
5        U R	                  [        [        [        4UR                  S5        g )Nz 42 r   z 42.5 g     @E@r   z42.5r   s   42.5rI   z42.5 u   42.5)	r&   r'   r0   	getdoubler   r   r   r   r   r1   s     r   test_getdoubleTclTest.test_getdouble   s   kknnv.5x0$7t,d3r*D1)S]]3)S]]FDA)S]]G<(CMM379j(;--	3-z8D--	7r   c                 2   U R                   R                  nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R	                  [
        UR                  5        U R	                  [
        UR                  SS5        U R	                  [
        UR                  S5        U R	                  [
        UR                  S5        U R	                  [        UR                  S	5        U R	                  [
        [        [        4UR                  S
5        U R	                  [        [        [        4UR                  S5        g )NonTr.   r   r   Fs   on      ?rI   zon u   on)	r&   r'   assertIs
getbooleanr   r   r   r   r   r1   s     r   test_getbooleanTclTest.test_getboolean   s   kknncnnT*D1cnnS)40cnnR($/cnnQ'/)S^^4)S^^T3?)S^^U;)S^^S9(CNNC89j(;..&	2-z8D..*	6r   c                    U R                   n[        R                  nU R                  [        R                  U5        [        US5       nUR                  S5        S S S 5        UR                  U5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        g ! , (       d  f       N= f)	NwzKset a 1
            set b 2
            set c [ expr $a + $b ]
            r-   r.   set b2zset c3
r&   r   TESTFN_ASCII
addCleanupunlinkopenwriteevalfiler0   r/   r   r2   filenamefs       r   testEvalFileTclTest.testEvalFile   s    kk))	(((3(C AGG   !
 	X'*3/'*3/'*3/ ! s   	C
C&c                    U R                   n[        R                  nU R                  [        R                  U5        [        US5       nUR                  S5        S S S 5        UR                  U5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        g ! , (       d  f       Nb= f)Nr   z>
            set a "a b"
            set b "a\0b"
            r-   r6   r   r   r   s       r   test_evalfile_null_in_result$TclTest.test_evalfile_null_in_result   s    kk))	(((3(C AGG   !
 	X'*H5'*H5 ! s   	B77
Cc                    U R                   nUR                  SS5      nU R                  UR                  SSU5        UR                  SSS5        [        R                  nU R                  [        R
                  U5        [        US5       nUR                  S5        S S S 5        [        S:  a"  U R                  [        UR                  U5        O2UR                  U5        U R                  UR                  S5      S5        [        US5       nUR                  S	5        S S S 5        UR                  U5        U R                  UR                  S
5      S5        g ! , (       d  f       N= f! , (       d  f       NR= f)Nencodingsystemzutf-8wbs*   
            set a "<>"
            r   r-   r;   s0   
            set b "<\ud83d\udcbb>"
            r   )r&   rN   r   r   r   r   r   r   r   r   r   r   r0   r/   )r   r2   r   r   r   s        r   "test_evalfile_surrogates_in_result*TclTest.test_evalfile_surrogates_in_result
  s"   kk88J1*hAXw/))	(((3(D!QGG   " & hh?LL"SXXg.?(D!QGG   " 	X'*N; "! "!s   EE.
E+.
E<c                     U R                   nSn [        R                  " U5        U R	                  [
        UR                  U5        g ! [         a
  n S nAN1S nAff = f)Ndoesnotexists)r&   osremove	Exceptionr   r   r   )r   r2   r   es       r   testEvalFileExceptionTclTest.testEvalFileException#  sN    kk"	IIh 	(3<<9  		s   A 
AAc                 ^    U R                   nU R                  [        UR                  S5        g )Nzpackage require DNEr?   r1   s     r   testPackageRequireException#TclTest.testPackageRequireException,  s"    kk(388,ABr   win32zRequires Windowsc                 0   [         R                  R                  [        R                  5      nUS   S:w  a  [
        R                  " S5      eS[         R                  S   < SUS   < SUS	S  < 3n[         R                  R                  U5      (       d  [
        R                  " S
5      e[        R                  " 5        nUR                  S5        [        R                  " USS/5      nS S S 5        U R                  SW5        g ! , (       d  f       N!= f)Nr   :z$Absolute path should have drive partz\\COMPUTERNAME\r   z$\   zCannot connect to UNC PathTCL_LIBRARY-czimport tkinter; print(tkinter)s   tkinter)r   pathabspathsys
executableunittestSkipTestenvironexistsr   EnvironmentVarGuardunset
subprocesscheck_outputassertIn)r   fullnameunc_nameenvstdouts        r   testLoadWithUNCTclTest.testLoadWithUNC0  s     77??3>>2A;###$JKK %'ZZ%?$,QK$,QRL2 ww~~h''##$@AA**,IIm$,,t%EFHF -
 	j&) -,s   +D
Dc                   ^ ^ T R                   mTR                  SSS5        TR                  SSS5        U U4S jnT R                  [        TR                  5        T R                  [        TR                  SS5        T R                  [        TR                  S	5        T R                  [
        TR                  S
5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S S5        U" S!S"5        U" S#S"5        U" S$S%5        U" S&S'5        U" S(S'5        U" S)S*5        U" S+[        S,5      5        g )-Nr   rI   r   b   c                 v   > TR                  U 5      nTR                  X!5        TR                  U[        5        g r%   )
exprstringr0   assertIsInstancerb   exprrJ   resultr   r2   s      r   check&TclTest.test_exprstring.<locals>.checkJ  s/    ^^D)FV.!!&#.r   8.2+6   8.2 + 6spamr   r   8.2 + 6z14.23.1 + $az6.12 + "$a.$b"z5.64*[llength "6 2"]8{word one} < "word $a"4*2 < 7hypot($a, 4)z5.05 / 4r.   5 / 4.0z1.25$5 / ( [string length "abcd"] + 0.0 )20.0/5.0z4.0"0x03" > "2"   [string length "a½€"]r   [string length "a\xbd\u20ac"]"abc"abcu   "a½€"u   a½€z"a\xbd\u20ac"z"a\0b"r6   2**64            )r&   rN   r   r   r   r   rb   r   r   r2   s   ` @r   test_exprstringTclTest.test_exprstringF  s\   kkQQ	/
 	)S^^4)S^^UDA)S^^Z@(CNNF;b#i j% mU#!3'&,ine$gsi 4f=j% nc"-s3.4guo}-.i"gs5z"r   c                   ^ ^ T R                   mTR                  SSS5        TR                  SSS5        U U4S jnT R                  [        TR                  5        T R                  [        TR                  SS5        T R                  [        TR                  S	5        T R                  [
        TR                  S
5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S S5        U" S!S"5        U" S#S"5        T R                  [
        TR                  S$5        U" S%[        S&5      5        g )'Nr   rI   r   r   r   c                 v   > TR                  U 5      nTR                  X!5        TR                  U[        5        g r%   )
exprdoubler0   r   floatr   s      r   r   &TclTest.test_exprdouble.<locals>.checkl  s/    ^^D)FV.!!&%0r   r   r   r   r  r           r  gffffff,@r  gffffff@r  gffffff@r  g       @r  r  r	  g      @r
  r   r  g      ?r  r  g      @r  r  g      @r  r  r  r  )r&   rN   r   r   r  r   r  r  s   ` @r   test_exprdoubleTclTest.test_exprdoubleh  sI   kkQQ	1
 	)S^^4)S^^UDA)S^^Z@(CNNF;b#ij#mS!!3'&,inc"gsi4d;j#nc"-s3.4(CNNG<guU|$r   c                   ^ ^ T R                   mTR                  SSS5        TR                  SSS5        U U4S jnT R                  [        TR                  5        T R                  [        TR                  SS5        T R                  [        TR                  S	5        T R                  [
        TR                  S
5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        T R                  [
        TR                  S 5        T R                  [
        TR                  S!5        g )"Nr   rI   r   r   r   c                 v   > TR                  U 5      nTR                  X!5        TR                  U[        5        g r%   )exprlongr0   r   r   r   s      r   r   $TclTest.test_exprlong.<locals>.check  s/    \\$'FV.!!&#.r   r   r   r   r  r   r   r     r  r     r     r  r  r	  r
  r   r  r  r     r  r  r  r  r  )r&   rN   r   r   r"  r   r  s   ` @r   test_exprlongTclTest.test_exprlong  sQ   kkQQ	/
 	)S\\2)S\\5$?)S\\:>(CLL&9b!ij!mQ!1%&*ina gqi4a8j!na -q1.2(CLL':(CLL':r   c                   ^ ^ T R                   mTR                  SSS5        TR                  SSS5        U U4S jnT R                  [        TR                  5        T R                  [        TR                  SS5        T R                  [        TR                  S	5        T R                  [
        TR                  S
5        U" SS5        S H$  nU" US5        U" SU-  S5        U" SU-  S5        M&     S H$  nU" US5        U" SU-  S5        U" SU-  S5        M&     U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" SS5        T R                  [
        TR                  S 5        U" S!S5        g )"Nr   rI   r   r   r   c                    > TR                  U 5      nTR                  X!5        TR                  U[        5        TR	                  U[
        5        g r%   )exprbooleanr0   r   r   assertNotIsInstanceboolr   s      r   r   'TclTest.test_exprboolean.<locals>.check  s?    __T*FV.!!&#.$$VT2r   r   r   r   r  r   F)r   falsenooffz"%s"z{%s})r.   trueyesr   Tr  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  )r&   rN   r   r   r,  r   )r   r   valuer2   s   `  @r   test_exprbooleanTclTest.test_exprboolean  s   kkQQ	3 	)S__5)S__eTB)S__jA(COOV<b%0E%&5.%(&5.%( 1 0E%&5.$'&5.$' 0 	ij$mT"!4(&.ind#gti4d;j$nd#-t4.5(COOW=gtr   c                    ^ ^ T R                   mU U4S jnU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S	S5        U" S
S5        U" SS5        g )Nc           	        > TR                  SU 5      nTR                  5       (       a(  TR                  X!5        TR                  U[        5        g TR                  X [        [	        U5      5      45        TR                  U[        5        g Nr   )rN   r(   r0   r   r   r   rb   r   s      r   r   $TclTest.test_booleans.<locals>.check  sh    XXfd+F    2%%fc2fSX-?&@A%%fc2r   r3  Tr4  r   r0  Fr1  r2  z1 < 2z1 > 2r&   r  s   ` @r   test_booleansTclTest.test_booleans  sc    kk	3 	fdeTdDgudEeUgtgur   c                 V   U R                   nU R                  5        H  nUR                  S[        U5      5      nU R                  (       a)  U R                  X25        U R                  U[        5        MX  U R                  U[        U5      5        U R                  U[        5        M     g r:  )r&   r   rN   rb   r(   r0   r   r   )r   r2   r   r   s       r   test_expr_bignumTclTest.test_expr_bignum  s}    kk""$AXXfc!f-F  +%%fc2  Q0%%fc2 %r   c           	      N  ^  U 4S jnT R                  U" S5      T R                  (       a  SOS5        T R                  U" S5      T R                  (       a  SOS5        T R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S	5      S	5        T R                  U" S
5      S
5        T R                  U" S5      S5        T R                  U" S5      S5        [        R                  S:w  a0  T R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S5      T R                  (       a  SOS	5        T R                  U" S5      T R                  (       a  SOS5        T R                  U" S5      T R                  (       a  SOS5        T R	                  5        H7  nT R                  U" U5      T R                  (       a  UO
[        U5      5        M9     SSSS[        R                  R                  [        R                  R                  [        R                  R                  * [        R                  R                  * 4 HO  nT R                  (       a  T R                  U" U5      U5        M.  T R                  [        U" U5      5      U5        MQ     T R                  (       ay  U" [        S5      5      nT R                  X35        T R                  U" [        S5      5      [        S5      5        T R                  U" [        S5      * 5      [        S5      * 5        OhT R                  [        U" [        S5      5      5      [        S5      5        T R                  [        U" [        S5      * 5      5      [        S5      * 5        T R                  U" S5      T R                  (       a  SOS5        T R                  U" SS S!//5      T R                  (       a  S"5        g S#5        g )$Nc                 >   > TR                   R                  SSU 5      $ )Nr   _)r&   rN   )r5  r   s    r   	passValue.TclTest.test_passing_values.<locals>.passValue  s    ;;##E366r   Tr.   Fr   r   	   string€
   string💻str ing	   str ing½
   str ing€u   str ing💻r      <>   <€>   <>r;      str ing   string
   strÀings   stringu   str½ingr  r         UUUUUU?naninfr   r   333333@z1 2 3.4rI   r   c)rI   )r   rY  a {b c})r0   r(   r   platformr   rb   
float_infominmaxr  assertNotEqual)r   rE  r   r   s   `   r   test_passing_valuesTclTest.test_passing_values  sN   	7 	4$2B2B$L5)D4D4D5#N8,h7>2NC#568JK<0,?#346FG#568JK#9:/	1<<7"Y'=>')Y'OP+-=1*.*:*:	N#45.2.>.>*DT	V=1*.*:*:	N""$AYq\0@0@1c!fM %sD#..$$cnn&8&8>>%%%(:(:':<A   1q1  y|!4a8< %,'A%YuU|4eElCYe}5e}EU9U5\#:;U5\JU9eEl]#;<uU|mL#34-1-=-=)9	NC#s#45.2.>.>*	ODM	Or   c                 b  ^ ^ S mU4S jnT R                   R                  SU5        T R                  T R                   R                  R                  S5        S.T R
                  S.UU 4S jjjnU 4S jnU" SSS5        U" S	S
S5        U" S5        U" S5        U" S5        U" S5        [        R                  S:w  a  U" SSS5        U" SSS5        U" S5        U" SS5        U" SS5        U" SS5        U" SS5        U" S5        U" S5        U" S5        U" SS5        U" SS 5        U" S!S"5        T R                  5        H  nU" U[        U5      5        M     S# H  nU" U[        U5      5        M     S$[        R                  R                  [        R                  R                  [        R                  R                  * [        R                  R                  * 4 H	  nU" XSS9  M     U" [        S%5      US9  U" [        S%5      * US9  U" S&SS5        U" S'S(S)5        U" SS*/S+S,/S-/ /S(S)5        g )/Nc                    > U mU $ r%   r   )argr   s    r   testfunc+TclTest.test_user_command.<locals>.testfunc  s    FJr   re  )eqc                  > U nTR                   S:  a  Ub  Un[        U5      nOUb  Un[        nS mTR                  R	                  SU 5      nTR                  TU5        U" TU5        TR                  Xe5        U" Xd5        g )Nr   re  )r(   typerb   r&   rN   r   )	r5  	expected1	expected2rg  rJ   expected_typerr   r   s	          r   r   (TclTest.test_user_command.<locals>.check$  s    H1$((H $X((H #F  U3A!!&-8vx !!!3qOr   c                 R   > TR                  [        U 5      U[        U5      S-  S9  g )Ng|=)delta)assertAlmostEqualr  abs)actualrJ   r   s     r   float_eq+TclTest.test_user_command.<locals>.float_eq5  s+    ""5=(),X)> # @r   Tr.   r   Fr   r   r   u   string½rG  rH  r   rL  rM  rN  r;   r   s   strings	   string€u   stringâ¬s   stringr   rI  rJ  rK  rO  rP  rQ  s   string€u   strÀingâ¬)r  r   rR  rS  rU  r   )r   r   r   r'  5 6r   z1 2 {3 4} {5 6} {})r   rv  rw  rx  r   r   r   r'  rx  )NN)r&   createcommandr   r'   deletecommandr0   r   r[  r   rb   reprr\  r]  r^  r  )r   re  r   rt  r   r   r   s   `     @r   test_user_commandTclTest.test_user_command  s   	 	!!*h744jA	t?O?O 	 	"	@ 	dCeS!hln !<<7"(*jA:NN[b	i"#%9:m\*c2l !m\*!12+-IJ""$A!SV %!A!T!W "++S^^-?-?>>%%%(:(:':<A!!< 	eElx(uU|m)b"b*"*	, 	q1$Ar*"*	,r   c                   ^ U R                   R                  nS mU4S jnU R                   R                  SU5        U R                  U R                   R                  R                  S5        UR                  S5        UR                  S5        SnU R                  S:  aT  U R                  [        T5      U5        U R                  TR                  U5        U R                  TR                  S5        g U R                  TU5        g )Nc                 
   > U mg r%   r   )rd  rI   s    r   re  .TclTest.test_passing_tcl_obj.<locals>.testfuncb  s    Ar   re  rF   ztestfunc $arG   r   ra   )r&   r'   ry  r   rz  r/   r(   r0   rb   r   rc   )r   r2   re  rJ   rI   s       @r   test_passing_tcl_objTclTest.test_passing_tcl_obj_  s    kknn	 	!!*h744jAKL <q SVX.QXXx0QZZ2Q)r   c                    U R                   R                  R                  nU R                   R                  R                  nU R	                  [
        U5        U R	                  [
        USS5        U R	                  [
        US5        SSSSSS	S
SSSSSSSSSSSSS/ S4SSS//SSS/44U" SSSS5      U R                  (       a  SOS4/nU R                  (       d  S nOS!nUU" S"S#S$S%S&S5      U4/-  nS'U R                  < S([        < S)U R                   R                  5       < 3nU H&  u  pgU R                  U" U5      US*U< S+U< 35        M(     U R	                  [        US,5        g )-NrI   r   r   )r   )r   )r   r   ){}r   )z""r  )z
a
 b	 c
 rI   r   rY  )s
   a
 b	 c
 r  )u   a €rI      €)u   a 💻rI   u   💻)s   a €r  )s   a 💻r  )s   a r  )s	   ab cd)r6   zc d)rZ  rI   zb c)za b\ cr  )r  r  )za 2)rI   r   )rI   r   r  )za 3.4)rI   3.4)rI   rX  r  )r   r   r   rY  listr   r   rW  rV  )r.   r   r  )12r  u   â¬r  )   r     €rW  dictcreater  r  r  zwant objects? z, Tcl version: z, Tcl patchlevel: zarg=z, {)r&   r'   	splitlistrN   r   r   r(   r   info_patchlevelr0   r   )r   r  rN   	testcasesrJ   dbg_inford  ress           r   test_splitlistTclTest.test_splitlistq  s   KKNN,,	{{~~"")Y/)YS9)Y2/0)108@<%%( #$HC:sCj 12&!S&)$($4$4 !#/
	6 >H>H&(B/6J
 	
	
 ''dkk6Q6Q6SU!HCYs^S-0(;= " 	(Is3r   c           
         [         R                  nU R                  R                  nSnU R	                  U" X#S5      SSSS.5        U R	                  U" X#5      SSSS.5        SnU R	                  U" X#S5      S	SS
S.5        U R	                  U" X#5      S	SS
S.5        U R                  [        XS5        U R                  [        XS5        UR                  SSS	SSSS5      nU R	                  U" X#5      U R                  (       a  S	OSSSS.5        UR                  SSSS	SSSS5      nU R                  (       d  SSSS.nOS	SSS.nU R	                  U" X#5      U5        g )Nz#-a {1 2 3} -something foo status {}Fz1 2 3foor   )-a
-somethingstatus)rI   	somethingr  )r  r   r   r   r  r  r  r  r  r  z-a b -c )r  r   r   r  r  r  r  r   r  r  )	tkinter
_splitdictr&   r'   r0   r   RuntimeErrorrN   r(   )r   	splitdictr2   rd  rJ   s        r   test_splitdictTclTest.test_splitdict  ss   &&	kknn33U3%2>	@3,<	> E3U3ETB	D3,%4@	B 	,	
C,	8IJhhviuhL3,#//)W2/	0 hhvxYeXrK$5BGH&UbIH3,h7r   c                   ^ ^^^ [         R                  mT R                  R                  mU4S jmUU U4S jnU" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S	5        U" S
5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        g )Nc                 *   > TR                  SU S5      $ )Nlindexr   )rN   )sr2   s    r   unpack!TclTest.test_join.<locals>.unpack  s    88Ha++r   c           
        > TR                  T" T" U /5      5      U 5        TR                  T" T" U S/5      5      U 5        TR                  T" T" T" U //5      5      5      U 5        TR                  T" T" T" U S//5      5      5      U 5        TR                  T" T" T" U /S/5      5      5      U 5        TR                  T" T" T" U S/S/5      5      5      U 5        g )Nr   )r0   )r5  joinr   r  s    r   r    TclTest.test_join.<locals>.check  s    VD%M2E:VD%$45u=VF4%	?$;<eDVF4%+=$>?GVF4%!+=$>?GVF4%Q+@$ABEJr   r   r  zsp amzsp	amzsp
amz 	
z{spam}z{sp am}z"spam"z"sp am"z{"spam"}z"{spam}"zsp\amz"sp\am"z	"{}" "{}"z"\z"{z"}z
\z
{z
}z\
z{
z}
)r  _joinr&   r'   )r   r   r  r2   r  s   ` @@@r   	test_joinTclTest.test_join  s    }}kknn	,	K 	b	fghhghihijjhjkeddfeefeer   c                     [         R                  " U [        R                  5        [         R                  " U [        R                  5        [         R                  " U [        R
                  5        g r%   )r   check_disallow_instantiationr   Tcl_ObjTkttType	TkappTyper   s    r   test_new_tcl_objTclTest.test_new_tcl_obj  sD    ,,T83C3CD,,T83D3DE,,T83E3EFr   )r&   r(   N)9r   r   r   r   r)   r3   r8   r<   r@   rC   rK   rO   rT   rX   r^   rd   ri   rl   rp   rt   rw   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
skipUnlessr   r[  r   r  r  r(  r6  r=  r@  r`  r|  r  r  r  r  r   cpython_onlyr  r    r   r   r   r"   r"   %   s2   80
>N5=&2

:7A
*0

:3
.
1
36
*8;5#2*76 06<2:C 02DE* F** #D%>;>&P&	3.O`A,F*$.4`8B#J G Gr   r"   c                      \ rS rSrS r\R                  \R                  " \	\
:  S5      \R                  " \	S-   SSS9S 5       5       5       r\R                  \R                  " \	\
:  S5      \R                  " \	S-   S	SS9S
 5       5       5       r\R                  \R                  " \	\
:  S5      \R                  " \	S-   SSS9S 5       5       5       rSrg)BigmemTclTesti  c                 "    [        5       U l        g r%   )r   r&   r   s    r   r)   BigmemTclTest.setUp  s    er   zneeds UINT_MAX < SIZE_MAXr   r%  F)sizememusedry_runc                 j    SU-  nU R                  [        U R                  R                  SSUS5        g )N r   indexr   )r   OverflowErrorr&   rN   )r   r  r5  s      r   test_huge_string_call#BigmemTclTest.test_huge_string_call  s0     d
-)9)98WeUVWr   r   c                    U R                   R                  nSSU-  -   nU R                  [        UR                  U5        U R                  [        UR
                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  USS5        U R                  [        UR                  SUS5        U R                  [        UR                  U5        U R                  [        UR                  SU5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                   U5        U R                  [        UR"                  U[$        5        U R                  [        UR&                  U5        g )Nr.   r  xrI   )r&   r'   r   r  r   r   r   r/   r   recordadderrorinforh   r   r   r"  r,  r  ry  r^  rz  r   r  r'   r5  s       r   test_huge_string_builtins'BigmemTclTest.test_huge_string_builtins  s    [[^^cDj -E:-u=->-%8-e<-E:-%@-E3D-CD-e<-c5A-%@->-e<-?-u=-)9)95#F-)9)95Ar   r   c                    U R                   R                  nSSU-  -   nU R                  [        UR                  U5        U R                  [        UR
                  U5        U R                  [        UR
                  SU5        g )Nr.   r  r  )r&   r'   r   r  r   r   r  s       r   test_huge_string_builtins2(BigmemTclTest.test_huge_string_builtins2  sc    
 [[^^cDj -e<-e<-c5Ar   r<  N)r   r   r   r   r)   r   r  r   r  r	   r
   
bigmemtestr  r  r  r    r   r   r   r  r    s    >13NOWq[EBX C P X >13NOWq[EBB C P B, >13NOWq[EBB C P Br   r  c                  z    [         R                  (       a&  [        5       n [        SU R	                  SS5      SS9  g g )Nzpatchlevel =info
patchlevelT)flush)r   verboser   printrN   )r2   s    r   setUpModuler    s,    enchhv|<DI r   __main__) r   r   r   r   testr   test.supportr   r   import_moduler   r  r   r   	_testcapir	   r
   ImportErrormaxsizetuplemapr   TCL_VERSIONsplitr   TestCaser   r"   r  r  r   mainr   r   r   <module>r     s      
 	  & " &&z2   +1 CX1177<=>
A(## 
AFGh FGR.BH%% .BbJ zMMO g  +"{{*Gn+s   C C('C(