
    z%i:                         	 d dl Z d dlmZ d dlmZ  G d d      Z G d dee j                        Z G d d	ee j                        Ze	d
k(  r e j                  dd       yy)    N)requires)TclErrorc                   X    e Zd Z	 dZedz   Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)TextTestzhello
world
c                     | j                  | j                  j                  d      d       | j                  | j                  j                  d      d       y )N1.0r   end )assertEqualtextgetselfs    O/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_text.py	test_initzTextTest.test_init   s<    u-t4u-r2    c                     | j                   j                  }dD ]  }| j                   ||      d        dD ]  }| j                   ||      d        y )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_emptyzTextTest.test_index_empty   sY    		 	0CU3Z/	0 . 	0CU3Z/	0r   c                 6   | j                   j                  }| j                   j                  d| j                         dD ]  }| j	                   ||      d        dD ]  }| j	                   ||      d        dD ]  }| j	                   ||      d        y )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_datazTextTest.test_index_data    s    				(+ 	0CU3Z/	0 2 	0CU3Z/	0 # 	0CU3Z/	0r   c                 j   | j                   j                  }| j                  }| j                   j                  d| j                          | |d      d        | |dd      d        | |d      d        | |dd      d        | |dd      d        | |dd      d        | |dd	      d
        | |dd      d
        | |d	      d        | |dd      d        | |dd      | j                          | |dd      | j
                          | |dd      | j
                         y )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_getzTextTest.test_get-   s   iimm  		(c%j"c%$c%j#c%%c%'c%&c%'1c% '*c- $'c%-c%)c%*c%*r   c                    | j                   j                  }| j                   j                  }| j                  } |d| j                          | |dd      | j
                          |dd        | |dd      | j
                          |dd        | |dd      d        |dd        | |dd      d        |dd        | |dd      d	        |dd
        | |dd      d        |dd        | |dd      d       y )Nr	   r
   r   *z*hello
world
r   z*hello*
world
r.   z*hello*
wor*ld
xz*hello*
wor*ldx
1.4zx
z*helx
lo*
wor*ldx
)r   r   r   r   r$   r/   )r   r   r   r0   s       r   test_insertz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                 `   | j                   j                  }| j                   j                  }| j                  }| j                   j	                  d| j
                          |d        | |dd      | j                          |d        | |dd      | j                          |dd        | |dd      | j                          |dd        | |dd      | j                          |dd        | |dd      | j                          |dd        | |dd      | j                         y )Nr	   r   r
   z5.5r5   )r   deleter   r   r   r$   r/   r   r8   r   r0   s       r   test_no_deletezTextTest.test_no_deleteZ   s    !!iimm  		(xc%*uc%*xc%*xc%*uec%*uec%*r   c                 $   | j                   j                  }| j                   j                  }| j                  }| j                   j	                  d| j
                          |d        | |dd      d        |dd        | |dd      d        |d        | |dd      d       | j                   j	                  dd        |d	        | |dd      d       | j                   j	                  dd        |dd
        | |dd      d       y )Nr	   r   ellor(   llolloworldr)   r   r-   r   r   r8   r   r   r   r$   r9   s       r   test_delete_charzTextTest.test_delete_chars   s    !!iimm  		(uc%!6*uec%!5) 	wc%!:.		%vc%!:.		%uec%!:.r   c                 R   | j                   j                  }| j                   j                  }| j                  }| j                   j	                  d| j
                          |dd        | |dd      d        |dd        | |dd      d       | j                   j	                  d| j
                          |dd        | |dd      d        |dd        | |dd      d       | j                   j	                  d| j
                          |dd	        | |dd      d
       y )Nr	   r   r
   z
world
r   r   zworld
z1.2r.   zheld
r?   r9   s       r   test_delete_slicezTextTest.test_delete_slice   s    !!iimm  		(um$c%-uec%&		(uec%+uec%&		(uec%*r   c                 \   | j                   j                  dd       | j                   j                  dd       | j                  | j                   j                  dd      d       | j                   j	                  dd       | j                  | j                   j                  dd      d       y )	Nr	   r,   r)   z	1
2
3
4
5r
   zhel1
2
3
4
5lo
z5.1zhello
)r   r   r   r   r8   r   s    r   test_multiple_lineszTextTest.test_multiple_lines   s}    		(		0ue46LM		&ue4i@r   c                    | j                   j                  }| j                  }| j                   j                  dd       | j	                  t
        |ddd       dD ]c  \  }}}}}} | |d|d      ||        | |d|d      ||        | |d|d      ||        | |d|d      ||        | |d	|d      ||       e y )
Nr	   zFirst
Second
Third
z2.2op))<TTFFF)z<=TTTFF)>FFFTT)z>=FFTTT)z==FFTFF)z!=TTFTTr(   r   r.   z3.3)r   comparer   r   assertRaisesr   )	r   rI   r0   rF   less1less0equalgreater0greater1s	            r   test_comparezTextTest.test_compare   s    ))##  		 89(GUD%@< 	;7BueXx '%U+UB7'%U+UB7'%U+UB7'%U+Xr:'%U+Xr:	;r   N)__name__
__module____qualname__r$   r/   r   r"   r%   r1   r6   r:   r@   rB   rD   rP    r   r   r   r   	   sF    0	B
T'C
300+&:4+2/0+.A;r   r   c                   (    e Zd Zed        Zd Zd Zy)MockTextTestc                     ddl m} || _        y )Nr   )Text)idlelib.idle_test.mock_tkrX   )clsrX   s     r   
setUpClasszMockTextTest.setUpClass   s    2r   c                 .    | j                         | _        y N)rX   r   r   s    r   setUpzMockTextTest.setUp   s    IIK	r   c                    | j                   j                  }| j                  }| j                   j                  d| j                          | |dd      d        | |dd      d        | |dd      d        | |dd      d       y )Nr	   r
   )      z3.1r   )ra      )r   _decoder   r   r$   )r   decoder0   s      r   test_decodezMockTextTest.test_decode   sx    ""  		(fUB(fUB(fUQ(fUA'r   N)rQ   rR   rS   classmethodr[   r^   rf   rT   r   r   rV   rV      s      	(r   rV   c                   2    e Zd Zed        Zed        Zd Zy)
TkTextTestc                 P    t        d       ddlm}m} || _         |       | _        y )Nguir   )TkrX   )r   tkinterrl   rX   root)rZ   rl   rX   s      r   r[   zTkTextTest.setUpClass   s    $4r   c                 <    | j                   j                          | ` y r]   )rn   destroy)rZ   s    r   tearDownClasszTkTextTest.tearDownClass   s    Hr   c                 D    | j                  | j                        | _        y r]   )rX   rn   r   r   s    r   r^   zTkTextTest.setUp   s    IIdii(	r   N)rQ   rR   rS   rg   r[   rq   r^   rT   r   r   ri   ri      s-       )r   ri   __main__ra   F)	verbosityexit)unittesttest.supportr   _tkinterr   r   TestCaserV   ri   rQ   mainrT   r   r   <module>r{      si     ! v; v;r(8X.. (.)8,, )$ zHMMAE* r   