ó
    {ñ:iÎè  ã                   óø  • S SK Jr  S SKJr  S SKrS SKrS SKrS SKJr  S SKrS SK	r	S SK
rS SKrS SKJr  S SKJr  S SKrS SKJrJrJrJrJrJr  S SKJrJrJrJ r J!r!  S S	K"J#r#J$r$  S S
K%J&r&J'r'J(r(  S SK)J*r+  S SK,r,\$" S/SS9S 5       r-\$" S/SSS/SS9S 5       r.\,R^                  Ra                  SSS/5      \$" S/SS/S9S 5       5       r1S r2\,R^                  Ra                  S/ SQ5      \#" S/S9S 5       5       r3\#" S/S9S 5       r4\#" S/S9S  5       r5S! r6S" r7\,R^                  Ra                  S#/ S$Q5      S% 5       r8S& r9\,R^                  Ra                  S'S(S)/5      S* 5       r:\,R^                  Ra                  S#/ S+Q5      S, 5       r;S- r<S. r=S/ r>\$" S0/SS9S1 5       r?\R4                  R�                  S25      \#" S/S9S3 5       5       rAS4 rB\,R^                  Ra                  S5S6S6/S /S6S7/S8/S9S6/S:/S;S6/S:/S<S=/S>/S?S6/S/S6S?/S//5      S@ 5       rC\,R^                  Ra                  SASBSC//SD4SESF//SG4\Rˆ                  S8SH//SI4S8SJ//SK4S?S?//SL4S S //SM4/5      SN 5       rE\$" SO/S2SP9SQ 5       rF\$" SR/S2SP9SS 5       rG\#" S/S9ST 5       rHSU rISV rJ\$" SW/SS9SX 5       rK\$" SY/SSS/SZ9S[ 5       rLS\ rM\$" S]/SS2S^9S_ 5       rN\$" S`/SS9Sa 5       rO\#" S/S9Sb 5       rP\$" Sc/SS/SS2Sd9Se 5       rQ\$" Sf/SS2S^9Sg 5       rRSh rS\$" Si/SS2S^9Sj 5       rTSk rUSl rVSm rWSn rXSo rYSp rZ\,R^                  Ra                  Sq\ \R¶                  " Sr5      \R¶                  " Ss5      \R¶                  " St5      R¹                  Su5      4\!\R¶                  " Sr5      \R¶                  " Ss5      \R¶                  " Sv5      R¹                  Sw5      4/5      Sx 5       r]Sy r^Sz r_\$" S{/SS9S| 5       r`\$" S}/SS9S~ 5       raS rbS€ rc\$" S�/SS‚Sƒ9S„ 5       rd\$" S…/SS9S† 5       reS‡ rf\$" Sˆ/SS9S‰ 5       rg\$" SŠ/\RÐ                  " 5       S‹:X  a  S OSŒSS2S�9SŽ 5       riS� rj\,R^                  Ra                  S�S‘R×                  5        V s/ s H  n \RÙ                  U 5      PM     sn 5      S’ 5       rm\$" S“/SS2S^9S” 5       rn\$" S•/SS2S^9S– 5       ro\$" S—/SS2S^9S˜ 5       rp\,R^                  Ra                  S™\Râ                  \Rä                  Sš S› /5      Sœ 5       rsS� rtSž ruSŸ rvS  rw\,R^                  Ra                  S¡S¢S£/5      \,R^                  Ra                  S¤S¥S¦/5      S§ 5       5       rxS¨ ryS© rzSª r{S« r|\#" 5       S¬ 5       r}S­ r~\R4                  R�                  S25      S® 5       r\$" S¯/SS/SS2Sd9S° 5       r€ " S± S²\GR                  5      r‚S³ rƒS´ r„\#" S/S9Sµ 5       r…\,R^                  Ra                  S¶S?S8/5      \#" S/S9S· 5       5       r†\#" S/S9S¸ 5       r‡\$" S¹/S2SP9Sº 5       rˆ\$" S»/S2SP9S¼ 5       r‰\$" S½/S2SS¾S¿9SÀ 5       rŠ\#" SÁS9SÂ 5       r‹\#" SÁS9SÃ 5       rŒSÄ r�\,R^                  GR                  SÅ5      \,R^                  Ra                  S'S(S)/5      \,R^                  Ra                  SÆ/ SÇQ/ SÈQ/5      \#" SÁS9SÉ 5       5       5       5       r�\#" S/S9SÊ 5       r�SË r‘SÌ r’SÍ r“\$" SÎ/S2SSÏS¿9SÐ 5       r”\$" SÑ/S2SSÏS¿9SÒ 5       r•\$" SÓ/S2SSÔ9SÕ 5       r–\,R^                  Ra                  S�SÖ5      \,R^                  Ra                  S×SØ5      SÙ 5       5       r—\,R^                  Ra                  SÚSÛ5      \#" 5       SÜ 5       5       r˜gs  sn f )Ýé    )Ú	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ÚTransformedBboxzinterp_alpha.pngT)Úremove_textc                  óN  • [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  " S5      US'   [        R
                  " [        R                  " S[        R                  S95      US'   UR                  USS	9  UR                  US
S	9  g)z:Test the interpolation of the alpha channel on RGBA imagesé   é   )é   r   é   ©r   r   ).r   ©Údtype©.é   Únone©ÚinterpolationÚbilinearN)ÚpltÚsubplotsÚnpÚzerosÚonesÚtrilÚuint8Úimshow)ÚfigÚaxlÚaxrÚimgs       Ú^/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/tests/test_image.pyÚtest_alpha_interpr5      sz   € ô —l’l 1 aÓ(�O€C‰ˆ#ä
�(Š(�9Ó
€CÜ—'’'˜&“/€Cˆ�Kä—'’'œ"Ÿ'š' &´·±Ñ9Ó:€Cˆ�KØ‡J�Jˆs &€JÑ)Ø‡J�Jˆs *€JÒ-ó    Úinterp_nearest_vs_nonegš™™™™™@ÚpdfÚsvg)ÚtolÚ
extensionsr   c                  ó4  • S[         S'   [        R                  " / SQ/ SQ// SQ/ SQ//[        R                  S9n [        R
                  " SS	5      u  nu  p#UR                  U S
S9  UR                  S5        UR                  U SS9  UR                  S5        g)z5Test the effect of "nearest" and "none" interpolationr#   úsavefig.dpi)éÚ   é¥   é    )éz   ég   éî   )é   éÿ   r   )rE   éc   éG   r    r   r   r$   r%   zinterpolation noneÚnearestzinterpolation nearestN)r   r*   Úarrayr.   r(   r)   r/   Ú	set_title)ÚXr0   Úax1Úax2s       r4   Útest_interp_nearest_vs_nonerN   (   sˆ   € ð  „Hˆ]ÑÜ
�Š’>¢?Ð3Ú ¢-Ð0ð2Ü9;¿¹ñ	C€Aä—l’l 1 aÓ(�O€C‰ˆ#Ø‡J�Jˆq €JÑ'Ø‡M�MÐ&Ô'Ø‡J�Jˆq 	€JÑ*Ø‡M�MÐ)Õ*r6   ÚsuppressCompositeFÚfigimageÚpng)r;   c                 ó6  • [         R                  " SSS9nXl        [        R                  " [        R
                  " S5      S-  [        R
                  " S5      S-  5      u  p#[        R                  " US-  US-  -   X#-  -
  5      n[        R                  " SUS-  -  SUS-  -  -   5      nXES-  -   nUR                  US	S	S
S9  UR                  US S S2S S 24   S	SS
S9  UR                  US S 2S S S24   SS	S
S9  UR                  US S S2S S S24   SSS
S9  g )N©r   r   éd   ©ÚfigsizeÚdpig      Y@r   é   é2   r   r   Úlower)ÚxoÚyoÚoriginéÿÿÿÿ)r(   ÚfigurerO   r*   Úix_ÚarangeÚsinrP   )rO   r0   ÚxÚyÚzÚcr3   s          r4   Útest_figimagerg   :   s  € ô �*Š*˜V¨Ñ
-€CØ-ÔÜ�6Š6”"—)’)˜C“. 5Ñ(¬"¯)ª)°C«.¸3Ñ*>Ó?�D€AÜ
�Šˆq�!‰t�a˜‘d‰{˜Q™SÑ Ó!€AÜ
�Šˆr�!�Q‘$‰w˜˜A˜q™D™Ñ Ó!€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ÒAr6   c                  óò   • [         R                  " 5       u  pUR                  / SQ5        [        R                  " 5       nU R                  U5        UR                  S5        [         R                  " U5        g )N)r   r   r#   r   )r(   r)   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)r0   ÚaxÚbuffers      r4   Útest_image_python_iorq   J   sI   € Ü�lŠl‹n�G€CØ‡G�GŠIÔÜ�ZŠZ‹\€FØ‡K�K�ÔØ
‡K�K�„NÜ‡J‚JˆvÕr6   z!img_size, fig_size, interpolation))r   r   Úhanning)r   r   rH   )r   é
   rH   )r#   ç333333@rr   )r#   g333333"@rH   c                 óÔ  • [         R                  R                  S5        [        R                  S   n[         R                  R                  [        XR-  5      [        XR-  5      5      nX4 H  nUR                  X35        M     U R                  5       nUR                  / SQ5        UR                  USS9  UR                  5       nUR                  / SQ5        UR                  XdS9  g )Né!N,r=   ©r   r   r   r   Úautor%   )r*   ÚrandomÚseedr(   r   ÚrandÚintÚset_size_inchesr)   Úset_positionr/   )	Úfig_testÚfig_refÚimg_sizeÚfig_sizer&   rW   ÚAr0   ro   s	            r4   Útest_imshow_antialiasedr„   S   s±   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3™>Ó*¬C°±Ó,?Ó@€AØÓ"ˆØ×Ñ˜HÖ/ñ #à	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜v€IÑ&Ø	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa€IÒ-r6   c                 ó(  • [         R                  R                  S5        [        R                  S   n[         R                  R                  [        US-  5      [        US-  5      5      nX4 H  nUR                  SS5        M     U R                  5       nUR                  USS9  UR                  SS/5        UR                  SS/5        UR                  5       nUR                  US	S9  UR                  SS/5        UR                  SS/5        g )
Nrv   r=   r#   rt   rx   r%   rs   rX   rH   )r*   ry   rz   r(   r   r{   r|   r}   r)   r/   Úset_xlimÚset_ylim)r   r€   rW   rƒ   r0   ro   s         r4   Útest_imshow_zoomrˆ   k   sß   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™7“|¤S¨¨q©£\Ó2€AØÓ"ˆØ×Ñ˜C Ö%ñ #à	×	Ñ	Ó	€BØ‡I�Iˆa˜v€IÑ&Ø‡K�K��R�ÔØ‡K�K��R�ÔØ	×	Ñ	Ó	€BØ‡I�Iˆa˜y€IÑ)Ø‡K�K��R�ÔØ‡K�K��R�Õr6   c                 ó$  • [         R                  " S5        [        [        5      R                  S-  n[        [        5      R                  S-  nU R                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        UR                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        g )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.tifr   r   r   )r   Úuser   Ú__file__Úparentr)   r/   r   Úopenr(   rn   )r   r€   Úpng_pathÚ	tiff_pathÚaxss        r4   Ú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Ó'Õ(r6   c                  ó*  • [         R                  " [        R                  R	                  [        R                  R                  [        5      SSS5      5      n U R                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)r(   rn   ÚosÚpathÚjoinÚdirnamerŽ   r!   r*   Úuint16Úsum©r3   s    r4   Útest_imread_pil_uint16r    Š   sc   € Ü
�*Š*”R—W‘W—\‘\¤"§'¡'§/¡/´(Ó";Ø&¨°lóDó E€Cà�9‰9œŸ	™	Ó!Ð!Ð!Ü�6Š6�#‹;˜)Ó#Ð#Ñ#r6   c                  óÜ   • [         R                  " [        [        5      R                  S-  5      n U R
                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )NrŒ   r˜   )	r(   rn   r   rŽ   r�   r!   r*   r�   rž   rŸ   s    r4   Útest_imread_fspathr¢   ‘   sP   € Ü
�*Š*ÜŒX‹×ÑÐ GÑGóI€Cà�9‰9œŸ	™	Ó!Ð!Ð!Ü�6Š6�#‹;˜)Ó#Ð#Ñ#r6   Úfmt)rQ   ÚjpgÚjpegÚtiffc                 óB  • U S;  n[         R                  R                  S5        [         R                  R                  SS5      n[        R
                  " 5       n[        R                  " X2U SS9  [        R
                  " 5       n[        R                  " XBU SS9  UR                  S5        [        R                  " X0S9nUR                  S5        [        R                  " X@S9nUR                  SSS	U-   4:X  d   eUR                  SSS	U-   4:X  d   e[        XV5        g )
N)r¤   r¥   r   i@  r   )ÚformatrW   rT   r   ©r¨   r#   )r*   ry   rz   r{   rj   rk   r(   Úimsaverm   rn   Úshaper   )r£   Ú	has_alphaÚdataÚ	buff_dpi1Úbuff_dpi100Úarr_dpi1Ú
arr_dpi100s          r4   Útest_imsaver²   ˜   sä   € à˜?Ñ*€Iô ‡I�I‡N�N�1Ôô �9‰9�>‰>˜$ Ó"€Dä—
’
“€IÜ‡J‚Jˆy s°Ò2ä—*’*“,€KÜ‡J‚Jˆ{¨°#Ò6à‡N�N�1ÔÜ�zŠz˜)Ñ0€Hà×Ñ�QÔÜ—’˜KÑ4€Jà�>‰>˜d A q¨9¡}Ð5Ó5Ð5Ð5Ø×Ñ  a¨¨Y©Ð7Ó7Ð7Ð7ä�xÕ,r6   c                  ó  • SS/SS/SS//n [         R                  " 5       n[        R                  " XSS9  UR	                  S	5        [        R
                  " U5      n[        [        R                  " U 5      US S 2S S 2S S
24   5        g )N)ç      ð?ç        rµ   )rµ   r´   rµ   )rµ   rµ   r´   )r´   r´   rµ   )rµ   r´   r´   )r´   rµ   r´   rQ   r©   r   r#   )	rj   rk   r(   rª   rm   rn   r   r*   rI   )Úimg_dataÚbuffÚread_imgs      r4   Útest_imsave_python_sequencesr¹   »   s}   € ð 
˜/Ð*Ø	˜/Ð*Ø	˜/Ð*ð€Hô �:Š:‹<€DÜ‡J‚Jˆt eÒ,Ø‡I�Iˆa„LÜ�zŠz˜$Ó€HäÜ
�Š�ÓØ’’A�r˜�r�Ñõr6   r]   ÚupperrZ   c                 ó„   • [         R                  " 5       n[        R                  " SSS9n[        R
                  " XSU S9  g )N)rs   rs   r   r.   r    rQ   )Úarrr¨   r]   )rj   rk   r*   r+   Úmimagerª   )r]   ÚbufÚresults      r4   Útest_imsave_rgba_originrÀ   Ñ   s/   € ô �*Š*‹,€CÜ�XŠX�k¨Ñ1€FÜ
‡M‚M�#¨%¸Ó?r6   )rQ   r8   ÚpsÚepsr9   c                 óŒ   • [         R                  " [        [        R                  5      [
        R                  " SS//5      U S9  g )Nr   r   r©   )r(   rª   r   r™   Údevnullr*   rI   )r£   s    r4   Útest_imsave_fspathrÅ   Ù   s*   € ä‡J‚JŒt”B—J‘JÓ¤§¢¨A¨q¨6¨(Ó!3¸CÓ@r6   c                  ó¼  • [         R                  R                  S5        S H·  n [         R                  R                  SSS5      n[        R
                  " 5       n[        R                  " X!U SS9  UR                  S5        [        R                  " U5      nSU-  R                  S	5      nU S
:X  a  US S S2   nSU-  R                  S	5      n[        X5        M¹     g )Nr   )rZ   rº   é   r   rQ   )r]   r¨   r   rE   r.   rZ   r^   )r*   ry   rz   r{   rj   rk   r(   rª   rm   rn   Úastyper   )r]   r­   r·   Úarr_bufs       r4   Ú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Ö)ò! %r6   c                  ó   • SSK Jn   [        R                  " 5       nU " 5       nUR	                  SS5        [
        R                  " USS/SS//SS	U0S
9  [        R                  " U5      nUR                  S   S:X  d   eg )Nr   )ÚPngInfoÚSoftwareÚtestr   r   r#   rQ   Úpnginfo©r¨   Ú
pil_kwargs)
ÚPIL.PngImagePluginrÌ   rj   rk   Úadd_textr(   rª   r   r�   Úinfo)rÌ   r¾   rÏ   Úims       r4   Útest_imsave_pil_kwargs_pngrÖ   ÷   sr   € Ý*Ü
�*Š*‹,€CÙ‹i€GØ×Ñ�Z Ô(Ü‡J‚Jˆs�a˜�V˜a ˜VÐ$Ø¨°GÐ(<ò>ä	�Š�C‹€BØ�7‰7�:Ñ &Ó(Ð(Ñ(r6   c                  ób  • SSK Jn   [        R                  " 5       nSS0n[        R
                  " USS/SS//SUS	9  [        U5      S:X  d   e[        R                  " U5      nUR                  R                  5        VVs0 s H  u  pEX   R                  U_M     nnnUS
   S:X  d   eg s  snnf )Nr   )ÚTAGS_V2Údescriptionz
test imager   r   r#   r¦   rÐ   ÚImageDescription)ÚPIL.TiffTagsrØ   rj   rk   r(   rª   Úlenr   r�   Útag_v2ÚitemsÚname)ÚTAGSr¾   rÑ   rÕ   ÚkÚvÚtagss          r4   Útest_imsave_pil_kwargs_tiffrä     sž   € Ý,Ü
�*Š*‹,€CØ Ð.€JÜ‡J‚Jˆs�a˜�V˜a ˜VÐ$¨VÀ
ÒKÜˆz‹?˜aÓÐÐÜ	�Š�C‹€BØ(*¯	©	¯©Ô(9Ô:Ò(9¡ ˆD‰G�L‰L˜!ŠOÑ(9€DÑ:ØÐ"Ñ# |Ó3Ð3Ñ3ùó ;s   ÂB+Úimage_alphac                  ó"  • [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SS5      u  nu  p#nUR                  U SSS9  UR                  U SSS9  UR                  U SS	S9  g )
Nr   é   r   r#   r´   r$   )Úalphar&   ç      à?rH   )r*   ry   rz   r{   r(   r)   r/   )ÚZr0   rL   rM   Úax3s        r4   Útest_image_alpharì     su   € ä‡I�I‡N�N�1ÔÜ
�	‰	�‰�q˜!Ó€AäŸ<š<¨¨1Ó-Ñ€C‰ˆ#�CØ‡J�Jˆq˜¨6€JÑ2Ø‡J�Jˆq˜¨6€JÑ2Ø‡J�Jˆq˜¨9€JÒ5r6   Úmpl20c                 óN  • [         R                  R                  S5        [         R                  R                  SSS5      n[         R                  " US-  5      nU R                  SS5      u  u  pEu  pgUR                  USS9  UR                  USS9  UR                  USS9  UR                  USS9  [         R                  " U[         R                  " S	5      4SS
9n[         R                  " U[         R                  " S	S[         R                  5      4SS
9n	UR                  SS5      u  u  pEu  pgSUS S 2S S 2S4'   UR                  U5        SUS S 2S S 2S4'   UR                  U5        SU	S S 2S S 2S4'   UR                  U	5        SU	S S 2S S 2S4'   UR                  U	5        g )Nrv   rç   r#   rE   r   ré   ©rè   ç      è?)rç   rç   r   ©ÚaxisrD   é¿   )
r*   ry   rz   r{   r.   r)   r/   Úconcatenater,   Úfull)
r   r€   ÚrgbfÚrgbuÚax0rL   rM   rë   ÚrgbafÚrgbaus
             r4   Útest_imshow_alpharû     sb  € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜!˜Q Ó"€DÜ�8Š8�D˜3‘JÓ€DØ'×0Ñ0°°AÓ6Ñ�Z€c‘�#Ø‡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‘�#Ø€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÕr6   c                  ó¼  • SSK Jn   [        R                  " 5       u  pUR	                  [
        R                  " S5      R                  SS5      SS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   eS
u  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   eUR                  5         UR	                  [
        R                  " S5      R                  SS5      SS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   e[        R                  " 5       u  pUR	                  [
        R                  " S5      R                  SS5      / SQS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S:X  d   eSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   eSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   e[        5       R                  S5      R                  S5      n	UR	                  [
        R                  " S5      R                  SS5      X’R                  -   S9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   eg )Nr   ©Ú
MouseEventrT   rs   rº   )r]   ©r   r   Úmotion_notify_eventé,   )g333333$@r   rZ   )r   ré   r   ré   ©Úextent)ç      Ð?r  é7   )rð   r  )ç{®Gáz„?g{®Gáz„¿r   ré   ©Ú	transform)r#   rs   )Úmatplotlib.backend_basesrþ   r(   r)   r/   r*   ra   ÚreshapeÚ	transDatar  ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)
rþ   r0   ro   rÕ   rc   rd   ÚxdispÚydispÚeventÚtranss
             r4   Útest_cursor_datar  2  sþ  € Ý3ä�lŠl‹n�G€CØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÐ	B€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ð �D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,ð ‡H�H„Jà	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÐ	B€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ä�lŠl‹n�G€CØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1Ò:JˆÐ	K€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ð �D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,à�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EáÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,ô ‹J×Ñ˜QÓ×&Ñ& sÓ+€EØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1Ø"§\¡\Ñ1ð 
ð 
3€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EÙÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ñ*r6   zxy, dataré   ç      ø?r   g      @rÇ   g      !@g      #@g      @éU   r^   c                 óX  • SSK Jn  [        R                  " / SQ5      n[        R                  " / SQ5      nU[        R                  S S 24   S-  US S 2[        R                  4   S-  -   n[
        R                  " 5       u  pg[        XsR                  5       UR                  5       UR                  5       UR                  5       4S9nUR                  X4U5        UR                  U5        UR                  UR                  5       S-
  UR                  5       5        UR                  UR                  5       S-
  UR                  5       5        UR                  R                  U 5      u  pšU" SUR                   Xš5      nUR#                  U5      U:X  d   UR#                  U5      U45       eg )Nr   rý   )r   r   r   é	   rÇ   )r   r   r   r#   r   r   r  r   )r	  rþ   r*   rI   Únewaxisr(   r)   r   ÚminÚmaxÚset_dataÚ	add_imager†   r‡   r  r  r  r  )Úxyr­   rþ   rc   rd   re   r0   ro   rÕ   r  r  r  s               r4   Útest_cursor_data_nonuniformr   y  s9  € õ 4ô 	�ŠÒ!Ó"€AÜ
�Š’Ó!€AØ	Œ"�*‰*’aˆ-Ñ˜!Ñ˜a¢¤2§:¡: Ñ.°Ñ1Ñ1€Aä�lŠl‹n�G€CÜ	˜§U¡U£W¨a¯e©e«g°q·u±u³wÀÇÁÃÐ$HÑ	I€BØ‡K�K��aÔØ‡L�L�Ôà‡K�K�—‘“˜!‘˜QŸU™U›WÔ%Ø‡K�K�—‘“˜!‘˜QŸU™U›WÔ%à—<‘<×)Ñ)¨"Ó-�L€EÙÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó,ÐO¨r×/AÑ/AÀ%Ó/HÈ$Ð.OÓOÑ,r6   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$�•ï?z[0.123]r   ú[]g     ð?z[1.0000000000000000]z[-1.0]z[0.00]c                 ó  • SSK Jn  [        R                  " 5       u  p4UR	                  U 5      nUR
                  R                  SS/5      u  pgU" SUR                  Xg5      nUR                  UR                  U5      5      U:X  d   eg )Nr   rý   r   )
r	  rþ   r(   r)   r/   r  r  r  Úformat_cursor_datar  )	r­   Útextrþ   r0   ro   rÕ   r  r  r  s	            r4   Útest_format_cursor_datar%  ™  sr   € õ 4ä�lŠl‹n�G€CØ	�‰�4‹€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€EÙÐ,¨c¯j©j¸%ÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÓCÐCÑCr6   Ú
image_clip)r   c                  óÆ   • SS/SS//n [         R                  " 5       u  pUR                  U 5      n[        R                  " SSUR
                  S9nUR                  U5        g )Nr   r   r#   r   ©r   r   )Úradiusr  )r(   r)   r/   r   ÚCircler  Úset_clip_path)Údr0   ro   rÕ   Úpatchs        r4   Útest_image_clipr.  ­  sR   € à
ˆQˆ�!�Q�Ð€Aä�lŠl‹n�G€CØ	�‰�1‹€BÜ�NŠN˜6¨!°r·|±|ÑD€EØ×Ñ�UÕr6   Úimage_cliprectc                  óÚ   • [         R                  " 5       u  pSS/SS//nUR                  USS9n[        R                  " SSSUR
                  R                  S9nUR                  U5        g )	Nr   r   r#   r   ©r   r   r   r   r  ©r   r   )r  ÚwidthÚheightr  )r(   r)   r/   r   Ú	RectangleÚaxesr  r+  )r0   ro   r,  rÕ   Úrects        r4   Útest_image_cliprectr8  ·  se   € ä�lŠl‹n�G€CØ
ˆQˆ�!�Q�Ð€Aà	�‰�1˜\ˆÐ	*€Bä×ÒØ˜ 1°·±×0AÑ0AñC€Dà×Ñ�TÕr6   c                 óv  • [         R                  " S5      R                  S5      nUR                  5       nUR	                  US S 2S S 2S4   SSS9  UR                  SS5        UR                  SS5        U R                  5       nUR	                  USSS9  UR                  SS5        UR                  SS5        g )NrT   )rs   rs   r   r   r'   )r   r   r   r   )r&   r  r#   )r*   ra   r
  r)   r/   r†   r‡   )r   r€   r¼   ro   s       r4   Ú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Õr6   c                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)NéÈ   )rs   rs   r   ©	r(   r)   r*   ra   r
  ÚpytestÚraisesÚ	TypeErrorr/   ©r0   ro   r¼   s      r4   Útest_imshow_10_10_2rB  Ò  óJ   € Ü�lŠl‹n�G€CÜ
�)Š)�C‹.×
 Ñ
  Ó
-€CÜ	�Š”yÕ	!Ø
�	‰	�#Œ÷ 
"×	!Ö	!úó   ÁA2Á2
B c                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Niô  )rs   rs   r   r=  rA  s      r4   Útest_imshow_10_10_5rF  Ù  rC  rD  Úno_interpolation_originc                  ó  • [         R                  " S5      u  pUS   R                  [        R                  " S5      R                  S5      SSS9  US   R                  [        R                  " S5      R                  S5      SS	9  g )
Nr   r   rT   )r   rY   rZ   r$   )r]   r&   r   r%   )r(   r)   r/   r*   ra   r
  )r0   r“   s     r4   Útest_no_interpolation_originrI  à  sg   € ä�|Š|˜A‹�H€CØˆ�F‡M�M”"—)’)˜C“.×(Ñ(¨Ó1¸'Ø &ð ñ (àˆ�F‡M�M”"—)’)˜C“.×(Ñ(¨Ó1À€MÒHr6   Úimage_shift)r   r;   c            
      óF  • [        SS5       V Vs/ s H)  n [        SS5       Vs/ s H  nSU-  SU -  -   PM     snPM+     nn nSnSn[        R                  " 5       u  pVUR                  U[        R
                  " 5       SX4SS4S9  UR                  S5        g s  snf s  snn f )Nr   rT   g�Mòãûk&Ag˜Šäûk&Ar$   )Únormr&   r  rx   )Úranger(   r)   r/   r	   ÚLogNormÚ
set_aspect)rd   rc   ÚimgDataÚtMinÚtMaxr0   ro   s          r4   Útest_image_shiftrS  è  s�   € ä?DÀQÈ¼}ÔMº}¸!¤u¨Q°¤}Ó5¢} !��A‘˜˜A™”¡}Ô5¹}€GÑMØ€DØ€Dä�lŠl‹n�G€CØ‡I�IˆgœFŸNšNÓ,¸FØ ! SÐ)ð ñ +à‡M�M�&Õùò 6ùÓMs   �B¤B¹BÂBc                  ó”  • [         R                  " SS/S9n U R                  / SQSS9n[        R                  " [        R
                  " S5      S5      R                  SS	5      nUR                  US
/ SQSSS9nS=pEUR                  U* U/5        UR                  U* U/5        UR                  / 5        UR                  / 5        [        R                  " 5       nU R                  USS9  UR                  S5        [         R                   " U5      n[#        US S 2S4   5      u  pxpš[#        US S 2S4   5      u  pxpšUS:w  d   S5       eg )Nr   ©rV   rw   F)Úframeoné   é   rX   r  rº   ©éöÿÿÿrs   rZ  rs   r$   Úgray)r]   r  r&   Úcmapr   )r   r   r   )Ú	facecolorr   r^   rT   z.Expected a non-green edge - but sadly, it was.)r(   r_   Úadd_axesr*   Útilera   r
  r/   r†   r‡   Ú
set_xticksÚ
set_yticksrj   rk   rl   rm   rn   rž   )r0   ro   r­   rÕ   rc   rd   r¾   ÚrÚgÚbÚas              r4   Útest_image_edgesrf  ô  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ˆ!Ü�Rš˜2˜‘Y“�J€Aˆ!à�‹8ÐEÐEÓE‰8r6   Úimage_composite_background)r   r   c                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  SS5      nUR                  U/ SQS9  UR                  U/ SQS9  UR                  S5        UR                  SS/5        g )	NrW  r   r#   )r   r   rX  r   r  )r   rç   rX  r   )r   r   r   ré   r   )r(   r)   r*   ra   r
  r/   Úset_facecolorr†   rA  s      r4   Útest_image_composite_backgroundrj    si   € ô �lŠl‹n�G€CÜ
�)Š)�B‹-×
Ñ
  1Ó
%€CØ‡I�Iˆcš-€IÑ(Ø‡I�Iˆcš-€IÑ(Ø×Ñ�^Ô$Ø‡K�K��B�Õr6   Úimage_composite_alphac                  óš  • [         R                  " 5       u  p[        R                  " S5      nSUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      USS2SS2S4'   [        R                  " S	5      nSUSS2SS2S4'   SUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      SS2[        R                  4   USS2SS2S4'   UR                  U/ S
QSS9  UR                  U/ SQSS9  UR                  U/ SQS9  UR                  U/ SQS9  UR                  U/ SQSS9  UR                  U/ SQSS9  UR                  S5        UR                  SS/5        UR                  SS/5        g)zo
Tests that the alpha value is recognized and correctly applied in the
process of compositing images together.
)é   é   r   r   Nr   çš™™™™™ñ?çš™™™™™¹?r^   r#   )rn  rm  r   )r   r   r   r   ç333333Ó?)r  rè   )r   r#   r   r   ç333333ã?)r#   r   r   r   r  )r   r   r   r   )r   r   r   r#   )r   r   r#   r   )r   ré   r   r   r   )r(   r)   r*   r+   rô   ra   r  r/   ri  r†   r‡   )r0   ro   r¼   Úarr2s       r4   Útest_image_composite_alphart    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�Õr6   c                 ó|  • [         R                  " S5      R                  S5      nX4 H‰  nUR                  5       nUR	                  U[
        R                  R                  / SQ5      UR                  4S9  UR	                  U[
        R                  R                  / SQ5      UR                  4S9  M‹     SUl	        g )Nr  ©r#   r#   )r(  ©r   r   )r   r   )Ú	clip_path)r2  ©r   r   )r   r   T)
r*   ra   r
  Úadd_subplotr/   Úmplrš   r   r  rO   )r   r€   Útr0   ro   s        r4   Ú#test_clip_path_disables_compositingr}  6  s•   € ä
�	Š	�!‹×Ñ˜VÓ$€AØÓ"ˆØ�_‰_ÓˆØ
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ñ 	/à
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ó 	/ñ	 #ð !%€GÕr6   Úrasterize_10dpi)r;   r   r   c                  óæ  • [         R                  " SS/SS//5      n [        R                  " SSSS9u  pUS   R	                  U 5        US   R                  SS/SS/SS	S
9  US   R                  SSS9  US   R                  SS/SS/SS9  US   R                  SSS9  U HC  nUR                  / 5        UR                  / 5        UR                  S S  R                  S5        ME     S[        S'   g )Nr   r   r#   r   )r#   r   rU  r   g      4@T)Ú	linewidthÚ
rasterizedrw  )r^   r   ©ÚxlimÚylim)r€  Frs   r=   )r*   Úasarrayr(   r)   r/   ri   Úsetr`  ra  ÚspinesÚset_visibler   )r3   r0   r“   ro   s       r4   Útest_rasterize_dpir‰  B  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ˆ]Òr6   Úbbox_image_invertedc            	      óŒ  • [         R                  " S5      R                  S5      n [        R                  " 5       u  p[        [        [        SS/SS//5      UR                  5      SS9nUR                  U 5        UR                  S5        UR                  SS5        UR                  SS5        UR                  U5        [         R                  " S5      n [        [        [        SS	/S
S//5      UR                  5       R                   5      SS9nUR                  U 5        UR                  S5        UR                  U5        g )NrT   ©rs   rs   r   rH   r%   Frs   rp  çš™™™™™É?rq  r  )r*   ra   r
  r(   r)   r   r   r   r  r  Úset_clip_onr†   r‡   Ú
add_artistÚidentityÚ
get_figureÚtransFigure)r
   r0   ro   Úbbox_ims       r4   Útest_bbox_image_invertedr”  a  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Ø(*¯©«×(CÑ(CóEà&/ñ1€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡M�M�'Õr6   c                  óf  • [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [        R                  " SSS9u  pUR	                  / SQ5        UR                  S	S
5        UR                  S	S
5        UR                  U / SQSS9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        [        R                  " SSS9u  pUR	                  / SQ5        UR                  S
S5        UR                  S	S
5        UR                  U / SQSUR                  S9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        g )N)r  rð   r´   rð   )rp  gÍÌÌÌÌÌä?ré   çš™™™™™Ù?)rr  rq  rµ   r�  )çffffffæ?çÍÌÌÌÌÌì?r–  rr  rŒ  rT   rU   rw   r   r   )r–  r—  r�  r˜  rH   )r  r&   i�  r<  i¼  i„  r   )r  r&   r  )r*   rI   r(   r)   r~   r†   r‡   r/   r  ÚdrawÚrendererÚget_window_extentr   Ú
get_pointsÚ	transAxes)rÕ   r0   ro   Úim_objrš  Úim_bboxs         r4   Ú$test_get_window_extent_for_AxisImager   z  st  € ô
 
�ŠÒ*Ò,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ÕFr6   zzoom_and_clip_upper_origin.pngc                  óê   • [         R                  " S5      n U R                  S5      n [        R                  " 5       u  pUR                  U 5        UR                  SS5        UR                  SS5        g )NrT   rŒ  ç       @ç      à¿)r*   ra   r
  r(   r)   r/   r‡   r†   )r
   r0   ro   s      r4   Útest_zoom_and_clip_upper_originr¤  �  sT   € ô �IŠI�c‹N€EØ�M‰M˜(Ó#€Eä�lŠl‹n�G€CØ‡I�IˆeÔØ‡K�K��TÔØ‡K�K��cÕr6   c                  óf   • [         R                  " 5       n [        U 5      nUR                  S5        g )NÚBlues)r(   Úgcar   Úset_cmap©ro   rÕ   s     r4   Útest_nonuniformimage_setcmaprª  ©  s#   € Ü	�Š‹€BÜ	˜Ó	€BØ‡K�K�Õr6   c                  óŒ   • [         R                  " 5       n [        U 5      nUR                  [         R                  " 5       5        g ©N)r(   r§  r   Úset_normÚ	Normalizer©  s     r4   Útest_nonuniformimage_setnormr¯  ¯  s)   € Ü	�Š‹€BÜ	˜Ó	€BØ‡K�K”—’“Õ r6   c                  óP  • [         R                  " SSS9n [        S5       H$  n[         R                  " SSS5      S-  XS S 24'   M&     [        R
                  " SS5      nUR                  U R                  5       5        [        R                  " 5       u  p4UR                  U5        g )	NrŒ  r.   r    rs   rµ   r´   rE   ÚL)r*   r,   rM  Úlinspacer   ÚnewÚputdataÚflattenr(   r)   r/   )ÚimdÚirÕ   r0   ro   s        r4   Útest_jpeg_2dr¸  µ  sw   € ä
�'Š'�( 'Ñ
*€CÜ�2ŽYˆÜ—K’K  S¨"Ó-°Ñ3ˆŠqˆD‹	ñ ä	�Š�3˜Ó	!€BØ‡J�Jˆs�{‰{‹}ÔÜ�lŠl‹n�G€CØ‡I�Iˆb…Mr6   c                  óò  • [         R                  " SSS9  [        R                  " S[        S9n [        R
                  " SSS5      U S'   [         R                  " U 5        [        R                  " 5       n[         R                  " US	S
SS9  UR                  S5        [        R                  " U5      n[        UR                  S5      5      nSUs=::  a  S::  d   e   eUR                  S5      nUS:X  d   eg )Nr2  é,  rU   )rº  rº  r   r    rµ   r´   r"   Úredr¤   )r]  r¨   rW   r   é   é¯   éæ   r(  )éþ   r   r   )r(   r_   r*   r+   Úfloatr²  rP   rj   rk   rl   rm   r   r�   rÜ   Ú	getcolorsÚgetpixel)rÕ   r·   r
   Ú
num_colorsÚcorner_pixels        r4   Ú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Ø˜;Ó&Ð&Ñ&r6   c                  óô   • [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg ©NrW  r    ©r   r#   çÍÌÌÌÌÌ#@r(  r   úvalue changed)	r(   r§  r   r*   ra   rÀ  r
  r  Ú_A©ro   rÕ   re   s      r4   Útest_axesimage_setdatarÍ  Ø  s`   € Ü	�Š‹€BÜ	�2‹€BÜ
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÓÐ,˜_Ó,Ñr6   c                  óô   • [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg rÇ  )	r(   Úgcfr   r*   ra   rÀ  r
  r  rË  )r0   rÕ   re   s      r4   Útest_figureimage_setdatarÐ  á  sa   € Ü
�'Š'‹)€CÜ	�SÓ	€BÜ
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÓÐ,˜_Ó,Ñr6   zimage_cls,x,y,aç      @ç      @g      (@rÈ  g      @)r#   r   c                 ót  • [         R                  " 5       nU " U5      nUR                  XU5        S=US'   =US'   US'   UR                  S   UR                  S   s=:X  a   UR
                  S   s=:X  a  S:X  d   S5       e   S5       eUR                  XUR                  / UR                  QSP75      5        g )NrÉ  r   r(  rÊ  r^   )r(   r§  r  rË  Ú_AxÚ_Ayr
  r«   )Ú	image_clsrc   rd   re  ro   rÕ   s         r4   Útest_setdata_xyar×  ê  s¤   € ô 
�Š‹€BÙ	�2‹€BØ‡K�K��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��a—i‘i  !§'¡' ¨2¡Ó/Õ0r6   c                  óˆ  • SSK Jn   [        R                  R	                  S5        [        R                  R                  SS5      n[        R                  " SS5      u  p#US   R                  U5      nUS   R                  U5      n[        R                  " XCS   S9  [        R                  " XSS   S9  [        R                  " 5       n[        R                  " USS9  [        R                  " UR                  5       5      nU R                  U5      nS nUR                  S	5       H  n	Uc  U	S
   nM  U	S
   U:w  d  M   e   g )Nr   )ÚElementTreers   r   r   )ro   r9   r©   r
   r3  )Ú	xml.etreerÙ  r*   ry   rz   r{   r(   r)   Ú
pcolormeshÚcolorbarrj   rk   rl   ÚgetvalueÚparseÚiter)
rÙ  r­   r0   ro   Úp1Úp2r·   Útreer3  r
   s
             r4   Ú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ò $r6   c                  óà  • [        [        5      R                  S-  n S[        R                  S:X  a  SOS-   U R                  5       R                  5       -   n[        R                  " [        SS9   [        R                  " U5        S S S 5        [        R                  R                  U5       n[        R                  " U5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)Nr‹   zfile:Úwin32z///Ú zPlease open the URL©Úmatch)r   rŽ   r�   ÚsysÚplatformÚresolveÚas_posixr>  r?  Ú
ValueErrorr(   rn   ÚurllibÚrequestÚurlopen)rš   ÚurlÚfiles      r4   Útest_load_from_urlró    s£   € Ü”‹>× Ñ Ð#JÑJ€DØÜ—|‘| wÓ.‰e°Bñ8à�\‰\‹^×$Ñ$Ó&ñ'€Cô 
�Š”zÐ)>Ó	?Ü�
Š
�3Œ÷ 
@ä	�‰×	Ñ	 Ô	$¨Ü�
Š
�4Ô÷ 
%Ð	$÷ 
@Õ	?úç	$Õ	$ús   Á0CÂ.CÃ
CÃ
C-Úlog_scale_imagec            	      ó¸   • [         R                  " S5      n SU S S S2'   [        R                  " 5       u  pUR	                  U / SQSSSSS9  UR                  S	S
9  g )NrŒ  r   r   )r   rT   r   rT   Úviridisr^   rx   )r  r\  ÚvmaxÚvminÚaspectÚlog)Úyscale)r*   r+   r(   r)   r/   r†  )rê   r0   ro   s      r4   Útest_log_scale_imagerü  &  sW   € ä
�Š�Ó€AØ€A�cˆ€c�Fä�lŠl‹n�G€CØ‡I�IˆaÒ(¨y¸qÀrØð ñ à‡F�F�%€FÒr6   Úrotate_imagec            	      óÞ  • Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nXe-
  n[
        R                  " SS5      u  p‰U	R                  USS	S
/ SQSS9n
[        5       R                  S5      U	R                  -   nU
R                  U5        U
R                  5       u  pÍpïU	R                  XÍXÜU/XîXÿU/SSUS9  U	R                  SS5        U	R                  SS5        g )Nr  ç      ÀrÑ  r   r   r  ré   r$   rö  rZ   )éþÿÿÿr   éýÿÿÿr   T)r&   r\  r]   r  Úclip_oné   zr--r#   )Úlwr  r   r   r   )r*   ra   ÚmeshgridÚexpÚpir(   r)   r/   r   Ú
rotate_degr  Úset_transformÚ
get_extentri   r†   r‡   )Údeltarc   rd   rK   ÚYÚZ1ÚZ2rê   r0   rL   Úim1Útrans_data2Úx1Úx2Úy1Úy2s                   r4   Útest_rotate_imager  1  sg  € à€EÜ�IŠI�d˜C Ó'Ð'€AÜ�;Š;�qÓ�D€AÜ	�Š�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&Š&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
‰€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Õr6   c                  ó  • [         R                  " 5       n [        R                  " S5      n[        R
                  " XSS9  U R                  S5        [        R                  " U 5      nUR                  S S UR                  :X  d   eg )N)iá  iA  rQ   r©   r   r   )	rj   rk   r*   r+   r(   rª   rm   rn   r«   )r·   rÕ   r3   s      r4   Útest_image_preserve_sizer  M  s^   € Ü�:Š:‹<€Dä	�Š�*Ó	€BÜ‡J‚Jˆt Ò&à‡I�Iˆa„LÜ
�*Š*�TÓ
€Cà�9‰9�R�aˆ=˜BŸH™HÓ$Ð$Ñ$r6   c                  ó(  • Sn [         R                  " U [        5      n[        R                  " X 4SS9nUR                  S5      nUR                  5         UR                  USSSS9  [        R                  " 5       nUR                  US	S
9  UR                  S5        [        R                  " U5      nUR                  S:X  d   e[        [         R                  " US S 2S S 2S4   [         5      [         R                  " U [         5      S S S2   5        g )Né   F)rV   rV  )rµ   rµ   r´   r´   rH   rZ   rx   )r&   r]   rù  r   )rW   r   )r  r  r   r^   )r*   r�  rÀ  r(   r_   r^  Úset_axis_offr/   rj   rk   rl   rm   rn   r«   r   r…  Úbool)Únr­   r0   ro   r·   r3   s         r4   Útest_image_preserve_size2r  Y  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õ3r6   zmask_image_over_under.pngr´   )r   r:   c                  ó†  • Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nSXe-
  -  n[
        R                  R                  R                  S	S
SS9n[         R                  R                  US:„  U5      n	[
        R                  " SS5      u  n
u  p¼UR                  U	SU[        R                  " SSSS9S/ SQS9nUR                  S5        U
R!                  USSUSS9  UR                  U	SU[        R"                  " / SQSSS9S/ SQS9nUR                  S5        U
R!                  USSSUSS 9  g )!Ngš™™™™™™?rÿ  rÑ  r   r   r  ré   rs   rb  rc  rd  ©ÚoverÚunderÚbadç333333ó?r'   g      ð¿r´   F)rø  r÷  ÚcliprZ   )r  r#   r  r#   )r&   r\  rL  r]   r  zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationro   rù  rH   )r^   r£  gš™™™™™É¿r   r�  ré   r   r¼  )Úncolorsr$  zWith BoundaryNormÚproportional)r'  Úspacingr(  ro   rù  )r*   ra   r  r  r  r(   Úcmr[  Úwith_extremesÚmaÚmasked_wherer)   r/   r	   r®  rJ   rÜ  ÚBoundaryNorm)r  rc   rd   rK   r  r  r  rê   ÚpaletteÚZmr0   rL   rM   rÕ   s                 r4   Útest_mask_image_over_underr3  m  sÅ  € ð €EÜ�IŠI�d˜C Ó'Ð'€AÜ�;Š;�qÓ�D€AÜ	�Š�!�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‰ˆ#Ø	�‰�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¸"ð ò >r6   Ú
mask_imagec                  ó¤  • [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  USS2SS24'   UR                  USS9  [        R                  " S[        S9nSUSS2SS24'   [        R                  R                  [        R                  " S[        R                  S9U5      nUR                  USS9  g )Nr   r   r   rH   r%   r    T)r(   r)   r*   r,   Únanr/   r+   r  r.  Úmasked_arrayr�   )r0   rL   rM   rƒ   s       r4   Útest_mask_imager8  �  sª   € ô —l’l 1 aÓ(�O€C‰ˆ#ä
�Š�‹€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Ò*r6   c                  óÒ   • [         R                  " S[         R                  5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )NrS   )r*   rõ   r6  r(   r)   r/   r  Ú	draw_idle)r­   r0   ro   s      r4   Útest_mask_image_allr;  Ÿ  s>   € ä�7Š7�6œ2Ÿ6™6Ó"€DÜ�lŠl‹n�G€CØ‡I�Iˆd„OØ‡J�J×ÑÕr6   zimshow_endianess.pngc                  óp  • [         R                  " S5      n [         R                  " X 5      u  p[         R                  " US-
  US-
  5      n[        R
                  " SS5      u  nu  pV[        SSSS9nUR                  " UR                  S	5      40 UD6  UR                  " UR                  S
5      40 UD6  g )Nrs   r   r   r   rZ   rH   rö  )r]   r&   r\  z<f8z>f8)	r*   ra   r  Úhypotr(   r)   Údictr/   rÈ   )rc   rK   r  rê   r0   rL   rM   Úkwargss           r4   Útest_imshow_endianessr@  §  s�   € ä
�	Š	�"‹€AÜ�;Š;�qÓ�D€AÜ
�Š��Q‘˜˜A™Ó€Aä—l’l 1 aÓ(�O€C‰ˆ#ä˜°	À	ÑJ€Fà‡J‚Jˆq�x‰x˜‹Ñ) &Ò)Ø‡J‚Jˆq�x‰x˜‹Ñ) &Ó)r6   Úimshow_masked_interpolationÚx86_64r  )r:   r   r   c                  óð  • [         R                  S   R                  SSSS9n Sn[        R                  " SX-  S-
  S	9n[
        R                  " X-  [        S
9R                  X5      nSUS'   SUS'   [
        R                  US'   [
        R                  " U5      R                  S5      nSUS'   [
        R                  R                  X45      n[        R                  " SS5      u  pV[!        ["        R$                  5      nUR'                  S5        UR'                  S5        [)        XvR+                  5       5       H7  u  p‰U	R-                  U5        U	R/                  X2XS9  U	R1                  S5        M9     g )Nrö  rb  rd  rá   r  rX   r   r   ©rø  r÷  r    r^   r   g     jø@)rX  r   )rX  rX  r  T)r   rX  r#   rç   rx   Úantialiased)rL  r\  r&   Úoff)r{  Ú	colormapsr-  r	   r®  r*   ra   rÀ  r
  ÚinfÚ
zeros_likerÈ   r.  r7  r(   r)   Úsortedr½   Ú	_interpd_ÚremoveÚzipÚravelrJ   r/   rò   )
r\  ÚNr  r­   Úmaskr0   Úax_gridÚinterpsÚinterpro   s
             r4   Ú test_imshow_masked_interpolationrT  µ  s/  € ô
 �=‰=˜Ñ#×1Ñ1°sÀ#È3Ð1ÐO€Dà
€AÜ×Ò˜a a¡c¨!¡eÑ,€Aä�9Š9�Q‘S¤Ñ&×.Ñ.¨qÓ4€Dà€Dˆ�Jð €Dˆ�Kô —6‘6€Dˆ�Lä�=Š=˜Ó×%Ñ% fÓ-€DØ€Dˆ�Kä�5‰5×Ñ˜dÓ)€Dä—<’<  1Ó%�L€CÜ”V×%Ñ%Ó&€GØ‡N�N�6ÔØ‡N�N�=Ô!ä˜'§=¡=£?Ö3‰
ˆØ
�‰�VÔØ
�	‰	�$ Tˆ	Ñ@Ø
�‰�Žò 4r6   c                  óX   • [         R                  " SS/S[        R                  //5        g )Nr   r   r#   )r(   r/   r*   r6  © r6   r4   Útest_imshow_no_warn_invalidrW  Ú  s   € Ü‡J‚J��A�˜œBŸF™F˜Ð$Õ%r6   r!   zu2 u4 i2 i4 i8 f4 f8c                 ób  • [         R                  " SU S9R                  S5      nU R                  S:w  a  US-  nUS:  nUS:„  nU R                  S:X  a  US-  n[        R
                  " 5       u  pEUR                  U5      R                  5       nXb   S:H  R                  5       (       d   eU R                  S:X  a9  Xc   S	:H  R                  5       (       d   eUR                  R                  S:X  d   eg Xc   S:H  R                  5       (       d   eUR                  [         R                  :X  d   eg )
Nrº  r    )rs   rs   r#   Úurs   r   rE   Úfr   )r*   ra   r
  Úkindr(   r)   r/   Ú	get_arrayÚallr!   r.   )r!   r¼   Útoo_lowÚtoo_highÚ_ro   Úouts          r4   Ú$test_imshow_clips_rgb_to_valid_rangerb  Þ  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Ø
�)‰)�C‹.×
"Ñ
"Ó
$€CØ‰L˜AÑ×"Ñ"×$Ñ$Ð$Ð$Ø‡z�z�SÓØ‘ Ñ"×'Ñ'×)Ñ)Ð)Ð)Ø�y‰y�~‰~ Ó$Ð$Ñ$à‘ Ñ$×)Ñ)×+Ñ+Ð+Ð+Ø�y‰yœBŸH™HÓ$Ð$Ñ$r6   zimshow_flatfield.pngc                  óž   • [         R                  " 5       u  pUR                  [        R                  " S5      SS9nUR                  SS5        g )Nr   rH   r%   ré   r  )r(   r)   r/   r*   r,   Úset_clim©r0   ro   rÕ   s      r4   Útest_imshow_flatfieldrf  ó  s7   € ä�lŠl‹n�G€CØ	�‰”2—7’7˜6“?°)ˆÐ	<€BØ‡K�K��CÕr6   zimshow_bignumbers.pngc                  óÜ   • S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/[        R
                  S9nUR                  U5      nUR                  SS5        g )NrH   úimage.interpolation)r   r   g   ¢”mB)r#   r   r   r    r   r   )r   r(   r)   r*   rI   Úuint64r/   rd  ©r0   ro   r3   Úpcs       r4   Útest_imshow_bignumbersrl  ú  sP   € à&/„HÐ"Ñ#ô �lŠl‹n�G€CÜ
�(Š(’L¢)Ð,´B·I±IÑ
>€CØ	�‰�3‹€BØ‡K�K��1Õr6   zimshow_bignumbers_real.pngc                  óÂ   • S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/5      nUR                  U5      nUR                  SS5        g )NrH   rh  )r¢  r´   g’ÕMÏð€D)rÒ  r´   rÑ  r   r   )r   r(   r)   r*   rI   r/   rd  rj  s       r4   Útest_imshow_bignumbers_realrn    sL   € ð '0„HÐ"Ñ#ô �lŠl‹n�G€CÜ
�(Š(’O¢\Ð2Ó
3€CØ	�‰�3‹€BØ‡K�K��1Õr6   Ú	make_normc                  ó.   • [         R                  " S5      $ ©Nr   )r	   Ú
SymLogNormrV  r6   r4   Ú<lambda>rs    s   € ŒV×Ò˜qÔ!r6   c                  ó.   • [         R                  " S5      $ rq  )r	   Ú	PowerNormrV  r6   r4   rs  rs    s   € ŒV×Ò˜aÔ r6   c                 óØ  • [         R                  " 5       u  p[        R                  " [        SS9   UR                  / /U " 5       S9nS S S 5        WR                  / SQ5        UR                  R                  5         [        R                  " [        5         UR                  UR                  R                  5       5        S S S 5        g ! , (       d  f       Nˆ= f! , (       d  f       g = f)Nz.Attempting to set identical low and high xlimsrç  ©rL  )éûÿÿÿr   rx  r   )r(   r)   r>  ÚwarnsÚUserWarningr/   Ú
set_extentr  r™  r?  ÚRuntimeErrorÚ
make_imageÚget_renderer)ro  r0   ro   rÕ   s       r4   Útest_empty_imshowr    sž   € ô �lŠl‹n�G€CÜ	�Š”kØLó
Nà�Y‰Y˜�t¡)£+ˆYÐ.ˆ÷
Nð ‡M�M’.Ô!Ø‡J�J‡O�OÔä	�Š”|Õ	$Ø
�‰�c—j‘j×-Ñ-Ó/Ô0÷ 
%Ð	$÷
Nõ 
Nú÷ 
%Õ	$ús   ±C
Â*CÃ

CÃ
C)c                  óÊ   • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        U R                  R                  5         g )Nrv  r    )r(   r)   r/   r*   r+   Úfloat16r  r™  ©r0   ro   s     r4   Útest_imshow_float16rƒ  #  s8   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh�v¤R§Z¡ZÑ0Ô1à‡J�J‡O�OÕr6   c                  ó¸  • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        [        R                  " [        R
                  [        R                  S5      (       a
  [        5       O[        R                  " [        5         U R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nrv  r    Úequiv)r(   r)   r/   r*   r+   Ú
longdoubleÚcan_castÚfloat64r   r>  ry  rz  r  r™  r‚  s     r4   Útest_imshow_float128r‰  *  sz   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh�v¤R§]¡]Ñ3Ô4ÜŸš¤R§]¡]´B·J±JÀ×HÑHŒ)Œ+Ü�|Š|œKÓ(ñ)ð 	�
‰
�‰Ô÷)÷ )ö )ús   Â'CÃ
Cc                  óŽ   • [         R                  " 5       u  pUR                  [        R                  " SS/SS//[
        S95        g )NTFr    )r(   r)   r/   r*   rI   r  r‚  s     r4   Útest_imshow_boolr‹  3  s3   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh˜˜u˜¨¨t }Ð5¼TÑBÕCr6   c                  óÎ   • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  5      5        U R                  R                  5         g )NrŒ  )r(   r)   r/   r*   rõ   r6  r  r™  r‚  s     r4   Útest_full_invalidr�  8  s8   € Ü�lŠl‹n�G€CØ‡I�IŒb�gŠg�h¤§¡Ó'Ô(à‡J�J‡O�OÕr6   zfmt,counted)rÁ   s    colorimage)r9   s   <imagezcomposite_image,count)Tr   )Fr   c                 ó  • [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  pE[         R                  " US-  5      n[        R
                  " 5       u  pxUR                  SS5        UR                  U/ SQS9  UR                  US S S	2   / S
QS9  U[        R                  S'   [        R                  " 5       n	UR                  X�S9  U	R                  5       R                  U5      U:X  d   eg )Nrx  r   r   r   r   r#   ©r   r   r   r   r  r^   )r   r#   r   r   zimage.composite_imager©   )r*   r  ra   rb   r(   r)   r†   r/   r   rj   rk   rl   rÝ  Úcount)
r£   ÚcountedÚcomposite_imager�  rK   r  rê   r0   ro   r¾   s
             r4   Útest_compositer“  ?  sË   € ô �;Š;”r—y’y  Q¨Ó*¬B¯IªI°b¸!¸QÓ,?Ó@�D€AÜ
�Šˆ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�€KÑ Ø�<‰<‹>×Ñ Ó(¨EÓ1Ð1Ñ1r6   c                  óò   • [         R                  " 5       u  pUR                  S//SS9  UR                  5         UR	                  5         UR                  5       UR                  5       s=:X  a  S:X  d   e   eg )Nr   r�  r  rw  )r(   r)   r/   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr‚  s     r4   Ú
test_relimr™  R  sZ   € Ü�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Ñ3r6   c                  ór  • [         R                  " 5       u  pUR                  5         UR                  SS/SS//SSSSS9nUR	                  SSS9  U R
                  R                  5         [        R                  " U R
                  R                  5       5      S	S S
24   S:H  R                  5       (       d   eg )Nr   rx   rY  r[  F)rù  r  r\  r  rw  r‚  .r#   )r(   r)   r  r/   r†  r  r™  r*   rI   Úbuffer_rgbar]  re  s      r4   Útest_unclippedrœ  Z  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ÐCÑCr6   c                  ó*  • [         R                  " S5      u  pU H  nUR                  5         M     US   R                  SS/SS//SSS9nUR	                  S 5        UR                  US   R                  5        [        R                  " 5       nU R                  USS	9  1 UR                  5       kS
1:X  d   eUS   R                  SS9  [        R                  " 5       nU R                  USS	9  UR                  5       UR                  5       :w  d   eg )Nr   r   r   r#   rx   r�  )rù  r  Úrgbar©   rE   )r^   r   )r„  )r(   r)   r  r/   r+  Úset_clip_boxÚbboxrj   rk   rl   rÝ  r†  )r0   r“   ro   rÕ   Ú
buf_beforeÚ	buf_afters         r4   Útest_respects_bboxr£  f  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Ñ8r6   c                  ó¦  • [         R                  " 5       u  pUR                  [        R                  " S5      5      n[        R
                  R                  S/S/S9nUR                  U5      S:X  d   e[        R
                  R                  S/S/S9nUR                  U5      S:X  d   e[        R                  nUR                  U5      S:X  d   eg )	Nrÿ   r   T©rP  r!  Fz[0]z[nan])	r(   r)   r/   r*   r+   r.  r7  r#  r6  )r0   ro   rÕ   r­   s       r4   Útest_image_cursor_formattingr¦  x  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Ñ1r6   c                 óÂ  • [         R                  " SS5      n[         R                  " X"5      u  p4[         R                  " SUS-
  S-  -  US-
  -   5      nXUR	                  5       -  n[
        R                  S   nU R                  5       nUR                  XVUSS	9  UR                  5       nU" [        R                  " 5       " U5      5      n	XiS
'   UR                  U	SS9  g)zPer-pixel alpha channel test.r   r   r  ré   r   g[�Âõ(\ß?rö  rH   )rè   r\  r&   ).r^   r%   N)r*   r²  r  r  r  r{  rG  rz  r/   r	   r®  )
r   r€   rc   ÚxxÚyyÚzzrè   r\  ro   rž  s
             r4   Útest_image_array_alphar«  ‡  sÀ   € ô 	�Š�A�qÓ€AÜ�[Š[˜Ó�F€Bä	�Š�˜˜S™ Q‘Ñ'¨2°©=Ñ9Ó	:€BØ—‘“‰M€Eä�=‰=˜Ñ#€DØ	×	Ñ	Ó	€BØ‡I�Iˆb D¸	€IÑBà	×	Ñ	Ó	€BÙ”× Ò Ô" 2Ó&Ó'€DØˆ�MØ‡I�Iˆd )€IÒ,r6   c                  óÀ   • [         R                  " [        SS9   [        R                  " [
        R                  " S5      SS/S9  S S S 5        g ! , (       d  f       g = f)Nzalpha must be a float, two-drç  rS   r   rï   )r>  r?  r@  r(   r/   r*   r+   rV  r6   r4   Ú!test_image_array_alpha_validationr­  š  s9   € Ü	�Š”yÐ(FÓ	GÜ�
Š
”2—8’8˜FÓ#¨A¨q¨6Ò2÷ 
H×	GÖ	Gús   š,AÁ
Ac                  óž  • [        [        R                  S   5      n U R                  SS9  [        R
                  " SSS9nUR                  / SQ5      n[        R                  " / SQ/[        S	9nUR                  US
U SSS9nUR                  S5        UR                  R                  5         UR                  UR                  R                  5      S   S   nUR!                  UR#                  US//S-  -  R$                  R'                  5       5      5      S-  R)                  [*        5      n[        R,                  " XV:H  5      (       d   eg )NÚautumn_rÚ	lightgrey)Úcolor)gffffffþ?rp  rT   rU   rw   )r^   r^   r^   r   r   r   r   é+   éO   é_   éB   r   r^   r^   r^   r   r   r   é"   r    rx   r   )rù  r\  rø  r÷  rF  r   rs   rE   )r   r{  rG  Ú	set_underr(   r_   r^  r*   rI   rÀ  r/   rò   r  r™  r}  rš  r\  rL  ÚTrN  rÈ   r|   r]  )r\  r0   ro   r­   rÕ   Ú
from_imageÚdirect_computations          r4   Ú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×3Ñ3Ð3Ñ3r6   Úimage_placementc            	      óH  • [         R                  " 5       u  pUR                  / SQ/ SQSSS9  [        R                  R                  S5        UR                  [        R                  R                  SS5      SS	S
SSS9  UR                  SS5        UR                  SS5        g)zC
The red box should line up exactly with the outside of the image.
)r   r   r   r   r   )r   r   r   r   r   rb  rp  )r±  r  rv   rÇ   r¦  r�  r$   r^   r   )r\  r  r&   rø  r÷  gš™™™™™¹¿ro  N)
r(   r)   ri   r*   ry   rz   r/   Úrandnr†   r‡   r‚  s     r4   Ú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Õr6   c                   óJ   ^ • \ rS rSrS rS rU 4S jrS r\S 5       r	Sr
U =r$ )Ú
QuantityNDiÏ  c                 ó\   • [         R                  " U5      R                  U 5      nX#l        U$ r¬  )r*   r…  ÚviewÚunits)ÚclsÚinput_arrayrÄ  Úobjs       r4   Ú__new__ÚQuantityND.__new__Ð  s%   € Ü�jŠj˜Ó%×*Ñ*¨3Ó/ˆØŒ	Øˆ
r6   c                 ó(   • [        USS 5      U l        g ©NrÄ  )ÚgetattrrÄ  )ÚselfrÇ  s     r4   Ú__array_finalize__ÚQuantityND.__array_finalize__Õ  s   € Ü˜S '¨4Ó0ˆ�
r6   c                 ó†   >• [        U SS 5      n[        TU ]	  U5      n[        U[        5      (       d  Ub  [	        X25      nU$ rË  )rÌ  ÚsuperÚ__getitem__Ú
isinstancerÁ  )rÍ  ÚitemrÄ  ÚretÚ	__class__s       €r4   rÒ  ÚQuantityND.__getitem__Ø  sA   ø€ Ü˜˜g tÓ,ˆÜ‰gÑ! $Ó'ˆÜ�cœ:×&Ñ&¨%Ñ*;Ü˜SÓ(ˆCØˆ
r6   c                 óÂ  • [        X5      nSU;   a  [        $ [        U5      S:X  a1  US   n[        USS5      nU" [        R                  " U5      40 UD6nGOa[        U5      S:X  GaK  US   nUS   n	[        USS5      n
[        U	SS5      nU
c  UOU
n
Uc  U
OUnU[        R
                  [        R                  4;   a  X«:w  a  [        eU
nO¢U[        R                  :X  a  U
 SU 3nO†U[        R                  :X  a	  U
 SU S	3nOiU[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4;   a  S nO[        $ U" UR!                  [        R"                  5      U	R!                  [        R"                  5      40 UD6nO[        $ Uc  [        R$                  " U5      nU$ ['        X‡5      nU$ )
Nra  r   r   rÄ  Údimensionlessr   Ú*z/(Ú))rÌ  ÚNotImplementedrÜ   r*   r…  ÚaddÚsubtractrí  ÚmultiplyÚdivideÚgreaterÚgreater_equalÚequalÚ	not_equalÚlessÚ
less_equalrÃ  ÚndarrayrI   rÁ  )rÍ  ÚufuncÚmethodÚinputsr?  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1s               r4   Ú__array_ufunc__ÚQuantityND.__array_ufunc__ß  sž  € Ü�uÓ%ˆØ�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Øˆr6   c                 ó@   • U R                  [        R                  5      $ r¬  )rÃ  r*   rç  )rÍ  s    r4   râ   ÚQuantityND.v  s   € à�y‰yœŸ™Ó$Ð$r6   )rÄ  )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rÈ  rÎ  rÒ  rò  Úpropertyrâ   Ú__static_attributes__Ú__classcell__)rÖ  s   @r4   rÁ  rÁ  Ï  s,   ø† òò
1õò%ðN ñ%ó ö%r6   rÁ  c                  ó*  • [        SS/S5      n U S S  u  p[        R                  " U R                  [        R                  " SS/5      :H  5      (       d   eU R
                  S:X  d   e[        R                  " X-   R                  [        R                  " S/5      :H  5      (       d   eX-  R
                  S:X  d   eX!-  R
                  S:X  d   e[        R                  " [        5         U[        SS5      -     S S S 5        g ! , (       d  f       g = f)Nr   r   Úmr#   zm*mzm/(m)Ús)	rÁ  r*   r]  râ   r…  rÄ  r>  r?  rí  )ÚqÚq0Úq1s      r4   Ú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Ð1Ø‰G�?‰?˜eÓ#Ð#Ð#Ø‰G�?‰?˜gÓ%Ð%Ð%Ü	�Š”zÕ	"Ø
ŒZ˜˜3ÓÒ÷ 
#×	"Ö	"ús   Ã+DÄ
Dc                  óÈ   • [        [        R                  " S5      S5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )NrS   rþ  )rÁ  r*   r,   r(   r)   r/   r  r™  )r¼   r0   ro   s      r4   Útest_imshow_quantityndr    s<   € ä
”R—W’W˜V“_ cÓ
*€CÜ�lŠl‹n�G€CØ‡I�Iˆc„Nà‡J�J‡O�OÕr6   c                 óH  • [         R                  " SS[         R                  S9nSUSS2S S 24'   [         R                  R	                  USS9nS	UR
                  SS2SS24'   [        R                  S
   R                  SS9nU R                  5       nUR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  SSS9  UR                  5       nUR                  U[        R                  " SSS9SSUS9  UR                  U[        R                  " SSS9SSUS9  UR                  SSS9  g )Nr   r   r    r^   r   r   Fr¥  Trö  Úw©r!  ré   rD  r1  rH   )rL  r  r&   r\  r   )r   rs   r   rs   ©r   rs   r‚  )r*   rõ   rˆ  r.  rI   rP  r{  rG  r-  r)   r/   r	   rN  r­  r®  r†  )r   r€   r­   Úmasked_datar\  ro   rÕ   s          r4   Ú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Ò&r6   rc   c                 ó  • [         R                  " SU[         R                  S9nSUSS2S S 24'   U R                  5       nUR	                  U[
        R                  " SUR                  5       S9SS	S
9  [         R                  " SU[         R                  S9nSUSS2S S 24'   UR                  5       n[        R                  S	   R                  SS9nUR	                  U[
        R                  " SUR                  5       S9SUS
9  g )Nr   r    g@Œµx¯Dr   r   r   rD  rH   rö  )rL  r&   r\  iè  r  r  )r*   rõ   rˆ  r)   r/   r	   rN  r  r{  rG  r-  r®  )r   r€   rc   r­   ro   r\  s         r4   Útest_huge_range_logr  <  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ð ò 2r6   c                 ó.  • U R                  SS5      nUR                  SS5      nSS/SS//SS/SS//SS/SS//4n/ SQn[        [        XE5      5       GH=  u  nu  pxX&   R                  U5        X&   R	                  U5        X6   R                  U5        X6   R                  USSSSSSS	9  X6   R                  S
S5        X6   R                  SS
5        X6   R                  R                  5         X6   R                  R                  S5        X6   R                  R                  S5        X6   R                  R                  [        R                  " S/ SQSS95        X6   R                   R                  [        R                  " S/ SQSS95        GM@     g )Nr   r#   r   )r,   r+   ÚmixedrH   rã  rº   ÚGreys)r&   rù  r]   r\  rø  r÷  r£  r  gÍÌÌÌÌÌð?r%  r  )r   r   r   rs   T)ÚnbinsÚstepsÚinteger)r)   Ú	enumeraterM  rJ   Ú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·  re   r  s	            r4   Útest_spy_boxr#  P  s„  € ð ×Ñ  1Ó%€GØ×Ñ˜a Ó#€Fð ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�Ðð€Iò
 -€Kä"¤3 yÓ#>×?‰ˆ‰:ˆAØ‰
×Ñ˜UÔ#Ø‰
�‰�qÔØ‰	×Ñ˜EÔ"Ø‰	×Ñ˜¨)Ø#*°7ÀØ!"¨ð 	ñ 	,ð 	‰	×Ñ˜4 Ô%Ø‰	×Ñ˜3 Ô%Ø‰	�‰× Ñ Ô"Ø‰	�‰×Ñ˜dÔ#Ø‰	�‰×*Ñ*¨6Ô2Ø‰	�‰×)Ñ)Ü×Ò aª}ÀdÑKô	
ð 	‰	�‰×)Ñ)Ü×Ò aª}ÀdÑK÷	
ò @r6   znonuniform_and_pcolor.pngc                  ó’  • [         R                  " SS9R                  SSSS9n [        U SS/5       Hƒ  u  p[	        XS9nUR                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        UR                  U5        M…     U S	   R                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        U  H"  nUR                  5         UR                  SS9  M$     g )Nrv  rU  r#   T)ÚsharexÚshareyrH   r'   r%   r   r  r   r	  )rƒ  )r(   r_   r)   rM  r   r  r*   ra   r
  r  Ú
pcolorfastr  r†  )r“   ro   r&   rÕ   s       r4   Útest_nonuniform_and_pcolorr(  q  sü   € ä
�*Š*˜VÑ
$×
-Ñ
-¨a¸ÀTÐ
-Ð
J€CÜ   y°*Ð&=Ö>ÑˆÜ˜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ˆÓò r6   znonuniform_logscale.pngc                  óh  • [         R                  " SSS9u  p[        S5       GH  nX   n[        U5      nUR	                  [
        R                  " SS5      S-  [
        R                  " SS5      S-  [
        R                  " S5      R                  S5      5        UR                  SS5        UR                  SS5        UR                  S5        US:X  a   UR                  S	SS
9  UR                  S	SS
9  US:X  a   UR                  S	SS
9  UR                  S	SS
9  UR                  U5        GM     g )Nr#   r   )ÚncolsÚnrowsr   r   r  rv  rÇ   rú  )Úbase)r(   r)   rM  r   r  r*   ra   r
  r†   r‡   Úset_box_aspectÚ
set_xscaleÚ
set_yscaler  )r`  r“   r·  ro   rÕ   s        r4   Útest_nonuniform_logscaler0  �  sû   € ä�\Š\ ¨Ñ+�F€Aä�1�XˆØ‰VˆÜ˜RÓ ˆØ
�‰”B—I’I˜a “O qÑ(¬"¯)ª)°A°q«/¸QÑ*>Ü—I’I˜a“L×(Ñ(¨Ó0ô	2à
�‰�A�rÔØ
�‰�A�rÔØ
×Ñ˜!ÔØ�‹6Ø�M‰M˜% aˆMÑ(Ø�M‰M˜% aˆMÑ(Ø�‹6Ø�M‰M˜% aˆMÑ(Ø�M‰M˜% aˆMÑ(Ø
�‰�R×ò r6   zrgba_antialias.pngg{®Gáz”?)r   r   r:   c            	      óh  • [         R                  " SSSSSSS9u  pSn[        R                  " X"45      nSUS S S2S S 24'   [        R                  " U5      U-  S-
  n[        R                  " U5      U-  S-
  n[        R
                  " XE5      u  pg[        R                  " US-  US-  -   5      nS	n	S
n
[        R                  " [        R                  S-  X˜-  X¨S-  -  S-  -   -  5      nSUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   SUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   US S 2[        US-  5      S 24   US S 2[        US-  5      S 24'   [        R                  USS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   [        [         R                  R                  5      nUR                  S5        UR                  S5        UR!                  5       nUS   R#                  USUSSS9  US   R%                  US-  S-
  US-  S-   /5        US   R'                  US-  S-   US-  S	-
  /5        US   R#                  USUSSS9  US   R#                  USS USSS!9  US"   R#                  USS#USSS!9  g )$Nr   )ç      @r2  FT)rV   r%  r&  Úconstrained_layoutéú   r^   ré   rs   éK   r–  r   rq  rX   rY   g    €„.AéF   éZ   g    €„.Ár  éÃ   é×   ÚyellowÚcyanr   rH   g333333ó¿r#  )r&   r\  rø  r÷  é   rx   r­   )r&   Úinterpolation_stager\  rø  r÷  r#   rž  )r(   r)   r*   r,   ra   r  Úsqrtrb   r  r|   r6  r   r,  ÚRdBu_rÚset_overr·  rµ  r/   r†   r‡   )r0   r“   rO  Úaarc   rd   rK   r  ÚRÚf0rá   re  r\  s                r4   Útest_rgba_antialiasrD  –  sÞ  € ä�|Š|˜A˜q¨*¸UØ#(¸TñC�H€Cà€AÜ	�Š�!�‹€BØ€B�sˆ€sŠA€v�Jä
�	Š	�!‹�qÑ˜3Ñ€AÜ
�	Š	�!‹�qÑ˜3Ñ€Aä�;Š;�qÓ�D€AÜ
�Š��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�" FÀØ $¨Sð ñ 2ð
 ˆ�F‡M�M�" FÀØ $¨Sð ò 2r6   )rQ   c                 ó
  • [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)	zO
Show that interpolation_stage='auto' gives the same as 'data'
for upsampling.
é*N,r   r'   rö  r­   ©r&   r\  r=  rx   N©r*   ry   rz   r{   r)   r/   ©r   r€   Úgridro   s       r4   Ú!test_upsample_interpolation_stagerK  Ì  sz   € ô ‡I�I‡N�N�:Ôä�9‰9�>‰>˜!˜QÓ€DØ	×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð ñ *ð 
×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð ò *r6   c                 ó
  • [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)zQ
Show that interpolation_stage='auto' gives the same as 'rgba'
for downsampling.
rv   i   rx   rö  rž  rG  NrH  rI  s       r4   Ú#test_downsample_interpolation_stagerM  à  sz   € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜$ Ó%€DØ	×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð ñ *ð 
×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð ò *r6   c                  óz  • S HR  n [         R                  " SU 05         [        R                  " SS//5      R	                  5       U :X  d   e S S S 5        MT     S H9  n [
        R                  " [        5         U [         R                  S'   S S S 5        M;     g ! , (       d  f       M¥  = f! , (       d  f       M_  = f)N©r­   rž  zimage.interpolation_stager   r   )ÚDATAÚfooN)	r{  Ú
rc_contextr(   r/   Úget_interpolation_stager>  r?  rí  r   )Úvals    r4   Útest_rc_interpolation_stagerU  ó  s�   € ÛˆÜ�^Š^Ð8¸#Ð>Õ?Ü—:’:  1˜v˜hÓ'×?Ñ?ÓAÀSÓHÐHÑH÷ @Ñ?ñ  ó %ˆÜ�]Š]œ:Õ&Ø8;ŒC�L‰LÐ4Ñ5÷ 'Ñ&ò %÷ @Ö?ú÷ 'Ö&ús   ž.BÁ8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 rowsc           
      ó&  • U R                  5       nUR                  5       n[        R                  " SUS-   45      nSUS S 2UR                  S-  S 24'   US:X  a  UR                  nUR                  USSSSSUS9n	[        R                  " [        S	U S
3S9   U R                  R                  5         S S S 5        [        R                  " S5      nSUS S 2S4'   US:X  a  UR                  nUR                  USSSSSUS9n	g ! , (       d  f       NU= f)Nr   r   rW  r   rx   r�  r$   )rø  r÷  rù  r  r&   r]   zData with more than z  cannot be accurately displayed.rç  ry  )r)   r*   r+   Úsizer¸  r/   r>  ry  rz  r  r™  )
r   r€   ÚdimrY  Úmsgr]   r  r   rI   rÕ   s
             r4   Útest_large_imager\  þ  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           	      ó´  • [         R                  R                  SS5      S-  S-   nU R                  SS5      nUS   R	                  USS9  US   R	                  USS	S
9  US   R	                  USS9  US   R	                  USSSS9  US   R	                  USSSS9  UR                  SS5      nUS   R	                  U[
        R                  " 5       S9  US   R	                  U[
        R                  " S	S9S9  US   R	                  U[
        R                  " SS9S9  US   R	                  U[
        R                  " SSSS9S9  US   R	                  USSS9  [        US   R                  S   R                  5      [
        R                  L d   e[        R                  " [        5         US   R	                  USS9  S S S 5        g ! , (       d  f       g = f)Nrs   gš™™™™™é?rp  r   r   r   rú  rw  r�  )rL  rø  r   Úsymlogr#   rq  r—  )rL  rø  r÷  r   Úlogit)rø  )Ú	linthresh)r`  rø  r÷  )rq  r—  )rL  ÚclimÚfoobar)r*   ry   r{   r)   r/   r	   rN  rr  ÚtypeÚimagesrL  r>  r?  rí  )r   r€   r|  ÚaxtsÚaxrss        r4   Útest_str_normsrg  $  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	Ç	
Gc                  óê  • [         R                  " [        R                  R                  [        5       S9n [        R                  " [        SS9   U " [        R                  " S5      S 5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S	S9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S
S9   U " [        R                  " S[        R                  5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      R                  5        S S S 5        [        R                  " S5      nSUR                  l        [        R                  " [        SS9   U " [        R                  " S5      U5        S S S 5        g ! , (       d  f       GN�= f! , (       d  f       GN@= f! , (       d  f       GNÿ= f! , (       d  f       GN¾= f! , (       d  f       GN}= f! , (       d  f       GN-= f! , (       d  f       Ná= f! , (       d  f       g = f)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   r>  r?  r@  r*   r+   rí  r.   r¸  ÚflagsÚ	writeable)rl  ra  s     r4   Útest__resample_valid_outputro  :  sþ  € Ü× Ò ¤§¡×!4Ñ!4ÄÃ
ÑK€HÜ	�Š”yÐ(IÓ	JÙ”—’˜&Ó! 4Ô(÷ 
Kä	�Š”zÐ)EÓ	FÙ”—’˜&Ó!¤2§8¢8¨IÓ#6Ô7÷ 
Gä	�Š”zÐ)EÓ	FÙ”—’˜)Ó$¤b§h¢h¨vÓ&6Ô7÷ 
Gä	�Š”zÐ)FÓ	GÙ”—’˜)Ó$¤b§h¢h¨yÓ&9Ô:÷ 
Hä	�Š”zÐ)GÓ	HÙ”—’˜)Ó$¤b§h¢h¨yÓ&9Ô:÷ 
Iä	�Š”zÐ);Ó	<Ù”—’˜&¤"§(¡(Ó+¬R¯XªX°fÓ-=Ô>÷ 
=ä	�Š”zÐ)?Ó	@Ù”—’˜&Ó!¤2§8¢8¨FÓ#3×#5Ñ#5Ô6÷ 
Aô �(Š(�6Ó
€CØ€C‡I�IÔÜ	�Š”zÐ)IÓ	JÙ”—’˜&Ó! 3Ô'÷ 
KÐ	J÷# 
KÖ	Júç	FÖ	Fúç	FÖ	Fúç	GÖ	Gúç	HÖ	Húç	<Ö	<úç	@Õ	@ú÷
 
KÕ	Júsa   ÁK'Â2K9Ã!2LÄ42LÆ2L/ÇAMÈ<<MË M$Ë'
K6Ë9
LÌ
LÌ
L,Ì/
L>Í
MÍ
M!Í$
M2c                  ó°  • [         R                  " 5       n [        U 5      n[        R                  " [
        SS9   UR                  5         S S S 5        [        R                  " S[        S9R                  S5      nUR                  U5        UR                  5       S:X  d   eUR                  5       UR                  5       :X  d   eg ! , (       d  f       N‚= f)Nz"You must first set the image arrayrç  rW  r    rÈ  )r(   r§  r   r>  r?  r|  Ú	get_shaper*   ra   rÀ  r
  r  Úget_sizerÌ  s      r4   Útest_axesimage_get_shapers  Q  s’   € ä	�Š‹€BÜ	�2‹€BÜ	�Š”|Ð+OÓ	PØ
�‰Œ÷ 
Qä
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ�<‰<‹>˜VÓ#Ð#Ð#Ø�;‰;‹=˜BŸL™L›NÓ*Ð*Ñ*÷ 
QÕ	Pús   ºCÃ
Cc                  óæ  • [         R                  " 5       R                  5       n [        R                  " S5      R                  S5      nU R                  XR                  S9  U R                  5       S:X  d   eU R                  U[        5       R                  S5      U R                  -   S9  U R                  5       S:X  d   eU R                  XR                  SS9  U R                  5       S:X  d   eg )Nr   rS   r  rx   r   r   )r  rù  )r(   r_   rz  r*   ra   r
  r/   r�  Ú
get_aspectr   r  r  r©  s     r4   Ú.test_non_transdata_image_does_not_touch_aspectrv  ]  s¶   € Ü	�Š‹×	!Ñ	!Ó	#€BÜ	�Š�1‹×	Ñ	˜fÓ	%€BØ‡I�IˆbŸL™L€IÑ)Ø�=‰=‹?˜fÓ$Ð$Ð$Ø‡I�IˆbœH›J×,Ñ,¨QÓ/°"·,±,Ñ>€IÑ?Ø�=‰=‹?˜aÓÐÐØ‡I�IˆbŸL™L°€IÑ3Ø�=‰=‹?˜aÓÐÑr6   zdownsampling.pngg
×£p=
·?c                  ó@  • Sn [         R                  " U 5      U -  S-
  n[         R                  " U 5      U -  S-
  n[         R                  " X 45      nSUS S S2S S 24'   [         R                  " X5      u  pE[         R                  " US-  US-  -   5      nSnSn[         R
                  " [         R                  S-  Xv-  X†S-  -  S-  -   -  5      n	SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S:  '   SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S	:  '   U	S S 2[        U S
-  5      S 24   US S 2[        U S
-  5      S 24'   Un	[        R                  " SS
SSS9u  p«US   R                  U	SSSS9  US   R                  SS5        US   R                  SS5        US   R                  S5        [        UR                  SS  / SQ/ SQ5       H/  u  pÍnUR                  X�USS9  UR                  SU SU S35        M1     g )NiÂ  ré   r^   r   r   rT   r–  r   rq  r#   )r  rç   Ú
compressed©rV   Úlayoutr(  rH   rž  r?  )r&   r=  r\  é}   r½  r4  r<  ÚZoom)rH   rH   rr   rr   rx   )r­   rž  r­   rž  rx   zinterpolation='z	'
space='Ú')r*   ra   r,   r  r>  rb   r  r|   r(   r)   r/   r†   r‡   rJ   rM  Úflat)rO  rc   rd   rA  rK   r  rB  rC  rá   re  r0   r“   ro   rS  Úspaces                  r4   Útest_downsamplingr€  h  s)  € ð 	€AÜ
�	Š	�!‹�qÑ˜3Ñ€AÜ
�	Š	�!‹�qÑ˜3Ñ€AÜ	�Š�!�‹€BØ€B�sˆ€sŠA€v�Jä�;Š;�qÓ�D€AÜ
�Š��1‘�q˜!‘t‘Ó€AØ	
€BØ€AÜ
�ŠŒr�u‰u�q‰y˜B™F Q¨A©¡X°¡\Ñ1Ñ2Ó3€Aà13€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Ø12€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Øš1œc ! a¡%›j™k˜>Ñ*€B‚qŒ#ˆa�!‰e‹*‰+€~ÑØ
€Aä�|Š|˜A˜q¨&¸ÑF�H€CØˆ�I×Ñ�Q iÀVØ"ð ñ $àˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ˜Ôä  §¡¨!¨" ò 0Câ!IöKÑˆ�Eð 	�	‰	�!¸uØð 	ñ 	!à
�‰� v h¨j¸¸¸qÐAÖBòKr6   zdownsampling_speckle.pngc            	      óT  • [         R                  " SSSSSSS9u  pUR                  5       n[        R                  " S5      R                  SS5      [        R                  " S	5      -  S
-  R                  n[         R                  " S5      nUR                  S5        [        R                  " SSS9nUS   R                  S5        US   R                  [        R                  " U5      X4SS9  US   R                  S5        US   R                  [        R                  " U5      X4S9  g )Nr   r   )r   gš™™™™™@Trx  )rV   r%  r&  rz  i   r^   iÐ  rY   rö  rþ  r#   rm  rD  r   z"interpolation='auto', stage='rgba'rž  )r\  rL  r=  z"interpolation='auto', stage='auto')r\  rL  )r(   r)   rµ  r*   ra   r
  r,   r¸  Úget_cmapr@  r	   rN  rJ   r/   Útriu)r0   r“   r3   r,  rL  s        r4   Útest_downsampling_speckler„  ‹  sì   € ô �|Š|˜A˜q¨(¸4ÈØ#/ñ1�H€Cà
�+‰+‹-€CÜ�IŠI�d‹O×#Ñ# B¨Ó*¬R¯WªW°S«\Ñ9¸bÑ@×
CÑ
C€Cä	�Š�iÓ	 €BØ‡K�K�ÔÜ�>Š>˜q rÑ*€Dð
 ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'’'˜#“, RÈ€MÑOð ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'’'˜#“, R€MÒ3r6   zupsampling.png)r   r   c                  óÆ  • [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SSSSS9u  pUS   R                  U S	S
9nUS   R                  S5        US   R                  U S	SS9  US   R                  S5        US   R                  U S	SSS9  US   R                  S5        UR                  X2SSS9  g )NrF  r   r   r#   )g      @r#   rx  ry  r   rö  )r\  zAinterpolation='auto'
stage='antialaised'
(default for upsampling)Úsinc)r\  r&   z:interpolation='sinc'
stage='auto'
(default for upsampling)r   rž  )r\  r&   r=  z!interpolation='sinc'
stage='rgba'r—  r%  )ro   Úshrinkr'  )	r*   ry   rz   r{   r(   r)   r/   rJ   rÜ  )re  r0   r“   rÕ   s       r4   Útest_upsamplingrˆ  ¢  s×   € ô ‡I�I‡N�N�:ÔÜ
�	‰	�‰�q˜!Ó€Aä�|Š|˜A˜q¨(¸<ÑH�H€CØ	ˆQ‰�‰�q˜yˆÐ	)€BØˆ�F×ÑØMôOð ˆ�F‡M�M�!˜)°6€MÑ:Øˆ�F×ÑØFôHð ˆ�F‡M�M�!˜)°6Èv€MÑVØˆ�F×ÑÐ9Ô:Ø‡L�L� C°€LÒ7r6   )rˆ  Úfloat32Úint16r�   Úint8r.   Úndim)r   r#   c                 ó0  • [         R                  R                  S5      nUS:X  a  SOSnUR                  US9R	                  [         R
                  " U SS95      n[        R                  " 5       u  pVUR                  U5      nUR                  S 5      S     g )	NiU  r   rS   )r   r   r#   )rY  Tr   r   )
r*   ry   Údefault_rngÚuniformrÈ   r!   r(   r)   r/   r}  )r!   rŒ  Úrngr«   r­   r0   ro   Ú
axes_images           r4   Útest_resample_dtypesr’  ¹  sx   € ô �)‰)×
Ñ
 Ó
%€CØ˜a“i‰F Y€EØ�;‰;˜Eˆ;Ð"×)Ñ)¬"¯(ª(°5¸tÑ*DÓE€DÜ�lŠl‹n�G€CØ—‘˜4“€Jà×Ñ˜$Ó Ó"r6   Ú
intp_stagerO  c                 ó”  • U R                  SS5      nUR                  SS5      nSu  pVSn[        R                  R                  XV5      n[        R                  R                  XVS5      n	[        R                  " XVS45      n
[        R
                  " X˜R                  XVS45      4SS9nUS   S   R                  U	5        US   S   R                  [        R
                  " Xš4SS95        US   S   R                  X’US	9  US   S   R                  [        R
                  " X—U
-  4SS9US
9  US   S   R                  X’US	9  US   S   R                  X²S
9  US   S   R                  U5        US   S   R                  X˜S9  US   S   R                  X²US	9  US   S   R                  [        R
                  " X—UR                  XVS45      -  4SS9US
9  [        R                  R                  XV5      nUS   S   R                  X²US	9  US   S   R                  [        R
                  " XœR                  XVS45      4SS9US
9  g )Nr   r#   rv  ré   r   r^   rñ   r   )r=  rè   )r=  rï   )r)   r*   ry   r{   r,   rô   r
  r/   )r   r€   r“  Úaxs_tstÚaxs_refÚnyÚnxÚscalar_alphaÚarray_alphaÚim_rgbÚim_concat_default_aÚim_rgbaÚnew_array_alphas                r4   Ú2test_interpolation_stage_rgba_respects_alpha_paramrŸ  Ê  s[  € ð ×Ñ  1Ó%€GØ×Ñ˜q !Ó$€GØ�F€BØ€LÜ—)‘)—.‘. Ó(€Kô �Y‰Y�^‰^˜B AÓ&€FÜŸ'š' 2¨1 +Ó.ÐÜ�nŠnØ	×$Ñ$ b¨a [Ó1Ð2¸ñ€Gð ˆA�Jˆq�M×Ñ˜Ô ØˆA�Jˆq�M×ÑœŸš¨Ð(EÈBÑOÔPØˆA�Jˆq�M×Ñ˜À|ÐÑTØˆA�Jˆq�M×ÑÜ
�ŠØÐ$7Ñ7Ð8¸rñ	
à)ð ñ ð
 ˆA�Jˆq�M×Ñ˜À{ÐÑSØˆA�Jˆq�M×Ñ˜ÐÑAð ˆA�Jˆq�M×Ñ˜Ô!ØˆA�Jˆq�M×Ñ˜ÐÑ3ØˆA�Jˆq�M×Ñ˜ÈÐÑUØˆA�Jˆq�M×ÑÜ
�ŠØ K×$7Ñ$7¸À¸Ó$DÑDÐEÈBñ	
à)ð ñ ô
 —i‘i—n‘n RÓ,€OØˆA�Jˆq�M×Ñ˜ÈÐÑXØˆA�Jˆq�M×ÑÜ
�ŠØ×,Ñ,¨b°a¨[Ó9Ð:Àñ	
à)ð ò r6   )™Ú
contextlibr   r   ri  rj   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  r>  r5   rN   ÚmarkÚparametrizerg   rq   r„   rˆ   r”   r    r¢   r²   r¹   rÀ   rÅ   rÊ   rÖ   rä   rì   Úcontextrû   r  r   r6  r%  r.  r8  r:  rB  rF  rI  rS  rf  rj  rt  r}  r‰  r”  r   r¤  rª  r¯  r¸  rÅ  rÍ  rÐ  ra   r
  r×  rã  ró  rü  r  r  r  r3  r8  r;  r@  ÚmachinerT  rW  Úsplitr!   rb  rf  rl  rn  r®  rN  r  rƒ  r‰  r‹  r�  r“  r™  rœ  r£  r¦  r«  r­  r»  r¿  rç  rÁ  r  r  r  r  r#  r(  r0  rD  rK  rM  rU  Úfilterwarningsr\  rg  ro  rs  rv  r€  r„  rˆ  r’  rŸ  )rÿ  s   0r4   Ú<module>r²     s  ðÝ  Ý Û Û 	Û 	Ý Û Û 
Û ã Ý ,Ý ã ÷F÷ F÷<õ <ç Oß AÑ AÝ #ã ñ Ð%Ð&°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ðñ   Ñ(ñó )ðòòñ Ð,Ð-¸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‹˜Ÿ	š	 "› r§y¢y°£~×'=Ñ'=¸fÓ'Eð	Gà	Ø	�Š�2‹˜Ÿ	š	 "› r§y¢y°£}×'<Ñ'<¸VÓ'Dð	Fðóñ1óð1òòBñ Ð$Ð%°4Ñ8ñó 9ðñ �>Ð"°Ñ5ñó 6ðò6	%ò3ñ( Ð.Ð/¸TÀsÑKñ>ó Lð>ñ> �<�.¨dÑ3ñ+ó 4ð+ò"ñ Ð)Ð*¸Ñ=ñ
*ó >ð
*ñ Ð0Ð1Ø#×+Ò+Ó-°Ó9‘a¸tØ"¨'ñ3ñó3ðòD&ð ‡�×ÑØÐ#9×#?Ñ#?Ô#AÓBÒ#A˜aˆb�h‰h�qŽkÑ#AÑ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Ñ?ñó @ðñ Ð,Ð-°WÑ=ñó >ðñ( Ð'Ð(°ÀTÈtÑTñ22ó Uð22ñj  	Ñ*ñ*ó +ð*ñ&  	Ñ*ñ*ó +ð*ò$<ð ‡�×Òð =ó >à‡�×Ñ˜ G¨WÐ#5Ó6Ø‡�×ÑØÒ9Ú6ð8ó9ñ  	Ñ*ñ&ó +ó9ó 7ó>ð&ñ>   Ñ(ñ)ó )ð)ò*(ò.	+ò ñ ØÐ °T¸tñEñCóEðCñB ØÐ ¨¸TÀtñMñ4óMð4ñ* ØÐ˜g°4ñ9ñ8ó9ð8ð* ‡�×ÑØØ>óð ‡�×Ñ˜ Ó(ñ	#ó )ó	ð
	#ð ‡�×Ñ˜Ð'7Ó8ÙÓñ)ó ó 9ñ)ùò[ Cs   Ñ7]7
