o
    ØtBhè­  ã                
   @   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€„ ZSdd‚„ 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¡dd‘„ ƒ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rud 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€ƒZdí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ÚTransformedBboxÚimage_interpsÚ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ÚbilinearÚbicubicN)	Úpltr   ÚnpÚarangeÚreshapeÚsubplotsÚimshowÚ	set_titleÚ
set_ylabel)ÚXÚfigÚax1Úax2Úax3© r1   úr/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_image.pyÚtest_image_interps   s   



r3   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   ).r5   ©Údtype©.r   Únoner    r"   N)r$   r(   r%   ÚzerosÚonesÚtrilÚuint8r)   )r-   ÚaxlÚaxrÚimgr1   r1   r2   Útest_alpha_interp.   s   
rD   Úinterp_nearest_vs_noneÚpdfÚsvg)Ú
extensionsr4   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   )rQ   éc   éG   r9   r5   r6   r<   r    zinterpolation noner   zinterpolation nearestN)r   r%   Úarrayr@   r$   r(   r)   r*   )r,   r-   r.   r/   r1   r1   r2   Útest_interp_nearest_vs_none;   s   ÿÿ
rU   ÚsuppressCompositeFÚfigimageÚpng)rH   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©r6   r6   r   ©ÚfigsizeÚdpig      Y@r6   r   é2   r   r   Úlower)ÚxoÚyoÚoriginéÿÿÿÿ)r$   ÚfigurerV   r%   Úix_r&   ÚsinrW   )rV   r-   ÚxÚyÚzÚcrC   r1   r1   r2   Útest_figimageM   s   $$$*rj   c                  C   sD   t  ¡ \} }| g d¢¡ t ¡ }|  |¡ | d¡ t  |¡ d S )N)r5   r6   r   r   )r$   r(   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)r-   ÚaxÚbufferr1   r1   r2   Útest_image_python_io]   s   

rs   z!img_size, fig_size, interpolation))r   r6   Úhanning)r   r   r   )r   é
   r   )r   ç333333@rt   )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,rI   ©r   r   r5   r5   Úantialiasedr    )r%   ÚrandomÚseedr$   r   ÚrandÚintÚset_size_inchesr(   Úset_positionr)   )	Úfig_testÚfig_refÚimg_sizeÚfig_sizer!   r\   ÚAr-   rq   r1   r1   r2   Útest_imshow_antialiasedf   s   
r…   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 )
Nrw   rI   r   rv   ry   r    ru   r   r   )r%   rz   r{   r$   r   r|   r}   r~   r(   r)   Úset_xlimÚset_ylim)r€   r   r\   r„   r-   rq   r1   r1   r2   Ú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.tifr6   r   r5   )r   Úuser   Ú__file__Úparentr(   r)   r   Úopenr$   rp   )r€   r   Úpng_pathÚ	tiff_pathÚaxsr1   r1   r2   Útest_imshow_pil   s   


r“   c                  C   sF   t  tj tj t¡ddd¡¡} | jtj	ksJ ‚t 
| ¡dks!J ‚d S )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)r$   rp   ÚosÚpathÚjoinÚdirnamer   r:   r%   Úuint16Úsum©rC   r1   r1   r2   Útest_imread_pil_uint16   s
   ÿrž   c                  C   s:   t  ttƒjd ¡} | jtjksJ ‚t | ¡dksJ ‚d S )Nr‹   r–   )	r$   rp   r   r   rŽ   r:   r%   r›   rœ   r   r1   r1   r2   Útest_imread_fspath¤   s
   ÿrŸ   Úfmt)rX   Ú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sOJ ‚|j
ddd	| fks[J ‚t||ƒ d S )
N)r¡   r¢   r5   i@  r6   )Úformatr\   r   r   ©r¤   r   )r%   rz   r{   r|   rl   rm   r$   Úimsavero   rp   Úshaper   )r    Ú	has_alphaÚdataÚ	buff_dpi1Úbuff_dpi100Úarr_dpi1Ú
arr_dpi100r1   r1   r2   Útest_imsave«   s   	

r®   )rX   rF   ÚpsÚepsrG   c                 C   s&   t jttjƒt ddgg¡| d d S )Nr   r5   r¥   )r$   r¦   r   r—   Údevnullr%   rT   )r    r1   r1   r2   Ú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r;|d d d… }d|  
d	¡}t||ƒ qd S )Nr5   )r^   Úupperé   r7   rX   )ra   r¤   r   rQ   r@   r^   rb   )r%   rz   r{   r|   rl   rm   r$   r¦   ro   rp   Úastyper   )ra   r©   ÚbuffÚarr_bufr1   r1   r2   Ú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s2J ‚d S )Nr   )ÚPngInfoÚSoftwareÚtestr5   r6   r   rX   Úpnginfo©r¤   Ú
pil_kwargs)
ÚPIL.PngImagePluginr¹   rl   rm   Úadd_textr$   r¦   r   r   Úinfo)r¹   Úbufr¼   Úimr1   r1   r2   Ú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s6J ‚d S )Nr   )ÚTAGS_V2Údescriptionz
test imager5   r6   r   r£   r½   c                    s   i | ]
\}}ˆ | j |“qS r1   )Úname)Ú.0ÚkÚv©ÚTAGSr1   r2   Ú
<dictcomp>ý   ó    z/test_imsave_pil_kwargs_tiff.<locals>.<dictcomp>ÚImageDescription)
ÚPIL.TiffTagsrÅ   rl   rm   r$   r¦   r   r   Útag_v2Úitems)rÂ   r¾   rÃ   Útagsr1   rË   r2   Útest_imsave_pil_kwargs_tiff÷   s   
rÔ   Ú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   r5   r   ç      ð?r<   )Úalphar!   ç      à?r   )r%   rz   r{   r|   r$   r(   r)   )ÚZr-   r.   r/   r0   r1   r1   r2   Útest_image_alpha  s   rÚ   c            
      C   sp  ddl m}  t ¡ \}}|jt d¡ dd¡dd}d\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d	ks9J ‚d
\}}|j 	||g¡\}}| d|j
||ƒ}| |¡d u sXJ ‚| ¡  |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s6J ‚d S )Nr   ©Ú
MouseEventr   ru   r³   )ra   ©r7   r7   Úmotion_notify_eventé,   )g333333$@r7   r^   )r   rØ   r   rØ   ©Úextent)ç      Ð?râ   é7   )ç      è?râ   )ç{®Gáz„?g{®Gáz„¿r6   rØ   )Ú	transform)r   ru   )Úmatplotlib.backend_basesrÜ   r$   r(   r)   r%   r&   r'   Ú	transDataræ   ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)
rÜ   r-   rq   rÃ   rf   rg   ÚxdispÚydispÚeventÚtransr1   r1   r2   Útest_cursor_data  sN   
 ÿrò   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$•ï?z[0.123]r5   r6   ú[]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-   rq   rÃ   rî   rï   rð   r1   r1   r2   Útest_format_cursor_dataS  s   
rö   Ú
image_clipc                  C   sF   ddgddgg} t  ¡ \}}| | ¡}tjdd|jd}| |¡ d S )Nr5   r6   r   r7   ©r   r   )Úradiusræ   )r$   r(   r)   r
   ÚCirclerè   Úset_clip_path)Údr-   rq   rÃ   Úpatchr1   r1   r2   Útest_image_clipe  s
   
rþ   Ú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 )	Nr5   r6   r   r7   ©r   r   r   r   rà   ©r5   r5   )ÚxyÚwidthÚheightræ   )r$   r(   r)   r
   Ú	RectangleÚaxesrè   rû   )r-   rq   rü   rÃ   Úrectr1   r1   r2   Útest_image_cliprecto  s   ÿr  r)   )r4   r   c                  C   sH   t  ¡ \} }t d¡ d¡}|j|ddd | dd¡ | dd¡ d S )Nr   ©ru   ru   r"   ©r5   r6   r5   r6   ©r!   rá   r   r   )r$   r(   r%   r&   r'   r)   r†   r‡   ©r-   rq   Úarrr1   r1   r2   Ú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   )ru   ru   r5   r   r"   r
  r  r   )r%   r&   r'   r(   r)   r†   r‡   )r€   r   r  rq   r1   r1   r2   Útest_imshow_10_10_1„  s   "r  c                  C   óV   t  ¡ \} }t d¡ d¡}t t¡ | |¡ W d   ƒ d S 1 s$w   Y  d S )NéÈ   )ru   ru   r6   ©	r$   r(   r%   r&   r'   ÚpytestÚraisesÚ	TypeErrorr)   r  r1   r1   r2   Útest_imshow_10_10_2“  ó
   "ÿr  c                  C   r  )Niô  )ru   ru   r   r  r  r1   r1   r2   Útest_imshow_10_10_5š  r  r  Úno_interpolation_originc                  C   sP   t  d¡\} }|d jt d¡ d¡ddd |d jt d¡ d¡dd	 d S )
Nr6   r   r   )r6   r]   r^   r<   )ra   r!   r5   r    )r$   r(   r)   r%   r&   r'   )r-   r’   r1   r1   r2   Útest_no_interpolation_origin¡  s
   ÿ"r  Úimage_shift)r4   rH   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 )r5   r1   )rÈ   rf   ©rg   r1   r2   Ú
<listcomp>«  rÎ   z/test_image_shift.<locals>.<listcomp>.<listcomp>r5   r   )Úrange)rÈ   r1   r  r2   r  «  s   $ z$test_image_shift.<locals>.<listcomp>r5   r   gMòãûk&Ag˜Šäûk&Ar<   )Únormr!   rá   Úauto)r  r$   r(   r)   r   ÚLogNormÚ
set_aspect)ÚimgDataÚtMinÚtMaxr-   rq   r1   r1   r2   Ú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sJ dƒ‚d S )Nr5   ©r[   rx   F)Úframeoné   é   r   é	   r³   ©éöÿÿÿru   r-  ru   r<   Úgray)ra   rá   r!   Úcmapr6   )r   r5   r   )Ú	facecolorr   rb   r   z.Expected a non-green edge - but sadly, it was.)r$   rc   Úadd_axesr%   Útiler&   r'   r)   r†   r‡   Ú
set_xticksÚ
set_yticksrl   rm   rn   ro   rp   rœ   )r-   rq   r©   rÃ   rf   rg   rÂ   ÚrÚgÚbÚar1   r1   r2   Útest_image_edgesµ  s$   ÿ



r9  Ú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)  r7   r   )r   r6   r*  r   rà   )r7   r   r*  r   )r5   r   r   rØ   r   )r$   r(   r%   r&   r'   r)   Úset_facecolorr†   r  r1   r1   r2   Útest_image_composite_backgroundÑ  s   
r<  Ú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.
    )é   é   r7   r5   Nr   gš™™™™™ñ?çš™™™™™¹?rb   r   )r?  r>  r7   )r5   r6   r   r   ç333333Ó?)rá   r×   )r6   r   r   r   ç333333ã?)r   r7   r   r   rà   )r   r   r5   r6   )r   r   r6   r   )r   r   r   r7   )r   rØ   r   r5   r   )r$   r(   r%   r=   Úconcatenater&   Únewaxisr)   r;  r†   r‡   )r-   rq   r  Úarr2r1   r1   r2   Útest_image_composite_alphaÜ  s.   
$ÿ
$ÿÿ
rF  c                 C   sp   t  d¡ d¡}| |fD ]&}| ¡ }|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   r5   )r5   r   )Ú	clip_path)r  )r5   r6   )r6   r5   T)
r%   r&   r'   Úadd_subplotr)   Úmplr˜   r   rè   rV   )r€   r   Útr-   rq   r1   r1   r2   Ú#test_clip_path_disables_compositing÷  s   ÿ
ÿ
rM  Úrasterize_10dpi)rH   r4   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¡ qMdtd< d S )Nr5   r6   r   r7   )r   r5   r'  r   g      4@T)Ú	linewidthÚ
rasterizedrH  )rb   r6   ©ÚxlimÚylim)rO  Fru   rI   )r%   Úasarrayr$   r(   r)   rk   Úsetr3  r4  ÚspinesÚset_visibler   )rC   r-   r’   rq   r1   r1   r2   Útest_rasterize_dpi  s   	

rX  Ú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    Fru   r@  çš™™™™™É?rA  râ   )r%   r&   r'   r$   r(   r   r   r   rè   Úset_dataÚset_clip_onr†   r‡   Ú
add_artistÚidentityrc   ÚtransFigure)r	   r-   rq   Úbbox_imr1   r1   r2   Útest_bbox_image_inverted"  s(   þ



ÿþ

ra  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Ø   çš™™™™™Ù?)rB  rA  ç        rZ  )çffffffæ?çÍÌÌÌÌÌì?rb  rB  r	  r   rZ   rx   r   r5   )rb  rd  rZ  re  r   )rá   r!   i  r  i¼  i„  )r%   rT   r$   r(   r   r†   r‡   r)   ré   ÚdrawÚrendererÚget_window_extentr   Ú
get_points)rÃ   r-   rq   Úim_objrg  Úim_bboxr1   r1   r2   Ú$test_get_window_extent_for_AxisImage;  s   ÿ
ÿ

rl  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)   r‡   r†   )r	   r-   rq   r1   r1   r2   Útest_zoom_and_clip_upper_originP  s   


ro  c                  C   s   t  ¡ } t| ƒ}| d¡ d S )NÚBlues)r$   Úgcar   Úset_cmap©rq   rÃ   r1   r1   r2   Útest_nonuniformimage_setcmap\  s   rt  c                  C   s"   t  ¡ } t| ƒ}| t  ¡ ¡ d S ©N)r$   rq  r   Úset_normÚ	Normalizers  r1   r1   r2   Útest_nonuniformimage_setnormb  s   rx  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@   r9   ru   rc  rÖ   rQ   ÚL)r%   r>   r  Úlinspacer   ÚnewÚputdataÚflattenr$   r(   r)   )ÚimdÚirÃ   r-   rq   r1   r1   r2   Útest_jpeg_2dh  s    r€  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rEdksHJ ‚ J ‚| d¡}|dksSJ ‚d S )Nr  é,  rZ   )r  r  r7   r9   rc  rÖ   r;   Úredr¡   )r0  r¤   r\   r   é   é¯   éÒ   rø   )éþ   r   r   )r$   rc   r%   r=   Úfloatrz  rW   rl   rm   rn   ro   r   r   ÚlenÚ	getcolorsÚgetpixel)rÃ   r¶   r	   Ú
num_colorsÚcorner_pixelr1   r1   r2   Útest_jpeg_alphas  s   



r  c                  C   óP   t  ¡ } t| ƒ}tjdtd d¡}| |¡ d|d< |jd dks&J dƒ‚d S ©Nr)  r9   ©r7   r   çÍÌÌÌÌÌ#@rø   r   úvalue changed)	r$   rq  r   r%   r&   r‡  r'   r[  Ú_A)rq   rÃ   rh   r1   r1   r2   Útest_axesimage_setdata‹  ó   
r”  c                  C   rŽ  r  )	r$   Úgcfr   r%   r&   r‡  r'   r[  r“  )r-   rÃ   rh   r1   r1   r2   Útest_figureimage_setdata”  r•  r—  zimage_cls,x,y,aç      @ç      @g      (@r  g      @)r   r6   c                 C   sš   t  ¡ }| |ƒ}| |||¡ d |d<  |d< |d< |jd |jd   kr6|jd   kr6dks;J dƒ‚ J dƒ‚| ||| g |j¢d‘R ¡¡ d S )Nr‘  r   rø   r’  rb   )r$   rq  r[  r“  Ú_AxÚ_Ayr'   r§   )Ú	image_clsrf   rg   r8  rq   rÃ   r1   r1   r2   Útest_setdata_xya  s   @$r  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 rd|	d
 }qY|	d
 |krlJ ‚qYd S )Nr   )ÚElementTreeru   r5   r6   )rq   rG   r¥   r	   r  )Ú	xml.etreerž  r%   rz   r{   r|   r$   r(   Ú
pcolormeshÚcolorbarrl   rm   rn   ÚgetvalueÚparseÚiter)
rž  r©   r-   rq   Úp1Úp2r¶   Útreer  r	   r1   r1   r2   Útest_minimized_rasterized­  s(   

ÿür¨  c                  C   sž   t tƒjd } dtjdkrdnd |  ¡  ¡  }t ¡  t	 
|¡ W d   ƒ n1 s,w   Y  tj |¡}t	 
|¡ W d   ƒ d S 1 sHw   Y  d S )NrŠ   zfile:Úwin32z///Ú )r   r   rŽ   ÚsysÚplatformÚresolveÚas_posixr   Ú'suppress_matplotlib_deprecation_warningr$   rp   ÚurllibÚrequestÚurlopen)r˜   ÚurlÚfiler1   r1   r2   Útest_load_from_urlÎ  s   ÿ
þ
ÿ"ÿrµ  Ú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	  r5   r6   )r5   r   r5   r   Úviridisrb   r   )rá   r/  ÚvmaxÚvminÚaspectÚlog)Úyscale)r%   r=   r$   r(   r)   rU  )rÙ   r-   rq   r1   r1   r2   Útest_log_scale_imageÙ  s   
ÿr½  Úrotate_imagegffffffÖ?)r4   Ú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â   ç      Àr˜  r6   r5   ç      ø?rØ   r<   r·  r^   )éþÿÿÿr7   éýÿÿÿr6   T)r!   r/  ra   rá   Úclip_oné   zr--r   )Úlwræ   r   r   r7   )r%   r&   ÚmeshgridÚexpÚpir$   r(   r)   r   Ú
rotate_degrè   Úset_transformÚ
get_extentrk   r†   r‡   )Údeltarf   rg   r,   ÚYÚZ1ÚZ2rÙ   r-   r.   Úim1Útrans_data2Úx1Úx2Úy1Úy2r1   r1   r2   Útest_rotate_imageè  s*   &*ÿ
þ
 ÿr×  c                  C   sR   t  ¡ } t d¡}tj| |dd |  d¡ t | ¡}|jd d… |jks'J ‚d S )N)iá  iA  rX   r¥   r   r6   )	rl   rm   r%   r=   r$   r¦   ro   rp   r§   )r¶   rÃ   rC   r1   r1   r2   Útest_image_preserve_size  s   


rØ  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sGJ ‚tt  |d d …d d …df t¡t  | t¡d d d… ƒ d S )Né   F)r[   r(  )rc  rc  rÖ   rÖ   r   r^   r   )r!   ra   rº  r5   )r\   r   )rÙ  rÙ  r7   rb   )r%   r^  r‡  r$   rc   ÚAxesÚset_axis_offr1  r)   rl   rm   rn   ro   rp   r§   r   rT  Úbool)Únr©   r-   rq   r¶   rC   r1   r1   r2   Ú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š™™™™™™?rÀ  r˜  r6   r5   rÁ  rØ   ru   r5  r6  r7  ©ÚoverÚunderÚbadç333333ó?r"   g      ð¿rÖ   )r¹  r¸  Úclipr^   )rÃ  r   rÃ  r   )r!   r/  r  ra   rá   zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationrq   rº  r   )rb   rn  gš™™™™™É¿r   rZ  rØ   r5   rƒ  )Úncolorsrä  zWith BoundaryNormÚproportional)rç  Úspacingrè  rq   rº  )r$   r   r%   r&   rÇ  rÈ  rÉ  Úcmr.  Úwith_extremesÚmaÚmasked_wherer(   r)   r   rw  r*   r¡  ÚBoundaryNorm)rÍ  rf   rg   r,   rÎ  rÏ  rÐ  rÙ   ÚpaletteÚZmr-   r.   r/   rÃ   r1   r1   r2   Útest_mask_image_over_under&  s@   
&*ÿý

ÿ
ÿü


ÿró  Ú
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 )Nr5   r6   r8   r   r    r9   T)r$   r(   r%   r>   Únanr)   r=   rÜ  rî  Úmasked_arrayr›   )r-   r.   r/   r„   r1   r1   r2   Útest_mask_imageH  s   
r÷  c                  C   s2   t  dt j¡} t ¡ \}}| | ¡ |j ¡  d S )NrY   )r%   Úfullrõ  r$   r(   r)   ré   Ú	draw_idle)r©   r-   rq   r1   r1   r2   Ú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 )Nru   r   r5   r6   r^   r   r·  )ra   r!   r/  z<f8z>f8)	r%   r&   rÇ  Úhypotr$   r(   Údictr)   rµ   )rf   r,   rÎ  rÙ   r-   r.   r/   Úkwargsr1   r1   r2   Útest_imshow_endianessb  s   
rþ  Úimshow_masked_interpolationÚx86_64rå   )r¿  r4   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 )Nr·  r5  r7  rÉ   rß  r   r   r5   ©r¹  r¸  r9   rb   r8   g     jø@)r*  r   )r*  r*  rÜ  T)r   r*  r   r   ry   )r  r/  r!   Úoff)r$   Úget_cmaprí  r   rw  r%   r&   r‡  r'   ÚinfÚ
zeros_likerµ   rî  rö  r(   ÚsortedÚmimageÚ	_interpd_ÚremoveÚzipÚravelr*   r)   Úaxis)
r/  ÚNrÝ  r©   Úmaskr-   Úax_gridÚinterpsÚinterprq   r1   r1   r2   Ú test_imshow_masked_interpolationp  s$   



ýr  c                   C   s   t  ddgdtjgg¡ d S )Nr5   r6   r   )r$   r)   r%   rõ  r1   r1   r1   r2   Útest_imshow_no_warn_invalid”  s   r  r:   c                 C   s   g | ]}t  |¡‘qS r1   )r%   r:   )rÈ   Úsr1   r1   r2   r  ™  s    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r$|d }t ¡ \}}| |¡ ¡ }|| dk ¡ s;J ‚| jdkrT|| d	k ¡ sJJ ‚|j	jdksRJ ‚d S || dk ¡ s^J ‚|j	t j
ksfJ ‚d S )
Nr  r9   )ru   ru   r   Úuru   r   rQ   Úfr5   )r%   r&   r'   Úkindr$   r(   r)   Ú	get_arrayÚallr:   r@   )r:   r  Útoo_lowÚtoo_highÚ_rq   Úoutr1   r1   r2   Ú$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 )Nr8   r   r    rØ   rÁ  )r$   r(   r)   r%   r>   Úset_clim©r-   rq   rÃ   r1   r1   r2   Ú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)r5   r6   g   ¢”mB)r   r5   r7   r9   r   r   )r   r$   r(   r%   rT   Úuint64r)   r  ©r-   rq   rC   Úpcr1   r1   r2   Ú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"  )rm  rÖ   g’ÕMÏð€D)r™  rÖ   r˜  r   r   )r   r$   r(   r%   rT   r)   r  r$  r1   r1   r2   Útest_imshow_bignumbers_real¿  s
   
r'  Ú	make_normc                   C   ó
   t  d¡S ©Nr5   )r   Ú
SymLogNormr1   r1   r1   r2   Ú<lambda>Ï  ó   
 r,  c                   C   r)  r*  )r   Ú	PowerNormr1   r1   r1   r2   r,  Ð  r-  c                 C   s    t  ¡ \}}tjtdd |jg g| ƒ d}W d   ƒ n1 s!w   Y  | g d¢¡ |j ¡  t 	t
¡ | |j¡ W d   ƒ d S 1 sIw   Y  d S )Nz)Attempting to set identical left == right©Úmatch)r  )éûÿÿÿr   r1  r   )r$   r(   r  ÚwarnsÚUserWarningr)   Ú
set_extentré   rf  r  ÚRuntimeErrorÚ
make_imageÚ_cachedRenderer)r(  r-   rq   rÃ   r1   r1   r2   Útest_empty_imshowË  s   ÿþ
"ÿr8  c                  C   s0   t  ¡ \} }| tjdtjd¡ | j ¡  d S )NrG  r9   )r$   r(   r)   r%   r=   Úfloat16ré   rf  ©r-   rq   r1   r1   r2   Útest_imshow_float16Ý  s   r;  c                  C   st   t  ¡ \} }| tjdtjd¡ t tjtjd¡rtƒ nt	 
t¡ | j ¡  W d   ƒ d S 1 s3w   Y  d S )NrG  r9   Úequiv)r$   r(   r)   r%   r=   Ú
longdoubleÚcan_castÚfloat64r   r  r2  r3  ré   rf  r:  r1   r1   r2   Útest_imshow_float128ä  s   ÿ"ýr@  c                  C   s0   t  ¡ \} }| tjddgddggtd¡ d S )NTFr9   )r$   r(   r)   r%   rT   rÜ  r:  r1   r1   r2   Útest_imshow_boolí  s   $rA  c                  C   s.   t  ¡ \} }| t dtj¡¡ | j ¡  d S )Nr	  )r$   r(   r)   r%   rø  rõ  ré   rf  r:  r1   r1   r2   Útest_full_invalidò  s   rB  zfmt,counted)r¯   s    colorimage)rG   s   <imagezcomposite_image,count)Tr5   )Fr6   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sWJ ‚d S )Nr1  r   r5   r6   r   r   ©r   r5   r   r5   rà   rb   )r6   r   r   r5   zimage.composite_imager¥   )r%   rÇ  r&   re   r$   r(   r†   r)   r   rl   rm   rn   r¢  Úcount)
r    ÚcountedÚcomposite_imagerD  r,   rÎ  rÙ   r-   rq   rÂ   r1   r1   r2   Útest_compositeù  s   $
rG  c                  C   sV   t  ¡ \} }|jdggdd | ¡  | ¡  | ¡ | ¡   kr&dks)J ‚ J ‚d S )Nr   rC  rà   rH  )r$   r(   r)   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr:  r1   r1   r2   Ú
test_relim  s
   (rL  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 
¡ s:J ‚d S )Nr   r   r,  r.  F)rº  rá   r/  rÄ  rH  rQ  .r   )r$   r(   rÛ  r)   rU  ré   rf  r%   rT   Úbuffer_rgbar  r   r1   r1   r2   Útest_unclipped  s   ÿ
,rN  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sCJ ‚|d jdd t ¡ }| j	|dd	 | 
¡ | 
¡ ks`J ‚d S )Nr6   r5   r   r   r   rC  )rº  rá   Úrgbar¥   rQ   )rb   r   )rS  )r$   r(   rÛ  r)   rû   Úset_clip_boxÚbboxrl   rm   rn   r¢  rU  )r-   r’   rq   rÃ   Ú
buf_beforeÚ	buf_afterr1   r1   r2   Útest_respects_bbox   s   
 
rT  c                  C   s„   t  ¡ \} }| t d¡¡}tjjdgdgd}| |¡dks!J ‚tjjdgdgd}| |¡dks4J ‚tj}| |¡dks@J ‚d S )	NrÝ   r   T©r  ró   Fz[0]z[nan])	r$   r(   r)   r%   r=   rî  rö  rô   rõ  )r-   rq   rÃ   r©   r1   r1   r2   Útest_image_cursor_formatting2  s   rV  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   r5   rÃ  rØ   r6   g[Âõ(\ß?r·  r   )r×   r/  r!   ).rb   r    N)r%   rz  rÇ  rÈ  Úmaxr$   r  rJ  r)   r   rw  )
r€   r   rf   ÚxxÚyyÚzzr×   r/  rq   rO  r1   r1   r2   Útest_image_array_alphaA  s   
r[  c                   C   sL   t jtdd tjt d¡ddgd W d   ƒ d S 1 sw   Y  d S )Nzalpha must be a float, two-dr/  rY   r5   )r×   )r  r  r  r$   r)   r%   r=   r1   r1   r1   r2   Ú!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¡sdJ ‚d S )NÚautumn_rÚ	lightgrey)Úcolor)gffffffþ?r@  r   rZ   rx   )rb   rb   rb   r   r   r   r   é+   éO   é_   éB   r5   rb   rb   rb   r   r   r   é"   r9   r   r   )rº  r/  r¹  r¸  r  r5   ru   rQ   )r   r$   rì  r  Ú	set_underrc   r1  r%   rT   r‡  r)   r  ré   rf  r6  rg  r/  r  ÚTr  rµ   r}   r  )r/  r-   rq   r©   rÃ   Ú
from_imageÚdirect_computationr1   r1   r2   Útest_exact_vminY  s    þ

$þri  c                  C   s8   t  ¡  t d¡} W d   ƒ d S 1 sw   Y  d S )Nz.https://matplotlib.org/1.5.0/_static/logo2.png)r   r¯  r  rp   )rÊ   r1   r1   r2   Útest_https_imread_smoketestv  s   
"ÿrj  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 ru  )r%   rT  ÚviewÚunits)ÚclsÚinput_arrayrm  Úobjr1   r1   r2   Ú__new__‚  s   zQuantityND.__new__c                 C   s   t |dd ƒ| _d S ©Nrm  )Úgetattrrm  )Úselfrp  r1   r1   r2   Ú__array_finalize__‡  s   zQuantityND.__array_finalize__c                    s<   t | dd ƒ}tt| ƒ |¡}t|tƒs|d urt||ƒ}|S rr  )rs  Úsuperrk  Ú__getitem__Ú
isinstance)rt  Úitemrm  Úret©Ú	__class__r1   r2   rw  Š  s
   
zQuantityND.__getitem__c                 O   sJ  t ||ƒ}d|v rt‚t|ƒdkr'|d }t |ddƒ}|t |¡fi |¤Ž}nlt|ƒdkr‘|d }|d }	t |ddƒ}
t |	ddƒ}|
d u rG|n|
}
|d u rO|
n|}|tjtjfv rb|
|kr_t‚|
}n|tjkro|
› d|› }n|tj	kr}|
› d|› d	}nt‚|| 
tj¡|	 
tj¡fi |¤Ž}nt‚|d u ržt |¡}|S t||ƒ}|S )
Nr  r5   r   rm  Údimensionlessr6   Ú*z/(ú))rs  ÚNotImplementedErrorrˆ  r%   rT  ÚaddÚsubtractÚ
ValueErrorÚmultiplyÚdividerl  ÚndarrayrT   rk  )rt  ÚufuncÚmethodÚinputsrý  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1r1   r1   r2   Ú__array_ufunc__‘  s<   


$

ÿzQuantityND.__array_ufunc__c                 C   s   |   tj¡S ru  )rl  r%   r†  )rt  r1   r1   r2   rÊ   ³  s   zQuantityND.v)
Ú__name__Ú
__module__Ú__qualname__rq  ru  rw  r‘  ÚpropertyrÊ   Ú__classcell__r1   r1   r{  r2   rk    s    "rk  c                  C   sÌ   t ddgdƒ} | d d … \}}t | jt ddg¡k¡sJ ‚| jdks%J ‚t || jt dg¡k¡s5J ‚|| jdks>J ‚|| jdksGJ ‚t t¡ |t ddƒ  W d   ƒ d S 1 s_w   Y  d S )Nr5   r6   Úmr   zm*mzm/(m)r  )	rk  r%   r  rÊ   rT  rm  r  r  rƒ  )ÚqÚq0Úq1r1   r1   r2   Útest_quantitynd¸  s    "ÿr›  c                  C   s4   t t d¡dƒ} t ¡ \}}| | ¡ |j ¡  d S )NrY   r—  )rk  r%   r>   r$   r(   r)   ré   rf  )r  r-   rq   r1   r1   r2   Ú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 )Nr8   r5   r9   rb   r   r6   FrU  Tr·  Úw©rá  rØ   r  r   r   )r  rá   r!   r/  rÂ  )r   ru   r   ru   ©r   ru   rQ  )r%   rø  r?  rî  rT   r  r$   r  rí  r(   r)   r   r!  rv  rw  rU  )r€   r   r©   Úmasked_datar/  rq   rÃ   r1   r1   r2   Útest_norm_changeÍ  s.   ÿÿÿÿr¡  rf   rb   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 )Nr8   r9   g@Œµx¯Dr   r6   r5   r  r   r·  )r  r!   r/  iè  r  rž  )r%   rø  r?  r(   r)   r   r!  rW  r$   r  rí  rw  )r€   r   rf   r©   rq   r/  r1   r1   r2   Ú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 ]p\}\}}||  |¡ ||  |¡ ||  |¡ || 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 )Nr5   r   r   )r>   r=   Úmixedr   Úequalr³   ÚGreys)r!   rº  ra   r/  r¹  r¸  rn  rÁ  gÍÌÌÌÌÌð?rå  r+  )r5   r6   r   ru   T)ÚnbinsÚstepsÚinteger)r(   Ú	enumerater
  r*   Úspyr)   r†   r‡   ÚxaxisÚtick_topÚtitleÚset_yÚset_ticks_positionÚset_major_locatorÚmtickerÚMaxNLocatorÚyaxis)	r€   r   Úax_testÚax_refÚ	plot_dataÚplot_titlesr  rh   r­  r1   r1   r2   Útest_spy_boxý  s6   ýþ
ÿ
ÿñr¸  znonuniform_and_pcolor.pngc                  C   sÈ   t jddjdddd} t| ddgƒD ]&\}}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 qUd S )NrG  r'  r   T)ÚsharexÚshareyr   r"   r    r6   r+  r7   rŸ  )rR  )r$   rc   r(   r
  r   r[  r%   r&   r'   Ú	add_imageÚ
pcolorfastrÛ  rU  )r’   rq   r!   rÃ   r1   r1   r2   Útest_nonuniform_and_pcolor  s   ÿ&ÿýr½  zrgba_antialias.png)r   r4   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 )$Nr6   )ç      @r¾  FT)r[   r¹  rº  Úconstrained_layoutéú   rb   rØ   ru   éK   rb  r5   rA  r   r]   g    €„.AéF   éZ   g    €„.ÁrÅ  éÃ   é×   ÚyellowÚcyanr   r   g333333ó¿rã  )r!   r/  r¹  r¸  é   ry   r©   )r!   Úinterpolation_stager/  r¹  r¸  r   rO  )r$   r(   r%   r>   r&   rÇ  Úsqrtre   rÉ  r}   ÚNaNr   rì  ÚRdBu_rÚset_overre  r}  r)   r†   r‡   )r-   r’   r  Úaarf   rg   r,   rÎ  ÚRÚf0rÉ   r8  r/  r1   r1   r2   Útest_rgba_antialias.  sF   
ÿ(<<4

""ÿ
ÿrÑ  )‰Ú
contextlibr   r   rl   r—   Úpathlibr   r¬  r«  Úurllib.requestr°  Únumpyr%   Únumpy.testingr   ÚPILr   Ú
matplotlibrK  r   r   r	   r  r
   r   r$   r   r   Úmatplotlib.imager   r   r   r   r   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   r   r   Úmatplotlib.tickerÚtickerr±  r  r3   rD   rU   ÚmarkÚparametrizerj   rs   r…   rˆ   r“   rž   rŸ   r®   r²   r¸   rÄ   rÔ   rÚ   rò   rõ  rö   rþ   r  r  r  r  r  r  r&  r9  r<  rF  rM  rX  ra  rl  ro  rt  rx  r€  r  r”  r—  r&   r'   r  r¨  rµ  r½  r×  rØ  rÞ  ró  r÷  rú  rþ  Úmachiner  r  Úsplitr  r!  r&  r'  rw  r!  r8  r;  r@  rA  rB  rG  rL  rN  rT  rV  r[  r\  Úcontextri  ÚnetworkÚflakyrj  r†  rk  r›  rœ  r¡  r¢  r¸  r½  rÑ  r1   r1   r1   r2   Ú<module>   s~   $

ÿ
	þ




"



Güÿ

	





ÿ
	



ÿ

ÿ

		ÿÿýÿ
	!


!

þ
!ÿ



ÿ

ýþ
	ÿ


	7
	


 
ÿ