
    /hh:                         S r SSKrSSKJr  SSKJr   " S S5      r " S S\\R                  5      r " S	 S
\\R                  5      r	\
S:X  a  \R                  " SSS9  gg)zhTest mock_tk.Text class against tkinter.Text class

Run same tests with both by creating a mixin class.
    N)requires)TclErrorc                   b    \ 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g)TextTest	   z*Define items common to both sets of tests.zhello
world
c                     U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        g )N1.0r   end )assertEqualtextgetselfs    D/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_text.py	test_initTextTest.test_init   s<    u-t4u-r2    c                     U R                   R                  nS H  nU R                  U" U5      S5        M     S H  nU R                  U" U5      S5        M     g )N)      333333?1.-1r
   1.0 lineend1.end1.33insertr
   )r   g       @2.133.442.0)r   indexr   r   r!   dexs      r   test_index_emptyTextTest.test_index_empty   sO    		CU3Z/ .CU3Z/ .r   c                 B   U R                   R                  nU R                   R                  SU R                  5        S H  nU R	                  U" U5      S5        M     S H  nU R	                  U" U5      S5        M     S H  nU R	                  U" U5      S5        M     g )Nr
   )r   r   r   r
   )r   r   r   z1.5)r   r   z3.0)r   r!   r   hwr   r"   s      r   test_index_dataTextTest.test_index_data    s    				(+CU3Z/ , 2CU3Z/ 2 #CU3Z/ #r   c                 j   U R                   R                  nU R                  nU R                   R                  SU R                  5        U" U" S5      S5        U" U" SS5      S5        U" U" S5      S5        U" U" SS5      S5        U" U" SS5      S5        U" U" SS5      S5        U" U" SS	5      S
5        U" U" SS5      S
5        U" U" S	5      S5        U" U" SS5      S5        U" U" SS5      U R                  5        U" U" SS5      U R
                  5        U" U" SS5      U R
                  5        g )Nr
   r   r   h1.11.3helelr   hello1.10r   2.3zello
worz2.5z0.0z5.0)r   r   r   r   r'   hwn)r   r   Equals      r   test_getTextTest.test_get-   s   iimm  		(c%j"c%$c%j#c%%c%'c%&c%'1c% '*c- $'c%-c%)c%*c%*r   c                    U R                   R                  nU R                   R                  nU R                  nU" SU R                  5        U" U" SS5      U R
                  5        U" SS5        U" U" SS5      U R
                  5        U" SS5        U" U" SS5      S5        U" SS5        U" U" SS5      S5        U" SS5        U" U" SS5      S	5        U" SS
5        U" U" SS5      S5        U" SS5        U" U" SS5      S5        g )Nr
   r   r   *z*hello
world
r   z*hello*
world
r2   z*hello*
wor*ld
xz*hello*
wor*ldx
1.4zx
z*helx
lo*
wor*ldx
)r   r   r   r   r'   r3   )r   r   r   r4   s       r   test_insertTextTest.test_insert@   s    !!iimm  udggc%*ubc%*ucc%!23}c"c%!34ucc%!45ucc%!56uec%!89r   c                 `   U R                   R                  nU R                   R                  nU R                  nU R                   R	                  SU R
                  5        U" S5        U" U" SS5      U R                  5        U" S5        U" U" SS5      U R                  5        U" SS5        U" U" SS5      U R                  5        U" SS5        U" U" SS5      U R                  5        U" SS5        U" U" SS5      U R                  5        U" SS5        U" U" SS5      U R                  5        g )Nr
   r   r   z5.5r:   )r   deleter   r   r   r'   r3   r   r>   r   r4   s       r   test_no_deleteTextTest.test_no_deleteZ   s    !!iimm  		(xc%*uc%*xc%*xc%*uec%*uec%*r   c                 $   U R                   R                  nU R                   R                  nU R                  nU R                   R	                  SU R
                  5        U" S5        U" U" SS5      S5        U" SS5        U" U" SS5      S5        U" S5        U" U" SS5      S5        U R                   R	                  SS5        U" S	5        U" U" SS5      S5        U R                   R	                  SS5        U" SS
5        U" U" SS5      S5        g )Nr
   r   ellor,   llolloworldr-   r   r1   r    r   r>   r   r   r   r'   r?   s       r   test_delete_charTextTest.test_delete_chars   s    !!iimm  		(uc%!6*uec%!5) 	wc%!:.		%vc%!:.		%uec%!:.r   c                 R   U R                   R                  nU R                   R                  nU R                  nU R                   R	                  SU R
                  5        U" SS5        U" U" SS5      S5        U" SS5        U" U" SS5      S5        U R                   R	                  SU R
                  5        U" SS5        U" U" SS5      S5        U" SS5        U" U" SS5      S5        U R                   R	                  SU R
                  5        U" SS	5        U" U" SS5      S
5        g )Nr
   r   r   z
world
r   r    zworld
z1.2r2   zheld
rF   r?   s       r   test_delete_sliceTextTest.test_delete_slice   s    !!iimm  		(um$c%-uec%&		(uec%+uec%&		(uec%*r   c                 \   U R                   R                  SS5        U R                   R                  SS5        U R                  U R                   R                  SS5      S5        U R                   R	                  SS5        U R                  U R                   R                  SS5      S5        g )	Nr
   r0   r-   z	1
2
3
4
5r   zhel1
2
3
4
5lo
z5.1zhello
)r   r   r   r   r>   r   s    r   test_multiple_linesTextTest.test_multiple_lines   s}    		(		0ue46LM		&ue4i@r   c                 v   U R                   R                  nU R                  nU R                   R                  SS5        U R	                  [
        USSS5        S H\  u  p4pVpxU" U" SUS5      XC5        U" U" SUS5      XS5        U" U" SUS5      Xc5        U" U" SUS5      Xs5        U" U" S	US5      X5        M^     g )
Nr
   zFirst
Second
Third
z2.2op))<TTFFF)z<=TTTFF)>FFFTT)z>=FFTTT)z==FFTFF)z!=TTFTTr,   r   r2   z3.3)r   comparer   r   assertRaisesr   )	r   rS   r4   rP   less1less0equalgreater0greater1s	            r   test_compareTextTest.test_compare   s    ))##  		 89(GUD%@<7BuX '%U+U7'%U+U7'%U+U7'%U+X:'%U+X:<r    N)__name__
__module____qualname____firstlineno____doc__r'   r3   r   r$   r(   r5   r;   r@   rG   rJ   rM   rZ   __static_attributes__r\   r   r   r   r   	   sF    0	B
T'C
300+&:4+2/0+.A;r   r   c                   0    \ rS rSr\S 5       rS rS rSrg)MockTextTest   c                     SSK Jn  Xl        g )Nr   )Text)idlelib.idle_test.mock_tkrg   )clsrg   s     r   
setUpClassMockTextTest.setUpClass   s
    2r   c                 .    U R                  5       U l        g N)rg   r   r   s    r   setUpMockTextTest.setUp   s    IIK	r   c                    U R                   R                  nU R                  nU R                   R                  SU R                  5        U" U" SS5      S5        U" U" SS5      S5        U" U" SS5      S5        U" U" SS5      S5        g )Nr
   r   )      z3.1r   )rr      )r   _decoder   r   r'   )r   decoder4   s      r   test_decodeMockTextTest.test_decode   sx    ""  		(fUB(fUB(fUQ(fUA'r   r   N)	r]   r^   r_   r`   classmethodrj   rn   rw   rb   r\   r   r   rd   rd      s      	(r   rd   c                   :    \ rS rSr\S 5       r\S 5       rS rSrg)
TkTextTest   c                 N    [        S5        SSKJnJn  X l        U" 5       U l        g )Nguir   )Tkrg   )r   tkinterr   rg   root)ri   r   rg   s      r   rj   TkTextTest.setUpClass   s    $4r   c                 <    U R                   R                  5         U ? g rm   )r   destroy)ri   s    r   tearDownClassTkTextTest.tearDownClass   s    Hr   c                 D    U R                  U R                  5      U l        g rm   )rg   r   r   r   s    r   rn   TkTextTest.setUp   s    IIdii(	r   ry   N)	r]   r^   r_   r`   rz   rj   r   rn   rb   r\   r   r   r|   r|      s-       )r   r|   __main__rr   F)	verbosityexit)ra   unittesttest.supportr   _tkinterr   r   TestCaserd   r|   r]   mainr\   r   r   <module>r      sg     ! v; v;r(8X.. (.)8,, )$ zMMAE* r   