+
    Biz                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ]P                  ! R4      t
^ RIt^ RIHt ^ RI
Ht  ^ RIHtHt ]! ]! ]]
P,                  P/                  R	4      4      4      t ! R
 R] P2                  4      t ! R R] P2                  4      t ! R R] P2                  4      tR t]R8X  d   ] P>                  ! 4        R# R#   ] d    ]P$                  ;tt Li ; i)    N)support)import_helper)	os_helper_tkinter)Tcl)TclError)INT_MAXPY_SSIZE_T_MAX.c                   &   a  ] tR t^t o R tRtV tR# )TkinterTestc                0   V P                  \        \        P                  R 4       V P                  \        \        P                  / 4       V P                  \        \        P                  R4       V P                  \        \        P                  R04       R# )TstringsetN)assertRaises	TypeErrorr   _flattenselfs   &$/usr/lib/python3.14/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____classdictcell____classdict__s   @r   r   r      s     A Ar   r   c                     a  ] tR t^%t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#]$PJ                  ! ]&PN                  R!8H  R"4      R# 4       t(R$ t)R% t*R& t+R' t,R( t-R) t.R* t/R+ t0R, t1R- t2R. t3R/ t4]5Pl                  R0 4       t7R1t8V t9R2# )3TclTestc                v    \        4       V n        V P                  P                  P                  4       V n        R # N)r   interptkwantobjectsr   s   &r   setUpTclTest.setUp'   s$    e;;>>557r   c                    V P                   pVP                  R 4       V P                  VP                  R4      R4       R# )set a 1set a1N)r'   evalassertEqualr   tcls   & r   testEvalTclTest.testEval+   s0    kk'*3/r   c                `    V P                   pV P                  VP                  R 4      R4       R# )zset a "a\0b"a bNr'   r1   r0   r2   s   & r   test_eval_null_in_result TclTest.test_eval_null_in_result0   s$    kk/2H=r   c                `    V P                   pV P                  VP                  R 4      R4       R# )zset a "<\ud83d\udcbb>"   <💻>Nr8   r2   s   & r   test_eval_surrogates_in_result&TclTest.test_eval_surrogates_in_result4   s%    kk";<nMr   c                `    V P                   pV P                  \        VP                  R 4       R# )r.   Nr'   r   r   r0   r2   s   & r   testEvalExceptionTclTest.testEvalException8   s!    kk(388G4r   c                `    V P                   pV P                  \        VP                  R 4       R# )zthis is wrongNr@   r2   s   & r   testEvalException2TclTest.testEvalException2<   s!    kk(388O<r   c                    V P                   P                  pVP                  R 4       VP                  R4      pRpV P                  W#4       R# )7set a "\u20ac \ud83d\udcbb \0 \udcab"; regexp -about $ar.      € 💻   N)r'   r(   r0   r1   r   r3   aexpecteds   &   r   test_eval_returns_tcl_obj!TclTest.test_eval_returns_tcl_obj@   s=    kknnKLHHW<%r   c                    V P                   pVP                  R RR4       V P                  VP                  R R4      R4       R# )r   rJ   r/   N)r'   callr1   r2   s   & r   testCallTclTest.testCallG   s6    kks3%,S1r   c                   V P                   pVP                  R RR4       V P                  VP                  R4      R4       V P                  VP                  R R4      R4       V P                  VP	                  R4      R4       VP                  R RR4       V P                  VP                  R4      R4       V P                  VP                  R R4      R4       V P                  VP	                  R4      R4       R# )r   rJ   r7   r.      € N)r'   rO   r1   getvarr0   r2   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                b    V P                   pV P                  \        VP                  R R4       R# )r   rJ   Nr'   r   r   rO   r2   s   & r   testCallExceptionTclTest.testCallExceptionX   s#    kk(388E#6r   c                d    V P                   pV P                  \        VP                  R RR4       R# )thisiswrongNrX   r2   s   & r   testCallException2TclTest.testCallException2\   s%    kk(388F4@r   c                l   V P                   P                  pVP                  R 4       VP                  RR4      pRpV P                  '       dV   V P                  \        V4      V4       V P                  VP                  V4       V P                  VP                  R4       R# V P                  W#4       R# )rG   r   rJ   rH   regexpN)	r'   r(   r0   rO   r)   r1   strr   typenamerI   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                    V P                   pVP                  R R4       V P                  VP                  R4      R4       R# )rJ   r/   r.   Nr'   setvarr1   r0   r2   s   & r   
testSetVarTclTest.testSetVarl   s2    kk

3s'*3/r   c                   V P                   pVP                  R R4       V P                  VP                  R 4      R4       V P                  VP	                  RR 4      R4       V P                  VP                  R4      R4       VP                  R R4       V P                  VP                  R 4      R4       V P                  VP	                  RR 4      R4       V P                  VP                  R4      R4       R# )rJ   r7   r   r.   rS   N)r'   ri   r1   rT   rO   r0   r2   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                    V P                   pVP                  R R4       V P                  VP                  R4      R4       R# )a(1)r/   zset a(1)Nrh   r2   s   & r   testSetVarArrayTclTest.testSetVarArray}   s2    kk

6#*-c2r   c                    V P                   pVP                  R 4       V P                  VP                  R4      R4       R# )r-   rJ   r/   Nr'   r0   r1   rT   r2   s   & r   
testGetVarTclTest.testGetVar   s/    kkC-r   c                    V P                   pVP                  R 4       V P                  VP                  R4      R4       R# )z
set a(1) 1rp   r/   Nrt   r2   s   & r   testGetVarArrayTclTest.testGetVarArray   s0    kkF+C0r   c                `    V P                   pV P                  \        VP                  R 4       R# rJ   Nr'   r   r   rT   r2   s   & r   testGetVarExceptionTclTest.testGetVarException   s!    kk(3::c2r   c                `    V P                   pV P                  \        VP                  R 4       R# )rp   Nr|   r2   s   & r   testGetVarArrayException TclTest.testGetVarArrayException   s!    kk(3::f5r   c                j   V P                   P                  pVP                  R 4       VP                  R4      pRpV P                  '       dV   V P                  \        V4      V4       V P                  VP                  V4       V P                  VP                  R4       R# V P                  W#4       R# )rG   rJ   rH   rb   N)	r'   r(   r0   rT   r)   r1   rc   r   rd   rI   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                    V P                   pVP                  R ^4       V P                  VP                  R4      R4       VP	                  R 4       V P                  VP                  R4      R4       R# )rJ   zinfo exists ar/   0Nr'   ri   r1   r0   unsetvarr2   s   & r   testUnsetVarTclTest.testUnsetVar   sW    kk

3q/237S/237r   c                   V P                   pVP                  R ^4       VP                  R^4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       VP	                  R 4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       R# )rp   za(2)zinfo exists a(1)r/   zinfo exists a(2)r   Nr   r2   s   & r   testUnsetVarArrayTclTest.testUnsetVarArray   s    kk

6!

6!"45c:"45c:V"45c:"45c:r   c                `    V P                   pV P                  \        VP                  R 4       R# r{   )r'   r   r   r   r2   s   & r   testUnsetVarExceptionTclTest.testUnsetVarException   s!    kk(3<<4r   c                >    ^ ^RRRRRRR	RR
^R,          ^R,          ) 3# )r   i  l        ii   l    l            l    l         l        r   r   s   &r   get_integersTclTest.get_integers   s4    1b4!T'# 	#r   c           	     6   V P                   P                  pV P                  4        F  pV P                  VP	                  R V,          4      V4       V P                  VP	                  RV,          4      V4       T P                  VP	                  RV,          P                  RR4      4      \        R8  d   TM\        RV,          4      4       V P                  VP	                  RV,          4      V4       K  	  V P                  VP	                  ^*4      ^*4       V P                  \        VP                  4       V P                  \        VP                  RR4       V P                  \        VP                  R4       V P                  \        VP                  R	4       V P                  \        VP                  R
4       V P                  \        \        \        3VP                  R4       V P                  \        \        \        3VP                  R4       R# )z %d z %#o o z%oz %#x 4210s   42      E@rJ   z42 u   42N	   r   )r'   r(   r   r1   getintreplacetcl_versionintr   r   r   
ValueErrorUnicodeEncodeError)r   r3   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                   V P                   P                  pV P                  VP                  R 4      R4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       V P                  VP                  ^*4      R4       V P	                  \
        VP                  4       V P	                  \
        VP                  RR4       V P	                  \
        VP                  R4       V P	                  \        VP                  R4       V P	                  \
        \        \        3VP                  R4       V P	                  \        \        \        3VP                  R	4       R
# )z 42 r   z 42.5 g     @E@z42.5r   s   42.5rJ   z42.5 u   42.5N)	r'   r(   r1   	getdoubler   r   r   r   r   r2   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                4   V P                   P                  pV P                  VP                  R 4      R4       V P                  VP                  R4      R4       V P                  VP                  ^*4      R4       V P                  VP                  ^ 4      R4       V P	                  \
        VP                  4       V P	                  \
        VP                  R R4       V P	                  \
        VP                  R4       V P	                  \
        VP                  R4       V P	                  \        VP                  R4       V P	                  \
        \        \        3VP                  R4       V P	                  \        \        \        3VP                  R4       R	# )
onTr/   Fs   on      ?rJ   zon u   onN)	r'   r(   assertIs
getbooleanr   r   r   r   r   r2   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                   V P                   p\        P                  pV P                  \        P                  V4       \        VR 4      ;_uu_ 4       pVP                  R4       RRR4       VP                  V4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       R#   + '       g   i     L; i)	wzKset a 1
            set b 2
            set c [ expr $a + $b ]
            Nr.   r/   set b2zset c3
r'   r   TESTFN_ASCII
addCleanupunlinkopenwriteevalfiler1   r0   r   r3   filenamefs   &   r   testEvalFileTclTest.testEvalFile   s    kk))	(((3(C  AGG   !
 	X'*3/'*3/'*3/ ! s   C!!C1	c                   V P                   p\        P                  pV P                  \        P                  V4       \        VR 4      ;_uu_ 4       pVP                  R4       RRR4       VP                  V4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       R#   + '       g   i     Le; i)r   z>
            set a "a b"
            set b "a\0b"
            Nr.   r7   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   C  C	c                *   V P                   pVP                  R R4      pV P                  VP                  R RV4       VP                  R RR4       \        P                  pV P                  \        P
                  V4       \        VR4      ;_uu_ 4       pVP                  R4       RRR4       \        R
8  d#   V P                  \        VP                  V4       M2VP                  V4       V P                  VP                  R4      R4       \        VR4      ;_uu_ 4       pVP                  R4       RRR4       VP                  V4       V P                  VP                  R	4      R4       R#   + '       g   i     L; i  + '       g   i     LW; i)encodingsystemzutf-8wbs*   
            set a "<>"
            Nr.   r<   s0   
            set b "<\ud83d\udcbb>"
            r   r   )r'   rO   r   r   r   r   r   r   r   r   r   r   r1   r0   )r   r3   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/!F/E?	F	c                    V P                   pR p \        P                  ! V4       V P	                  \
        VP                  V4       R#   \         d   p Rp?L3Rp?ii ; i)doesnotexistsN)r'   osremove	Exceptionr   r   r   )r   r3   r   es   &   r   testEvalFileExceptionTclTest.testEvalFileException#  sN    kk"	IIh 	(3<<9  		s   A	 	AAc                `    V P                   pV P                  \        VP                  R 4       R# )zpackage require DNENr@   r2   s   & r   testPackageRequireException#TclTest.testPackageRequireException,  s"    kk(388,ABr   win32zRequires Windowsc                j   \         P                  P                  \        P                  4      pV^,          R8w  d   \
        P                  ! R4      hR\         P                  R,          : RV^ ,          : RVR,          : 2p\         P                  P                  V4      '       g   \
        P                  ! R4      h\        P                  ! 4       ;_uu_ 4       pVP                  R	4       \        P                  ! VR
R.4      pRRR4       V P                  RX4       R#   + '       g   i     L$; i)   :z$Absolute path should have drive partz\\COMPUTERNAME\z$\:   NNzCannot connect to UNC PathTCL_LIBRARY-czimport tkinter; print(tkinter)Ns   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%?%?$,QKK$,RL2 ww~~h''##$@AA**,,IIm$,,t%EFHF -
 	j&) -,s   +D""D2	c                  a a S P                   oSP                  R R^4       SP                  R R^4       V V3R lpS P                  \        SP                  4       S P                  \        SP                  RR4       S P                  \        SP                  R4       S P                  \
        SP                  R4       V! RR	4       V! R
R4       V! RR4       V! RR4       V! RR4       V! RR	4       V! RR	4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! R R4       V! R!R"4       V! R#R$4       V! R%R$4       V! R&R'4       V! R(\        R*4      4       R)# )+r   rJ   bc                 x   < SP                  V 4      pSP                  W!4       SP                  V\        4       R # r&   )
exprstringr1   assertIsInstancerc   exprrK   resultr   r3   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"r7   2**64N            )r'   rO   r   r   r   r   rc   r   r   r3   s   f @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                  a a S P                   oSP                  R R^4       SP                  R R^4       V V3R lpS P                  \        SP                  4       S P                  \        SP                  RR4       S P                  \        SP                  R4       S P                  \
        SP                  R4       V! RR	4       V! R
R4       V! RR4       V! RR4       V! RR4       V! RR	4       V! RR	4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! R R4       S P                  \
        SP                  R!4       V! R"\        R$4      4       R## )%r   rJ   r   c                 x   < SP                  V 4      pSP                  W!4       SP                  V\        4       R # r&   )
exprdoubler1   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  Nr  )r'   rO   r   r   r  r   r  r  s   f @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                  a a S P                   oSP                  R R^4       SP                  R R^4       V V3R lpS P                  \        SP                  4       S P                  \        SP                  RR4       S P                  \        SP                  R4       S P                  \
        SP                  R4       V! R^ 4       V! R	^4       V! R
^4       V! R^4       V! R^4       V! R^ 4       V! R^ 4       V! R^4       V! R^4       V! R^4       V! R^4       V! R^4       V! R^4       V! R^4       V! R^4       S P                  \
        SP                  R4       S P                  \
        SP                  R4       R# )r   rJ   r   c                 x   < SP                  V 4      pSP                  W!4       SP                  V\        4       R # r&   )exprlongr1   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  N)r'   rO   r   r   r   r   r  s   f @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                  a a S P                   oSP                  R R^4       SP                  R R^4       V V3R lpS P                  \        SP                  4       S P                  \        SP                  RR4       S P                  \        SP                  R4       S P                  \
        SP                  R4       V! RR	4       R F,  pV! VR	4       V! R
V,          R	4       V! RV,          R	4       K.  	  R F,  pV! VR4       V! R
V,          R4       V! RV,          R4       K.  	  V! RR4       V! RR4       V! RR4       V! RR4       V! RR	4       V! RR	4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       S P                  \
        SP                  R4       V! RR4       R# ) r   rJ   r   c                    < SP                  V 4      pSP                  W!4       SP                  V\        4       SP	                  V\
        4       R # r&   )exprbooleanr1   r   r   assertNotIsInstanceboolr   s   && r   r   'TclTest.test_exprboolean.<locals>.check  s?    __T*FV.!!&#.$$VT2r   r   r   r   r   r   Fz"%s"z{%s}Tr   r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  N)r   falsenooff)r/   trueyesr   )r'   rO   r   r   r&  r   )r   r   valuer3   s   f  @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                   a a S P                   oV V3R  lpV! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! RR4       V! R	R4       V! R
R4       R# )c           	         < SP                  R V 4      pSP                  4       '       d*   SP                  W!4       SP                  V\        4       R# SP                  W \        \	        V4      4      34       SP                  V\        4       R# r   N)rO   r)   r1   r   r   r   rc   r   s   && r   r   $TclTest.test_booleans.<locals>.check  sh    XXfd+F    2%%fc2fSX-?&@A%%fc2r   r-  Tr.  r   r*  Fr+  r,  z1 < 2z1 > 2Nr'   r  s   f @r   test_booleansTclTest.test_booleans  sc    kk	3 	fdeTdDgudEeUgtgur   c                Z   V P                   pV P                  4        F  pVP                  R \        V4      4      pV P                  '       d*   V P                  W24       V P                  V\        4       KY  V P                  V\        V4      4       V P                  V\        4       K  	  R# r4  )r'   r   rO   rc   r)   r1   r   r   )r   r3   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           	     h  a  V 3R  lpS P                  V! R4      S P                  '       d   RMR4       S P                  V! R4      S P                  '       d   RMR4       S P                  V! R4      R4       S P                  V! R4      R4       S P                  V! R4      R4       S P                  V! R4      R4       S P                  V! R	4      R	4       S P                  V! R
4      R
4       S P                  V! R4      R4       \        P                  R8w  d1   S P                  V! R4      R4       S P                  V! R4      R4       S P                  V! R4      S P                  '       d   RMR4       S P                  V! R4      S P                  '       d   RMR4       S P                  V! R4      S P                  '       d   RMR4       S P	                  4        F8  pS P                  V! V4      S P                  '       d   TM
\        V4      4       K:  	  RRR R!\        P                  P                  \        P                  P                  \        P                  P                  ) \        P                  P                  ) 3 FP  pS P                  '       d   S P                  V! V4      V4       K/  S P                  \        V! V4      4      V4       KR  	  S P                  '       dz   V! \        R4      4      pS P                  W34       S P                  V! \        R4      4      \        R4      4       S P                  V! \        R4      ) 4      \        R4      ) 4       MhS P                  \        V! \        R4      4      4      \        R4      4       S P                  \        V! \        R4      ) 4      4      \        R4      ) 4       S P                  V! R"4      S P                  '       d   R"MR4       S P                  V! RRR..4      S P                  '       d	   R#4       R# R4       R# )$c                 >   < SP                   P                  R RV 4      # )r   _)r'   rO   )r/  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   naninfz1 2 3.4rJ   r   ca {b c}N      UUUUUU?r   r   333333@)rJ   )r   rN  )r1   r)   r   platformr   rc   
float_infominmaxr  assertNotEqual)r   r?  r   r   s   f   r   test_passing_valuesTclTest.test_passing_values  sl   	7 	4$2B2B2B$L5)D4D4D4D5#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@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                x  a a R oV3R lpS P                   P                  RV4       S P                  S P                   P                  P                  R4       R%RS P
                  /VV 3R lllpV 3R lpV! RR^4       V! RR	^ 4       V! R
4       V! R4       V! R4       V! R4       \        P                  R8w  d   V! RRR4       V! RRR4       V! R4       V! RR
4       V! RR4       V! RR4       V! RR4       V! R4       V! R4       V! R4       V! RR4       V! RR4       V! RR 4       S P                  4        F  pV! V\        V4      4       K  	  R& F  pV! V\        V4      4       K  	  R'\        P                  P                  \        P                  P                  \        P                  P                  ) \        P                  P                  ) 3 F  pV! WSR!7       K  	  V! \        R"4      VR!7       V! \        R"4      ) VR!7       V! R(RR4       V! R)R$R*4       V! ^^.^^.R#. .R$R*4       R # )+Nc                    < V oV # r&   r   )argr   s   &r   testfunc+TclTest.test_user_command.<locals>.testfunc  s    FJr   r_  eqc                  < T pSP                   ^8  d   Ve   Tp\        V4      pMVe   Tp\        pRoSP                  P	                  RV 4      pSP                  SV4       V! SV4       SP                  We4       V! Wd4       R# )   Nr_  )r)   typerc   r'   rO   r   )	r/  	expected1	expected2ra  rK   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                 b   < SP                  \        V 4      V\        V4      R ,          R7       R# )g|=)deltaN)assertAlmostEqualr  abs)actualrK   r   s   &&r   float_eq+TclTest.test_user_command.<locals>.float_eq5  s+    ""5=(),X)> # @r   Tr/   Fr   r   u   string½rA  rB  r   rF  rG  rH  r<   r   s   strings	   string€u   stringâ¬s   stringr   rC  rD  rE  rI  rJ  rK  s   string€u   strÀingâ¬)ra  rM  5 6z1 2 {3 4} {5 6} {})NN)r  r   rP  rQ  r   )r   rc  r      rq  r   )r   rr  rs  rq  r   )r'   createcommandr   r(   deletecommandr1   r   rU  r   rc   reprrV  rW  rX  r  )r   r_  r   ro  r   r   r   s   f     @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                  a V P                   P                  pR oV3R lpV P                   P                  RV4       V P                  V P                   P                  P                  R4       VP                  R4       VP                  R4       RpV P                  ^8  dV   V P                  \        S4      V4       V P                  SP                  V4       V P                  SP                  R4       R # V P                  SV4       R # )Nc                    < V oR # r&   r   )r^  rJ   s   &r   r_  .TclTest.test_passing_tcl_obj.<locals>.testfuncb  s    Ar   r_  rG   ztestfunc $arH   rb   )r'   r(   ru  r   rv  r0   r)   r1   rc   r   rd   )r   r3   r_  rK   rJ   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                   V P                   P                  P                  pV P                   P                  P                  pV P	                  \
        V4       V P	                  \
        VR R4       V P	                  \
        V^4       RRRRRRRRRRRRRRRR R!R"R#R$. R3R RR..R RR.33V! R^RR%4      V P                  '       d   R&MR'3.pV P                  '       g   R(pMR)pVV! RR^RRR%4      V3.,          pR	V P                  : R
\        : RV P                   P                  4       : 2pV F&  w  rgV P                  V! V4      VRV: RV: 24       K(  	  V P	                  \        VR4       R# )*rJ   r   r   rN     €list   €dictcreatezwant objects? z, Tcl version: z, Tcl patchlevel: zarg=z, {N)r   )r   r   )r   r   ){}r   )z""r  )z
a
 b	 c
 rJ   r   rN  )s
   a
 b	 c
 r  )u   a €rJ   r  )u   a 💻rJ   u   💻)s   a €r  )s   a 💻r  )s   a r  )s	   ab cd)r7   zc d)rO  rJ   zb c)za b\ cr  )r  r  )za 2)rJ   r   )rJ   rc  r  )za 3.4)rJ   3.4)rJ   rT  r  )r   r   rS  rR  )r/   r   r  )12r  u   â¬r  )   r  r  rS  )r'   r(   	splitlistrO   r   r   r)   r   info_patchlevelr1   r   )r   r  rO   	testcasesrK   dbg_infor^  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$4 !#/
	6 >H>H&(B/6J
 	
	
 ''dkk6Q6Q6SU!HCYs^S-0(;= " 	(Is3r   c           
        \         P                  pV P                  P                  pR pV P	                  V! W#R4      RRRRRR/4       V P	                  V! W#4      RRR	RRR/4       RpV P	                  V! W#R4      RRRRRR
/4       V P	                  V! W#4      RRR	RRR
/4       V P                  \        WR4       V P                  \        WR4       VP                  RRRRRRR4      pT P	                  V! W#4      RV P                  '       d   RMRR	RRR/4       VP                  RRRRRRRR4      pV P                  '       g
   RRR	RRR/pMRRR	RRR/pV P	                  V! W#4      V4       R# )z#-a {1 2 3} -something foo status {}F-az1 2 3
-somethingfoostatusr   rJ   	somethingr  z-a b -c r  r  r  Nr   rc  r   )r  r  r  r  r  r  )r  r   r   r   )	tkinter
_splitdictr'   r(   r1   r   RuntimeErrorrO   r)   )r   	splitdictr3   r^  rK   s   &    r   test_splitdictTclTest.test_splitdict  s   &&	kknn33U37L%2>	@3,';x<	> E3U39lE8TB	D3,)[%4@	B 	,	
C,	8IJhhviuhL3,t///)W%2/	0 hhvxYeXrKWk5(BGHYUHbIH3,h7r   c                  a aaa \         P                  oS P                  P                  oV3R  loVV V3R lpV! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R	4       V! R
4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       R# )c                 *   < SP                  R V ^ 4      # )lindex)rO   )sr3   s   &r   unpack!TclTest.test_join.<locals>.unpack  s    88Ha++r   c           
        < SP                  S! S! V .4      4      V 4       SP                  S! S! V ^ .4      4      V 4       SP                  S! S! S! V ..4      4      4      V 4       SP                  S! S! S! V ^ ..4      4      4      V 4       SP                  S! S! S! V .^ .4      4      4      V 4       SP                  S! S! S! V ^ .^ .4      4      4      V 4       R# )r   N)r1   )r/  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}
N)r  _joinr'   r(   )r   r   r  r3   r  s   f @@@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                    \         P                  ! V \        P                  4       \         P                  ! V \        P                  4       \         P                  ! V \        P
                  4       R # 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):r   r   r   r   r*   r4   r9   r=   rA   rD   rL   rP   rU   rY   r_   re   rj   rm   rq   ru   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
skipUnlessr   rU  r   r  r  r"  r0  r7  r:  rZ  rx  r}  r  r  r  r   cpython_onlyr  r   r    r!   s   @r   r$   r$   %   s5    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                     a  ] tR tRt o R t]P                  ]P                  ! ]	]
8  R4      ]P                  ! ]	^,           ^RR7      R 4       4       4       t]P                  ]P                  ! ]	]
8  R4      ]P                  ! ]	^,           ^RR7      R 4       4       4       t]P                  ]P                  ! ]	]
8  R4      ]P                  ! ]	^,           ^RR7      R 4       4       4       tR	tV tR
# )BigmemTclTesti  c                $    \        4       V n        R # r&   )r   r'   r   s   &r   r*   BigmemTclTest.setUp  s    er   zneeds UINT_MAX < SIZE_MAXF)sizememusedry_runc                t    R V,          pV P                  \        V P                  P                  RRV^ 4       R# ) r   indexN)r   OverflowErrorr'   rO   )r   r  r/  s   && r   test_huge_string_call#BigmemTclTest.test_huge_string_call  s0     d
-)9)98WeUVWr   c                
   V P                   P                  pR RV,          ,           pV P                  \        VP                  V4       V P                  \        VP
                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  VRR4       V P                  \        VP                  RVR4       V P                  \        VP                  V4       V P                  \        VP                  RV4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                  V4       V P                  \        VP                   V4       V P                  \        VP"                  V\$        4       V P                  \        VP&                  V4       R# )r/   r  xrJ   N)r'   r(   r   r  r   r   r   r0   r   recordadderrorinfori   r   r   r   r&  r  ru  rX  rv  r   r  r(   r/  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   c                   V P                   P                  pR RV,          ,           pV P                  \        VP                  V4       V P                  \        VP
                  V4       V P                  \        VP
                  RV4       R# )r/   r  r  N)r'   r(   r   r  r   r   r  s   &&  r   test_huge_string_builtins2(BigmemTclTest.test_huge_string_builtins2  sc    
 [[^^cDj -e<-e<-c5Ar   r6  N)r   r   r   r   r*   r   r  r   r  r	   r
   
bigmemtestr  r  r  r   r    r!   s   @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                      \         P                  '       d+   \        4       p \        R V P	                  RR4      RR7       R# R# )zpatchlevel =info
patchlevelT)flushN)r   verboser   printrO   )r3   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,