Ë
    #´˜j:  ã                   óÈ   — d Z 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)zi Test mock_tk.Text class against tkinter.Text class

Run same tests with both by creating a mixin class.
é    N)Úrequires)ÚTclErrorc                   óZ   — e Zd 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*Define items common to both sets of tests.zhello
worldÚ
c                 ó°   — | j                  | j                  j                  d«      d«       | j                  | j                  j                  d«      d«       y )Nú1.0r   ÚendÚ )ÚassertEqualÚtextÚget©Úselfs    ú-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   sO   € Ø—	‘	—‘ˆóˆCà×Ñ™U 3›Z¨Õ/ðó .ˆCØ×Ñ™U 3›Z¨Õ/ñ .r   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…   € Ø—	‘	—‘ˆØ�	‰	×Ñ˜ §¡Ô(ã+ˆCØ×Ñ™U 3›Z¨Õ/ð ,ó 2ˆCØ×Ñ™U 3›Z¨Õ/ð 2ó #ˆCØ×Ñ™U 3›Z¨Õ/ñ #r   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  € Ø�i‰i�m‰mˆØ× Ñ ˆØ�	‰	×Ñ˜ §¡Ô(á‰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÷   € Ø—‘×!Ñ!ˆØ�i‰i�m‰mˆØ× Ñ ˆáˆu�d—g‘gÔÙ‰c�%˜Ó §¡Ô*áˆu�bÔÙ‰c�%˜Ó §¡Ô*áˆu�cÔÙ‰c�%˜ÓÐ!2Ô3áˆ}˜cÔ"Ù‰c�%˜ÓÐ!3Ô4áˆu�cÔÙ‰c�%˜ÓÐ!4Ô5áˆu�cÔÙ‰c�%˜ÓÐ!5Ô6áˆu�eÔÙ‰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ö   € à—‘×!Ñ!ˆØ�i‰i�m‰mˆØ× Ñ ˆØ�	‰	×Ñ˜ §¡Ô(áˆxÔÙ‰c�%˜Ó §¡Ô*áˆuŒÙ‰c�%˜Ó §¡Ô*áˆx˜ÔÙ‰c�%˜Ó §¡Ô*áˆx˜ÔÙ‰c�%˜Ó §¡Ô*áˆu�eÔÙ‰c�%˜Ó §¡Ô*áˆu�eÔÙ‰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é   € Ø—‘×!Ñ!ˆØ�i‰i�m‰mˆØ× Ñ ˆØ�	‰	×Ñ˜ §¡Ô(áˆuŒÙ‰c�%˜Ó! 6Ô*áˆu�eÔÙ‰c�%˜Ó! 5Ô)ñ 	ˆwŒÙ‰c�%˜Ó! :Ô.à�	‰	×Ñ˜ Ô%ÙˆvŒÙ‰c�%˜Ó! :Ô.à�	‰	×Ñ˜ Ô%Ùˆu�eÔÙ‰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ø   € Ø—‘×!Ñ!ˆØ�i‰i�m‰mˆØ× Ñ ˆØ�	‰	×Ñ˜ §¡Ô(áˆu�mÔ$Ù‰c�%˜Ó Ô-áˆu�eÔÙ‰c�%˜Ó Ô&à�	‰	×Ñ˜ §¡Ô(Ùˆu�eÔÙ‰c�%˜Ó Ô+áˆu�eÔÙ‰c�%˜Ó Ô&à�	‰	×Ñ˜ §¡Ô(Ùˆu�eÔÙ‰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Ø×Ñ˜Ÿ™Ÿ™ u¨eÓ4Ð6LÔMà�	‰	×Ñ˜ Ô&Ø×Ñ˜Ÿ™Ÿ™ u¨eÓ4°iÕ@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à×Ñœ( G¨U°D¸%Ô@ó<Ñ7ˆB��u˜e X¨xñ ‘'˜%  UÓ+¨U°BÔ7Ù‘'˜%  UÓ+¨U°BÔ7Ù‘'˜%  UÓ+¨U°BÔ7Ù‘'˜%  UÓ+¨X°rÔ:Ù‘'˜%  UÓ+¨X°rÕ:ñ<r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__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_tkrY   )ÚclsrY   s     r   Ú
setUpClasszMockTextTest.setUpClassÄ   s   € å2Øˆ�r   c                 ó.   — | j                  «       | _        y ©N)rY   r   r   s    r   ÚsetUpzMockTextTest.setUpÉ   s   € Ø—I‘I“Kˆ�	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   )rb   é   )r   Ú_decoder   r   r$   )r   Údecoder0   s      r   Útest_decodezMockTextTest.test_decodeÍ   sx   € à—‘×"Ñ"ˆØ× Ñ ˆØ�	‰	×Ñ˜ §¡Ô(á‰f�U˜BÓ Ô(Ù‰f�U˜BÓ Ô(Ù‰f�U˜QÓ Ô(Ù‰f�U˜AÓ Õ'r   N)rQ   rR   rS   Úclassmethodr\   r_   rg   rU   r   r   rW   rW   Â   s   „ àñó ðò ó	(r   rW   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   )ÚTkrY   )r   Útkinterrm   rY   Úroot)r[   rm   rY   s      r   r\   zTkTextTest.setUpClassÛ   s   € ä�Œß$ØˆŒÙ“4ˆ�r   c                 ó<   — | j                   j                  «        | ` y r^   )ro   Údestroy)r[   s    r   ÚtearDownClasszTkTextTest.tearDownClassâ   s   € à�‰×ÑÔØ‰Hr   c                 óD   — | j                  | j                  «      | _        y r^   )rY   ro   r   r   s    r   r_   zTkTextTest.setUpç   s   € Ø—I‘I˜dŸi™iÓ(ˆ�	r   N)rQ   rR   rS   rh   r\   rr   r_   rU   r   r   rj   rj   Ù   s-   „ àñó ðð ñó ðó)r   rj   Ú__main__rb   F)Ú	verbosityÚexit)rT   ÚunittestÚtest.supportr   Ú_tkinterr   r   ÚTestCaserW   rj   rQ   ÚmainrU   r   r   Ú<module>r|      si   ðñó Ý !Ý ÷v;ñ v;ôr(�8˜X×.Ñ.ô (ô.)�˜8×,Ñ,ô )ð$ ˆzÒØ€H‡M�M˜A EÖ*ð r   