<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
 fB                 @   sv   d Z ddlZddlmZ ddlmZ G dd deZG dd deejZ	G d	d
 d
eejZ
edkrrejddd dS )zi Test mock_tk.Text class against tkinter.Text class

Run same tests with both by creating a mixin class.
    N)requires)TclErrorc               @   sl   e Zd ZdZdZed Zdd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )TextTestz*Define items common to both sets of tests.zhello
world
c             C   s,   | j | jjdd | j | jjdd d S )Nz1.0r   end )assertEqualtextget)self r   @/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_text.py	test_init   s    zTextTest.test_initc             C   sH   | j j}xdD ]}| j||d qW xdD ]}| j||d q,W d S )Ng      ?333333?1.-11.01.0 lineend1.end1.33insertr          @2.133.44z2.0      )r   r   r   r   r   r   r   r   )r   r   r   r   )r	   indexr   )r   r   dexr   r   r   test_index_empty   s    
zTextTest.test_index_emptyc             C   sv   | j j}| j jd| j xdD ]}| j||d qW xdD ]}| j||d q<W xdD ]}| j||d qZW d S )N1.0g      ?333333?1.-11.0 lineend1.end1.33z1.5r   33.44z3.0      )r$   r   r   r   )r    r!   r"   )r   r#   )r	   r   r   hwr   )r   r   r   r   r   r   test_index_data    s    


zTextTest.test_index_datac             C   s   | 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 d S )Nz1.0r   r   hz1.1z1.3ZhelZelz1.0 lineendhelloz1.10r   z2.3zello
worz2.5z0.0z5.0)r	   r
   r   r   r%   hwn)r   r
   Equalr   r   r   test_get-   s     zTextTest.test_getc             C   s   | 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 d S )Nz1.0r   r   *z*hello
world
z1.0 lineendz*hello*
world
z2.3z*hello*
wor*ld
xz*hello*
wor*ldx
z1.4zx
z*helx
lo*
wor*ldx
)r	   r   r
   r   r%   r)   )r   r   r
   r*   r   r   r   test_insert@   s"    





zTextTest.test_insertc             C   s   | 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 d S )Nz1.0r   r   z5.5z1.4)r	   deleter
   r   r   r%   r)   )r   r/   r
   r*   r   r   r   test_no_deleteZ   s     



zTextTest.test_no_deletec             C   s   | 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 d S )Nz1.0z1.endZelloz1.1ZlloZlloworldz1.3r   z1.10z2.0)r	   r/   r
   r   r   r%   )r   r/   r
   r*   r   r   r   test_delete_chars   s     

zTextTest.test_delete_charc             C   s   | 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
 d S )Nz1.0z1.0 lineendr   z
world
r   z2.0zworld
z1.2z2.3zheld
)r	   r/   r
   r   r   r%   )r   r/   r
   r*   r   r   r   test_delete_slice   s     




zTextTest.test_delete_slicec             C   sZ   | j jdd | j jdd | j| j jddd | j jdd | j| j jddd d S )	Nz1.0r(   z1.3z	1
2
3
4
5r   zhel1
2
3
4
5lo
z5.1zhello
)r	   r   r   r
   r/   )r   r   r   r   test_multiple_lines   s
    zTextTest.test_multiple_linesc       	      C   s   | j j}| j}| j jdd | jt|ddd x|dD ]t\}}}}}}||d|d|| ||d|d|| ||d|d|| ||d|d|| ||d|d|| q4W d S )Nz1.0zFirst
Second
Third
z2.2op<TF<=>>===!=z1.1z2.1z2.3z3.3r5   TTFFFr6   TTTFFr7   FFFTTr8   FFTTTr9   FFTFFr:   TTFTT)r;   r<   r=   r>   r?   r@   )r	   comparer   r   ZassertRaisesr   )	r   rA   r*   r4   Zless1Zless0ZequalZgreater0Zgreater1r   r   r   test_compare   s          zTextTest.test_compareN)__name__
__module____qualname____doc__r%   r)   r   r   r&   r+   r.   r0   r1   r2   r3   rB   r   r   r   r   r   	   s   
	r   c               @   s(   e Zd Zedd Zdd Zdd ZdS )MockTextTestc             C   s   ddl m} || _d S )Nr   )Text)Zidlelib.idle_test.mock_tkrH   )clsrH   r   r   r   
setUpClass   s    zMockTextTest.setUpClassc             C   s   | j  | _d S )N)rH   r	   )r   r   r   r   setUp   s    zMockTextTest.setUpc             C   sb   | j j}| j}| j jd| j ||dd	d
 ||ddd ||ddd ||ddd d S )Nz1.0r            z3.1r      )rM   rN   rP   )rM   rN   )rM   rO   )rM   rO   )r	   Z_decoder   r   r%   )r   decoder*   r   r   r   test_decode   s    zMockTextTest.test_decodeN)rC   rD   rE   classmethodrJ   rK   rR   r   r   r   r   rG      s   rG   c               @   s,   e Zd Zedd Zedd Zdd ZdS )
TkTextTestc             C   s*   t d ddlm}m} || _| | _d S )NZguir   )TkrH   )r   ZtkinterrU   rH   root)rI   rU   rH   r   r   r   rJ      s    zTkTextTest.setUpClassc             C   s   | j j  | ` d S )N)rV   Zdestroy)rI   r   r   r   tearDownClass   s    
zTkTextTest.tearDownClassc             C   s   | j | j| _d S )N)rH   rV   r	   )r   r   r   r   rK      s    zTkTextTest.setUpN)rC   rD   rE   rS   rJ   rW   rK   r   r   r   r   rT      s   rT   __main__rM   F)	verbosityexit)rF   ZunittestZtest.supportr   Z_tkinterr   objectr   ZTestCaserG   rT   rC   mainr   r   r   r   <module>   s    :