a
    ëÝEbè­  ã                
   @   sæ  d dl mZ d dlmZ d dlZd dlZd dlmZ d dlZd dlZd dl	Z
d dlZd dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZ d dlmZmZmZm Z m!Z! d d	l"m#Z#m$Z$ d d
l%m&Z&m'Z'm(Z( d dl)m*Z+ d dl,Z,e$dgdd�dd„ ƒZ-e$dgdd�dd„ ƒZ.e$dgddgdd�dd„ ƒZ/e,j0 1dddg¡e$dgddgd�d d!„ ƒƒZ2d"d#„ Z3e,j0 1d$g d%¢¡e#dgd�d&d'„ ƒƒZ4e#dgd�d(d)„ ƒZ5e#ƒ d*d+„ ƒZ6d,d-„ Z7d.d/„ Z8e,j0 1d0g d1¢¡d2d3„ ƒZ9e,j0 1d0g d4¢¡d5d6„ ƒZ:d7d8„ Z;d9d:„ Z<d;d<„ Z=e$d=gdd�d>d?„ ƒZ>d@dA„ Z?e,j0 1dBdCdDggdEfdFdGggdHfej@dIdJggdKfdIdLggdMfg¡dNdO„ ƒZAe$dPgdd�dQdR„ ƒZBe$dSgdd�dTdU„ ƒZCe$dVgdddW�dXdY„ ƒZDe#dgd�dZd[„ ƒZEd\d]„ ZFd^d_„ ZGe$d`gdd�dadb„ ƒZHe$dcgdddgdd�dedf„ ƒZIdgdh„ ZJe$digdddW�djdk„ ƒZKe$dlgdd�dmdn„ ƒZLe#dgd�dodp„ ƒZMe$dqgddgdddr�dsdt„ ƒZNe$dugdddW�dvdw„ ƒZOdxdy„ ZPe$dzgdddW�d{d|„ ƒZQd}d~„ ZRdd€„ ZSd�d‚„ ZTdƒd„„ ZUd…d†„ ZVd‡dˆ„ ZWe,j0 1d‰e e XdŠ¡e Xd‹¡e XdŒ¡ Yd�¡fe!e XdŠ¡e Xd‹¡e XdŽ¡ Yd�¡fg¡d�d‘„ ƒZZd’d“„ Z[d”d•„ Z\e$d–gdd�d—d˜„ ƒZ]e$d™gddšd›�dœd�„ ƒZ^dždŸ„ Z_d d¡„ Z`e$d¢gdd£d›�d¤d¥„ ƒZae$d¦gdd�d§d¨„ ƒZbd©dª„ Zce$d«gdd�d¬d­„ ƒZde$d®ge e¡ d¯k�rêd nd°ddd±�d²d³„ ƒZfd´dµ„ Zge,j0 1d¶d·d¸„ d¹ h¡ D ƒ¡dºd»„ ƒZie$d¼gdddW�d½d¾„ ƒZje$d¿gdddW�dÀdÁ„ ƒZke$dÂgdddW�dÃdÄ„ ƒZle,j0 1dÅejmejndÆdÇ„ dÈdÇ„ g¡dÉdÊ„ ƒZodËdÌ„ ZpdÍdÎ„ ZqdÏdÐ„ ZrdÑdÒ„ Zse,j0 1dÓdÔdÕg¡e,j0 1dÖd×dØg¡dÙdÚ„ ƒƒZtdÛdÜ„ ZudÝdÞ„ Zvdßdà„ Zwdádâ„ Zxe#ƒ dãdä„ ƒZydådæ„ Zzej {d¡dçdè„ ƒZ|e,j0j}e,j0j~dédê„ ƒƒZG dëdì„ dìej€ƒZ�dídî„ Z‚dïdð„ Zƒe#dgd�dñdò„ ƒZ„e,j0 1dódôdIg¡e#dgd�dõdö„ ƒƒZ…e#ƒ d÷dø„ ƒZ†e$dùgdd�dúdû„ ƒZ‡e$dügdddý�dþdÿ„ ƒZˆdS (   é    )Ú	ExitStack)ÚcopyN)ÚPath)Úassert_array_equal)ÚImage)Ú_apiÚcolorsÚimageÚpatchesÚpyplotÚstyleÚrcParams)Ú	AxesImageÚ	BboxImageÚFigureImageÚNonUniformImageÚPcolorImage)Úcheck_figures_equalÚimage_comparison)ÚBboxÚAffine2DÚTransformedBboxZimage_interpsZmpl20)r   c                  C   s†   dt jd< t d¡ dd¡} t  d¡\}\}}}|j| dd� | d	¡ | d¡ |j| d
d� | d
¡ |j| dd� | d¡ dS )z5Make the basic nearest, bilinear and bicubic interps.é   ztext.kerning_factoréd   é   é   é   Únearest©Úinterpolationzthree interpolationsÚbilinearZbicubicN)	Úpltr   ÚnpÚarangeÚreshapeÚsubplotsÚimshowÚ	set_titleZ
set_ylabel)ÚXÚfigÚax1Úax2Úax3© r-   ú[/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_image.pyÚtest_image_interps   s    



r/   zinterp_alpha.pngT)Úremove_textc                  C   sf   t  dd¡\} \}}t d¡}t d¡|d< t tjdtjd�¡|d< |j|dd	� |j|d
d	� dS )z:Test the interpolation of the alpha channel on RGBA imagesé   é   )r   r   é   ©r   r   ).r1   ©Údtype©.r   Únoner   r    N)r!   r%   r"   ÚzerosÚonesZtrilÚuint8r&   )r)   ZaxlZaxrÚimgr-   r-   r.   Útest_alpha_interp.   s    
r=   Zinterp_nearest_vs_noneÚpdfÚsvg)Ú
extensionsr0   c                  C   s|   dt d< tjg d¢g d¢gg d¢g d¢ggtjd�} t dd	¡\}\}}|j| d
d� | d¡ |j| dd� | d¡ dS )z5Test the effect of "nearest" and "none" interpolationr   úsavefig.dpi)éÚ   é¥   é    )éz   ég   éî   )é   éÿ   r   )rI   éc   éG   r5   r1   r2   r8   r   zinterpolation noner   zinterpolation nearestN)r   r"   Úarrayr;   r!   r%   r&   r'   )r(   r)   r*   r+   r-   r-   r.   Útest_interp_nearest_vs_none;   s    ÿÿ
rM   ÚsuppressCompositeFÚfigimageÚpng)r@   c                 C   s  t jddd�}| |_t t d¡d t d¡d ¡\}}t |d |d  ||  ¡}t d|d  d|d   ¡}||d  }|j|d	d	d
d� |j|d d d…d d …f d	dd
d� |j|d d …d d d…f dd	d
d� |j|d d d…d d d…f ddd
d� d S )N©r2   r2   r   ©ÚfigsizeÚdpig      Y@r2   r   é2   r   r   Úlower)ZxoZyoÚoriginéÿÿÿÿ)r!   ÚfigurerN   r"   Zix_r#   ÚsinrO   )rN   r)   ÚxÚyÚzÚcr<   r-   r-   r.   Útest_figimageM   s    $$$r_   c                  C   sD   t  ¡ \} }| g d¢¡ t ¡ }|  |¡ | d¡ t  |¡ d S )N)r1   r2   r   r   )r!   r%   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)r)   ÚaxÚbufferr-   r-   r.   Útest_image_python_io]   s    

rh   z!img_size, fig_size, interpolation))r   r2   Úhanning)r   r   r   )r   é
   r   )r   ç333333@ri   )r   g333333"@r   c           	      C   sš   t j d¡ tjd }t j t|| ƒt|| ƒ¡}| |fD ]}| ||¡ q<|  ¡ }| 	g d¢¡ |j
|dd� | ¡ }| 	g d¢¡ |j
||d� d S )Né!N,rA   ©r   r   r1   r1   Úantialiasedr   )r"   ÚrandomÚseedr!   r   ÚrandÚintÚset_size_inchesr%   Úset_positionr&   )	Úfig_testÚfig_refZimg_sizeZfig_sizer   rT   ÚAr)   rf   r-   r-   r.   Útest_imshow_antialiasedf   s    
rx   c                 C   s¶   t j d¡ tjd }t j t|d ƒt|d ƒ¡}| |fD ]}| dd¡ q<|  ¡ }|j	|dd� | 
ddg¡ | ddg¡ | ¡ }|j	|d	d� | 
ddg¡ | ddg¡ d S )
Nrl   rA   r   rk   rn   r   rj   r   r   )r"   ro   rp   r!   r   rq   rr   rs   r%   r&   Úset_xlimÚset_ylim)ru   rv   rT   rw   r)   rf   r-   r-   r.   Útest_imshow_zoom~   s    
r{   c                 C   sŽ   t  d¡ ttƒjd }ttƒjd }|  d¡}|d  t |¡¡ |d  t |¡¡ | d¡}|d  t	 
|¡¡ |d  t	 
|¡¡ d S )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.tifr2   r   r1   )r   Zuser   Ú__file__Úparentr%   r&   r   Úopenr!   re   )ru   rv   Zpng_pathZ	tiff_pathÚaxsr-   r-   r.   Útest_imshow_pil�   s    


rƒ   c                  C   sF   t  tj tj t¡ddd¡¡} | jtj	ks0J ‚t 
| ¡dksBJ ‚d S )NZbaseline_imagesZ
test_imagez
uint16.tifé €ÿ)r!   re   ÚosÚpathÚjoinÚdirnamer   r6   r"   Úuint16Úsum©r<   r-   r-   r.   Útest_imread_pil_uint16�   s
    ÿrŒ   c                  C   s:   t  ttƒjd ¡} | jtjks$J ‚t | ¡dks6J ‚d S )Nr~   r„   )	r!   re   r   r   r€   r6   r"   r‰   rŠ   r‹   r-   r-   r.   Útest_imread_fspath¤   s
    ÿr�   Úfmt)rP   ÚjpgÚjpegÚtiffc                 C   sÄ   | dv}t j d¡ t j dd¡}t ¡ }tj||| dd� t ¡ }tj||| dd� | d¡ tj	|| d�}| d¡ tj	|| d�}|j
ddd	| fksžJ ‚|j
ddd	| fks¶J ‚t||ƒ d S )
N)r�   r�   r1   i@  r2   )ÚformatrT   r   r   ©r’   r   )r"   ro   rp   rq   ra   rb   r!   Úimsaverd   re   Úshaper   )rŽ   Z	has_alphaÚdataZ	buff_dpi1Zbuff_dpi100Zarr_dpi1Z
arr_dpi100r-   r-   r.   Útest_imsave«   s    	

r—   )rP   r>   ÚpsZepsr?   c                 C   s&   t jttjƒt ddgg¡| d� d S )Nr   r1   r“   )r!   r”   r   r…   Údevnullr"   rL   )rŽ   r-   r-   r.   Útest_imsave_fspathÎ   s    rš   c                  C   s”   t j d¡ dD ]~} t j ddd¡}t ¡ }tj||| dd� | d¡ t 	|¡}d|  
d	¡}| d
krv|d d d… }d|  
d	¡}t||ƒ qd S )Nr1   )rV   Úupperé   r3   rP   )rW   r’   r   rI   r;   rV   rX   )r"   ro   rp   rq   ra   rb   r!   r”   rd   re   Úastyper   )rW   r–   ÚbuffZarr_bufr-   r-   r.   Útest_imsave_color_alphaÓ   s    

rŸ   c                  C   sh   ddl m}  t ¡ }| ƒ }| dd¡ tj|ddgddggdd	|id
� t |¡}|j	d dksdJ ‚d S )Nr   )ÚPngInfoZSoftwareÚtestr1   r2   r   rP   Úpnginfo©r’   Ú
pil_kwargs)
ZPIL.PngImagePluginr    ra   rb   Úadd_textr!   r”   r   r�   Úinfo)r    Úbufr¢   Úimr-   r-   r.   Útest_imsave_pil_kwargs_pngì   s    ÿ
r©   c                     sp   ddl m‰  t ¡ } ddi}tj| ddgddggd|d	� t | ¡}‡ fd
d„|j 	¡ D ƒ}|d dkslJ ‚d S )Nr   )ÚTAGS_V2Údescriptionz
test imager1   r2   r   r‘   r£   c                    s   i | ]\}}ˆ | j |“qS r-   )Úname)Ú.0ÚkÚv©ZTAGSr-   r.   Ú
<dictcomp>ý   ó    z/test_imsave_pil_kwargs_tiff.<locals>.<dictcomp>ZImageDescription)
ZPIL.TiffTagsrª   ra   rb   r!   r”   r   r�   Ztag_v2Úitems)r§   r¤   r¨   Útagsr-   r°   r.   Útest_imsave_pil_kwargs_tiff÷   s    
rµ   Zimage_alphac                  C   sd   t j d¡ t j dd¡} t dd¡\}\}}}|j| ddd� |j| ddd� |j| dd	d� d S )
Nr   r   r1   r   ç      ð?r8   )Úalphar   ç      à?r   )r"   ro   rp   rq   r!   r%   r&   )ÚZr)   r*   r+   r,   r-   r-   r.   Útest_image_alpha  s    rº   c            
      C   sx  ddl m}  t ¡ \}}|jt d¡ dd¡dd�}d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d	ksrJ ‚d
\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d u s°J ‚| ¡  |jt d¡ dd¡dd�}d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d	k�sJ ‚t ¡ \}}|jt d¡ dd¡g d¢d�}d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡dk�s€J ‚d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d u �sÀJ ‚d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d u �s J ‚tƒ  d¡ d¡}	|jt d¡ dd¡|	|j d�}d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d	k�stJ ‚d S )Nr   ©Ú
MouseEventr   rj   r›   )rW   ©r3   r3   Úmotion_notify_eventé,   )g333333$@r3   rV   )r   r¸   r   r¸   ©Úextent)ç      Ð?rÂ   é7   )ç      è?rÂ   )ç{®Gáz„?g{®Gáz„¿r2   r¸   )Ú	transform)r   rj   )Úmatplotlib.backend_basesr¼   r!   r%   r&   r"   r#   r$   Ú	transDatarÆ   ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)
r¼   r)   rf   r¨   r[   r\   ÚxdispÚydispÚeventZtransr-   r-   r.   Útest_cursor_data  sN    
 ÿrÑ   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$�•ï?z[0.123]r1   r2   ú[]g     ð?z[1.0000000000000000]c           	      C   sb   ddl m} t ¡ \}}| | ¡}|j ddg¡\}}|d|j||ƒ}| | 	|¡¡|ks^J ‚d S )Nr   r»   r¾   )
rÇ   r¼   r!   r%   r&   rÈ   rÆ   rÉ   Úformat_cursor_datarÊ   )	r–   Útextr¼   r)   rf   r¨   rÎ   rÏ   rÐ   r-   r-   r.   Útest_format_cursor_dataS  s    
rÕ   Z
image_clipc                  C   sF   ddgddgg} t  ¡ \}}| | ¡}tjdd|jd�}| |¡ d S )Nr1   r2   r   r3   ©r   r   )ZradiusrÆ   )r!   r%   r&   r
   ZCirclerÈ   Úset_clip_path)Údr)   rf   r¨   Úpatchr-   r-   r.   Útest_image_clipe  s
    
rÚ   Zimage_cliprectc                  C   sN   t  ¡ \} }ddgddgg}|j|dd�}tjddd|jjd�}| |¡ d S )	Nr1   r2   r   r3   ©r   r   r   r   rÀ   ©r1   r1   )ZxyÚwidthÚheightrÆ   )r!   r%   r&   r
   Z	RectangleZaxesrÈ   r×   )r)   rf   rØ   r¨   Zrectr-   r-   r.   Útest_image_cliprecto  s    ÿrß   r&   )r0   r   c                  C   sH   t  ¡ \} }t d¡ d¡}|j|ddd� | dd¡ | dd¡ d S )Nr   ©rj   rj   r    ©r1   r2   r1   r2   ©r   rÁ   r   r   )r!   r%   r"   r#   r$   r&   ry   rz   ©r)   rf   Úarrr-   r-   r.   Útest_imshow{  s
    rå   c                 C   s†   t  d¡ d¡}| ¡ }|j|d d …d d …df ddd� | dd¡ | dd¡ |  ¡ }|j|ddd� | dd¡ | dd¡ d S )Nr   )rj   rj   r1   r   r    rá   râ   r   )r"   r#   r$   r%   r&   ry   rz   )ru   rv   rä   rf   r-   r-   r.   Útest_imshow_10_10_1„  s    "ræ   c                  C   sT   t  ¡ \} }t d¡ d¡}t t¡� | |¡ W d   ƒ n1 sF0    Y  d S )NéÈ   )rj   rj   r2   ©	r!   r%   r"   r#   r$   ÚpytestÚraisesÚ	TypeErrorr&   rã   r-   r-   r.   Útest_imshow_10_10_2“  s    rì   c                  C   sT   t  ¡ \} }t d¡ d¡}t t¡� | |¡ W d   ƒ n1 sF0    Y  d S )Niô  )rj   rj   r   rè   rã   r-   r-   r.   Útest_imshow_10_10_5š  s    rí   Zno_interpolation_originc                  C   sP   t  d¡\} }|d jt d¡ d¡ddd� |d jt d¡ d¡dd	� d S )
Nr2   r   r   )r2   rU   rV   r8   )rW   r   r1   r   )r!   r%   r&   r"   r#   r$   )r)   r‚   r-   r-   r.   Útest_no_interpolation_origin¡  s
    ÿrî   Zimage_shift)r0   r@   c                  C   sT   dd„ t ddƒD ƒ} d}d}t ¡ \}}|j| t ¡ d||ddfd� | d	¡ d S )
Nc                    s$   g | ]‰ ‡ fd d„t ddƒD ƒ‘qS )c                    s   g | ]}d | d ˆ   ‘qS )r1   r-   )r­   r[   ©r\   r-   r.   Ú
<listcomp>«  r²   z/test_image_shift.<locals>.<listcomp>.<listcomp>r1   r   )Úrange)r­   r-   rï   r.   rð   «  r²   z$test_image_shift.<locals>.<listcomp>r1   r   g�Mòãûk&Ag˜Šäûk&Ar8   )Únormr   rÁ   Úauto)rñ   r!   r%   r&   r   ÚLogNormZ
set_aspect)ZimgDataZtMinZtMaxr)   rf   r-   r-   r.   Útest_image_shift©  s    
ÿrõ   c                  C   s  t jddgd�} | jg d¢dd�}t t d¡d¡ dd	¡}|j|d
g d¢ddd�}d }}| | |g¡ | 	| |g¡ | 
g ¡ | g ¡ t ¡ }| j|dd� | d¡ t  |¡}t|d d …df ƒ\}}}	}
t|d d …df ƒ\}}}	}
|dk�sJ dƒ‚d S )Nr1   ©rS   rm   F)Úframeoné   é   r   é	   r›   ©éöÿÿÿrj   rü   rj   r8   Úgray)rW   rÁ   r   Úcmapr2   )r   r1   r   )Ú	facecolorr   rX   r   z.Expected a non-green edge - but sadly, it was.)r!   rY   Úadd_axesr"   Ztiler#   r$   r&   ry   rz   Ú
set_xticksÚ
set_yticksra   rb   rc   rd   re   rŠ   )r)   rf   r–   r¨   r[   r\   r§   ÚrÚgÚbÚar-   r-   r.   Útest_image_edgesµ  s$    ÿ



r  Zimage_composite_backgroundc                  C   s^   t  ¡ \} }t d¡ dd¡}|j|g d¢d� |j|g d¢d� | d¡ | ddg¡ d S )	Nrø   r3   r   )r   r2   rù   r   rÀ   )r3   r   rù   r   )r1   r   r   r¸   r   )r!   r%   r"   r#   r$   r&   Úset_facecolorry   rã   r-   r-   r.   Útest_image_composite_backgroundÑ  s    
r	  Zimage_composite_alphac                  C   sŠ  t  ¡ \} }t d¡}d|dd…dd…df< t t ddd¡t ddd¡ddd… f¡|dd…dd…df< t d	¡}d|dd…dd…df< d|dd…dd…df< t t ddd¡t ddd¡ddd… f¡dd…tjf |dd…dd…df< |j|g d
¢dd� |j|g d¢dd� |j|g d¢d� |j|g d¢d� |j|g d¢dd� |j|g d¢dd� | d¡ | 	ddg¡ | 
ddg¡ dS )z{
    Tests that the alpha value is recognized and correctly applied in the
    process of compositing images together.
    )é   é   r3   r1   Nr   gš™™™™™ñ?çš™™™™™¹?rX   r   )r  r
  r3   )r1   r2   r   r   ç333333Ó?)rÁ   r·   )r2   r   r   r   ç333333ã?)r   r3   r   r   rÀ   )r   r   r1   r2   )r   r   r2   r   )r   r   r   r3   )r   r¸   r   r1   r   )r!   r%   r"   r9   Zconcatenater#   Znewaxisr&   r  ry   rz   )r)   rf   rä   Zarr2r-   r-   r.   Útest_image_composite_alphaÜ  s.    
$ÿ
$ÿÿ
r  c                 C   sp   t  d¡ d¡}| |fD ]L}| ¡ }|j|tj g d¢¡|jfd� |j|tj g d¢¡|jfd� qd|_	d S )Nrú   ©r   r   )rÖ   ©r   r1   )r1   r   )Z	clip_path)rÜ   )r1   r2   )r2   r1   T)
r"   r#   r$   Úadd_subplotr&   Úmplr†   r   rÈ   rN   )ru   rv   Útr)   rf   r-   r-   r.   Ú#test_clip_path_disables_compositing÷  s    ÿÿ
r  Zrasterize_10dpi)r@   r0   r   c                  C   sÔ   t  ddgddgg¡} tjdddd�\}}|d  | ¡ |d jddgddgdd	d
� |d jddd� |d jddgddgdd� |d jddd� |D ],}| g ¡ | g ¡ |j	d d …  
d¡ qšdtd< d S )Nr1   r2   r   r3   )r   r1   rö   r   g      4@T)Ú	linewidthZ
rasterizedr  )rX   r2   ©ÚxlimÚylim)r  Frj   rA   )r"   Úasarrayr!   r%   r&   r`   Úsetr  r  ZspinesZset_visibler   )r<   r)   r‚   rf   r-   r-   r.   Útest_rasterize_dpi  s    	

r  Zbbox_image_invertedc                  C   sÈ   t  d¡ d¡} t ¡ \}}tttddgddggƒ|jƒdd�}| 	| ¡ | 
d¡ | dd¡ | dd¡ | |¡ t  d¡} tttdd	gd
dggƒ|jjƒdd�}| 	| ¡ | 
d¡ | |¡ d S )Nr   rà   r   r   r   Frj   r  çš™™™™™É?r  rÂ   )r"   r#   r$   r!   r%   r   r   r   rÈ   Úset_dataZset_clip_onry   rz   Z
add_artistÚidentityrY   ZtransFigure)r	   r)   rf   Zbbox_imr-   r-   r.   Útest_bbox_image_inverted"  s(    þ



ÿþ

r   c                  C   s¨   t  g d¢g d¢g d¢g d¢g¡} tjddd�\}}| g d¢¡ | d	d
¡ | d	d
¡ |j| g d¢dd�}|j 	¡  |jj
}| |¡}t| ¡ ddgddggƒ d S )N)rÂ   rÄ   r¶   rÄ   )r  gÍÌÌÌÌÌä?r¸   çš™™™™™Ù?)r  r  ç        r  )çffffffæ?çÍÌÌÌÌÌì?r!  r  rà   r   rR   rm   r   r1   )r!  r#  r  r$  r   )rÁ   r   i�  rç   i¼  i„  )r"   rL   r!   r%   rt   ry   rz   r&   rÉ   ÚdrawÚrendererZget_window_extentr   Z
get_points)r¨   r)   rf   Zim_objr&  Zim_bboxr-   r-   r.   Ú$test_get_window_extent_for_AxisImage;  s    ÿ
ÿ

r'  zzoom_and_clip_upper_origin.pngc                  C   sF   t  d¡} |  d¡} t ¡ \}}| | ¡ | dd¡ | dd¡ d S )Nr   rà   ç       @ç      à¿)r"   r#   r$   r!   r%   r&   rz   ry   )r	   r)   rf   r-   r-   r.   Útest_zoom_and_clip_upper_originP  s    


r*  c                  C   s   t  ¡ } t| ƒ}| d¡ d S )NZBlues)r!   Úgcar   Zset_cmap©rf   r¨   r-   r-   r.   Útest_nonuniformimage_setcmap\  s    r-  c                  C   s"   t  ¡ } t| ƒ}| t  ¡ ¡ d S ©N)r!   r+  r   Úset_normÚ	Normalizer,  r-   r-   r.   Útest_nonuniformimage_setnormb  s    r1  c                  C   sn   t jddd�} tdƒD ]"}t  ddd¡d | |d d …f< qt dd¡}| |  ¡ ¡ t 	¡ \}}| 
|¡ d S )	Nrà   r;   r5   rj   r"  r¶   rI   ÚL)r"   r:   rñ   Úlinspacer   ÚnewZputdataÚflattenr!   r%   r&   )ZimdÚir¨   r)   rf   r-   r-   r.   Útest_jpeg_2dh  s     r7  c                  C   s¨   t jddd� tjdtd�} t ddd¡| d< t  | ¡ t ¡ }t j	|d	d
dd� | 
d¡ t |¡}t| d¡ƒ}d|  krˆdksŽn J ‚| d¡}|dks¤J ‚d S )NrÜ   é,  rR   )r8  r8  r3   r5   r"  r¶   r7   Úredr�   )rÿ   r’   rT   r   é   é¯   éÒ   rÖ   )éþ   r   r   )r!   rY   r"   r9   Úfloatr3  rO   ra   rb   rc   rd   r   r�   ÚlenZ	getcolorsZgetpixel)r¨   rž   r	   Z
num_colorsZcorner_pixelr-   r-   r.   Útest_jpeg_alphas  s    



r@  c                  C   sP   t  ¡ } t| ƒ}tjdtd� d¡}| |¡ d|d< |jd dksLJ dƒ‚d S ©Nrø   r5   ©r3   r   çÍÌÌÌÌÌ#@rÖ   r   úvalue changed)	r!   r+  r   r"   r#   r>  r$   r  Ú_A)rf   r¨   r]   r-   r-   r.   Útest_axesimage_setdata‹  s    
rF  c                  C   sP   t  ¡ } t| ƒ}tjdtd� d¡}| |¡ d|d< |jd dksLJ dƒ‚d S rA  )	r!   Zgcfr   r"   r#   r>  r$   r  rE  )r)   r¨   r]   r-   r-   r.   Útest_figureimage_setdata”  s    
rG  zimage_cls,x,y,aç      @ç      @g      (@rB  g      @)r   r2   c                 C   s”   t  ¡ }| |ƒ}| |||¡ d |d<  |d< |d< |jd |jd   krf|jd   krfdkspn J dƒ‚| ||| g |j¢d‘R ¡¡ d S )NrC  r   rÖ   rD  rX   )r!   r+  r  rE  Z_AxZ_Ayr$   r•   )Z	image_clsr[   r\   r  rf   r¨   r-   r-   r.   Útest_setdata_xya�  s    :rJ  c            
      C   sâ   ddl m}  tj d¡ tj dd¡}t dd¡\}}|d  |¡}|d  |¡}tj	||d d� tj	||d d� t
 ¡ }tj|dd� t
 | ¡ ¡}|  |¡}d }| d	¡D ]*}	|d u rÈ|	d
 }q²|	d
 |kr²ds²J ‚q²d S )Nr   )ÚElementTreerj   r1   r2   )rf   r?   r“   r	   rÝ   F)Z	xml.etreerK  r"   ro   rp   rq   r!   r%   Z
pcolormeshÚcolorbarra   rb   rc   ÚgetvalueÚparseÚiter)
rK  r–   r)   rf   Úp1Úp2rž   ÚtreerÝ   r	   r-   r-   r.   Útest_minimized_rasterized­  s$    

rS  c                  C   sœ   t tƒjd } dtjdkrdnd |  ¡  ¡  }t ¡ � t	 
|¡ W d   ƒ n1 sX0    Y  tj |¡�}t	 
|¡ W d   ƒ n1 sŽ0    Y  d S )Nr}   zfile:Úwin32z///Ú )r   r   r€   ÚsysÚplatformÚresolveÚas_posixr   Ú'suppress_matplotlib_deprecation_warningr!   re   ÚurllibÚrequestÚurlopen)r†   ÚurlÚfiler-   r-   r.   Útest_load_from_urlÎ  s    ÿ
þ
(r`  Zlog_scale_imagec                  C   sN   t  d¡} d| d d d…< t ¡ \}}|j| g d¢ddddd� |jd	d
� d S )Nrà   r1   r2   )r1   r   r1   r   ÚviridisrX   ró   )rÁ   rþ   ÚvmaxÚvminÚaspectÚlog)Zyscale)r"   r9   r!   r%   r&   r  )r¹   r)   rf   r-   r-   r.   Útest_log_scale_imageÙ  s    
ÿrf  Zrotate_imagegffffffÖ?)r0   Útolc                  C   s,  d} t  dd| ¡ }}t  ||¡\}}t  |d |d   d ¡dt j  }t  |d d d |d d d   d ¡dt j d d  }|| }t dd¡\}}	|	j|dd	d
g d¢dd�}
tƒ  	d¡|	j
 }|
 |¡ |
 ¡ \}}}}|	j|||||g|||||gdd|d� |	 dd¡ |	 dd¡ d S )NrÂ   ç      ÀrH  r2   r1   ç      ø?r¸   r8   ra  rV   )éþÿÿÿr3   éýÿÿÿr2   T)r   rþ   rW   rÁ   Úclip_oné   zr--r   )ZlwrÆ   r   r   r3   )r"   r#   ÚmeshgridÚexpÚpir!   r%   r&   r   Z
rotate_degrÈ   Zset_transformZ
get_extentr`   ry   rz   )Údeltar[   r\   r(   ÚYÚZ1ÚZ2r¹   r)   r*   Zim1Ztrans_data2Úx1Zx2Úy1Úy2r-   r-   r.   Útest_rotate_imageè  s*    &*ÿ
þ
 ÿrx  c                  C   sR   t  ¡ } t d¡}tj| |dd� |  d¡ t | ¡}|jd d… |jksNJ ‚d S )N)iá  iA  rP   r“   r   r2   )	ra   rb   r"   r9   r!   r”   rd   re   r•   )rž   r¨   r<   r-   r-   r.   Útest_image_preserve_size  s    


ry  c                  C   sÈ   d} t  | t¡}tj| | fdd�}t |g d¢¡}| ¡  | |¡ |j|dddd� t	 
¡ }|j|d	d
� | d¡ t |¡}|jdksŽJ ‚tt  |d d …d d …df t¡t  | t¡d d d… ƒ d S )Né   F)rS   r÷   )r"  r"  r¶   r¶   r   rV   ró   )r   rW   rd  r1   )rT   r   )rz  rz  r3   rX   )r"   r  r>  r!   rY   ZAxesÚset_axis_offr   r&   ra   rb   rc   rd   re   r•   r   r  Úbool)Únr–   r)   rf   rž   r<   r-   r-   r.   Útest_image_preserve_size2  s    


ÿr~  zmask_image_over_under.pngr¶   c               	   C   sl  dt jd< d} t dd| ¡ }}t ||¡\}}t |d |d   d ¡dtj  }t |d d d |d d	 d   d ¡dtj d	 d  }d
||  }t jjj	dddd�}tj
 |dk|¡}	t  dd¡\}
\}}|j|	d|tjdddd�dg d¢d�}| d¡ |
j|dd|d
d� |j|	d|tjg d¢ddd�dg d¢d�}| d¡ |
j|dd d|d
d!� d S )"NFzpcolormesh.snapgš™™™™™™?rh  rH  r2   r1   ri  r¸   rj   r  r  r  ©ZoverÚunderÚbadç333333ó?r    g      ð¿r¶   )rc  rb  ÚcliprV   )rk  r   rk  r   )r   rþ   rò   rW   rÁ   zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationrf   rd  r   )rX   r)  gš™™™™™É¿r   r  r¸   r1   r:  )Zncolorsrƒ  zWith BoundaryNormZproportional)r†  Úspacingr‡  rf   rd  )r!   r   r"   r#   rn  ro  rp  Úcmrý   Úwith_extremesÚmaZmasked_wherer%   r&   r   r0  r'   rL  ZBoundaryNorm)rq  r[   r\   r(   rr  rs  rt  r¹   ÚpaletteZZmr)   r*   r+   r¨   r-   r-   r.   Útest_mask_image_over_under&  s@    
&*ÿý

ÿ
ÿü

ÿr�  Z
mask_imagec                  C   s�   t  dd¡\} \}}t d¡}tj|dd…dd…f< |j|dd� tjdtd�}d|dd…dd…f< tj 	tjdtj
d�|¡}|j|dd� d S )Nr1   r2   r4   r   r   r5   T)r!   r%   r"   r:   Únanr&   r9   r|  r‹  Úmasked_arrayr‰   )r)   r*   r+   rw   r-   r-   r.   Útest_mask_imageH  s    
r�  c                  C   s2   t  dt j¡} t ¡ \}}| | ¡ |j ¡  d S )NrQ   )r"   ÚfullrŽ  r!   r%   r&   rÉ   Z	draw_idle)r–   r)   rf   r-   r-   r.   Útest_mask_image_allZ  s    
r’  zimshow_endianess.pngc                  C   s„   t  d¡} t  | | ¡\}}t  |d |d ¡}t dd¡\}\}}tdddd�}|j| d	¡fi |¤Ž |j| d
¡fi |¤Ž d S )Nrj   r   r1   r2   rV   r   ra  )rW   r   rþ   z<f8z>f8)	r"   r#   rn  Úhypotr!   r%   Údictr&   r�   )r[   r(   rr  r¹   r)   r*   r+   Úkwargsr-   r-   r.   Útest_imshow_endianessb  s    
r–  Zimshow_masked_interpolationÚx86_64rÅ   )rg  r0   r   c            
      C   sð   t  d¡jdddd�} d}tjd|| d d	�}tj|| td
� ||¡}d|d< d|d< tj	|d< t 
|¡ d¡}d|d< tj ||¡}t  dd¡\}}ttjƒ}| d¡ t|| ¡ ƒD ].\}}	|	 |¡ |	j||| |d� |	 d¡ q¼d S )Nra  r  r  r®   r  r   r   r1   ©rc  rb  r5   rX   r4   g     jø@)rù   r   )rù   rù   r|  T)r   rù   r   r   rn   )rò   rþ   r   Úoff)r!   Úget_cmaprŠ  r   r0  r"   r#   r>  r$   ÚinfZ
zeros_liker�   r‹  r�  r%   ÚsortedÚmimageZ	_interpd_ÚremoveÚzipÚravelr'   r&   Úaxis)
rþ   ÚNr}  r–   Úmaskr)   Zax_gridZinterpsZinterprf   r-   r-   r.   Ú test_imshow_masked_interpolationp  s"    



r¤  c                   C   s   t  ddgdtjgg¡ d S )Nr1   r2   r   )r!   r&   r"   rŽ  r-   r-   r-   r.   Útest_imshow_no_warn_invalid”  s    r¥  r6   c                 C   s   g | ]}t  |¡‘qS r-   )r"   r6   )r­   Úsr-   r-   r.   rð   ™  r²   rð   zu2 u4 i2 i4 i8 f4 f8c                 C   sÎ   t jd| d� d¡}| jdkr&|d8 }|dk }|dk}| jdkrH|d }t ¡ \}}| |¡ ¡ }|| dk ¡ svJ ‚| jdkr¦|| d	k ¡ s”J ‚|j	jdksÊJ ‚n$|| dk ¡ sºJ ‚|j	t j
ksÊJ ‚d S )
Nr8  r5   )rj   rj   r   Úurj   r   rI   Úfr1   )r"   r#   r$   Úkindr!   r%   r&   Z	get_arrayÚallr6   r;   )r6   rä   Ztoo_lowZtoo_highÚ_rf   Úoutr-   r-   r.   Ú$test_imshow_clips_rgb_to_valid_range˜  s    


r­  zimshow_flatfield.pngc                  C   s0   t  ¡ \} }|jt d¡dd�}| dd¡ d S )Nr4   r   r   r¸   ri  )r!   r%   r&   r"   r:   Úset_clim©r)   rf   r¨   r-   r-   r.   Útest_imshow_flatfield­  s    r°  zimshow_bignumbers.pngc                  C   sJ   dt d< t ¡ \} }tjg d¢g d¢gtjd�}| |¡}| dd¡ d S )Nr   úimage.interpolation)r1   r2   g   ¢”mB)r   r1   r3   r5   r   r   )r   r!   r%   r"   rL   Zuint64r&   r®  ©r)   rf   r<   Zpcr-   r-   r.   Útest_imshow_bignumbers´  s
    
r³  zimshow_bignumbers_real.pngc                  C   sD   dt d< t ¡ \} }t g d¢g d¢g¡}| |¡}| dd¡ d S )Nr   r±  )r(  r¶   g’ÕMÏð€D)rI  r¶   rH  r   r   )r   r!   r%   r"   rL   r&   r®  r²  r-   r-   r.   Útest_imshow_bignumbers_real¿  s
    
r´  Ú	make_normc                   C   s
   t  d¡S ©Nr1   )r   Z
SymLogNormr-   r-   r-   r.   Ú<lambda>Ï  r²   r·  c                   C   s
   t  d¡S r¶  )r   Z	PowerNormr-   r-   r-   r.   r·  Ð  r²   c                 C   sž   t  ¡ \}}tjtdd��" |jg g| ƒ d�}W d   ƒ n1 sB0    Y  | g d¢¡ |j ¡  t 	t
¡� | |j¡ W d   ƒ n1 s�0    Y  d S )Nz)Attempting to set identical left == right©Úmatch)rò   )éûÿÿÿr   rº  r   )r!   r%   ré   ÚwarnsÚUserWarningr&   Z
set_extentrÉ   r%  rê   ÚRuntimeErrorÚ
make_imageZ_cachedRenderer)rµ  r)   rf   r¨   r-   r-   r.   Útest_empty_imshowË  s    ÿ0
r¿  c                  C   s0   t  ¡ \} }| tjdtjd�¡ | j ¡  d S )Nr  r5   )r!   r%   r&   r"   r9   Zfloat16rÉ   r%  ©r)   rf   r-   r-   r.   Útest_imshow_float16Ý  s    rÁ  c                  C   sr   t  ¡ \} }| tjdtjd�¡ t tjtjd¡r:tƒ nt	 
t¡� | j ¡  W d   ƒ n1 sd0    Y  d S )Nr  r5   Úequiv)r!   r%   r&   r"   r9   Z
longdoubleZcan_castÚfloat64r   ré   r»  r¼  rÉ   r%  rÀ  r-   r-   r.   Útest_imshow_float128ä  s    ÿrÄ  c                  C   s0   t  ¡ \} }| tjddgddggtd�¡ d S )NTFr5   )r!   r%   r&   r"   rL   r|  rÀ  r-   r-   r.   Útest_imshow_boolí  s    rÅ  c                  C   s.   t  ¡ \} }| t dtj¡¡ | j ¡  d S )Nrà   )r!   r%   r&   r"   r‘  rŽ  rÉ   r%  rÀ  r-   r-   r.   Útest_full_invalidò  s    rÆ  zfmt,counted)r˜   s    colorimage)r?   s   <imagezcomposite_image,count)Tr1   )Fr2   c           
      C   s²   t  t  ddd¡t  ddd¡¡\}}t  |d ¡}t ¡ \}}| dd¡ |j|g d¢d� |j|d d d	… g d
¢d� |tjd< t	 
¡ }	|j|	| d� |	 ¡  |¡|ks®J ‚d S )Nrº  r   r1   r2   r   r   ©r   r1   r   r1   rÀ   rX   )r2   r   r   r1   zimage.composite_imager“   )r"   rn  r#   rZ   r!   r%   ry   r&   r   ra   rb   rc   rM  Úcount)
rŽ   ZcountedZcomposite_imagerÈ  r(   rr  r¹   r)   rf   r§   r-   r-   r.   Útest_compositeù  s    $
rÉ  c                  C   sT   t  ¡ \} }|jdggdd� | ¡  | ¡  | ¡ | ¡   krJdksPn J ‚d S )Nr   rÇ  rÀ   r  )r!   r%   r&   ZrelimZ	autoscaleZget_xlimZget_ylimrÀ  r-   r-   r.   Ú
test_relim  s
    rÊ  c                  C   sx   t  ¡ \} }| ¡  |jddgddggddddd�}|jddd� | j ¡  t | j 	¡ ¡d	d d
…f dk 
¡ stJ ‚d S )Nr   ró   rû   rý   F)rd  rÁ   rþ   rl  r  r  .r   )r!   r%   r{  r&   r  rÉ   r%  r"   rL   Zbuffer_rgbarª  r¯  r-   r-   r.   Útest_unclipped  s    ÿ
rË  c                  C   sÄ   t  d¡\} }|D ]}| ¡  q|d jddgddggddd�}| d ¡ | |d j¡ t ¡ }| j	|dd	� h | 
¡ £d
hks†J ‚|d jdd� t ¡ }| j	|dd	� | 
¡ | 
¡ ksÀJ ‚d S )Nr2   r1   r   r   ró   rÇ  )rd  rÁ   Úrgbar“   rI   )rX   r   )r  )r!   r%   r{  r&   r×   Zset_clip_boxZbboxra   rb   rc   rM  r  )r)   r‚   rf   r¨   Z
buf_beforeZ	buf_afterr-   r-   r.   Útest_respects_bbox   s    
 
rÍ  c                  C   s„   t  ¡ \} }| t d¡¡}tjjdgdgd�}| |¡dksBJ ‚tjjdgdgd�}| |¡dkshJ ‚tj}| |¡dks€J ‚d S )	Nr½   r   T©r£  rÒ   Fz[0]z[nan])	r!   r%   r&   r"   r9   r‹  r�  rÓ   rŽ  )r)   rf   r¨   r–   r-   r-   r.   Útest_image_cursor_formatting2  s    rÏ  c           
      C   sœ   t  dd¡}t  ||¡\}}t  d|d d  |d  ¡}|| ¡  }t d¡}|  ¡ }|j|||dd	� | ¡ }|t	 
¡ |ƒƒ}	||	d
< |j|	dd� dS )zPer-pixel alpha channel test.r   r1   rk  r¸   r2   g[�Âõ(\ß?ra  r   )r·   rþ   r   ).rX   r   N)r"   r3  rn  ro  Úmaxr!   rš  r  r&   r   r0  )
ru   rv   r[   ÚxxÚyyÚzzr·   rþ   rf   rÌ  r-   r-   r.   Útest_image_array_alphaA  s    
rÔ  c                   C   sJ   t jtdd��( tjt d¡ddgd� W d   ƒ n1 s<0    Y  d S )Nzalpha must be a float, two-dr¸  rQ   r1   )r·   )ré   rê   rë   r!   r&   r"   r9   r-   r-   r-   r.   Ú!test_image_array_alpha_validationT  s    rÕ  c                  C   sÌ   t tj d¡ƒ} | jdd� tjddd�}| g d¢¡}tjg d¢gt	d	�}|j
|d
| ddd�}| d¡ |j ¡  | |jj¡d d }| | |dggd  j ¡ ¡¡d  t¡}t ||k¡sÈJ ‚d S )NZautumn_rZ	lightgrey)Úcolor)gffffffþ?r  r   rR   rm   )rX   rX   rX   r   r   r   r   é+   éO   é_   éB   r1   rX   rX   rX   r   r   r   é"   r5   ró   r   )rd  rþ   rc  rb  r™  r1   rj   rI   )r   r!   r‰  rš  Ú	set_underrY   r   r"   rL   r>  r&   r¡  rÉ   r%  r¾  r&  rþ   rò   ÚTr   r�   rr   rª  )rþ   r)   rf   r–   r¨   Z
from_imageZdirect_computationr-   r-   r.   Útest_exact_vminY  s"    þ

$ÿþrÞ  c                  C   s6   t  ¡ � t d¡} W d   ƒ n1 s(0    Y  d S )Nz.https://matplotlib.org/1.5.0/_static/logo2.png)r   rZ  r�  re   )r¯   r-   r-   r.   Útest_https_imread_smoketestv  s    
rß  c                       s@   e Zd Zdd„ Zdd„ Z‡ fdd„Zdd„ Zed	d
„ ƒZ‡  Z	S )Ú
QuantityNDc                 C   s   t  |¡ | ¡}||_|S r.  )r"   r  ÚviewÚunits)ÚclsZinput_arrayrâ  Úobjr-   r-   r.   Ú__new__‚  s    zQuantityND.__new__c                 C   s   t |dd ƒ| _d S ©Nrâ  )Úgetattrrâ  )Úselfrä  r-   r-   r.   Ú__array_finalize__‡  s    zQuantityND.__array_finalize__c                    s<   t | dd ƒ}tt| ƒ |¡}t|tƒs.|d ur8t||ƒ}|S ræ  )rç  Úsuperrà  Ú__getitem__Ú
isinstance)rè  Úitemrâ  Úret©Ú	__class__r-   r.   rë  Š  s
    
zQuantityND.__getitem__c                 O   sL  t ||ƒ}d|v rt‚t|ƒdkrN|d }t |ddƒ}|t |¡fi |¤Ž}nÚt|ƒdk�r$|d }|d }	t |ddƒ}
t |	ddƒ}|
d u r�|n|
}
|d u r |
n|}|tjtjfv rÆ|
|krÀt‚|
}n:|tjkrà|
› d|› �}n |tj	krü|
› d|› d	�}nt‚|| 
tj¡|	 
tj¡fi |¤Ž}nt‚|d u �r>t |¡}n
t||ƒ}|S )
Nr¬  r1   r   râ  Zdimensionlessr2   Ú*z/(ú))rç  ÚNotImplementedErrorr?  r"   r  ÚaddÚsubtractÚ
ValueErrorÚmultiplyÚdividerá  ÚndarrayrL   rà  )rè  ZufuncÚmethodÚinputsr•  ÚfuncZi0ÚunitZout_arrÚi1Zu0Úu1r-   r-   r.   Ú__array_ufunc__‘  s:    


$

zQuantityND.__array_ufunc__c                 C   s   |   tj¡S r.  )rá  r"   rù  )rè  r-   r-   r.   r¯   ³  s    zQuantityND.v)
Ú__name__Ú
__module__Ú__qualname__rå  ré  rë  r   Úpropertyr¯   Ú__classcell__r-   r-   rï  r.   rà  �  s   "rà  c                  C   sÊ   t ddgdƒ} | d d … \}}t | jt ddg¡k¡s<J ‚| jdksJJ ‚t || jt dg¡k¡sjJ ‚|| jdks|J ‚|| jdksŽJ ‚t t¡� |t ddƒ  W d   ƒ n1 s¼0    Y  d S )Nr1   r2   Úmr   zm*mzm/(m)r¦  )	rà  r"   rª  r¯   r  râ  ré   rê   rö  )ÚqÚq0Úq1r-   r-   r.   Útest_quantitynd¸  s     r
  c                  C   s4   t t d¡dƒ} t ¡ \}}| | ¡ |j ¡  d S )NrQ   r  )rà  r"   r:   r!   r%   r&   rÉ   r%  )rä   r)   rf   r-   r-   r.   Útest_imshow_quantityndÄ  s    
r  c                 C   s.  t jddt jd�}d|dd…d d …f< t jj|dd�}d	|jdd…dd…f< t d
¡jdd�}|  	¡ }|j
|tjddd�dd|d�}| tjddd�¡ |j
|tjddd�dd|d�}| tjddd�¡ |jddd� | 	¡ }|j
|tjddd�dd|d� |j
|tjddd�dd|d� |jddd� d S )Nr4   r1   r5   rX   r   r2   FrÎ  Tra  Úw©r€  r¸   r˜  rÛ   r   )rò   rÁ   r   rþ   rj  )r   rj   r   rj   ©r   rj   r  )r"   r‘  rÃ  r‹  rL   r£  r!   rš  rŠ  r%   r&   r   rô   r/  r0  r  )ru   rv   r–   Zmasked_datarþ   rf   r¨   r-   r-   r.   Útest_norm_changeÍ  s.    ÿÿÿÿr  r[   rX   c                 C   s²   t jd|t jd�}d|dd…d d …f< |  ¡ }|j|tjd| ¡ d�dd	d
� t jd|t jd�}d|dd…d d …f< | ¡ }t 	d	¡j
dd�}|j|tjd| ¡ d�d|d
� d S )Nr4   r5   g@Œµx¯Dr   r2   r1   r˜  r   ra  )rò   r   rþ   iè  r  r  )r"   r‘  rÃ  r%   r&   r   rô   rÐ  r!   rš  rŠ  r0  )ru   rv   r[   r–   rf   rþ   r-   r-   r.   Útest_huge_range_logé  s    ÿÿr  c           	   
   C   sB  |   dd¡}|  dd¡}ddgddggddgddggddgddggf}g d¢}tt||ƒƒD ]à\}\}}||  |¡ ||  |¡ ||  |¡ || j|ddddddd	� ||  d
d¡ ||  dd
¡ || j 	¡  || j
 d¡ || j d¡ || j tjdg d¢dd�¡ || j tjdg d¢dd�¡ q\d S )Nr1   r   r   )r:   r9   Úmixedr   Úequalr›   ZGreys)r   rd  rW   rþ   rc  rb  r)  ri  gÍÌÌÌÌÌð?r„  rú   )r1   r2   r   rj   T)ZnbinsZstepsÚinteger)r%   Ú	enumeraterŸ  r'   Zspyr&   ry   rz   ZxaxisZtick_topÚtitleZset_yZset_ticks_positionZset_major_locatorÚmtickerZMaxNLocatorZyaxis)	ru   rv   Zax_testZax_refZ	plot_dataZplot_titlesr6  r]   r  r-   r-   r.   Útest_spy_boxý  s4    ýþ
ÿ
ÿr  znonuniform_and_pcolor.pngc                  C   sÈ   t jdd�jdddd�} t| ddgƒD ]L\}}t||d�}| t d¡d	 t d¡d	 t d
¡ d¡¡ | 	|¡ q&| d	  
t d¡d	 t d¡d	 t d
¡ d¡¡ | D ]}| ¡  |jdd� qªd S )Nr  rö   r   T)ÚsharexÚshareyr   r    r   r2   rú   r3   r  )r  )r!   rY   r%   rŸ  r   r  r"   r#   r$   Z	add_imageZ
pcolorfastr{  r  )r‚   rf   r   r¨   r-   r-   r.   Útest_nonuniform_and_pcolor  s    ÿ&ÿr  zrgba_antialias.png)r   r0   c                  C   s¢  t jddddddd�\} }d}t ||f¡}d|d d d…d d …f< t |¡| d }t |¡| d }t ||¡\}}t |d |d  ¡}d	}	d
}
t tjd |	| |
|d  d   ¡}d|d t	|d ƒ…d d …f |d t	|d ƒ…d d …f dk < d|d t	|d ƒ…d d …f |d t	|d ƒ…d d …f dk < |d d …t	|d ƒd …f |d d …t	|d ƒd …f< tj
|dd…dd…f< d|dd…dd…f< d|dd…dd…f< d|dd…dd…f< d|dd…dd…f< tt jjƒ}| d¡ | d¡ | ¡ }|d j|d|ddd� |d  |d d |d d g¡ |d  |d d |d d	 g¡ |d j|d|ddd� |d j|dd |ddd!� |d" j|dd#|ddd!� d S )$Nr2   )ç      @r  FT)rS   r  r  Zconstrained_layoutéú   rX   r¸   rj   éK   r!  r1   r  r   rU   g    €„.AéF   éZ   g    €„.Árm  éÃ   é×   ÚyellowÚcyanr   r   g333333ó¿r‚  )r   rþ   rc  rb  é   rn   r–   )r   Zinterpolation_stagerþ   rc  rb  r   rÌ  )r!   r%   r"   r:   r#   rn  ÚsqrtrZ   rp  rr   ÚNaNr   r‰  ZRdBu_rZset_overrÜ  r5  r&   ry   rz   )r)   r‚   r¢  Zaar[   r\   r(   rr  ÚRZf0r®   r  rþ   r-   r-   r.   Útest_rgba_antialias.  sF    ÿ
(<<4

""ÿÿr(  )‰Ú
contextlibr   r   ra   r…   Úpathlibr   rW  rV  Úurllib.requestr[  Únumpyr"   Znumpy.testingr   ZPILr   Z
matplotlibr  r   r   r	   r�  r
   r   r!   r   r   Zmatplotlib.imager   r   r   r   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.transformsr   r   r   Zmatplotlib.tickerZtickerr  ré   r/   r=   rM   ÚmarkZparametrizer_   rh   rx   r{   rƒ   rŒ   r�   r—   rš   rŸ   r©   rµ   rº   rÑ   rŽ  rÕ   rÚ   rß   rå   ræ   rì   rí   rî   rõ   r  r	  r  r  r  r   r'  r*  r-  r1  r7  r@  rF  rG  r#   r$   rJ  rS  r`  rf  rx  ry  r~  r�  r�  r’  r–  Úmachiner¤  r¥  Úsplitr­  r°  r³  r´  r0  rô   r¿  rÁ  rÄ  rÅ  rÆ  rÉ  rÊ  rË  rÍ  rÏ  rÔ  rÕ  ÚcontextrÞ  ÚnetworkZflakyrß  rù  rà  r
  r  r  r  r  r  r(  r-   r-   r-   r.   Ú<module>   s|  $

ÿ
	þ




"



Güÿ

	





ÿ
	



ÿ

ÿ

		ÿÿýÿ
	!


!

þ
!ÿ



ÿ

ýþ
	ÿ


	7	



 
ÿ