o
    ²ó®gí;  ã                   @   s¼   d dl Z d dlZd dlm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eeefZedkr\ejeŽ  dS dS )é    N)Úsupport)Ú	os_helper)Ú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   ú[/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/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   óR   |   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-   ó   z(DefaultRootTest.test_image_create_bitmapc                 C   r!   r   )
r   r   r   Ú
PhotoImager   r   r#   r   r   r    r$   r   r   r   Útest_image_create_photo6   r'   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   ó    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/   B   ó   zBitmapImageTest.setUpClassc                 C   s‚   t jd| jdd| jd}|  t|ƒd¡ |  | ¡ d¡ |  | ¡ d¡ |  | ¡ d¡ |  	d| j 
¡ ¡ ~|  d| j 
¡ ¡ d S )Nú::img::testÚyellowÚblue)ÚmasterÚ
foregroundÚ
backgroundÚfiler
   é   )r   r"   r   r2   ÚassertEqualÚstrÚtypeÚwidthÚheightr   r   ÚassertNotIn©r   r%   r   r   r   Útest_create_from_fileG   s   
þz%BitmapImageTest.test_create_from_filec                 C   s´   t | jdƒ}| ¡ }W d   ƒ n1 sw   Y  tjd| jdd|d}|  t|ƒd¡ |  | ¡ d¡ |  | 	¡ d¡ |  | 
¡ d¡ |  d| j ¡ ¡ ~|  d| j ¡ ¡ d S )NÚrbr6   r7   r8   )r9   r:   r;   Údatar
   r=   )Úopenr2   Úreadr   r"   r   r>   r?   r@   rA   rB   r   r   rC   )r   ÚfrG   r%   r   r   r   Útest_create_from_dataS   s   
ÿ
þz%BitmapImageTest.test_create_from_datac                 C   s$   |   |t¡ |  | j |¡|¡ d S r   )r   r?   r>   r   Z	splitlist)r   ÚactualZexpectedr   r   r   ÚassertEqualStrLista   s   z"BitmapImageTest.assertEqualStrListc              
   C   sà   t jd| jd}|  |d d¡ t| jdƒ}| ¡ }W d   ƒ n1 s%w   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 )Nr6   ©r9   rG   z-data {} {} {} {}rF   ©rG   z-dataÚ Úasciir=   Úmaskdataz-maskdata {} {} {} {})rR   z	-maskdata)r   r"   r   r>   rH   r2   rI   Ú	configurerM   ÚdecoderA   rB   ©r   r%   rJ   rG   r   r   r   Útest_configure_datae   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 )Nr6   rN   r<   z-file {} {} {} {}©r<   z-filerP   r=   Úmaskfilez-maskfile {} {} {} {})rX   z	-maskfile)	r   r"   r   r>   rS   r2   rM   rA   rB   rD   r   r   r   Útest_configure_fileu   s   
ÿ
ÿz#BitmapImageTest.test_configure_filec                 C   ó@   t jd| jd}|  |d d¡ |jdd |  |d d¡ d S )Nr6   rN   r;   z-background {} {} {} {}r8   )r;   z-background {} {} {} blue©r   r"   r   r>   rS   rD   r   r   r   Útest_configure_backgroundƒ   ó   z)BitmapImageTest.test_configure_backgroundc                 C   rZ   )Nr6   rN   r:   z!-foreground {} {} #000000 #000000r7   )r:   z -foreground {} {} #000000 yellowr[   rD   r   r   r   Útest_configure_foreground‰   s   
ÿ
ÿz)BitmapImageTest.test_configure_foregroundN)r   r   r   Úclassmethodr/   rE   rK   rM   rV   rY   r\   r^   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   r+   )Nz
python.gifr,   r-   r.   r3   r   r   r   r/   ”   r5   zPhotoImageTest.setUpClassc                 C   s   t jd| j| jdS )Nr6   ©r9   r<   )r   r(   r   r2   ©r   r   r   r   Úcreate™   s   
ÿzPhotoImageTest.createc                 G   s   t jdkr
| jr
|S t  |¡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 ¡ ¡ ~|  d| j ¡ ¡ d S )Núpython.r,   r-   r6   ra   r	   r=   rG   rP   r<   )r   r1   r   r(   r   r>   r?   r@   rA   rB   r   r   rC   )r   Úextr2   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w   Y  tjd| j|d}|  t|ƒd¡ |  | 	¡ d¡ |  | 
¡ d¡ |  | ¡ d¡ |  |d	 | jrU|n| d
¡¡ |  |d d¡ |  d| j ¡ ¡ ~|  d| j ¡ ¡ d S )Nri   r,   r-   rF   r6   )r9   rG   r	   r=   rG   Úlatin1r<   rP   )r   r1   rH   rI   r   r(   r   r>   r?   r@   rA   rB   rf   rT   r   r   rC   )r   rj   r2   rJ   rG   r%   r   r   r   Úcheck_create_from_data±   s$   
ÿ
ÿÿz%PhotoImageTest.check_create_from_datac                 C   ó   |   d¡ d S ©NÚppm©rk   rb   r   r   r   Útest_create_from_ppm_fileÂ   ó   z(PhotoImageTest.test_create_from_ppm_filec                 C   rn   ro   ©rm   rb   r   r   r   Útest_create_from_ppm_dataÅ   rs   z(PhotoImageTest.test_create_from_ppm_datac                 C   rn   ©NZpgmrq   rb   r   r   r   Útest_create_from_pgm_fileÈ   rs   z(PhotoImageTest.test_create_from_pgm_filec                 C   rn   rv   rt   rb   r   r   r   Útest_create_from_pgm_dataË   rs   z(PhotoImageTest.test_create_from_pgm_datac                 C   rn   ©NÚgifrq   rb   r   r   r   Útest_create_from_gif_fileÎ   rs   z(PhotoImageTest.test_create_from_gif_filec                 C   rn   ry   rt   rb   r   r   r   Útest_create_from_gif_dataÑ   rs   z(PhotoImageTest.test_create_from_gif_dataé   é   c                 C   rn   ©NZpngrq   rb   r   r   r   Útest_create_from_png_fileÔ   ó   z(PhotoImageTest.test_create_from_png_filec                 C   rn   r   rt   rb   r   r   r   Útest_create_from_png_dataØ   r   z(PhotoImageTest.test_create_from_png_datac                 C   s¤   t jd| jd}|  |d d¡ t| jdƒ}| ¡ }W d   ƒ n1 s%w   Y  |j|d |  |d | jr:|n| 	d¡¡ |  | 
¡ d¡ |  | ¡ d¡ d S )	Nr6   rN   rG   rP   rF   rO   rl   r=   )r   r(   r   r>   rH   r2   rI   rS   rf   rT   rA   rB   rU   r   r   r   rV   Ü   s   
ÿÿz"PhotoImageTest.test_configure_datac                 C   sn   t jd| jd}|  |d d¡ |j| jdd |  |d | jr"dnd¡ |  | ¡ d¡ |  | ¡ d¡ d S )	Nr6   rN   ÚformatrP   rz   )r<   rƒ   )rz   r=   )	r   r(   r   r>   rS   r2   rf   rA   rB   rD   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 )Nr6   rN   r<   rP   rW   r=   )r   r(   r   r>   rS   r2   rA   rB   rD   r   r   r   rY   ð   s   z"PhotoImageTest.test_configure_filec                 C   rZ   )Nr6   rN   Úgammaz1.0g       @)r…   z2.0©r   r(   r   r>   rS   rD   r   r   r   Útest_configure_gammaø   r]   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 )Nr6   rN   rA   Ú0rB   é   )rA   é
   )rB   Z20Z10)r   r(   r   r>   rS   rA   rB   rD   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 )	Nr6   rN   ÚpaletterP   é   )rŒ   Z256z3/4/2r†   rD   r   r   r   Útest_configure_palette	  s   z%PhotoImageTest.test_configure_palettec                 C   sR   |   ¡ }| ¡  |  | ¡ d¡ |  | ¡ d¡ |  | dd¡|  ddd¡¡ d S )Nr=   é   r~   r   )rc   Zblankr>   rA   rB   Úgetrh   rD   r   r   r   Ú
test_blank  s
   "zPhotoImageTest.test_blankc                 C   sP   |   ¡ }| ¡ }|  | ¡ d¡ |  | ¡ d¡ |  | dd¡| dd¡¡ d S )Nr=   r   r~   )rc   Úcopyr>   rA   rB   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é   é   r}   r~   r   )rc   Z	subsampler>   rA   rB   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   r}   é   r   r~   é	   r‰   é   é   )rc   Zzoomr>   rA   rB   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r+d
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   r~   )Útor   r~   éÿ   r   é   rd   é€   é   ))z#f00z#00ff00)z
#000000fffz#ffffffff0000é   )rc   Úputr>   r   rh   r   re   rD   r   r   r   Útest_put9  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   r~   é>   ét   é¢   r   é   éÿÿÿÿr=   )rc   r>   r   rh   r   r   ZTclErrorrD   r   r   r   Útest_getI  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::test2rp   )r9   rƒ   r<   r	   r=   r   r«   r}   rz   )r   r~   r~   rœ   )rƒ   Zfrom_coordsz::img::test3r–   r—   r   r~   r¥   r¢   )rc   Z
addCleanupr   ÚunlinkZTESTFNÚwriter   r(   r   r>   r?   r@   rA   rB   r   )r   r%   r”   Zimage3r   r   r   Ú
test_writeS  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   r~   F)rc   r>   Ztransparency_getZtransparency_setrD   r   r   r   Útest_transparencym  s   z PhotoImageTest.test_transparencyN) r   r   r   r_   r/   rc   rh   rk   rm   rr   ru   rw   rx   r{   r|   r   r€   r‚   rV   r„   rY   r‡   r‹   rŽ   r‘   r•   r˜   rŸ   r§   r­   r°   r±   r   r   r   r   r`   ’   s>    


	
r`   Ú__main__)Zunittestr   Útestr   Ztest.supportr   Ztkinter.test.supportr   r   r   ZrequiresZTestCaser   r   r*   r`   Z	tests_guir   Zrun_unittestr   r   r   r   Ú<module>   s    
)R fÿ