o
    JAf:                     @   sv   	 d dl Z d dlmZ d dlmZ G dd dZG dd dee jZG dd	 d	ee jZe	d
kr9e j
ddd dS dS )    N)requires)TclErrorc                   @   sj   e 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hello
world
c                 C   s,   |  | jdd |  | jdd d S )N1.0r   end )assertEqualtextgetself r   2/usr/lib/python3.10/idlelib/idle_test/test_text.py	test_init   s   zTextTest.test_initc                 C   s@   | j j}dD ]
}| ||d qdD ]
}| ||d qd S )N)      333333?1.-1r   1.0 lineend1.end1.33insertr   )r   g       @2.133.442.0)r
   indexr	   r   r   Zdexr   r   r   test_index_empty   s   zTextTest.test_index_emptyc                 C   sj   | j j}| j d| j dD ]
}| ||d qdD ]
}| ||d qdD ]
}| ||d q(d S )Nr   )r   r   r   r   )r   r   r   z1.5)r   r   z3.0)r
   r   r   hwr	   r   r   r   r   test_index_data    s   zTextTest.test_index_datac                 C   s   | 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 )Nr   r   r   h1.11.3Zhelelr   hello1.10r   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 )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   r(   r   r   r   test_insert@   s"   





zTextTest.test_insertc                 C   s   | 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 )Nr   r   r   z5.5r,   )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 d| j |d ||ddd |dd ||ddd |d ||ddd | j dd |d	 ||ddd | j dd |dd
 ||ddd d S )Nr   r   Zellor!   ZlloZlloworldr"   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 d| j |dd ||ddd |dd ||ddd | j d| j |dd ||ddd |dd ||ddd | j d| j |dd	 ||ddd
 d S )Nr   r   r   z
world
r   r   zworld
z1.2r&   zheld
r1   r/   r   r   r   test_delete_slice   s    




zTextTest.test_delete_slicec                 C   sZ   | j dd | j dd | | j ddd | j dd | | j ddd d S )	Nr   r$   r"   z	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 dd | t|ddd dD ]:\}}}}}}||d|d|| ||d|d|| ||d|d|| ||d|d|| ||d	|d|| qd S )
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   ZassertRaisesr   )	r   r8   r(   r5   Zless1Zless0ZequalZgreater0Zgreater1r   r   r   test_compare   s   zTextTest.test_compareN)__name__
__module____qualname__r   r'   r   r   r   r)   r-   r0   r2   r3   r4   r9   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_tkr>   )clsr>   r   r   r   
setUpClass   s   
zMockTextTest.setUpClassc                 C   s   |   | _d S N)r>   r
   r   r   r   r   setUp   s   zMockTextTest.setUpc                 C   sb   | j j}| j}| j d| j ||ddd ||ddd ||ddd ||ddd d S )Nr   r   )      z3.1r   )rD      )r
   Z_decoder	   r   r   )r   decoder(   r   r   r   test_decode   s   zMockTextTest.test_decodeN)r:   r;   r<   classmethodr@   rB   rH   r   r   r   r   r=      s
    
r=   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   )Tkr>   )r   tkinterrK   r>   root)r?   rK   r>   r   r   r   r@      s   zTkTextTest.setUpClassc                 C   s   | j   | ` d S rA   )rM   Zdestroy)r?   r   r   r   tearDownClass   s   
zTkTextTest.tearDownClassc                 C   s   |  | j| _d S rA   )r>   rM   r
   r   r   r   r   rB      s   zTkTextTest.setUpN)r:   r;   r<   rI   r@   rN   rB   r   r   r   r   rJ      s    

rJ   __main__rD   F)	verbosityexit)ZunittestZtest.supportr   Z_tkinterr   r   ZTestCaser=   rJ   r:   mainr   r   r   r   <module>   s     :