Ë
    ^ãj.Ï  ã                   ó&  — d dl mZ d dlmZ d dl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 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„ «       Z- e$dgd¬«      d„ «       Z. e$dgddgd¬«      d„ «       Z/e,j`                  jc                  dddg«       e$dgddg¬«      d„ «       «       Z2d„ Z3e,j`                  jc                  dg d ¢«       e#dg¬«      d!„ «       «       Z4 e#dg¬«      d"„ «       Z5 e#«       d#„ «       Z6d$„ Z7d%„ Z8e,j`                  jc                  d&g d'¢«      d(„ «       Z9e,j`                  jc                  d)d*d+g«      d,„ «       Z:e,j`                  jc                  d&g d-¢«      d.„ «       Z;d/„ Z<d0„ Z=d1„ Z> e$d2gd¬«      d3„ «       Z?ej4                  j�                  d«       e#dg¬«      d4„ «       «       ZAd5„ ZBe,j`                  jc                  d6d7d7gd gd7d8gd9gd:d7gd;gd<d7gd;gd=d>gd?gd@d7gdgd7d@gdgg«      dA„ «       ZCe,j`                  jc                  dBdCdDggdEfdFdGggdHfejˆ                  d9dIggdJfd9dKggdLfd@d@ggdMfd d ggdNfg«      dO„ «       ZE e$dPgd¬«      dQ„ «       ZF e$dRgd¬«      dS„ «       ZG e$dTgdd¬U«      dV„ «       ZH e#dg¬«      dW„ «       ZIdX„ ZJdY„ ZK e$dZgd¬«      d[„ «       ZL e$d\gdddg¬]«      d^„ «       ZMd_„ ZN e$d`gdd¬U«      da„ «       ZO e$dbgd¬«      dc„ «       ZP e#dg¬«      dd„ «       ZQ e$degddgdd¬f«      dg„ «       ZR e$dhgdd¬U«      di„ «       ZSdj„ ZT e$dkgdd¬U«      dl„ «       ZUdm„ ZVdn„ ZWdo„ ZXdp„ ZYdq„ ZZdr„ Z[e,j`                  jc                  dse  ej¸                  dt«       ej¸                  du«       ej¸                  dv«      j»                  dw«      fe! ej¸                  dt«       ej¸                  du«       ej¸                  dx«      j»                  dy«      fg«      dz„ «       Z^d{„ Z_d|„ Z` e$d}gd¬«      d~„ «       Za e$dgd¬«      d€„ «       Zbd�„ Zcd‚„ Zd e$dƒgdd„¬…«      d†„ «       Ze e$d‡gd¬«      dˆ„ «       Zfd‰„ Zg e$dŠgd¬«      d‹„ «       Zh e$dŒg ejÒ                  «       d�k(  rd ndŽdd¬�«      d�„ «       Zjd‘„ Zke,j`                  jc                  d’d“jÙ                  «       D � cg c]  }  ejÚ                  | «      ‘Œ c} «      d”„ «       Zn e$d•gdd¬U«      d–„ «       Zo e$d—gdd¬U«      d˜„ «       Zp e$d™gdd¬U«      dš„ «       Zqe,j`                  jc                  d›ejä                  ejæ                  dœ„ d�„ g«      dž„ «       ZtdŸ„ Zud „ Zvd¡„ Zwd¢„ Zxe,j`                  jc                  d£d¤d¥g«      e,j`                  jc                  d¦d§d¨g«      d©„ «       «       Zydª„ Zzd«„ Z{d¬„ Z|d­„ Z} e#«       d®„ «       Z~d¯„ Zej4                  j�                  d«      d°„ «       Z€ e$d±gddgdd¬f«      d²„ «       Z� G d³„ d´e�j                  «      Zƒdµ„ Z„d¶„ Z… e#dg¬«      d·„ «       Z†e,j`                  jc                  d¸d@d9g«       e#dg¬«      d¹„ «       «       Z‡ e#«       dº„ «       Zˆ e$d»gd¬«      d¼„ «       Z‰ e$d½gdd ejÒ                  «       d�k(  rd nd¾¬¿«      dÀ„ «       ZŠdÁ„ Z‹e,j`                  �j                  dÂ«      e,j`                  jc                  d)d*d+g«      e,j`                  jc                  dÃg dÄ¢g dÅ¢g«       e#dÆ¬«      dÇ„ «       «       «       «       Z� e#dg¬«      dÈ„ «       ZŽdÉ„ Z�dÊ„ Z�dË„ Z‘e,j`                  jc                  d’dÌ«      e,j`                  jc                  dÍdÎ«      dÏ„ «       «       Z’yc c} w )Ðé    )Ú	ExitStack©ÚcopyN)ÚPath)Úassert_array_equal)ÚImage)ÚcolorsÚimageÚpatchesÚpyplotÚstyleÚrcParams)Ú	AxesImageÚ	BboxImageÚFigureImageÚNonUniformImageÚPcolorImage)Úcheck_figures_equalÚimage_comparison)ÚBboxÚAffine2DÚTransformedBboxÚimage_interpsÚmpl20)r   c                  ó¦  — dt         j                  d<   t        j                  d«      j	                  dd«      } t        j
                  d«      \  }\  }}}|j                  | d¬«       |j                  d	«       |j                  d«       |j                  | d
¬«       |j                  d
«       |j                  | d¬«       |j                  d«       y)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Úax3s        ú]/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/matplotlib/tests/test_image.pyÚtest_image_interpsr4      s¦   € ð
 +,„C‡L�LÐ&Ñ'ä
�	‰	�#‹×Ñ˜q "Ó%€AäŸ<™<¨›?Ñ€C‰ˆ#ˆs�CØ‡J�Jˆq 	€JÔ*Ø‡M�MÐ(Ô)Ø‡N�N�9Ôà‡J�Jˆq 
€JÔ+Ø‡N�N�:Ôà‡J�Jˆq 	€JÔ*Ø‡N�N�9Õó    zinterp_alpha.pngT)Úremove_textc                  óX  — t        j                  dd«      \  } \  }}t        j                  d«      }t        j                  d«      |d<   t        j
                  t        j                  dt        j                  ¬«      «      |d<   |j                  |d¬	«       |j                  |d
¬	«       y)z:Test the interpolation of the alpha channel on RGBA imagesé   é   )r   r   é   ©r   r   ).r8   ©Údtype©.r    Únoner"   r$   N)r&   r*   r'   ÚzerosÚonesÚtrilÚuint8r+   )r/   ÚaxlÚaxrÚimgs       r3   Útest_alpha_interprG   0   s|   € ô —l‘l 1 aÓ(�O€C‰ˆ#ˆsä
�(‰(�9Ó
€CÜ—'‘'˜&“/€Cˆ�Kä—'‘'œ"Ÿ'™' &´·±Ô9Ó:€Cˆ�KØ‡J�Jˆs &€JÔ)Ø‡J�Jˆs *€JÕ-r5   Úinterp_nearest_vs_noneÚpdfÚsvg)Ú
extensionsr6   c                  óD  — dt         d<   t        j                  g d¢g d¢gg d¢g d¢ggt        j                  ¬«      } t	        j
                  dd	«      \  }\  }}|j                  | d
¬«       |j                  d«       |j                  | d¬«       |j                  d«       y)z5Test the effect of "nearest" and "none" interpolationr    úsavefig.dpi)éÚ   é¥   é    )éz   ég   éî   )é   éÿ   r   )rU   éc   éG   r<   r8   r9   r?   r"   zinterpolation noner!   zinterpolation nearestN)r   r'   ÚarrayrC   r&   r*   r+   r,   )r.   r/   r0   r1   s       r3   Útest_interp_nearest_vs_nonerY   =   sŠ   € ð  „Hˆ]ÑÜ
�‰’>¢?Ð3Ú ¢-Ð0ð2Ü9;¿¹ô	C€Aä—l‘l 1 aÓ(�O€C‰ˆ#ˆsØ‡J�Jˆq €JÔ'Ø‡M�MÐ&Ô'Ø‡J�Jˆq 	€JÔ*Ø‡M�MÐ)Õ*r5   ÚsuppressCompositeFÚfigimageÚpng)rK   c                 óP  — t        j                  dd¬«      }| |_        t        j                  t        j
                  d«      dz  t        j
                  d«      dz  «      \  }}t        j                  |dz  |dz  z   ||z  z
  «      }t        j                  d|dz  z  d|dz  z  z   «      }||dz  z   }|j                  |d	d	d
¬«       |j                  |d d d…d d …f   d	dd
¬«       |j                  |d d …d d d…f   dd	d
¬«       |j                  |d d d…d d d…f   ddd
¬«       y )N©r9   r9   r   ©ÚfigsizeÚdpig      Y@r9   r   é2   r   r   Úlower)ÚxoÚyoÚoriginéÿÿÿÿ)r&   ÚfigurerZ   r'   Úix_r(   Úsinr[   )rZ   r/   ÚxÚyÚzÚcrF   s          r3   Útest_figimagero   O   s  € ô �*‰*˜V¨Ô
-€CØ-€CÔÜ�6‰6”"—)‘)˜C“. 5Ñ(¬"¯)©)°C«.¸3Ñ*>Ó?�D€A€qÜ
�‰ˆq�!‰t�a˜‘d‰{˜Q˜q™SÑ Ó!€AÜ
�‰ˆr�!�Q‘$‰w˜˜A˜q™D™Ñ Ó!€AØ
ˆa�‰c‰'€Cà‡L�L�˜˜q¨€LÔ1Ø‡L�L�‘T�r�Tš1�W‘ !¨°G€LÔ<Ø‡L�L�’Q™˜"˜�W‘ #¨!°G€LÔ<Ø‡L�L�‘T�r�T™4˜R˜4�Z‘ S¨S¸€LÕAr5   c                  óî   — t        j                  «       \  } }|j                  g d¢«       t        j                  «       }| j                  |«       |j                  d«       t        j                  |«       y )N)r8   r9   r    r   )r&   r*   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)r/   ÚaxÚbuffers      r3   Útest_image_python_iory   _   sK   € Ü�l‰l‹n�G€CˆØ‡G�GŠIÔÜ�Z‰Z‹\€FØ‡K�K�ÔØ
‡K�K�„NÜ‡J�JˆvÕr5   z!img_size, fig_size, interpolation))r   r9   Úhanning)r   r   r!   )r   é
   r!   )r    ç333333@rz   )r    g333333"@r!   c                 óæ  — t         j                  j                  d«       t        j                  d   }t         j                  j                  t        ||z  «      t        ||z  «      «      }| |fD ]  }|j                  ||«       Œ | j                  «       }|j                  g d¢«       |j                  |d¬«       |j                  «       }|j                  g d¢«       |j                  ||¬«       y )Né!N,rM   ©r   r   r8   r8   Úantialiasedr"   )r'   ÚrandomÚseedr&   r   ÚrandÚintÚset_size_inchesr*   Úset_positionr+   )	Úfig_testÚfig_refÚimg_sizeÚfig_sizer#   ra   ÚAr/   rw   s	            r3   Útest_imshow_antialiasedrŒ   h   sÀ   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™>Ó*¬C°°h±Ó,?Ó@€AØ˜'Ð"ò 0ˆØ×Ñ˜H hÕ/ð0à	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜}€IÔ-Ø	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜}€IÕ-r5   c                 ó2  — t         j                  j                  d«       t        j                  d   }t         j                  j                  t        |dz  «      t        |dz  «      «      }| |fD ]  }|j                  dd«       Œ | j                  «       }|j                  |d¬«       |j                  ddg«       |j                  ddg«       |j                  «       }|j                  |d	¬«       |j                  ddg«       |j                  ddg«       y )
Nr~   rM   r    r|   r€   r"   r{   r   r!   )r'   r�   r‚   r&   r   rƒ   r„   r…   r*   r+   Úset_xlimÚset_ylim)r‡   rˆ   ra   r‹   r/   rw   s         r3   Útest_imshow_zoomr�   €   sæ   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™7“|¤S¨¨q©£\Ó2€AØ˜'Ð"ò &ˆØ×Ñ˜C Õ%ð&à	×	Ñ	Ó	€BØ‡I�Iˆa˜}€IÔ-Ø‡K�K��R�ÔØ‡K�K��R�ÔØ	×	Ñ	Ó	€BØ‡I�Iˆa˜y€IÔ)Ø‡K�K��R�ÔØ‡K�K��R�Õr5   c                 ó  — t        j                  d«       t        t        «      j                  dz  }t        t        «      j                  dz  }| j                  d«      }|d   j                  t        j                  |«      «       |d   j                  t        j                  |«      «       |j                  d«      }|d   j                  t        j                  |«      «       |d   j                  t        j                  |«      «       y )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.tifr9   r   r8   )r   Úuser   Ú__file__Úparentr*   r+   r   Úopenr&   rv   )r‡   rˆ   Úpng_pathÚ	tiff_pathÚaxss        r3   Útest_imshow_pilrœ   ’   s¼   € ä	‡I�IˆiÔÜ”H‹~×$Ñ$Ð'NÑN€HÜ”X“×%Ñ%Ð(OÑO€IØ
×
Ñ
˜AÓ
€CØˆ�F‡M�M”%—*‘*˜XÓ&Ô'Øˆ�F‡M�M”%—*‘*˜YÓ'Ô(Ø
×
Ñ
˜1Ó
€CØˆ�F‡M�M”#—*‘*˜XÓ&Ô'Øˆ�F‡M�M”#—*‘*˜YÓ'Õ(r5   c                  ó"  — t        j                  t        j                  j	                  t        j                  j                  t        «      ddd«      «      } | j                  t        j                  k(  sJ ‚t        j                  | «      dk(  sJ ‚y )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)r&   rv   ÚosÚpathÚjoinÚdirnamer–   r=   r'   Úuint16Úsum©rF   s    r3   Útest_imread_pil_uint16r¨   Ÿ   sc   € Ü
�*‰*”R—W‘W—\‘\¤"§'¡'§/¡/´(Ó";Ø&¨°lóDó E€Cà�9‰9œŸ	™	Ò!Ð!Ð!Ü�6‰6�#‹;˜)Ò#Ð#Ñ#r5   c                  óÔ   — t        j                  t        t        «      j                  dz  «      } | j
                  t        j                  k(  sJ ‚t        j                  | «      dk(  sJ ‚y )Nr”   r    )	r&   rv   r   r–   r—   r=   r'   r¥   r¦   r§   s    r3   Útest_imread_fspathrª   ¦   sP   € Ü
�*‰*ÜŒX‹×ÑÐ GÑGóI€Cà�9‰9œŸ	™	Ò!Ð!Ð!Ü�6‰6�#‹;˜)Ò#Ð#Ñ#r5   Úfmt)r\   ÚjpgÚjpegÚtiffc                 óR  — | dv}t         j                  j                  d«       t         j                  j                  dd«      }t	        j
                  «       }t        j                  ||| d¬«       t	        j
                  «       }t        j                  ||| d¬«       |j                  d«       t        j                  || ¬«      }|j                  d«       t        j                  || ¬«      }|j                  ddd	|z   fk(  sJ ‚|j                  ddd	|z   fk(  sJ ‚t        ||«       y )
N)r¬   r­   r8   i@  r9   )Úformatra   r   r   ©r°   r    )r'   r�   r‚   rƒ   rr   rs   r&   Úimsaveru   rv   Úshaper   )r«   Ú	has_alphaÚdataÚ	buff_dpi1Úbuff_dpi100Úarr_dpi1Ú
arr_dpi100s          r3   Útest_imsaverº   ­   sî   € à˜?Ð*€Iô ‡I�I‡N�N�1Ôô �9‰9�>‰>˜$ Ó"€Dä—
‘
“€IÜ‡J�Jˆy˜$ s°Õ2ä—*‘*“,€KÜ‡J�Jˆ{˜D¨°#Õ6à‡N�N�1ÔÜ�z‰z˜)¨CÔ0€Hà×Ñ�QÔÜ—‘˜K°Ô4€Jà�>‰>˜d A q¨9¡}Ð5Ò5Ð5Ð5Ø×Ñ  a¨¨Y©Ð7Ò7Ð7Ð7ä�x Õ,r5   rf   Úupperrc   c                 óŒ   — t        j                  «       }t        j                  dd¬«      }t	        j
                  ||d| ¬«       y )N)r{   r{   r:   rC   r<   r\   )Úarrr°   rf   )rr   rs   r'   r@   Úmimager²   )rf   ÚbufÚresults      r3   Útest_imsave_rgba_originrÁ   Ð   s1   € ô �*‰*‹,€CÜ�X‰X�k¨Ô1€FÜ
‡M�M�#˜6¨%¸Ö?r5   )r\   rI   ÚpsÚepsrJ   c                 óŽ   — t        j                  t        t        j                  «      t        j                  ddgg«      | ¬«       y )Nr   r8   r±   )r&   r²   r   r¡   Údevnullr'   rX   )r«   s    r3   Útest_imsave_fspathrÆ   Ø   s*   € ä‡J�JŒt”B—J‘JÓ¤§¡¨A¨q¨6¨(Ó!3¸CÖ@r5   c                  óº  — t         j                  j                  d«       dD ]·  } t         j                  j                  ddd«      }t	        j
                  «       }t        j                  ||| d¬«       |j                  d«       t        j                  |«      }d|z  j                  d	«      }| d
k(  r|d d d…   }d|z  j                  d	«      }t        ||«       Œ¹ y )Nr8   )rc   r»   é   r:   r\   )rf   r°   r   rU   rC   rc   rg   )r'   r�   r‚   rƒ   rr   rs   r&   r²   ru   rv   Úastyper   )rf   rµ   ÚbuffÚarr_bufs       r3   Útest_imsave_color_alpharÌ   Ý   s¸   € ô ‡I�I‡N�N�1Ôà$ò *ˆÜ�y‰y�~‰~˜b " aÓ(ˆÜ�z‰z‹|ˆÜ�
‰
�4˜ f°UÕ;à�	‰	�!ŒÜ—*‘*˜TÓ"ˆð
 �D‘× Ñ  Ó)ˆØ�WÒØ™˜"˜‘:ˆDØ�w‘;×&Ñ& wÓ/ˆä˜4 Õ)ñ!*r5   c                  óþ   — ddl m}  t        j                  «       } | «       }|j	                  dd«       t        j                  |ddgddggdd	|i¬
«       t        j                  |«      }|j                  d   dk(  sJ ‚y )Nr   )ÚPngInfoÚSoftwareÚtestr8   r9   r    r\   Úpnginfo©r°   Ú
pil_kwargs)
ÚPIL.PngImagePluginrÎ   rr   rs   Úadd_textr&   r²   r   r˜   Úinfo)rÎ   r¿   rÑ   Úims       r3   Útest_imsave_pil_kwargs_pngrØ   ö   sr   € Ý*Ü
�*‰*‹,€CÙ‹i€GØ×Ñ�Z Ô(Ü‡J�Jˆs�a˜�V˜a ˜VÐ$Ø¨°GÐ(<õ>ä	�‰�C‹€BØ�7‰7�:Ñ &Ò(Ð(Ñ(r5   c                  ó\  — ddl m}  t        j                  «       }ddi}t	        j
                  |ddgddggd|¬	«       t        |«      dk(  sJ ‚t        j                  |«      }|j                  j                  «       D ��ci c]  \  }}| |   j                  |“Œ }}}|d
   dk(  sJ ‚y c c}}w )Nr   )ÚTAGS_V2Údescriptionz
test imager8   r9   r    r®   rÒ   ÚImageDescription)ÚPIL.TiffTagsrÚ   rr   rs   r&   r²   Úlenr   r˜   Útag_v2ÚitemsÚname)ÚTAGSr¿   rÓ   r×   ÚkÚvÚtagss          r3   Útest_imsave_pil_kwargs_tiffræ     sŸ   € Ý,Ü
�*‰*‹,€CØ Ð.€JÜ‡J�Jˆs�a˜�V˜a ˜VÐ$¨VÀ
ÕKÜˆz‹?˜aÒÐÐÜ	�‰�C‹€BØ(*¯	©	¯©Ó(9×:¡  1ˆD�‰G�L‰L˜!‰OÐ:€DÑ:ØÐ"Ñ# |Ò3Ð3Ñ3ùó ;s   Â B(Úimage_alphac                  ó4  — t         j                  j                  d«       t         j                  j                  dd«      } t	        j
                  dd«      \  }\  }}}|j                  | dd¬«       |j                  | dd¬«       |j                  | dd	¬«       y )
Nr   r   r8   r    ç      ð?r?   )Úalphar#   ç      à?r!   )r'   r�   r‚   rƒ   r&   r*   r+   )ÚZr/   r0   r1   r2   s        r3   Útest_image_alpharí     sw   € ä‡I�I‡N�N�1ÔÜ
�	‰	�‰�q˜!Ó€AäŸ<™<¨¨1Ó-Ñ€C‰ˆ#ˆs�CØ‡J�Jˆq˜¨6€JÔ2Ø‡J�Jˆq˜¨6€JÔ2Ø‡J�Jˆq˜¨9€JÕ5r5   c                 óp  — t         j                  j                  d«       t         j                  j                  ddd«      }t        j                  |dz  «      }| j                  dd«      \  \  }}\  }}|j                  |d¬«       |j                  |d¬«       |j                  |d¬«       |j                  |d¬«       t        j                  |t        j                  d	«      fd¬
«      }t        j                  |t        j                  d	dt         j                  «      fd¬
«      }	|j                  dd«      \  \  }}\  }}d|d d …d d …df<   |j                  |«       d|d d …d d …df<   |j                  |«       d|	d d …d d …df<   |j                  |	«       d|	d d …d d …df<   |j                  |	«       y )Nr~   r   r    rU   r9   rë   ©rê   ç      è?)r   r   r8   )ÚaxisrT   é¿   )
r'   r�   r‚   rƒ   rC   r*   r+   ÚconcatenaterA   Úfull)
r‡   rˆ   ÚrgbfÚrgbuÚax0r0   r1   r2   ÚrgbafÚrgbaus
             r3   Útest_imshow_alpharú     sj  € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜!˜Q Ó"€DÜ�8‰8�D˜3‘JÓ€DØ'×0Ñ0°°AÓ6Ñ�Z€cˆ3‘�#�sØ‡J�Jˆt˜3€JÔØ‡J�Jˆt˜4€JÔ Ø‡J�Jˆt˜3€JÔØ‡J�Jˆt˜4€JÔ ä�N‰N˜D¤"§'¡'¨)Ó"4Ð5¸AÔ>€EÜ�N‰N˜D¤"§'¡'¨)°S¼"¿(¹(Ó"CÐDÈ1ÔM€EØ&×/Ñ/°°1Ó5Ñ�Z€cˆ3‘�#�sØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÕr5   c                  óø  — ddl m}  t        j                  «       \  }}|j	                  t        j                  d«      j                  dd«      d¬«      }d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      d	k(  sJ ‚d
\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      �J ‚|j                  «        |j	                  t        j                  d«      j                  dd«      d¬«      }d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      d	k(  sJ ‚t        j                  «       \  }}|j	                  t        j                  d«      j                  dd«      g d¢¬«      }d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      dk(  sJ ‚d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      �J ‚d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      �J ‚t        «       j                  d«      j                  d«      }	|j	                  t        j                  d«      j                  dd«      |	|j                  z   ¬«      }d\  }}|j                  j                  ||g«      \  }} | d|j                  ||«      }|j                  |«      d	k(  sJ ‚y )Nr   ©Ú
MouseEventr   r{   r»   )rf   ©r:   r:   Úmotion_notify_eventé,   )g333333$@r:   rc   )r   rë   r   rë   ©Úextent)ç      Ð?r  é7   )rð   r  )ç{®Gáz„?g{®Gáz„¿r9   rë   ©Ú	transform)r    r{   )Úmatplotlib.backend_basesrý   r&   r*   r+   r'   r(   r)   Ú	transDatar  ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)
rý   r/   rw   r×   rk   rl   ÚxdispÚydispÚeventÚtranss
             r3   Útest_cursor_datar  1  s<  € Ý3ä�l‰l‹n�G€CˆØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÓ	B€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ð �D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,ð ‡H�H„Jà	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÓ	B€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ä�l‰l‹n�G€CˆØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1Ò:JˆÓ	K€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ð �D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,à�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5áÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,ô ‹J×Ñ˜QÓ×&Ñ& sÓ+€EØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1Ø" R§\¡\Ñ1ð 
ó 
3€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÙÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ñ*r5   zxy, datarë   ç      ø?r8   g      @rÈ   g      !@g      #@g      @éU   rg   c                 ó`  — ddl m} t        j                  g d¢«      }t        j                  g d¢«      }|t        j                  d d …f   dz  |d d …t        j                  f   dz  z   }t        j                  «       \  }}t        ||j                  «       |j                  «       |j                  «       |j                  «       f¬«      }|j                  |||«       |j                  |«       |j                  |j                  «       dz
  |j                  «       «       |j                  |j                  «       dz
  |j                  «       «       |j                  j                  | «      \  }	}
 |d|j                   |	|
«      }|j#                  |«      |k(  sJ |j#                  |«      |f«       ‚y )Nr   rü   )r   r8   r:   é	   rÈ   )r   r8   r9   r    r:   r9   r  rÿ   )r  rý   r'   rX   Únewaxisr&   r*   r   ÚminÚmaxÚset_dataÚ	add_imagerŽ   r�   r	  r  r
  r  )Úxyrµ   rý   rk   rl   rm   r/   rw   r×   r  r  r  s               r3   Útest_cursor_data_nonuniformr  x  sC  € õ 4ô 	�‰Ò!Ó"€AÜ
�‰’Ó!€AØ	Œ"�*‰*’aˆ-Ñ˜!Ñ˜a¢¤2§:¡: Ñ.°Ñ1Ñ1€Aä�l‰l‹n�G€CˆÜ	˜ Q§U¡U£W¨a¯e©e«g°q·u±u³wÀÇÁÃÐ$HÔ	I€BØ‡K�K��1�aÔØ‡L�L�Ôà‡K�K�—‘“˜!‘˜QŸU™U›WÔ%Ø‡K�K�—‘“˜!‘˜QŸU™U›WÔ%à—<‘<×)Ñ)¨"Ó-�L€Eˆ5ÙÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò,ÐO¨r×/AÑ/AÀ%Ó/HÈ$Ð.OÓOÑ,r5   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$�•ï?z[0.123]r9   ú[]g     ð?z[1.0000000000000000]z[-1.0]z[0.00]c                 ó  — ddl m} t        j                  «       \  }}|j	                  | «      }|j
                  j                  ddg«      \  }} |d|j                  ||«      }|j                  |j                  |«      «      |k(  sJ ‚y )Nr   rü   rÿ   )
r  rý   r&   r*   r+   r	  r  r
  Úformat_cursor_datar  )	rµ   Útextrý   r/   rw   r×   r  r  r  s	            r3   Útest_format_cursor_datar#  ˜  sx   € õ 4ä�l‰l‹n�G€CˆØ	�‰�4‹€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÙÐ,¨c¯j©j¸%ÀÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÒCÐCÑCr5   Ú
image_clipc                  óÊ   — ddgddgg} t        j                  «       \  }}|j                  | «      }t        j                  dd|j
                  ¬«      }|j                  |«       y )Nr8   r9   r    r:   ©r   r   )Úradiusr  )r&   r*   r+   r   ÚCircler	  Úset_clip_path)Údr/   rw   r×   Úpatchs        r3   Útest_image_clipr,  ¬  sT   € à
ˆQˆ�!�Q�Ð€Aä�l‰l‹n�G€CˆØ	�‰�1‹€BÜ�N‰N˜6¨!°r·|±|ÔD€EØ×Ñ�UÕr5   Úimage_cliprectc                  óä   — t        j                  «       \  } }ddgddgg}|j                  |d¬«      }t        j                  ddd|j
                  j                  ¬«      }|j                  |«       y )	Nr8   r9   r    r:   ©r   r   r   r   r  ©r8   r8   )r  ÚwidthÚheightr  )r&   r*   r+   r   Ú	RectangleÚaxesr	  r)  )r/   rw   r*  r×   Úrects        r3   Útest_image_cliprectr6  ¶  sg   € ä�l‰l‹n�G€CˆØ
ˆQˆ�!�Q�Ð€Aà	�‰�1˜\ˆÓ	*€Bä×ÑØ˜ 1°·±×0AÑ0AôC€Dà×Ñ�TÕr5   r+   )r6   r   c                  óê   — t        j                  «       \  } }t        j                  d«      j	                  d«      }|j                  |dd¬«       |j                  dd«       |j                  dd«       y )Nr   ©r{   r{   r$   ©r8   r9   r8   r9   ©r#   r  r   r    )r&   r*   r'   r(   r)   r+   rŽ   r�   ©r/   rw   r½   s      r3   Útest_imshowr<  Â  sW   € ä�l‰l‹n�G€CˆÜ
�)‰)�C‹.×
 Ñ
  Ó
*€CØ‡I�Iˆc °L€IÔAØ‡K�K��1ÔØ‡K�K��1Õr5   c                 ó€  — t        j                  d«      j                  d«      }|j                  «       }|j	                  |d d …d d …df   dd¬«       |j                  dd«       |j                  dd«       | j                  «       }|j	                  |dd¬«       |j                  dd«       |j                  dd«       y )Nr   )r{   r{   r8   r   r$   r9  r:  r    )r'   r(   r)   r*   r+   rŽ   r�   )r‡   rˆ   r½   rw   s       r3   Útest_imshow_10_10_1r>  Ë  sž   € ô �)‰)�C‹.×
 Ñ
  Ó
-€CØ	×	Ñ	Ó	€BØ‡I�Iˆc’!’Q˜�'‰l¨*¸\€IÔJØ‡K�K��1ÔØ‡K�K��1Ôà	×	Ñ	Ó	€BØ‡I�Iˆc °L€IÔAØ‡K�K��1ÔØ‡K�K��1Õr5   c                  óø   — t        j                  «       \  } }t        j                  d«      j	                  d«      }t        j                  t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)NéÈ   )r{   r{   r9   ©	r&   r*   r'   r(   r)   ÚpytestÚraisesÚ	TypeErrorr+   r;  s      r3   Útest_imshow_10_10_2rE  Ú  óU   € Ü�l‰l‹n�G€CˆÜ
�)‰)�C‹.×
 Ñ
  Ó
-€CÜ	�‰”yÓ	!ñ Ø
�	‰	�#Œ÷÷ ñ úó   ÁA0Á0A9c                  óø   — t        j                  «       \  } }t        j                  d«      j	                  d«      }t        j                  t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Niô  )r{   r{   r   rA  r;  s      r3   Útest_imshow_10_10_5rI  á  rF  rG  Úno_interpolation_originc                  ó  — t        j                  d«      \  } }|d   j                  t        j                  d«      j                  d«      dd¬«       |d   j                  t        j                  d«      j                  d«      d¬	«       y )
Nr9   r   r   )r9   rb   rc   r?   )rf   r#   r8   r"   )r&   r*   r+   r'   r(   r)   )r/   r›   s     r3   Útest_no_interpolation_originrL  è  si   € ä�|‰|˜A‹�H€CˆØˆ�F‡M�M”"—)‘)˜C“.×(Ñ(¨Ó1¸'Ø &ð ô (àˆ�F‡M�M”"—)‘)˜C“.×(Ñ(¨Ó1À€MÕHr5   Úimage_shift)r6   rK   c            
      ó@  — t        dd«      D � �cg c]%  } t        dd«      D �cg c]  }d|z  d| z  z   ‘Œ c}‘Œ' }} }d}d}t        j                  «       \  }}|j                  |t	        j
                  «       d||ddf¬«       |j                  d«       y c c}w c c}} w )Nr8   r   g�Mòãûk&Ag˜Šäûk&Ar?   )Únormr#   r  Úauto)Úranger&   r*   r+   r	   ÚLogNormÚ
set_aspect)rl   rk   ÚimgDataÚtMinÚtMaxr/   rw   s          r3   Útest_image_shiftrW  ð  s�   € ä?DÀQÈ»}×M¸!¤u¨Q°£}Ö5 !��A‘˜˜A™“Ô5ÐM€GÑMØ€DØ€Dä�l‰l‹n�G€CˆØ‡I�IˆgœFŸN™NÓ,¸FØ˜D ! SÐ)ð ô +à‡M�M�&Õùò 6ùÓMs   �B£BµBÂBc                  óª  — t        j                  ddg¬«      } | j                  g d¢d¬«      }t        j                  t        j
                  d«      d«      j                  dd	«      }|j                  |d
g d¢dd¬«      }dx}}|j                  | |g«       |j                  | |g«       |j                  g «       |j                  g «       t        j                  «       }| j                  |d¬«       |j                  d«       t        j                   |«      }t#        |d d …df   «      \  }}}	}
t#        |d d …df   «      \  }}}	}
|dk7  sJ d«       ‚y )Nr8   ©r`   r   F)Úframeoné   é   r   r  r»   ©éöÿÿÿr{   r^  r{   r?   Úgray)rf   r  r#   Úcmapr9   )r   r8   r   )Ú	facecolorr   rg   r   z.Expected a non-green edge - but sadly, it was.)r&   rh   Úadd_axesr'   Útiler(   r)   r+   rŽ   r�   Ú
set_xticksÚ
set_yticksrr   rs   rt   ru   rv   r¦   )r/   rw   rµ   r×   rk   rl   r¿   ÚrÚgÚbÚas              r3   Útest_image_edgesrj  ü  s(  € Ü
�*‰*˜a ˜VÔ
$€CØ	�‰’l¨EˆÓ	2€Bä�7‰7”2—9‘9˜R“= "Ó%×-Ñ-¨b°!Ó4€Dà	�‰�4 Ò0BØ!'¨fð 
ó 
6€Bð €I€AˆØ‡K�K�!��Q�ÔØ‡K�K�!��Q�Ôà‡M�M�"ÔØ‡M�M�"Ôä
�*‰*‹,€CØ‡K�K�˜y€KÔ)à‡H�HˆQ„Kä	�‰�C‹€BÜ�Rš˜1˜‘X“�J€A€qˆ!ˆQÜ�Rš˜2˜‘Y“�J€A€qˆ!ˆQà�Š8ÐEÐEÓE‰8r5   Úimage_composite_backgroundc                  ó  — t        j                  «       \  } }t        j                  d«      j	                  dd«      }|j                  |g d¢¬«       |j                  |g d¢¬«       |j                  d«       |j                  ddg«       y )	Nr[  r:   r    )r   r9   r\  r   r  )r:   r   r\  r   )r8   r   r   rë   r   )r&   r*   r'   r(   r)   r+   Úset_facecolorrŽ   r;  s      r3   Útest_image_composite_backgroundrn    sk   € ô �l‰l‹n�G€CˆÜ
�)‰)�B‹-×
Ñ
  1Ó
%€CØ‡I�Iˆcš-€IÔ(Ø‡I�Iˆcš-€IÔ(Ø×Ñ�^Ô$Ø‡K�K��B�Õr5   Úimage_composite_alphac                  ó®  — t        j                  «       \  } }t        j                  d«      }d|dd…dd…df<   t        j                  t        j
                  ddd«      t        j
                  ddd«      ddd…   f«      |dd…dd…df<   t        j                  d	«      }d|dd…dd…df<   d|dd…dd…df<   t        j                  t        j
                  ddd«      t        j
                  ddd«      ddd…   f«      dd…t        j                  f   |dd…dd…df<   |j                  |g d
¢d¬«       |j                  |g d¢d¬«       |j                  |g d¢¬«       |j                  |g d¢¬«       |j                  |g d¢d¬«       |j                  |g d¢d¬«       |j                  d«       |j                  ddg«       |j                  ddg«       y)z{
    Tests that the alpha value is recognized and correctly applied in the
    process of compositing images together.
    )é   é   r:   r8   Nr   çš™™™™™ñ?çš™™™™™¹?rg   r    )rr  rq  r:   )r8   r9   r   r   ç333333Ó?)r  rê   )r9   r    r   r   ç333333ã?)r    r:   r   r   r  )r   r   r8   r9   )r   r   r9   r    )r   r   r    r:   )r   rë   r   r8   r   )r&   r*   r'   r@   ró   r(   r  r+   rm  rŽ   r�   )r/   rw   r½   Úarr2s       r3   Útest_image_composite_alpharx  #  s‰  € ô �l‰l‹n�G€CˆÜ
�(‰(�;Ó
€CØ€CŠŠ1ˆaˆ�LÜ—>‘>Ü	�‰�1�c˜3Ó	¤§¡¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>€CŠŠ1ˆaˆ�Lä�8‰8�KÓ €DØ€DŠŠAˆqˆ�MØ€DŠŠAˆqˆ�MÜ—N‘NÜ	�‰�1�c˜3Ó	¤§¡¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>Ú>?ÄÇÁ¸mñM€DŠŠAˆqˆ�Mà‡I�Iˆcš,¨c€IÔ2Ø‡I�Iˆcš,¨c€IÔ2Ø‡I�Iˆcš,€IÔ'Ø‡I�Iˆdš<€IÔ(Ø‡I�Iˆdš<¨s€IÔ3Ø‡I�Iˆdš<¨s€IÔ3Ø×Ñ�^Ô$Ø‡K�K��A�ÔØ‡K�K��A�Õr5   c                 ó„  — t        j                  d«      j                  d«      }| |fD ]Ž  }|j                  «       }|j	                  |t
        j                  j                  g d¢«      |j                  f¬«       |j	                  |t
        j                  j                  g d¢«      |j                  f¬«       Œ� d|_	        y )Nr  ©r    r    )r&  ©r   r8   )r8   r   )Ú	clip_path)r0  ©r8   r9   )r9   r8   T)
r'   r(   r)   Úadd_subplotr+   Úmplr¢   r   r	  rZ   )r‡   rˆ   Útr/   rw   s        r3   Ú#test_clip_path_disables_compositingr�  >  sœ   € ä
�	‰	�!‹×Ñ˜VÓ$€AØ˜'Ð"ò /ˆØ�_‰_ÓˆØ
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ô 	/à
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	õ 	/ð	/ð !%€GÕr5   Úrasterize_10dpi)rK   r6   r   c                  óþ  — t        j                  ddgddgg«      } t        j                  ddd¬«      \  }}|d   j	                  | «       |d   j                  ddgddgdd	¬
«       |d   j                  dd¬«       |d   j                  ddgddgd¬«       |d   j                  dd¬«       |D ]B  }|j                  g «       |j                  g «       |j                  d d  j                  d«       ŒD dt        d<   y )Nr8   r9   r    r:   )r    r8   rY  r   g      4@T)Ú	linewidthÚ
rasterizedr{  )rg   r9   ©ÚxlimÚylim)r„  Fr{   rM   )r'   Úasarrayr&   r*   r+   rq   Úsetrd  re  ÚspinesÚset_visibler   )rF   r/   r›   rw   s       r3   Útest_rasterize_dpir�  J  sö   € ô �*‰*�q˜!�f˜q !˜fÐ%Ó
&€Cä�|‰|˜A˜q¨&Ô1�H€Cˆàˆ�F‡M�M�#Ôàˆ�F‡K�K��A�˜˜A˜¨#¸$€KÔ?Øˆ�F‡J�J�F €JÔ)àˆ�F‡K�K��A�˜˜A˜¨#€KÔ.Øˆ�F‡J�J�F €JÔ)ð ò (ˆØ
�‰�bÔØ
�‰�bÔØ
�	‰	‘!ˆ× Ñ  Õ'ð(ð
 !„Hˆ]Òr5   Úbbox_image_invertedc            	      óŒ  — t        j                  d«      j                  d«      } t        j                  «       \  }}t        t        t        ddgddgg«      |j                  «      d¬«      }|j                  | «       |j                  d«       |j                  dd«       |j                  dd«       |j                  |«       t        j                  d«      } t        t        t        dd	gd
dgg«      |j                  j                   «      d¬«      }|j                  | «       |j                  d«       |j                  |«       y )Nr   r8  r   r!   r"   Fr{   rt  çš™™™™™É?ru  r  )r'   r(   r)   r&   r*   r   r   r   r	  r  Úset_clip_onrŽ   r�   Ú
add_artistÚidentityrh   ÚtransFigure)r
   r/   rw   Úbbox_ims       r3   Útest_bbox_image_invertedr–  i  s
  € ô �I‰I�c‹N×"Ñ" 8Ó,€Eä�l‰l‹n�G€CˆÜÜœ˜s C˜j¨1¨a¨&Ð1Ó2°B·L±LÓAØô!€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡K�K��3ÔØ‡K�K��3ÔØ‡M�M�'Ôä�K‰K˜‹O€Eäœ¬¨s°C¨j¸3À¸+Ð-FÓ(GØ(*¯	©	×(=Ñ(=ó?à&/ô1€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡M�M�'Õr5   c                  ó|  — t        j                  g d¢g d¢g d¢g d¢g«      } t        j                  dd¬«      \  }}|j	                  g d¢«       |j                  d	d
«       |j                  d	d
«       |j                  | g d¢d¬«      }|j                  j                  «        |j                  j                  }|j                  |«      }t        |j                  «       ddgddgg«       t        j                  dd¬«      \  }}|j	                  g d¢«       |j                  d
d«       |j                  d	d
«       |j                  | g d¢d|j                  ¬«      }|j                  j                  «        |j                  j                  }|j                  |«      }t        |j                  «       ddgddgg«       y )N)r  rð   ré   rð   )rt  gÍÌÌÌÌÌä?rë   çš™™™™™Ù?)rv  ru  ç        r�  )çffffffæ?çÍÌÌÌÌÌì?r˜  rv  r8  r   r_   r   r   r8   )r˜  rš  r�  r›  r!   )r  r#   i�  r@  i¼  i„  r9   )r  r#   r  )r'   rX   r&   r*   r†   rŽ   r�   r+   r
  ÚdrawÚrendererÚget_window_extentr   Ú
get_pointsÚ	transAxes)r×   r/   rw   Úim_objr�  Úim_bboxs         r3   Ú$test_get_window_extent_for_AxisImager£  ‚  sx  € ô
 
�‰Ò*Ò,AÚ'Ò)=ð?ó 
@€Bä�l‰l 8°Ô5�G€CˆØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yð ó B€Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÔFä�l‰l 8°Ô5�G€CˆØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yØ—,‘,ð ó  €Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÕFr5   zzoom_and_clip_upper_origin.pngc                  óè   — t        j                  d«      } | j                  d«      } t        j                  «       \  }}|j                  | «       |j                  dd«       |j                  dd«       y )Nr   r8  ç       @ç      à¿)r'   r(   r)   r&   r*   r+   r�   rŽ   )r
   r/   rw   s      r3   Útest_zoom_and_clip_upper_originr§  ¥  sV   € ô �I‰I�c‹N€EØ�M‰M˜(Ó#€Eä�l‰l‹n�G€CˆØ‡I�IˆeÔØ‡K�K��TÔØ‡K�K��cÕr5   c                  ód   — t        j                  «       } t        | «      }|j                  d«       y )NÚBlues)r&   Úgcar   Úset_cmap©rw   r×   s     r3   Útest_nonuniformimage_setcmapr­  ±  s#   € Ü	�‰‹€BÜ	˜Ó	€BØ‡K�K�Õr5   c                  óˆ   — t        j                  «       } t        | «      }|j                  t        j                  «       «       y ©N)r&   rª  r   Úset_normÚ	Normalizer¬  s     r3   Útest_nonuniformimage_setnormr²  ·  s)   € Ü	�‰‹€BÜ	˜Ó	€BØ‡K�K”—‘“Õ r5   c                  óN  — t        j                  dd¬«      } t        d«      D ]#  }t        j                  ddd«      dz  | |d d …f<   Œ% t	        j
                  dd«      }|j                  | j                  «       «       t        j                  «       \  }}|j                  |«       y )	Nr8  rC   r<   r{   r™  ré   rU   ÚL)r'   rA   rQ  Úlinspacer   ÚnewÚputdataÚflattenr&   r*   r+   )ÚimdÚir×   r/   rw   s        r3   Útest_jpeg_2dr»  ½  s€   € ä
�'‰'�( 'Ô
*€CÜ�2‹Yò 4ˆÜ—K‘K  S¨"Ó-°Ñ3ˆˆAŠqˆDŠ	ð4ä	�‰�3˜Ó	!€BØ‡J�Jˆs�{‰{‹}ÔÜ�l‰l‹n�G€CˆØ‡I�Iˆb…Mr5   c                  óð  — t        j                  dd¬«       t        j                  dt        ¬«      } t        j
                  ddd«      | d<   t        j                  | «       t        j                  «       }t        j                  |d	d
d¬«       |j                  d«       t        j                  |«      }t        |j                  d«      «      }d|cxk  rdk  sJ ‚ J ‚|j                  d«      }|dk(  sJ ‚y )Nr0  é,  r_   )r½  r½  r:   r<   r™  ré   r>   Úredr¬   )ra  r°   ra   r   é   é¯   éÒ   r&  )éþ   r   r   )r&   rh   r'   r@   Úfloatrµ  r[   rr   rs   rt   ru   r   r˜   rÞ   Ú	getcolorsÚgetpixel)r×   rÊ   r
   Ú
num_colorsÚcorner_pixels        r3   Útest_jpeg_alpharÈ  È  sÄ   € Ü‡J�J�v 3Õ'ô 
�‰�-¤uÔ	-€BÜ—‘˜S # sÓ+€B€v�Jä‡L�L�Ôä�:‰:‹<€DÜ‡K�K� ¨e¸Õ=à‡I�Iˆa„LÜ�J‰J�tÓ€Eô �U—_‘_ SÓ)Ó*€JØ�*Ô# Ò#Ð#Ñ#Ð#Ð#à—>‘> &Ó)€LØ˜;Ò&Ð&Ñ&r5   c                  óô   — t        j                  «       } t        | «      }t        j                  dt
        ¬«      j                  d«      }|j                  |«       d|d<   |j                  d   dk(  sJ d«       ‚y ©Nr[  r<   ©r:   r    çÍÌÌÌÌÌ#@r&  r   úvalue changed)	r&   rª  r   r'   r(   rÃ  r)   r  Ú_A©rw   r×   rm   s      r3   Útest_axesimage_setdatarÐ  à  s`   € Ü	�‰‹€BÜ	�2‹€BÜ
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÒÐ,˜_Ó,Ñr5   c                  óô   — t        j                  «       } t        | «      }t        j                  dt
        ¬«      j                  d«      }|j                  |«       d|d<   |j                  d   dk(  sJ d«       ‚y rÊ  )	r&   Úgcfr   r'   r(   rÃ  r)   r  rÎ  )r/   r×   rm   s      r3   Útest_figureimage_setdatarÓ  é  sa   € Ü
�'‰'‹)€CÜ	�SÓ	€BÜ
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÒÐ,˜_Ó,Ñr5   zimage_cls,x,y,aç      @ç      @g      (@rË  g      @)r    r9   c                 óp  — t        j                  «       } | |«      }|j                  |||«       dx|d<   x|d<   |d<   |j                  d   |j                  d   cxk(  r|j
                  d   cxk(  rdk(  sJ d«       ‚ J d«       ‚|j                  |||j                  g |j                  ¢d‘­«      «       y )NrÌ  r   r&  rÍ  rg   )r&   rª  r  rÎ  Ú_AxÚ_Ayr)   r³   )Ú	image_clsrk   rl   ri  rw   r×   s         r3   Útest_setdata_xyarÚ  ò  s¨   € ô 
�‰‹€BÙ	�2‹€BØ‡K�K��1�aÔØÐ€A€a�DÐˆ1ˆQ‰4�!�D‘'Ø�5‰5�‰;˜"Ÿ&™& ™)Ô5 r§v¡v¨a¡yÔ5°AÒ5ÐF°ÓFÑ5ÐF°ÓFÐ5Ø‡K�K��1�a—i‘i  !§'¡' ¨2¡Ó/Õ0r5   c                  óŠ  — ddl m}  t        j                  j	                  d«       t        j                  j                  dd«      }t        j                  dd«      \  }}|d   j                  |«      }|d   j                  |«      }t        j                  ||d   ¬«       t        j                  ||d   ¬«       t        j                  «       }t        j                  |d¬«       t        j                  |j                  «       «      }| j                  |«      }d }|j                  d	«      D ]  }	|€|	d
   }Œ|	d
   |k7  sŒJ ‚ y )Nr   )ÚElementTreer{   r8   r9   )rw   rJ   r±   r
   r1  )Ú	xml.etreerÜ  r'   r�   r‚   rƒ   r&   r*   Ú
pcolormeshÚcolorbarrr   rs   rt   ÚgetvalueÚparseÚiter)
rÜ  rµ   r/   rw   Úp1Úp2rÊ   Útreer1  r
   s
             r3   Útest_minimized_rasterizedræ    s  € õ &ä‡I�I‡N�N�1ÔÜ�9‰9�>‰>˜"˜bÓ!€Dä�l‰l˜1˜aÓ �G€CˆØ	ˆA‰×	Ñ	˜$Ó	€BØ	ˆA‰×	Ñ	˜$Ó	€Bä‡L�L�˜˜1™ÕÜ‡L�L�˜˜1™Õä�:‰:‹<€DÜ‡K�K�˜UÕ#ä�:‰:�d—m‘m“oÓ&€DØ×Ñ˜TÓ"€DØ€EØ—‘˜7Ó#ò ˆØˆ=Ø˜'‘N‰Eà�W‰~ Ó&Ø�uñr5   c                  óÊ  — t        t        «      j                  dz  } dt        j                  dk(  rdndz   | j                  «       j                  «       z   }t        j                  t        d¬«      5  t        j                  |«       d d d «       t        j                  j                  |«      5 }t        j                  |«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)Nr“   zfile:Úwin32z///Ú zPlease open the URL©Úmatch)r   r–   r—   ÚsysÚplatformÚresolveÚas_posixrB  rC  Ú
ValueErrorr&   rv   ÚurllibÚrequestÚurlopen)r¢   ÚurlÚfiles      r3   Útest_load_from_urlrö  #  s³   € Ü”‹>× Ñ Ð#JÑJ€DØÜ—|‘| wÒ.‰e°Bñ8à�\‰\‹^×$Ñ$Ó&ñ'€Cô 
�‰”zÐ)>Ô	?ñ Ü�
‰
�3Œ÷ä	�‰×	Ñ	 Ó	$ð ¨Ü�
‰
�4Ô÷ð ÷ð ú÷ð ús   Á1CÂ.CÃCÃC"Úlog_scale_imagec                  óÂ   — t        j                  d«      } d| d d d…<   t        j                  «       \  }}|j	                  | g d¢dddd¬«       |j                  d	¬
«       y )Nr8  r8   r9   )r8   r   r8   r   Úviridisrg   rP  )r  r`  ÚvmaxÚvminÚaspectÚlog)Úyscale)r'   r@   r&   r*   r+   rŠ  )rì   r/   rw   s      r3   Útest_log_scale_imagerÿ  .  sY   € ä
�‰�Ó€AØ€A�cˆ€c�Fä�l‰l‹n�G€CˆØ‡I�IˆaÒ(¨y¸qÀrØð ô à‡F�F�%€FÕr5   Úrotate_imagec                  óö  — d} t        j                  dd| «      x}}t        j                  ||«      \  }}t        j                  |dz  |dz  z    dz  «      dt         j                  z  z  }t        j                  |dz
  dz  dz  |dz
  dz  dz  z    dz  «      dt         j                  z  dz  dz  z  }||z
  }t        j                  dd«      \  }}	|	j                  |dd	d
g d¢d¬«      }
t        «       j                  d«      |	j                  z   }|
j                  |«       |
j                  «       \  }}}}|	j                  |||||g|||||gdd|¬«       |	j                  dd«       |	j                  dd«       y )Nr  ç      ÀrÔ  r9   r8   r  rë   r?   rù  rc   )éþÿÿÿr:   éýÿÿÿr9   T)r#   r`  rf   r  Úclip_oné   zr--r    )Úlwr  r   r   r:   )r'   r(   ÚmeshgridÚexpÚpir&   r*   r+   r   Ú
rotate_degr	  Úset_transformÚ
get_extentrq   rŽ   r�   )Údeltark   rl   r.   ÚYÚZ1ÚZ2rì   r/   r0   Úim1Útrans_data2Úx1Úx2Úy1Úy2s                   r3   Útest_rotate_imager  9  s}  € à€EÜ�I‰I�d˜C Ó'Ð'€AˆÜ�;‰;�q˜!Ó�D€A€qÜ	�‰�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&‰&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
ˆR‰€Aä�|‰|˜A˜qÓ!�H€CˆØ
�*‰*�Q f°9Ø#Ú*°Dð ó :€Cô “*×'Ñ'¨Ó+¨c¯m©mÑ;€KØ×Ñ�kÔ"ð —^‘^Ó%�N€BˆˆB�à‡H�Hˆb�"�b˜"˜bÐ! B¨¨B°°BÐ#7¸À1Ø"ð ô $ð ‡L�L��AÔØ‡L�L��AÕr5   c                  ó  — t        j                  «       } t        j                  d«      }t	        j
                  | |d¬«       | j                  d«       t	        j                  | «      }|j                  d d |j                  k(  sJ ‚y )N)iá  iA  r\   r±   r   r9   )	rr   rs   r'   r@   r&   r²   ru   rv   r³   )rÊ   r×   rF   s      r3   Útest_image_preserve_sizer  U  s`   € Ü�:‰:‹<€Dä	�‰�*Ó	€BÜ‡J�Jˆt�R Õ&à‡I�Iˆa„LÜ
�*‰*�TÓ
€Cà�9‰9�R�aˆ=˜BŸH™HÒ$Ð$Ñ$r5   c                  ó.  — d} t        j                  | t        «      }t        j                  | | fd¬«      }|j                  d«      }|j                  «        |j                  |ddd¬«       t        j                  «       }|j                  |d	¬
«       |j                  d«       t        j                  |«      }|j                  dk(  sJ ‚t        t        j                  |d d …d d …df   t         «      t        j                  | t         «      d d d…   «       y )Né   F)r`   rZ  )r™  r™  ré   ré   r!   rc   rP  )r#   rf   rü  r8   )ra   r   )r  r  r:   rg   )r'   r“  rÃ  r&   rh   rb  Úset_axis_offr+   rr   rs   rt   ru   rv   r³   r   r‰  Úbool)Únrµ   r/   rw   rÊ   rF   s         r3   Útest_image_preserve_size2r   a  sÔ   € Ø	€AÜ�;‰;�qœ%Ó €Dä
�*‰*˜a ˜V¨UÔ
3€CØ	�‰Ð*Ó	+€BØ‡O�OÔØ‡I�Iˆd )°GÀF€IÔKÜ�:‰:‹<€DØ‡K�K�˜!€KÔà‡I�Iˆa„LÜ
�*‰*�TÓ
€Cà�9‰9˜	Ò!Ð!Ð!ä”r—z‘z #¢aª¨A g¡,´Ó5Ü—{‘{ 1¤dÓ+©D¨b¨DÑ1õ3r5   zmask_image_over_under.pngré   )r6   Útolc            
      óÒ  — dt         j                  d<   d} t        j                  dd| «      x}}t        j                  ||«      \  }}t        j
                  |dz  |dz  z    dz  «      dt        j                  z  z  }t        j
                  |dz
  dz  dz  |dz
  d	z  dz  z    dz  «      dt        j                  z  d	z  dz  z  }d
||z
  z  }t         j                  j                  j                  ddd¬«      }t        j                  j                  |dkD  |«      }	t        j                  dd«      \  }
\  }}|j                  |	d|t        j                  ddd¬«      dg d¢¬«      }|j!                  d«       |
j#                  |dd|d
¬«       |j                  |	d|t        j$                  g d¢dd¬«      dg d¢¬«      }|j!                  d«       |
j#                  |dd d|d
¬!«       y )"NFzpcolormesh.snapgš™™™™™™?r  rÔ  r9   r8   r  rë   r{   rf  rg  rh  ©ÚoverÚunderÚbadç333333ó?r$   g      ð¿ré   )rû  rú  Úcliprc   )r  r    r  r    )r#   r`  rO  rf   r  zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationrw   rü  r!   )rg   r¦  gš™™™™™É¿r   r�  rë   r8   r¿  )Úncolorsr(  zWith BoundaryNormÚproportional)r+  Úspacingr,  rw   rü  )r&   r   r'   r(   r  r	  r
  Úcmr_  Úwith_extremesÚmaÚmasked_wherer*   r+   r	   r±  r,   rß  ÚBoundaryNorm)r  rk   rl   r.   r  r  r  rì   ÚpaletteÚZmr/   r0   r1   r×   s                 r3   Útest_mask_image_over_underr7  u  sÞ  € ð ',„C‡L�LÐ"Ñ#à€EÜ�I‰I�d˜C Ó'Ð'€AˆÜ�;‰;�q˜!Ó�D€A€qÜ	�‰�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&‰&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
ˆB�‰G‰€Aä�f‰f�k‰k×'Ñ'¨S¸ÀÐ'ÓE€GÜ	�‰×	Ñ	˜A ™G QÓ	'€BÜ—l‘l 1 aÓ(�O€C‰ˆ#ˆsØ	�‰�B jØ Ü×)Ñ)¨t¸#ÀEÔJØ"ª>ð 
ó 
;€Bð ‡M�MÐ1Ô2Ø‡L�L�˜F°Ø ð ô $ð 
�‰�B iØ Ü×,Ñ,Ò-MØ58¸uôFà"ª>ð	 
ó 
;€Bð
 ‡M�MÐ%Ô&Ø‡L�L�˜F¨NØ)¨c¸"ð õ >r5   Ú
mask_imagec                  ó¶  — t        j                  dd«      \  } \  }}t        j                  d«      }t        j                  |dd…dd…f<   |j                  |d¬«       t        j                  dt        ¬«      }d|dd…dd…f<   t        j                  j                  t        j                  dt        j                  ¬«      |«      }|j                  |d¬«       y )Nr8   r9   r;   r!   r"   r<   T)r&   r*   r'   rA   Únanr+   r@   r  r2  Úmasked_arrayr¥   )r/   r0   r1   r‹   s       r3   Útest_mask_imager<  —  s¬   € ô —l‘l 1 aÓ(�O€C‰ˆ#ˆsä
�‰�‹€AÜ—&‘&€A€aˆ€cˆ1ˆQˆ3€h�Kà‡J�Jˆq 	€JÔ*ä
�‰�œtÔ$€AØ€A€aˆ€cˆ1ˆQˆ3€h�KÜ
�‰×Ñœ2Ÿ7™7 6´·±Ô;¸QÓ?€Aà‡J�Jˆq 	€JÕ*r5   c                  óÐ   — t        j                  dt         j                  «      } t        j                  «       \  }}|j                  | «       |j                  j                  «        y )Nr^   )r'   rô   r:  r&   r*   r+   r
  Ú	draw_idle)rµ   r/   rw   s      r3   Útest_mask_image_allr?  ©  s@   € ä�7‰7�6œ2Ÿ6™6Ó"€DÜ�l‰l‹n�G€CˆØ‡I�Iˆd„OØ‡J�J×ÑÕr5   zimshow_endianess.pngc                  ót  — t        j                  d«      } t        j                  | | «      \  }}t        j                  |dz
  |dz
  «      }t	        j
                  dd«      \  }\  }}t        ddd¬«      } |j                  |j                  d	«      fi |¤Ž  |j                  |j                  d
«      fi |¤Ž y )Nr{   r   r8   r9   rc   r!   rù  )rf   r#   r`  z<f8z>f8)	r'   r(   r  Úhypotr&   r*   Údictr+   rÉ   )rk   r.   r  rì   r/   r0   r1   Úkwargss           r3   Útest_imshow_endianessrD  ±  s—   € ä
�	‰	�"‹€AÜ�;‰;�q˜!Ó�D€A€qÜ
�‰��Q‘˜˜A™Ó€Aä—l‘l 1 aÓ(�O€C‰ˆ#ˆsä˜°	À	ÔJ€Fà€C‡J�Jˆq�x‰x˜‹Ñ) &Ò)Ø€C‡J�Jˆq�x‰x˜‹Ñ) &Ó)r5   Úimshow_masked_interpolationÚx86_64r  )r!  r6   r   c                  óì  — t         j                  d   j                  ddd¬«      } d}t        j                  d||z  dz
  ¬	«      }t        j                  ||z  t        ¬
«      j                  ||«      }d|d<   d|d<   t
        j                  |d<   t        j                  |«      j                  d«      }d|d<   t
        j                  j                  ||«      }t        j                  dd«      \  }}t!        t"        j$                  «      }|j'                  d«       t)        ||j+                  «       «      D ]<  \  }}	|	j-                  |«       |	j/                  ||| |¬«       |	j1                  d«       Œ> y )Nrù  rf  rh  rã   r#  r   r   r8   ©rû  rú  r<   rg   r;   g     jø@)r\  r   )r\  r\  r  T)r   r\  r    r   r€   )rO  r`  r#   Úoff)r  Ú	colormapsr1  r	   r±  r'   r(   rÃ  r)   ÚinfÚ
zeros_likerÉ   r2  r;  r&   r*   Úsortedr¾   Ú	_interpd_ÚremoveÚzipÚravelr,   r+   rñ   )
r`  ÚNr  rµ   Úmaskr/   Úax_gridÚinterpsÚinterprw   s
             r3   Ú test_imshow_masked_interpolationrW  ¿  s:  € ô
 �=‰=˜Ñ#×1Ñ1°sÀ#È3Ð1ÓO€Dà
€AÜ×Ñ˜a a¨¡c¨!¡eÔ,€Aä�9‰9�Q�q‘S¤Ô&×.Ñ.¨q°!Ó4€Dà€Dˆ�Jð €Dˆ�Kô —6‘6€Dˆ�Lä�=‰=˜Ó×%Ñ% fÓ-€DØ€Dˆ�Kä�5‰5×Ñ˜d DÓ)€Dä—<‘<  1Ó%�L€CˆÜ”V×%Ñ%Ó&€GØ‡N�N�=Ô!ä˜' 7§=¡=£?Ó3ò ‰
ˆ�Ø
�‰�VÔØ
�	‰	�$˜Q T¸ˆ	Ô@Ø
�‰��ñr5   c                  óV   — t        j                  ddgdt        j                  gg«       y )Nr8   r9   r    )r&   r+   r'   r:  © r5   r3   Útest_imshow_no_warn_invalidrZ  ã  s   € Ü‡J�J��A�˜œBŸF™F˜Ð$Õ%r5   r=   zu2 u4 i2 i4 i8 f4 f8c                 óD  — t        j                  d| ¬«      j                  d«      }| j                  dk7  r|dz  }|dk  }|dkD  }| j                  dk(  r|dz  }t	        j
                  «       \  }}|j                  |«      j                  «       }||   dk(  j                  «       sJ ‚| j                  dk(  r4||   d	k(  j                  «       sJ ‚|j                  j                  dk(  sJ ‚y ||   dk(  j                  «       sJ ‚|j                  t         j                  k(  sJ ‚y )
Nr½  r<   )r{   r{   r    Úur{   r   rU   Úfr8   )r'   r(   r)   Úkindr&   r*   r+   Ú	get_arrayÚallr=   rC   )r=   r½   Útoo_lowÚtoo_highÚ_rw   Úouts          r3   Ú$test_imshow_clips_rgb_to_valid_rangere  ç  s	  € ô �)‰)�C˜uÔ
%×
-Ñ
-¨kÓ
:€CØ‡z�z�SÒØˆr‰	ˆØ�A‰g€GØ�S‰y€HØ‡z�z�SÒØ�C‰iˆÜ�L‰L‹N�E€A€rØ
�)‰)�C‹.×
"Ñ
"Ó
$€CØ�‰L˜AÑ×"Ñ"Ô$Ð$Ð$Ø‡z�z�SÒØ�H‘ Ñ"×'Ñ'Ô)Ð)Ð)Ø�y‰y�~‰~ Ò$Ð$Ñ$à�H‘ Ñ$×)Ñ)Ô+Ð+Ð+Ø�y‰yœBŸH™HÒ$Ð$Ñ$r5   zimshow_flatfield.pngc                  ó¢   — t        j                  «       \  } }|j                  t        j                  d«      d¬«      }|j                  dd«       y )Nr;   r!   r"   rë   r  )r&   r*   r+   r'   rA   Úset_clim©r/   rw   r×   s      r3   Útest_imshow_flatfieldri  ü  s9   € ä�l‰l‹n�G€CˆØ	�‰”2—7‘7˜6“?°)ˆÓ	<€BØ‡K�K��CÕr5   zimshow_bignumbers.pngc                  óà   — dt         d<   t        j                  «       \  } }t        j                  g d¢g d¢gt        j
                  ¬«      }|j                  |«      }|j                  dd«       y )Nr!   úimage.interpolation)r8   r9   g   ¢”mB)r    r8   r:   r<   r   r   )r   r&   r*   r'   rX   Úuint64r+   rg  ©r/   rw   rF   Úpcs       r3   Útest_imshow_bignumbersro    sR   € à&/„HÐ"Ñ#ô �l‰l‹n�G€CˆÜ
�(‰(’L¢)Ð,´B·I±IÔ
>€CØ	�‰�3‹€BØ‡K�K��1Õr5   zimshow_bignumbers_real.pngc                  óÀ   — dt         d<   t        j                  «       \  } }t        j                  g d¢g d¢g«      }|j                  |«      }|j                  dd«       y )Nr!   rk  )r¥  ré   g’ÕMÏð€D)rÕ  ré   rÔ  r   r   )r   r&   r*   r'   rX   r+   rg  rm  s       r3   Útest_imshow_bignumbers_realrq    sN   € ð '0„HÐ"Ñ#ô �l‰l‹n�G€CˆÜ
�(‰(’O¢\Ð2Ó
3€CØ	�‰�3‹€BØ‡K�K��1Õr5   Ú	make_normc                  ó,   — t        j                  d«      S ©Nr8   )r	   Ú
SymLogNormrY  r5   r3   ú<lambda>rv    s   € ŒV×Ñ˜qÓ!€ r5   c                  ó,   — t        j                  d«      S rt  )r	   Ú	PowerNormrY  r5   r3   rv  rv    s   € ŒV×Ñ˜aÓ € r5   c                 óÌ  — t        j                  «       \  }}t        j                  t        d¬«      5  |j                  g g | «       ¬«      }d d d «       j                  g d¢«       |j                  j                  «        t        j                  t        «      5  |j                  |j                  j                  «       «       d d d «       y # 1 sw Y   Œ‚xY w# 1 sw Y   y xY w)Nz.Attempting to set identical low and high xlimsrê  ©rO  )éûÿÿÿr   r{  r   )r&   r*   rB  ÚwarnsÚUserWarningr+   Ú
set_extentr
  rœ  rC  ÚRuntimeErrorÚ
make_imageÚget_renderer)rr  r/   rw   r×   s       r3   Útest_empty_imshowr‚    s«   € ô �l‰l‹n�G€CˆÜ	�‰”kØLô
Nñ /à�Y‰Y˜�t¡)£+ˆYÓ.ˆ÷/ð ‡M�M’.Ô!Ø‡J�J‡O�OÔä	�‰”|Ó	$ñ 1Ø
�‰�c—j‘j×-Ñ-Ó/Ô0÷1ð 1÷/ð /ú÷1ð 1ús   ³CÂ*CÃCÃC#c                  óÎ   — t        j                  «       \  } }|j                  t        j                  dt        j
                  ¬«      «       | j                  j                  «        y )Nrz  r<   )r&   r*   r+   r'   r@   Úfloat16r
  rœ  ©r/   rw   s     r3   Útest_imshow_float16r†  ,  s:   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h�v¤R§Z¡ZÔ0Ô1à‡J�J‡O�OÕr5   c                  ó¤  — t        j                  «       \  } }|j                  t        j                  dt        j
                  ¬«      «       t        j                  t        j
                  t        j                  d«      r
t        «       nt        j                  t        «      5  | j                  j                  «        d d d «       y # 1 sw Y   y xY w)Nrz  r<   Úequiv)r&   r*   r+   r'   r@   Ú
longdoubleÚcan_castÚfloat64r   rB  r|  r}  r
  rœ  r…  s     r3   Útest_imshow_float128rŒ  3  sy   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h�v¤R§]¡]Ô3Ô4ÜŸ™¤R§]¡]´B·J±JÀÔHŒ)Œ+Ü�|‰|œKÓ(ñð 	�
‰
�‰Ô÷÷ ñ ús   Â"CÃCc                  ó’   — t        j                  «       \  } }|j                  t        j                  ddgddggt
        ¬«      «       y )NTFr<   )r&   r*   r+   r'   rX   r  r…  s     r3   Útest_imshow_boolrŽ  <  s5   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h˜˜u˜¨¨t }Ð5¼TÔBÕCr5   c                  óÌ   — t        j                  «       \  } }|j                  t        j                  dt        j
                  «      «       | j                  j                  «        y )Nr8  )r&   r*   r+   r'   rô   r:  r
  rœ  r…  s     r3   Útest_full_invalidr�  A  s:   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�g‰g�h¤§¡Ó'Ô(à‡J�J‡O�OÕr5   zfmt,counted)rÂ   s    colorimage)rJ   s   <imagezcomposite_image,count)Tr8   )Fr9   c                 ó(  — t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}t        j                  |dz  «      }t	        j
                  «       \  }}|j                  dd«       |j                  |g d¢¬«       |j                  |d d d	…   g d
¢¬«       |t        j                  d<   t        j                  «       }	|j                  |	| ¬«       |	j                  «       j                  |«      |k(  sJ ‚y )Nr{  r   r8   r9   r   r    ©r   r8   r   r8   r  rg   )r9   r    r   r8   zimage.composite_imager±   )r'   r  r(   rj   r&   r*   rŽ   r+   r   rr   rs   rt   rà  Úcount)
r«   ÚcountedÚcomposite_imager“  r.   r  rì   r/   rw   r¿   s
             r3   Útest_compositer–  H  sÑ   € ô �;‰;”r—y‘y  Q¨Ó*¬B¯I©I°b¸!¸QÓ,?Ó@�D€A€qÜ
�‰ˆq�A‰v‹€Aä�l‰l‹n�G€CˆØ‡K�K��1ÔØ‡I�Iˆaš€IÔ%Ø‡I�Iˆa‘�"�‰gšl€IÔ+Ø,;„C‡L�LÐ(Ñ)Ü
�*‰*‹,€CØ‡K�K�˜C€KÔ Ø�<‰<‹>×Ñ Ó(¨EÒ1Ð1Ñ1r5   c                  óô   — t        j                  «       \  } }|j                  dggd¬«       |j                  «        |j	                  «        |j                  «       |j                  «       cxk(  rdk(  sJ ‚ J ‚y )Nr   r’  r  r{  )r&   r*   r+   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr…  s     r3   Ú
test_relimrœ  [  s\   € Ü�l‰l‹n�G€CˆØ‡I�I�ˆsˆe˜L€IÔ)Ø‡H�H„JØ‡L�L„NØ�;‰;‹=˜BŸK™K›MÔ3¨VÒ3Ð3Ñ3Ð3Ñ3r5   c                  ór  — t        j                  «       \  } }|j                  «        |j                  ddgddggdddd¬«      }|j	                  dd¬«       | j
                  j                  «        t        j                  | j
                  j                  «       «      d	d d
…f   dk(  j                  «       sJ ‚y )Nr   rP  r]  r_  F)rü  r  r`  r  r{  r†  .r    )r&   r*   r  r+   rŠ  r
  rœ  r'   rX   Úbuffer_rgbar`  rh  s      r3   Útest_unclippedrŸ  c  s¡   € Ü�l‰l‹n�G€CˆØ‡O�OÔØ	�‰�Q˜�F˜Q ˜FÐ#¨FÐ;MØ¨ð 
ó 
/€Bà‡F�F�˜V€FÔ$Ø‡J�J‡O�OÔô �H‰H�S—Z‘Z×+Ñ+Ó-Ó.¨s°B°Q°B¨wÑ7¸1Ñ<×AÑAÔCÐCÑCr5   c                  ó6  — t        j                  d«      \  } }|D ]  }|j                  «        Œ |d   j                  ddgddggdd¬«      }|j	                  d «       |j                  |d   j                  «       t        j                  «       }| j                  |d¬	«       h |j                  «       £d
hk(  sJ ‚|d   j                  d¬«       t        j                  «       }| j                  |d¬	«       |j                  «       |j                  «       k7  sJ ‚y )Nr9   r8   r   r    rP  r’  )rü  r  Úrgbar±   rU   )rg   r   )rˆ  )r&   r*   r  r+   r)  Úset_clip_boxÚbboxrr   rs   rt   rà  rŠ  )r/   r›   rw   r×   Ú
buf_beforeÚ	buf_afters         r3   Útest_respects_bboxr¦  o  sû   € Ü�|‰|˜A‹�H€CˆØò ˆØ
�‰Õðà	ˆQ‰�‰˜˜A˜  A Ð'°¸|ˆÓ	L€BØ×Ñ�TÔð ‡O�O�C˜‘F—K‘KÔ Ü—‘“€JØ‡K�K�
 6€KÔ*Ø#ˆZ× Ñ Ó"Ð#¨ vÒ-Ð-Ð-Øˆ�F‡J�J�G€JÔÜ—
‘
“€IØ‡K�K�	 &€KÔ)Ø×ÑÓ  I×$6Ñ$6Ó$8Ò8Ð8Ñ8r5   c                  óª  — t        j                  «       \  } }|j                  t        j                  d«      «      }t        j
                  j                  dgdg¬«      }|j                  |«      dk(  sJ ‚t        j
                  j                  dgdg¬«      }|j                  |«      dk(  sJ ‚t        j                  }|j                  |«      dk(  sJ ‚y )	Nrþ   r   T©rS  r  Fz[0]z[nan])	r&   r*   r+   r'   r@   r2  r;  r!  r:  )r/   rw   r×   rµ   s       r3   Útest_image_cursor_formattingr©  �  s¶   € Ü�l‰l‹n�G€Cˆà	�‰”2—8‘8˜FÓ#Ó	$€Bä�5‰5×Ñ˜q˜c¨¨ÐÓ/€DØ× Ñ  Ó&¨$Ò.Ð.Ð.ä�5‰5×Ñ˜q˜c¨¨ÐÓ0€DØ× Ñ  Ó&¨%Ò/Ð/Ð/ä�6‰6€DØ× Ñ  Ó&¨'Ò1Ð1Ñ1r5   c                 óÐ  — t        j                  dd«      }t        j                  ||«      \  }}t        j                  d|dz
  dz  z  |dz
  z   «      }||j	                  «       z  }t
        j                  d   }| j                  «       }|j                  |||d¬	«       |j                  «       } | t        j                  «       |«      «      }	||	d
<   |j                  |	d¬«       y)zPer-pixel alpha channel test.r   r8   r  rë   r9   g[�Âõ(\ß?rù  r!   )rê   r`  r#   ).rg   r"   N)r'   rµ  r  r	  r  r  rJ  r~  r+   r	   r±  )
r‡   rˆ   rk   ÚxxÚyyÚzzrê   r`  rw   r¡  s
             r3   Útest_image_array_alphar®  �  sÍ   € ô 	�‰�A�qÓ€AÜ�[‰[˜˜AÓ�F€Bˆä	�‰�˜˜S™ Q‘Ñ'¨2°©=Ñ9Ó	:€BØ�—‘“‰M€Eä�=‰=˜Ñ#€DØ	×	Ñ	Ó	€BØ‡I�Iˆb˜ D¸	€IÔBà	×	Ñ	Ó	€BÙÐ"”× Ñ Ó" 2Ó&Ó'€DØ€Dˆ�MØ‡I�Iˆd )€IÕ,r5   c                  ó¼   — t        j                  t        d¬«      5  t        j                  t        j                  d«      ddg¬«       d d d «       y # 1 sw Y   y xY w)Nzalpha must be a float, two-drê  r^   r8   rï   )rB  rC  rD  r&   r+   r'   r@   rY  r5   r3   Ú!test_image_array_alpha_validationr°  £  sA   € Ü	�‰”yÐ(FÔ	Gñ 3Ü�
‰
”2—8‘8˜FÓ#¨A¨q¨6Õ2÷3÷ 3ñ 3ús   œ-AÁAc                  ó¨  — t        t        j                  d   «      } | j                  d¬«       t	        j
                  dd¬«      }|j                  g d¢«      }t        j                  g d¢gt        ¬	«      }|j                  |d
| dd¬«      }|j                  d«       |j                  j                  «        |j                  |j                  j                  «      d   d   }|j!                  |j#                  |dggdz  z  j$                  j'                  «       «      «      dz  j)                  t*        «      }t        j,                  ||k(  «      sJ ‚y )NÚautumn_rÚ	lightgrey)Úcolor)gffffffþ?rt  r   r_   r   )rg   rg   rg   r   r   r   r   é+   éO   é_   éB   r8   rg   rg   rg   r   r   r   é"   r<   rP  r   )rü  r`  rû  rú  rI  r8   r{   rU   )r   r  rJ  Ú	set_underr&   rh   rb  r'   rX   rÃ  r+   rñ   r
  rœ  r€  r�  r`  rO  ÚTrQ  rÉ   r„   r`  )r`  r/   rw   rµ   r×   Ú
from_imageÚdirect_computations          r3   Útest_exact_vminr¾  ¨  s  € ä”—‘˜jÑ)Ó*€DØ‡N�N˜€NÔ%ô �*‰*˜Z¨SÔ
1€CØ	�‰’lÓ	#€Bä�8‰8Ú	MÐNÜô€Dð
 
�‰�4 ¨T¸ÀˆÓ	D€BØ‡G�GˆE„NØ‡J�J‡O�OÔð —‘˜sŸz™z×2Ñ2Ó3°AÑ6°qÑ9€Jð 	�‰�—‘˜ 1 # ¨¡Ñ,×/Ñ/×5Ñ5Ó7Ó8Ó9¸CÑ?ß�fŒSƒkð ô
 �6‰6�*Ð 2Ñ2Ô3Ð3Ñ3r5   Úimage_placementc                  óT  — t        j                  «       \  } }|j                  g d¢g d¢dd¬«       t        j                  j                  d«       |j                  t        j                  j                  dd«      dd	d
dd¬«       |j                  dd«       |j                  dd«       y)zK
    The red box should line up exactly with the outside of the image.
    )r   r   r8   r8   r   )r   r8   r8   r   r   rf  rt  )r´  r  r~   rÈ   r©  r’  r?   rg   r8   )r`  r  r#   rû  rú  gš™™™™™¹¿rs  N)
r&   r*   rq   r'   r�   r‚   r+   ÚrandnrŽ   r�   r…  s     r3   Útest_image_placementrÂ  Å  s€   € ô �l‰l‹n�G€CˆØ‡G�GŠOš_°C¸C€GÔ@Ü‡I�I‡N�N�8ÔØ‡I�IŒb�i‰i�o‰o˜b "Ó%¨G¸LØ"¨°!ð ô 5à‡K�K��eÔØ‡K�K��eÕr5   c                   ó@   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zd„ Zed„ «       Zˆ xZ	S )Ú
QuantityNDc                 ó\   — t        j                  |«      j                  | «      }||_        |S r¯  )r'   r‰  ÚviewÚunits)ÚclsÚinput_arrayrÇ  Úobjs       r3   Ú__new__zQuantityND.__new__Ù  s'   € Ü�j‰j˜Ó%×*Ñ*¨3Ó/ˆØˆŒ	Øˆ
r5   c                 ó(   — t        |dd «      | _        y ©NrÇ  )ÚgetattrrÇ  )ÚselfrÊ  s     r3   Ú__array_finalize__zQuantityND.__array_finalize__Þ  s   € Ü˜S '¨4Ó0ˆ�
r5   c                 ó|   •— t        | dd «      }t        ‰| �	  |«      }t        |t        «      s|�t	        ||«      }|S rÍ  )rÎ  ÚsuperÚ__getitem__Ú
isinstancerÄ  )rÏ  ÚitemrÇ  ÚretÚ	__class__s       €r3   rÓ  zQuantityND.__getitem__á  s@   ø€ Ü˜˜g tÓ,ˆÜ‰gÑ! $Ó'ˆÜ�cœ:Ô&¨%Ð*;Ü˜S %Ó(ˆCØˆ
r5   c                 ó¨  — t        ||«      }d|v rt        S t        |«      dk(  r0|d   }t        |dd«      } |t        j                  |«      fi |¤Ž}�nXt        |«      dk(  �rC|d   }|d   }	t        |dd«      }
t        |	dd«      }|
€|n|
}
|€|
n|}|t        j
                  t        j                  fv r|
|k7  rt        ‚|
}nž|t        j                  k(  r|
› d|› �}nƒ|t        j                  k(  r	|
› d|› d	�}ng|t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  fv rd }nt        S  ||j!                  t        j"                  «      |	j!                  t        j"                  «      fi |¤Ž}nt        S |€t        j$                  |«      }|S t'        ||«      }|S )
Nrd  r8   r   rÇ  Údimensionlessr9   Ú*z/(ú))rÎ  ÚNotImplementedrÞ   r'   r‰  ÚaddÚsubtractrð  ÚmultiplyÚdivideÚgreaterÚgreater_equalÚequalÚ	not_equalÚlessÚ
less_equalrÆ  ÚndarrayrX   rÄ  )rÏ  ÚufuncÚmethodÚinputsrC  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1s               r3   Ú__array_ufunc__zQuantityND.__array_ufunc__è  s¤  € Ü�u˜fÓ%ˆØ�F‰?Ü!Ð!Üˆv‹;˜!ÒØ˜‘ˆBÜ˜2˜w¨Ó8ˆDÙœ2Ÿ:™: b›>Ñ4¨VÑ4ŠGÜ�‹[˜AÓØ˜‘ˆBØ˜‘ˆBÜ˜˜W oÓ6ˆBÜ˜˜W oÓ6ˆBØ�z‘ rˆBØ�z‘ rˆBØœŸ™¤§¡Ð-Ñ-Ø˜’8Ü$Ð$Ø‘Øœ"Ÿ+™+Ò%Ø˜˜Q˜r˜d�|‘Øœ"Ÿ)™)Ò#Ø˜˜R ˜t 1�~‘Øœ2Ÿ:™:¤r×'7Ñ'7ÜŸ8™8¤R§\¡\ÜŸ7™7¤B§M¡Mð3ñ 3ð ‘ä%Ð%Ù˜2Ÿ7™7¤2§:¡:Ó.°·±¼¿
¹
Ó0CÑNÀvÑN‰Gä!Ð!Øˆ<Ü—h‘h˜wÓ'ˆGð ˆô ! ¨$Ó/ˆGØˆr5   c                 ó@   — | j                  t        j                  «      S r¯  )rÆ  r'   rç  )rÏ  s    r3   rä   zQuantityND.v  s   € à�y‰yœŸ™Ó$Ð$r5   )
Ú__name__Ú
__module__Ú__qualname__rË  rÐ  rÓ  rò  Úpropertyrä   Ú__classcell__)r×  s   @r3   rÄ  rÄ  Ø  s,   ø„ òò
1ôò%ðN ñ%ó ô%r5   rÄ  c                  ó  — t        ddgd«      } | d d  \  }}t        j                  | j                  t        j                  ddg«      k(  «      sJ ‚| j
                  dk(  sJ ‚t        j                  ||z   j                  t        j                  dg«      k(  «      sJ ‚||z  j
                  dk(  sJ ‚||z  j
                  dk(  sJ ‚t        j                  t        «      5  |t        dd«      z    d d d «       y # 1 sw Y   y xY w)Nr8   r9   Úmr    zm*mzm/(m)Ús)	rÄ  r'   r`  rä   r‰  rÇ  rB  rC  rð  )ÚqÚq0Úq1s      r3   Útest_quantityndrÿ    sÜ   € Ü�A�q�6˜3Ó€AØ‰qˆT�F€BˆÜ�6‰6�!—#‘#œŸ™ Q¨ FÓ+Ñ+Ô,Ð,Ð,Ø�7‰7�cŠ>Ðˆ>Ü�6‰6�2˜‘7—+‘+¤§¡¨Q¨C£Ñ0Ô1Ð1Ð1Ø�‰G�?‰?˜eÒ#Ð#Ð#Ø�‰G�?‰?˜gÒ%Ð%Ð%Ü	�‰”zÓ	"ñ  Ø
ŒZ˜˜3ÓÒ÷ ÷  ñ  ús   ÃC6Ã6C?c                  óÆ   — t        t        j                  d«      d«      } t        j                  «       \  }}|j                  | «       |j                  j                  «        y )Nr^   rú  )rÄ  r'   rA   r&   r*   r+   r
  rœ  )r½   r/   rw   s      r3   Útest_imshow_quantityndr     s>   € ä
”R—W‘W˜V“_ cÓ
*€CÜ�l‰l‹n�G€CˆØ‡I�Iˆc„Nà‡J�J‡O�OÕr5   c                 ó”  — t        j                  ddt         j                  ¬«      }d|dd…d d …f<   t         j                  j	                  |d¬«      }d	|j
                  dd…dd…f<   t        j                  d
   j                  d¬«      }| j                  «       }|j                  |t        j                  dd¬«      dd|¬«      }|j                  t        j                  dd¬«      «       |j                  |t        j                  dd¬«      dd|¬«      }|j                  t        j                  dd¬«      «       |j                  dd¬«       |j                  «       }|j                  |t        j                  dd¬«      dd|¬«       |j                  |t        j                  dd¬«      dd|¬«       |j                  dd¬«       y )Nr;   r8   r<   rg   r   r9   Fr¨  Trù  Úw©r%  rë   rH  r/  r!   )rO  r  r#   r`  r  )r   r{   r   r{   ©r   r{   r†  )r'   rô   r‹  r2  rX   rS  r  rJ  r1  r*   r+   r	   rR  r°  r±  rŠ  )r‡   rˆ   rµ   Úmasked_datar`  rw   r×   s          r3   Útest_norm_changer  )  s�  € ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Lä—%‘%—+‘+˜d¨�+Ó/€KØ!%€K×Ñ�Q�q�S˜!˜A˜#�XÑä�=‰=˜Ñ#×1Ñ1¸Ð1Ó<€Dà	×	Ñ	Ó	€BØ	�‰�4œfŸn™n°#¸AÔ>Ø&°iÀdð 
ó 
L€Bà‡K�K”× Ñ  b¨qÔ1Ô2Ø	�‰�;¤V§^¡^¸À1Ô%EØ(¸	Èð 
ó 
N€Bà‡K�K”× Ñ  b¨qÔ1Ô2Ø‡F�F�˜g€FÔ&à	×	Ñ	Ó	€BØ‡I�Iˆdœ×)Ñ)¨r¸Ô:Ø!°Àð ô Gà‡I�Iˆk¤× 0Ñ 0°b¸qÔ AØ#°9À4ð ô Ià‡F�F�˜g€FÕ&r5   rk   c                 ó.  — t        j                  d|t         j                  ¬«      }d|dd…d d …f<   | j                  «       }|j	                  |t        j                  d|j                  «       ¬«      dd	¬
«       t        j                  d|t         j                  ¬«      }d|dd…d d …f<   |j                  «       }t        j                  d	   j                  d¬«      }|j	                  |t        j                  d|j                  «       ¬«      d|¬
«       y )Nr;   r<   g@Œµx¯Dr   r9   r8   rH  r!   rù  )rO  r#   r`  iè  r  r  )r'   rô   r‹  r*   r+   r	   rR  r  r  rJ  r1  r±  )r‡   rˆ   rk   rµ   rw   r`  s         r3   Útest_huge_range_logr	  E  sä   € ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BØ‡I�IˆdœŸ™¨Q°T·X±X³ZÔ@Ø%¨Ið ô 7ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BÜ�=‰=˜Ñ#×1Ñ1¸Ð1Ó<€DØ‡I�Iˆdœ×)Ñ)¨q°t·x±x³zÔBØ%¨Dð õ 2r5   c           
      óR  — | j                  dd«      }|j                  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 �]O  \  }\  }}||   j                  |«       ||   j	                  |«       ||   j                  |«       ||   j                  |dddddd¬	«       ||   j                  d
d«       ||   j                  dd
«       ||   j                  j                  «        ||   j                  j                  d«       ||   j                  j                  d«       ||   j                  j                  t        j                  dg d¢d¬«      «       ||   j                   j                  t        j                  dg d¢d¬«      «       �ŒR y )Nr8   r    r   )rA   r@   Úmixedr!   rã  r»   ÚGreys)r#   rü  rf   r`  rû  rú  r¦  r  gÍÌÌÌÌÌð?r)  r  )r8   r9   r   r{   T)ÚnbinsÚstepsÚinteger)r*   Ú	enumeraterP  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º  rm   r  s	            r3   Útest_spy_boxr  Y  s¢  € ð ×Ñ  1Ó%€GØ×Ñ˜a Ó#€Fð ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�Ðð€Iò
 -€Kä"¤3 y°+Ó#>Ó?ó 
‰ˆ‰:ˆAˆuØ�‰
×Ñ˜UÔ#Ø�‰
�‰�qÔØˆq‰	×Ñ˜EÔ"Øˆq‰	×Ñ˜¨)Ø#*°7ÀØ!"¨ð 	ô 	,ð 	ˆq‰	×Ñ˜4 Ô%Øˆq‰	×Ñ˜3 Ô%Øˆq‰	�‰× Ñ Ô"Øˆq‰	�‰×Ñ˜dÔ#Øˆq‰	�‰×*Ñ*¨6Ô2Øˆq‰	�‰×)Ñ)Ü×Ñ aª}ÀdÔKô	
ð 	ˆq‰	�‰×)Ñ)Ü×Ñ aª}ÀdÔKö	
ñ
r5   znonuniform_and_pcolor.pngc                  ó˜  — t        j                  d¬«      j                  ddd¬«      } t        | ddg«      D ]„  \  }}t	        ||¬«      }|j                  t        j                  d«      d	z  t        j                  d«      d	z  t        j                  d
«      j                  d«      «       |j                  |«       Œ† | d	   j                  t        j                  d«      d	z  t        j                  d«      d	z  t        j                  d
«      j                  d«      «       | D ]$  }|j                  «        |j                  d¬«       Œ& y )Nrz  rY  r    T)ÚsharexÚshareyr!   r$   r"   r9   r  r:   r  )r‡  )r&   rh   r*   rP  r   r  r'   r(   r)   r  Ú
pcolorfastr  rŠ  )r›   rw   r#   r×   s       r3   Útest_nonuniform_and_pcolorr$  z  s
  € ä
�*‰*˜VÔ
$×
-Ñ
-¨a¸ÀTÐ
-Ó
J€CÜ   y°*Ð&=Ó>ò ÑˆˆMÜ˜R¨}Ô=ˆØ
�‰”B—I‘I˜a“L AÑ%¤r§y¡y°£|°qÑ'8Ü—I‘I˜a“L×(Ñ(¨Ó0ô	2à
�‰�RÕð	ð
 ˆ�F×ÑÜ
�	‰	�!‹˜Ñœ2Ÿ9™9 Q›<¨1Ñ,¬b¯i©i¸«l×.BÑ.BÀ6Ó.JôLàò ˆØ
�‰Ôà
�‰�GˆÕñr5   zrgba_antialias.pnggyé&1¬|?)r   r6   r!  c                  ó„  — t        j                  dddddd¬«      \  } }d}t        j                  ||f«      }d|d d d…d d …f<   t        j                  |«      |z  dz
  }t        j                  |«      |z  dz
  }t        j
                  ||«      \  }}t        j                  |dz  |dz  z   «      }d	}	d
}
t        j                  t        j                  dz  |	|z  |
|dz  z  dz  z   z  «      }d|d t        |dz  «      …d d …f   |d t        |dz  «      …d d …f   dk  <   d|d t        |dz  «      …d d …f   |d t        |dz  «      …d d …f   dk  <   |d d …t        |dz  «      d …f   |d d …t        |dz  «      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                  «      }|j                  d«       |j                  d«       |j!                  «       }|d   j#                  |d|dd¬«       |d   j%                  |dz  dz
  |dz  dz   g«       |d   j'                  |dz  dz   |dz  d	z
  g«       |d   j#                  |d|dd¬«       |d   j#                  |dd |dd¬!«       |d"   j#                  |dd#|dd¬!«       y )$Nr9   )ç      @r&  FT)r`   r!  r"  Úconstrained_layoutéú   rg   rë   r{   éK   r˜  r8   ru  r   rb   g    €„.AéF   éZ   g    €„.Ár  éÃ   é×   ÚyellowÚcyanr   r!   g333333ó¿r'  )r#   r`  rû  rú  é   r€   rµ   )r#   Úinterpolation_stager`  rû  rú  r    r¡  )r&   r*   r'   rA   r(   r  Úsqrtrj   r
  r„   r:  r   r0  ÚRdBu_rÚset_overrº  r¸  r+   rŽ   r�   )r/   r›   rR  Úaark   rl   r.   r  ÚRÚf0rã   ri  r`  s                r3   Útest_rgba_antialiasr8  Š  sì  € ô �|‰|˜A˜q¨*¸UØ#(¸TôC�H€Cˆà€AÜ	�‰�!�Q�‹€BØ€B�sˆ€sŠA€v�Jä
�	‰	�!‹�qÑ˜3Ñ€AÜ
�	‰	�!‹�qÑ˜3Ñ€Aä�;‰;�q˜!Ó�D€A€qÜ
�‰��1‘�q˜!‘t‘Ó€AØ	€BØ
€Aä
�‰Œr�u‰u�q‰y˜B ™F Q¨¨A©¡X°¡\Ñ1Ñ2Ó3€Að .0€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*Ø-.€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*ØšœC  !¡›H™I˜‘€B‚qŒ#ˆa�‰c‹(‰)€|Ñô —v‘v€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆc�#ˆg€~ÑØ€B€rˆ"€uˆc�#ˆg€~Ñä”—‘—‘Ó€DØ‡M�M�(ÔØ‡N�N�6Ôà
�+‰+‹-€Càˆ�F‡M�M�" I°D¸tÈ#€MÔNØˆ�F‡O�O�Q�q‘S˜‘V˜Q˜q™S ™VÐ$Ô%Øˆ�F‡O�O�Q�q‘S˜‘V˜Q˜q™S ™VÐ$Ô%ð ˆ�F‡M�M�" I°D¸tÈ#€MÔNð ˆ�F‡M�M�" MÀvØ $¨Sð ô 2ð
 ˆ�F‡M�M�" MÀvØ $¨Sð õ 2r5   c                  óR  — dD ]N  } t        j                  d| i«      5  t        j                  ddgg«      j	                  «       | k(  sJ ‚	 d d d «       ŒP dD ]7  } t        j                  t        «      5  | t         j                  d<   d d d «       Œ9 y # 1 sw Y   Œ—xY w# 1 sw Y   ŒPxY w)N)rµ   r¡  zimage.interpolation_stager8   r9   )ÚDATAÚfooN)	r  Ú
rc_contextr&   r+   Úget_interpolation_stagerB  rC  rð  r   )Úvals    r3   Útest_rc_interpolation_stager?  Â  s°   € Øò IˆÜ�^‰^Ð8¸#Ð>Ó?ñ 	IÜ—:‘:  1˜v˜hÓ'×?Ñ?ÓAÀSÒHÐHÑH÷	Ið 	IðIð %ò <ˆÜ�]‰]œ:Ó&ñ 	<Ø8;ŒC�L‰LÐ4Ñ5÷	<ð 	<ñ<÷	Ið 	Iú÷	<ð 	<ús   �,BÁ2BÂB	ÂB&	z<ignore:Data with more than .* cannot be accurately displayedzdim, size, msg)Úrowi  € z2\*\*23 columns)Úcoli   z2\*\*24 rows)r\   c           	      ó$  — | j                  «       }|j                  «       }t        j                  d|dz   f«      }d|d d …|j                  dz  d …f<   |dk(  r|j                  }|j                  |ddddd|¬«      }	t        j                  t        d	|› d
�¬«      5  | j                  j                  «        d d d «       t        j                  d«      }d|d d …df<   |dk(  r|j                  }|j                  |ddddd|¬«      }	y # 1 sw Y   ŒQxY w)Nr8   r9   rA  r   rP  r’  r?   )rû  rú  rü  r  r#   rf   zData with more than z  cannot be accurately displayed.rê  r}  )r*   r'   r@   Úsizer»  r+   rB  r|  r}  r
  rœ  )
r‡   rˆ   ÚdimrC  Úmsgrf   r  r  rX   r×   s
             r3   Útest_large_imagerF  Í  s  € ð ×ÑÓ!€GØ×ÑÓ€Fä�H‰H�a˜ ™�]Ó#€EØ!"€EŠ!ˆU�Z‰Z˜1‰_ÑÐ
ÑØ
ˆe‚|Ø—‘ˆØ	�‰˜ A¨AØ%¨lØ&,Ø%ð 
ó 
'€Bô
 
�‰”kØ2°3°%ð 8.ð .ô
/ñ ð 	�‰×ÑÔ÷ô
 �H‰H�VÓ€EØ€EŠ!ˆQˆ$�KØ
ˆe‚|Ø—‘ˆØ	�‰�u 1¨1°VØ*Ø%+Ø$ð 
ó 
&�B÷ð ús   ÂDÄDc                 óò  — t         j                  j                  dd«      dz  dz   }| j                  dd«      }|d   j	                  |d¬«       |d   j	                  |dd	¬
«       |d   j	                  |d¬«       |d   j	                  |ddd¬«       |d   j	                  |ddd¬«       |j                  dd«      }|d   j	                  |t        j                  «       ¬«       |d   j	                  |t        j                  d	¬«      ¬«       |d   j	                  |t        j                  d¬«      ¬«       |d   j	                  |t        j                  ddd¬«      ¬«       |d   j	                  |dd¬«       t        |d   j                  d   j                  «      t
        j                  u sJ ‚t        j                  t        «      5  |d   j	                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nr{   gš™™™™™é?rt  r8   r   r   rý  rz  r�  )rO  rû  r9   Úsymlogr    ru  rš  )rO  rû  rú  r:   Úlogit)rû  )Ú	linthresh)rJ  rû  rú  )ru  rš  )rO  ÚclimÚfoobar)r'   r�   rƒ   r*   r+   r	   rR  ru  ÚtypeÚimagesrO  rB  rC  rð  )r‡   rˆ   r€  ÚaxtsÚaxrss        r3   Útest_str_normsrQ  ó  s¡  € ä
�	‰	�‰�r˜2Ó Ñ# bÑ(€AØ×Ñ˜Q Ó"€DØˆ�G‡N�N�1˜5€NÔ!Øˆ�G‡N�N�1˜5 r€NÔ*Øˆ�G‡N�N�1˜8€NÔ$Øˆ�G‡N�N�1˜8¨"°2€NÔ6Øˆ�G‡N�N�1˜7¨°"€NÔ5Ø×Ñ˜A˜qÓ!€DØˆ�G‡N�N�1œ6Ÿ>™>Ó+€NÔ,Øˆ�G‡N�N�1œ6Ÿ>™>¨rÔ2€NÔ3àˆ�G‡N�N�1œ6×,Ñ,°qÔ9€NÔ:Øˆ�G‡N�N�1œ6×,Ñ,°q¸rÈÔK€NÔLØˆ�G‡N�N�1˜7¨€NÔ2ä��Q‘—‘˜qÑ!×&Ñ&Ó'¬6¯>©>Ñ9Ð9Ð9Ü	�‰”zÓ	"ñ )ØˆQ‰�‰�q˜xˆÔ(÷)÷ )ñ )ús   ÇG-Ç-G6c                  ó   — t        j                  t        j                  j                  t        «       ¬«      } t        j                  t        d¬«      5   | t        j                  d«      d «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d	¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d
¬«      5   | t        j                  dt        j                  «      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      j                  «       d d d «       t        j                  d«      }d|j                  _        t        j                  t        d¬«      5   | t        j                  d«      |«       d d d «       y # 1 sw Y   �Œ|xY w# 1 sw Y   �Œ6xY w# 1 sw Y   �ŒðxY w# 1 sw Y   �ŒªxY w# 1 sw Y   �ŒdxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¾xY w# 1 sw Y   y xY w)Nr  zincompatible function argumentsrê  )r  r  zdifferent dimensionalities)r  r  r:   z3D input array must be RGBA)r  r  r    z3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)Ú	functoolsÚpartialr  Ú_imageÚresampler   rB  rC  rD  r'   r@   rð  rC   r»  ÚflagsÚ	writeable)rV  rd  s     r3   Útest__resample_valid_outputrY  	  s;  € Ü× Ñ ¤§¡×!4Ñ!4ÄÃ
ÔK€HÜ	�‰”yÐ(IÔ	Jñ )Ù”—‘˜&Ó! 4Ô(÷)ä	�‰”zÐ)EÔ	Fñ 8Ù”—‘˜&Ó!¤2§8¡8¨IÓ#6Ô7÷8ä	�‰”zÐ)EÔ	Fñ 8Ù”—‘˜)Ó$¤b§h¡h¨vÓ&6Ô7÷8ä	�‰”zÐ)FÔ	Gñ ;Ù”—‘˜)Ó$¤b§h¡h¨yÓ&9Ô:÷;ä	�‰”zÐ)GÔ	Hñ ;Ù”—‘˜)Ó$¤b§h¡h¨yÓ&9Ô:÷;ä	�‰”zÐ);Ô	<ñ ?Ù”—‘˜&¤"§(¡(Ó+¬R¯X©X°fÓ-=Ô>÷?ä	�‰”zÐ)?Ô	@ñ 7Ù”—‘˜&Ó!¤2§8¡8¨FÓ#3×#5Ñ#5Ô6÷7ô �(‰(�6Ó
€CØ€C‡I�IÔÜ	�‰”zÐ)IÔ	Jñ (Ù”—‘˜&Ó! 3Ô'÷(ð (÷#)ñ )ú÷8ñ 8ú÷8ñ 8ú÷;ñ ;ú÷;ñ ;ú÷?ñ ?ú÷7ð 7ú÷
(ð (ús`   ÁK*Â0K7Ã&0LÄ90LÆ0LÇ?L+É:L8ËMË*K4Ë7LÌLÌLÌL(Ì+L5Ì8MÍMc                  ó¨  — t        j                  «       } t        | «      }t        j                  t
        d¬«      5  |j                  «        d d d «       t        j                  dt        ¬«      j                  d«      }|j                  |«       |j                  «       dk(  sJ ‚|j                  «       |j                  «       k(  sJ ‚y # 1 sw Y   Œ}xY w)Nz"You must first set the image arrayrê  r[  r<   rË  )r&   rª  r   rB  rC  r  Ú	get_shaper'   r(   rÃ  r)   r  Úget_sizerÏ  s      r3   Útest_axesimage_get_shaper]     s—   € ä	�‰‹€BÜ	�2‹€BÜ	�‰”|Ð+OÔ	Pñ Ø
�‰Œ÷ä
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ�<‰<‹>˜VÒ#Ð#Ð#Ø�;‰;‹=˜BŸL™L›NÒ*Ð*Ñ*÷ð ús   »CÃCc                  óò  — t        j                  «       j                  «       } t        j                  d«      j                  d«      }| j                  || j                  ¬«       | j                  «       dk(  sJ ‚| j                  |t        «       j                  d«      | j                  z   ¬«       | j                  «       dk(  sJ ‚| j                  || j                  d¬«       | j                  «       dk(  sJ ‚y )Nr:   r^   r  rP  r9   r8   )r  rü  )r&   rh   r~  r'   r(   r)   r+   r   Ú
get_aspectr   r  r	  r¬  s     r3   Ú.test_non_transdata_image_does_not_touch_aspectr`  ,  sº   € Ü	�‰‹×	!Ñ	!Ó	#€BÜ	�‰�1‹×	Ñ	˜fÓ	%€BØ‡I�Iˆb˜BŸL™L€IÔ)Ø�=‰=‹?˜fÒ$Ð$Ð$Ø‡I�IˆbœH›J×,Ñ,¨QÓ/°"·,±,Ñ>€IÔ?Ø�=‰=‹?˜aÒÐÐØ‡I�Iˆb˜BŸL™L°€IÔ3Ø�=‰=‹?˜aÒÐÑr5   )r‹  Úfloat32Úint16r¥   Úint8rC   Úndim)r9   r    c                 ó8  — t         j                  j                  d«      }|dk(  rdnd}|j                  |¬«      j	                  t        j
                  | d¬«      «      }t        j                  «       \  }}|j                  |«      }|j                  d «      d    y )	NiU  r9   r^   )r9   r9   r    )rC  Tr   r   )
r'   r�   Údefault_rngÚuniformrÉ   r=   r&   r*   r+   r€  )r=   rd  Úrngr³   rµ   r/   rw   Ú
axes_images           r3   Útest_resample_dtypesrj  7  sz   € ô �)‰)×
Ñ
 Ó
%€CØ˜a’i‰F Y€EØ�;‰;˜Eˆ;Ó"×)Ñ)¬"¯(©(°5¸tÔ*DÓE€DÜ�l‰l‹n�G€CˆØ—‘˜4“€Jà×Ñ˜$Ó Ó"r5   )“Ú
contextlibr   r   rS  rr   r¡   Úpathlibr   rí  rì  Úurllib.requestrñ  Únumpyr'   Únumpy.testingr   ÚPILr   Ú
matplotlibr  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  rB  r4   rG   rY   ÚmarkÚparametrizero   ry   rŒ   r�   rœ   r¨   rª   rº   rÁ   rÆ   rÌ   rØ   ræ   rí   Úcontextrú   r  r  r:  r#  r,  r6  r<  r>  rE  rI  rL  rW  rj  rn  rx  r�  r�  r–  r£  r§  r­  r²  r»  rÈ  rÐ  rÓ  r(   r)   rÚ  ræ  rö  rÿ  r  r  r   r7  r<  r?  rD  ÚmachinerW  rZ  Úsplitr=   re  ri  ro  rq  r±  rR  r‚  r†  rŒ  rŽ  r�  r–  rœ  rŸ  r¦  r©  r®  r°  r¾  rÂ  rç  rÄ  rÿ  r  r  r	  r  r$  r8  r?  ÚfilterwarningsrF  rQ  rY  r]  r`  rj  )rû  s   0r3   ú<module>r}     s_
  ðÝ  Ý Û Û 	Û 	Ý Û Û 
Û ã Ý ,Ý ã ÷F÷ F÷<õ <ç Oß AÑ AÝ #ã ñ �?Ð#¨7Ô3ñó 4ðñ( Ð%Ð&°DÔ9ñ	.ó :ð	.ñ Ð+Ð,Ø# U˜^¸ô?ñ+ó?ð+ð  ‡�×ÑÐ,¨u°d¨mÓ<Ù�:�,¨E°5¨>Ô:ñBó ;ó =ðBòð ‡�×ÑØ'òóñ   Ô(ñ.ó )óð.ñ   Ô(ñó )ðñ" Óñ	)ó ð	)ò$ò$ð ‡�×Ñ˜Ò >Ó?ñ-ó @ð-ðD ‡�×Ñ˜ G¨WÐ#5Ó6ñ@ó 7ð@ð ‡�×Ñ˜Ò BÓCñAó DðAò*ò2)ò4ñ �=�/¨tÔ4ñ6ó 5ð6ð ‡�×Ñ�7ÓÙ  Ô(ñó )ó ðò0D+ðN ‡�×Ñ˜à	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØˆ#€Y�ÐØ	ˆ2€Y�Ðð	&ó 
ñPó
ðPð* ‡�×ÑØØ�%ˆ.Ð	˜=Ð)Ø�ˆ,ˆ˜Ð#Ø�6‰6�1�aˆ.Ð	˜4Ð Øˆgˆ,ˆÐ/Ð0Øˆrˆ(ˆ�XÐØˆaˆ&ˆ�8ÐðóñDóðDñ �<�.¨Ô0ñó 1ðñ Ð#Ð$¨GÔ4ñó 5ðñ �8�*¨$°gÔ>ñó ?ðñ   Ô(ñó )ðòòñ Ð,Ð-¸4Ô@ñIó AðIñ �=�/¨tÀÈÀÔOñó PðòFñ8 Ð/Ð0Ø"¨'ô3ñó3ðñ Ð*Ð+¸Ô>ñó ?ðñ4   Ô(ñ%ó )ð%ñ Ð$Ð%Ø# U˜^¸ÀWôNñ!óNð!ñ: Ð(Ð)°tÀ7ÔKñó Lðò0 GñF Ð3Ð4Ø"¨'ô3ñó3ðòò!òò'ò0-ò-ð ‡�×ÑØØ	Ø	ˆ�‰�2‹˜	˜Ÿ	™	 "› y r§y¡y°£~×'=Ñ'=¸fÓ'Eð	Gà	Ø	ˆ�‰�2‹˜	˜Ÿ	™	 "› y r§y¡y°£}×'<Ñ'<¸VÓ'Dð	Fðóñ1óð1òòBñ Ð$Ð%°4Ô8ñó 9ðñ �>Ð"°Ô5ñó 6ðò6	%ò3ñ( Ð.Ð/¸TÀsÔKñ>ó Lð>ñB �<�.¨dÔ3ñ+ó 4ð+ò"ñ Ð)Ð*¸Ô=ñ
*ó >ð
*ñ Ð0Ð1Ø+˜8×+Ñ+Ó-°Ò9‘a¸tØ"¨'ô3ñó3ðòB&ð ‡�×ÑØÐ#9×#?Ñ#?Ó#AÖB˜aˆhˆb�h‰h�q�kÒBóDñ%óDð%ñ& Ð)Ð*¸ÀGÔLñó Mðñ Ð*Ð+¸ÀWÔMñó Nðñ Ð/Ð0Ø"¨'ô3ñó3ðð ‡�×ÑØØ×ÑØ‡^�^Ù!Ù ð"ó#ñ	1ó#ð	1òòòDò
ð ‡�×Ñ˜Ø0Ð2DÐEóGà‡�×ÑÐ0°9¸jÐ2IÓJñ2ó KóGð2ò 4ò	Dò9ò$2ñ Óñ-ó ð-ò$3ð
 ‡�×Ñ�7Óñ4ó ð4ñ8 Ð$Ð%°5¸%°.Ø"¨'ô3ñ
ó3ð
ô"9%�—’ô 9%òx	 òñ   Ô(ñ'ó )ð'ð6 ‡�×Ñ˜˜r 1˜gÓ&Ù  Ô(ñ2ó )ó 'ð2ñ$ Óñ
ó ð
ñ@ Ð.Ð/°wÔ?ñó @ðñ ØÐ '°tØˆX×ÑÓ 8Ò+‰°ô8ñ22ó8ð22òj<ð ‡�×Òð =ó >à‡�×Ñ˜ G¨WÐ#5Ó6Ø‡�×ÑØÒ9Ú6ð8ó9ñ  	Ô*ñ&ó +ó9ó 7ó>ð&ñ>   Ô(ñ)ó )ð)ò*(ò.	+ò ð ‡�×ÑØØ>óð ‡�×Ñ˜ Ó(ñ	#ó )ó	ñ
	#ùòi Cs   Ó^
