a
    ¼3j><  ã                   @   sž   d dl Z d dlZd dlmZ d dlmZmZmZ e d¡ G dd„ dee j	ƒZ
G dd„ dee j	ƒZG d	d
„ d
ee j	ƒZG dd„ dee j	ƒZedkrše  ¡  dS )é    N)Úsupport)ÚAbstractTkTestÚAbstractDefaultRootTestÚrequires_tclZguic                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚMiscTestc                 C   s2   | j  ¡ }|  |t¡ |  d|¡ |  d|¡ d S ©NÚphotoÚbitmap)ÚrootÚimage_typesÚassertIsInstanceÚtupleÚassertIn)Úselfr   © r   úa/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_tkinter/test_images.pyÚtest_image_types   s    
zMiscTest.test_image_typesc                 C   s   | j  ¡ }|  |t¡ d S ©N)r
   Úimage_namesr   r   )r   r   r   r   r   Útest_image_names   s    
zMiscTest.test_image_namesN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   	   s   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚDefaultRootTestc                 C   sd   |   ttj¡ t ¡ }t ¡ }|  |t¡ |  d|¡ |  d|¡ | ¡  t 	¡  |   ttj¡ d S r   )
ÚassertRaisesÚRuntimeErrorÚtkinterr   ÚTkr   r   r   ÚdestroyÚNoDefaultRoot)r   r
   r   r   r   r   r      s    z DefaultRootTest.test_image_typesc                 C   sL   |   ttj¡ t ¡ }t ¡ }|  |t¡ | ¡  t ¡  |   ttj¡ d S r   )	r   r   r   r   r   r   r   r   r   )r   r
   r   r   r   r   r   #   s    z DefaultRootTest.test_image_namesc                 C   sR   |   ttj¡ t ¡ }t ¡ }|  |jt ¡ ¡ | ¡  t 	¡  |   ttj¡ d S r   )
r   r   r   ÚBitmapImager   r   Únamer   r   r   ©r   r
   Úimager   r   r   Útest_image_create_bitmap,   s    z(DefaultRootTest.test_image_create_bitmapc                 C   sR   |   ttj¡ t ¡ }t ¡ }|  |jt ¡ ¡ | ¡  t 	¡  |   ttj¡ d S r   )
r   r   r   Ú
PhotoImager   r   r!   r   r   r   r"   r   r   r   Útest_image_create_photo5   s    z'DefaultRootTest.test_image_create_photoN)r   r   r   r   r   r$   r&   r   r   r   r   r      s   		r   c                   @   sP   e Zd Ze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 )ÚBitmapImageTestc                 C   s    t j | ¡ tjddd| _d S )Nz
python.xbmÚ
imghdrdata©Zsubdir©r   Ú
setUpClassÚ__func__r   ÚfindfileÚtestfile©Úclsr   r   r   r+   A   s    zBitmapImageTest.setUpClassc                 C   sŠ   t jd| jdd| jd}|  t|ƒd¡ |  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ |  	d| j 
¡ ¡ ~t ¡  |  d| j 
¡ ¡ d S )Nú::img::testÚyellowÚblue)ÚmasterÚ
foregroundÚ
backgroundÚfiler	   é   )r   r    r
   r.   ÚassertEqualÚstrÚtypeÚwidthÚheightr   r   r   Ú
gc_collectÚassertNotIn©r   r#   r   r   r   Útest_create_from_fileF   s    
þz%BitmapImageTest.test_create_from_filec                 C   s¼   t | jdƒ}| ¡ }W d   ƒ n1 s*0    Y  tjd| jdd|d}|  t|ƒd¡ |  | ¡ d¡ |  | 	¡ d¡ |  | 
¡ d¡ |  d| j ¡ ¡ ~t ¡  |  d| j ¡ ¡ d S )NÚrbr1   r2   r3   )r4   r5   r6   Údatar	   r8   )Úopenr.   Úreadr   r    r
   r9   r:   r;   r<   r=   r   r   r   r>   r?   )r   ÚfrC   r#   r   r   r   Útest_create_from_dataS   s    &
þz%BitmapImageTest.test_create_from_datac                 C   s$   |   |t¡ |  | j |¡|¡ d S r   )r   r:   r9   r
   Z	splitlist)r   ÚactualZexpectedr   r   r   ÚassertEqualStrListb   s    z"BitmapImageTest.assertEqualStrListc              
   C   sà   t jd| jd}|  |d d¡ t| jdƒ}| ¡ }W d   ƒ n1 sJ0    Y  |j|d |  |d dddd| 	d	¡f¡ |  | 
¡ d
¡ |  | ¡ d
¡ |  |d d¡ |j|d |  |d dddd| 	d	¡f¡ d S )Nr1   ©r4   rC   z-data {} {} {} {}rB   ©rC   z-dataÚ Úasciir8   Úmaskdataz-maskdata {} {} {} {})rN   z	-maskdata)r   r    r
   r9   rD   r.   rE   Ú	configurerI   Údecoder<   r=   ©r   r#   rF   rC   r   r   r   Útest_configure_dataf   s    &
ÿ
ÿz#BitmapImageTest.test_configure_datac                 C   s¨   t jd| jd}|  |d d¡ |j| jd |  |d dddd| jf¡ |  | ¡ d¡ |  | ¡ d¡ |  |d	 d
¡ |j| jd |  |d	 dddd| jf¡ d S )Nr1   rJ   r7   z-file {} {} {} {}©r7   z-filerL   r8   Úmaskfilez-maskfile {} {} {} {})rT   z	-maskfile)	r   r    r
   r9   rO   r.   rI   r<   r=   r@   r   r   r   Útest_configure_filev   s    
ÿ
ÿz#BitmapImageTest.test_configure_filec                 C   s@   t jd| jd}|  |d d¡ |jdd |  |d d¡ d S )Nr1   rJ   r6   z-background {} {} {} {}r3   )r6   z-background {} {} {} blue©r   r    r
   r9   rO   r@   r   r   r   Útest_configure_background„   s    z)BitmapImageTest.test_configure_backgroundc                 C   s@   t jd| jd}|  |d d¡ |jdd |  |d d¡ d S )Nr1   rJ   r5   z!-foreground {} {} #000000 #000000r2   )r5   z -foreground {} {} #000000 yellowrV   r@   r   r   r   Útest_configure_foregroundŠ   s    
ÿ
ÿz)BitmapImageTest.test_configure_foregroundN)r   r   r   Úclassmethodr+   rA   rG   rI   rR   rU   rW   rX   r   r   r   r   r'   ?   s   
r'   c                   @   sü   e Zd Ze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d„ Zeddƒdd„ ƒZeddƒ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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9S ):ÚPhotoImageTestc                 C   s    t j | ¡ tjddd| _d S )Nz
python.gifr(   r)   r*   r/   r   r   r   r+   •   s    zPhotoImageTest.setUpClassc                 C   s   t jd| j| jdS )Nr1   ©r4   r7   )r   r%   r
   r.   ©r   r   r   r   Úcreateš   s    
ÿzPhotoImageTest.createc                 G   s"   t jdkr| jr|S t  |¡S d S )Nç333333!@)r   Ú	TkVersionÚwantobjectsZ_join)r   Úargsr   r   r   Ú	colorlistž   s    zPhotoImageTest.colorlistc                 C   s¶   t jd| dd}tjd| j|d}|  t|ƒd¡ |  | ¡ d¡ |  | ¡ d¡ |  | 	¡ d¡ |  |d d	¡ |  |d
 |¡ |  
d| j ¡ ¡ ~t  ¡  |  d| j ¡ ¡ d S )Núpython.r(   r)   r1   r[   r   r8   rC   rL   r7   )r   r-   r   r%   r
   r9   r:   r;   r<   r=   r   r   r>   r?   )r   Úextr.   r#   r   r   r   Úcheck_create_from_file¤   s    
ÿz%PhotoImageTest.check_create_from_filec                 C   sø   t jd| dd}t|dƒ}| ¡ }W d   ƒ n1 s:0    Y  tjd| j|d}|  t|ƒd¡ |  | 	¡ d¡ |  | 
¡ d¡ |  | ¡ d¡ |  |d	 | jrª|n| d
¡¡ |  |d d¡ |  d| j ¡ ¡ ~t  ¡  |  d| j ¡ ¡ d S )Nrc   r(   r)   rB   r1   )r4   rC   r   r8   rC   Úlatin1r7   rL   )r   r-   rD   rE   r   r%   r
   r9   r:   r;   r<   r=   r`   rP   r   r   r>   r?   )r   rd   r.   rF   rC   r#   r   r   r   Úcheck_create_from_data³   s$    &
ÿÿz%PhotoImageTest.check_create_from_datac                 C   s   |   d¡ d S ©NÚppm©re   r\   r   r   r   Útest_create_from_ppm_fileÅ   s    z(PhotoImageTest.test_create_from_ppm_filec                 C   s   |   d¡ d S rh   ©rg   r\   r   r   r   Útest_create_from_ppm_dataÈ   s    z(PhotoImageTest.test_create_from_ppm_datac                 C   s   |   d¡ d S ©NZpgmrj   r\   r   r   r   Útest_create_from_pgm_fileË   s    z(PhotoImageTest.test_create_from_pgm_filec                 C   s   |   d¡ d S rn   rl   r\   r   r   r   Útest_create_from_pgm_dataÎ   s    z(PhotoImageTest.test_create_from_pgm_datac                 C   s   |   d¡ d S ©NÚgifrj   r\   r   r   r   Útest_create_from_gif_fileÑ   s    z(PhotoImageTest.test_create_from_gif_filec                 C   s   |   d¡ d S rq   rl   r\   r   r   r   Útest_create_from_gif_dataÔ   s    z(PhotoImageTest.test_create_from_gif_dataé   é   c                 C   s   |   d¡ d S ©NZpngrj   r\   r   r   r   Útest_create_from_png_file×   s    z(PhotoImageTest.test_create_from_png_filec                 C   s   |   d¡ d S rw   rl   r\   r   r   r   Útest_create_from_png_dataÛ   s    z(PhotoImageTest.test_create_from_png_datac                 C   s¤   t jd| jd}|  |d d¡ t| jdƒ}| ¡ }W d   ƒ n1 sJ0    Y  |j|d |  |d | jrt|n| 	d¡¡ |  | 
¡ d¡ |  | ¡ d¡ d S )	Nr1   rJ   rC   rL   rB   rK   rf   r8   )r   r%   r
   r9   rD   r.   rE   rO   r`   rP   r<   r=   rQ   r   r   r   rR   ß   s    &ÿz"PhotoImageTest.test_configure_datac                 C   sn   t jd| jd}|  |d d¡ |j| jdd |  |d | jrDdnd¡ |  | ¡ d¡ |  | ¡ d¡ d S )	Nr1   rJ   ÚformatrL   rr   )r7   rz   )rr   r8   )	r   r%   r
   r9   rO   r.   r`   r<   r=   r@   r   r   r   Útest_configure_formatê   s    ÿz$PhotoImageTest.test_configure_formatc                 C   sd   t jd| jd}|  |d d¡ |j| jd |  |d | j¡ |  | ¡ d¡ |  | ¡ d¡ d S )Nr1   rJ   r7   rL   rS   r8   )r   r%   r
   r9   rO   r.   r<   r=   r@   r   r   r   rU   ó   s    z"PhotoImageTest.test_configure_filec                 C   s@   t jd| jd}|  |d d¡ |jdd |  |d d¡ d S )Nr1   rJ   Úgammaz1.0g       @)r|   z2.0©r   r%   r
   r9   rO   r@   r   r   r   Útest_configure_gammaû   s    z#PhotoImageTest.test_configure_gammac                 C   sŒ   t jd| jd}|  |d d¡ |  |d d¡ |jdd |jdd	 |  |d d
¡ |  |d d¡ |  | ¡ d¡ |  | ¡ d¡ d S )Nr1   rJ   r<   Ú0r=   é   )r<   é
   )r=   Z20Z10)r   r%   r
   r9   rO   r<   r=   r@   r   r   r   Útest_configure_width_height  s    z*PhotoImageTest.test_configure_width_heightc                 C   s\   t jd| jd}|  |d d¡ |jdd |  |d d¡ |jdd |  |d d¡ d S )	Nr1   rJ   ÚpaletterL   é   )rƒ   Z256z3/4/2r}   r@   r   r   r   Útest_configure_palette  s    z%PhotoImageTest.test_configure_palettec                 C   sR   |   ¡ }| ¡  |  | ¡ d¡ |  | ¡ d¡ |  | dd¡|  ddd¡¡ d S )Nr8   é   rv   r   )r]   Zblankr9   r<   r=   Úgetrb   r@   r   r   r   Ú
test_blank  s
    zPhotoImageTest.test_blankc                 C   sP   |   ¡ }| ¡ }|  | ¡ d¡ |  | ¡ d¡ |  | dd¡| dd¡¡ d S )Nr8   r†   rv   )r]   Úcopyr9   r<   r=   r‡   ©r   r#   Úimage2r   r   r   Ú	test_copy  s
    zPhotoImageTest.test_copyc                 C   sš   |   ¡ }| dd¡}|  | ¡ d¡ |  | ¡ d¡ |  | dd¡| dd¡¡ | d¡}|  | ¡ d¡ |  | ¡ d¡ |  | dd¡| dd¡¡ d S )Né   é   ru   rv   r†   )r]   Z	subsampler9   r<   r=   r‡   rŠ   r   r   r   Útest_subsample"  s    
zPhotoImageTest.test_subsamplec                 C   sÒ   |   ¡ }| 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Ž   é    é0   ru   é   r†   rv   é	   r€   é   é   )r]   Zzoomr9   r<   r=   r‡   rŠ   r   r   r   Ú	test_zoom.  s    
zPhotoImageTest.test_zoomc                 C   s"  |   ¡ }|jddd |  | dd¡|  ddd¡¡ |  | dd¡|  dtjd	krVd
n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d¡|  ddd¡¡ d S )Nz{red green} {blue yellow})r†   rv   )Útor†   rv   éÿ   r   é   r^   é€   é   ))z#f00z#00ff00)z
#000000fffz#ffffffff0000é   )r]   Úputr9   r‡   rb   r   r_   r@   r   r   r   Útest_put<  s    ÿÿ
zPhotoImageTest.test_putc                 C   s¶   |   ¡ }|  | dd¡|  ddd¡¡ |  | dd¡|  ddd¡¡ |  | dd¡|  ddd¡¡ |  tj|jdd¡ |  tj|jdd¡ |  tj|jd	d¡ |  tj|jdd	¡ d S )
Nr†   rv   é>   ét   é¢   r   é   éÿÿÿÿr8   )r]   r9   r‡   rb   r   r   ZTclErrorr@   r   r   r   Útest_getL  s    zPhotoImageTest.test_getc                 C   sV  |   ¡ }|  tjtj¡ | tj¡ tjd| jdtjd}|  	t
|ƒd¡ |  	| ¡ d¡ |  	| ¡ d¡ |  	| ¡ d¡ |  	| dd¡| dd¡¡ |  	| dd¡| dd¡¡ |jtjd	d
d tjd| jd	tjd}|  	t
|ƒd¡ |  	| ¡ d¡ |  	| ¡ d¡ |  	| ¡ d¡ |  	| dd¡| dd¡¡ |  	| dd¡| dd¡¡ d S )Nz::img::test2ri   )r4   rz   r7   r   r8   r   r¢   ru   rr   )r†   rv   rv   r“   )rz   Zfrom_coordsz::img::test3r   rŽ   r†   rv   rœ   r™   )r]   Z
addCleanupr   ÚunlinkZTESTFNÚwriter   r%   r
   r9   r:   r;   r<   r=   r‡   )r   r#   r‹   Zimage3r   r   r   Ú
test_writeV  s0    
þ
þzPhotoImageTest.test_writec                 C   sx   |   ¡ }|  | dd¡d¡ |  | dd¡d¡ | ddd¡ |  | dd¡d¡ | ddd¡ |  | dd¡d¡ d S )Nr   Tr†   rv   F)r]   r9   Ztransparency_getZtransparency_setr@   r   r   r   Útest_transparencyp  s    z PhotoImageTest.test_transparencyN) r   r   r   rY   r+   r]   rb   re   rg   rk   rm   ro   rp   rs   rt   r   rx   ry   rR   r{   rU   r~   r‚   r…   rˆ   rŒ   r   r–   rž   r¤   r§   r¨   r   r   r   r   rZ   “   s<   


	
rZ   Ú__main__)Zunittestr   Útestr   Ztkinter.test.supportr   r   r   ZrequiresZTestCaser   r   r'   rZ   r   Úmainr   r   r   r   Ú<module>   s   
)T h