§
    ‚ØjÃ ã                   ó   — d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlZd dl	Z
d dlZd dlmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZm Z m!Z!m"Z"m#Z# d d	l$m%Z% d d
l&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z- d dl.m/Z0 d dl1Z1e1j2        d„ ¦   «         Z3 e(dgdd¬¦  «        d„ ¦   «         Z4 e(dgdddgdd¬¦  «        d„ ¦   «         Z5e1j6         7                    dddg¦  «         e(dgddgd¬¦  «        d„ ¦   «         ¦   «         Z8d„ Z9e1j6         7                    d g d!¢¦  «         e'¦   «         d"„ ¦   «         ¦   «         Z: e'¦   «         d#„ ¦   «         Z; e'¦   «         d$„ ¦   «         Z<d%„ Z=d&„ Z>e1j6         7                    d'g d(¢¦  «        d)„ ¦   «         Z?d*„ Z@e1j6         7                    d+d,d-g¦  «        d.„ ¦   «         ZAe1j6         7                    d'g d/¢¦  «        d0„ ¦   «         ZBd1„ ZCd2„ ZDd3„ ZE e(d4gdd¬¦  «        d5„ ¦   «         ZFej         G                    d¦  «         e'¦   «         d6„ ¦   «         ¦   «         ZHe1j6         7                    d7g d8¢¦  «        d9„ ¦   «         ZId:„ ZJe1j6         7                    d;d<d<gd gd<d=gd>gd?d<gd@gdAd<gd@gdBdCgdDgdEd<gdgd<dEgdgg¦  «        dF„ ¦   «         ZKe1j6         7                    dGdHdIggdJfdKdLggdMfejL        d>dNggdOfd>dPggdQfdEdEggdRfd d ggdSfg¦  «        dT„ ¦   «         ZMdU„ ZNe1j6         7                    dGdHdIggd d gggdVfdKdLggdWd gggdXfejL        d>dNggg dY¢ggdOfg¦  «        dZ„ ¦   «         ZO e(d[gd¬\¦  «        d]„ ¦   «         ZP e(d^gd¬\¦  «        d_„ ¦   «         ZQ e'¦   «         d`„ ¦   «         ZRda„ ZSdb„ ZT e(dcgdd¬¦  «        dd„ ¦   «         ZU e(degddgdd¬f¦  «        dg„ ¦   «         ZVdh„ ZW e(digdd¬¦  «        dj„ ¦   «         ZX e(dkgdddl¬m¦  «        dn„ ¦   «         ZY e'dg¬o¦  «        dp„ ¦   «         ZZ e(dqgddgdd¬f¦  «        dr„ ¦   «         Z[ e(dsgdd¬¦  «        dt„ ¦   «         Z\du„ Z] e(dvgdd¬¦  «        dw„ ¦   «         Z^dx„ Z_dy„ Z`dz„ Zad{„ Zbd|„ Zcd}„ Zde1j6         7                    d~e" eje        d¦  «         eje        d€¦  «         eje        d�¦  «         f                    d‚¦  «        fe# eje        d¦  «         eje        d€¦  «         eje        dƒ¦  «         f                    d„¦  «        fg¦  «        d…„ ¦   «         Zgd†„ Zhd‡„ Zi e(dˆgdd¬¦  «        d‰„ ¦   «         Zj e(dŠgdd¬¦  «        d‹„ ¦   «         ZkdŒ„ Zld�„ Zm e(dŽgddd�¬m¦  «        d�„ ¦   «         Zn e(d‘gdd¬¦  «        d’„ ¦   «         Zod“„ Zp e(d”gdd¬¦  «        d•„ ¦   «         Zq e(d–g ejr        ¦   «         d—k    rd nd˜dd¬™¦  «        dš„ ¦   «         Zsd›„ Zte1j6         7                    dœd�„ dž u                    ¦   «         D ¦   «         ¦  «        dŸ„ ¦   «         Zv e(d gdd¬¦  «        d¡„ ¦   «         Zw e(d¢gdd¬¦  «        d£„ ¦   «         Zx e(d¤gdd¬¦  «        d¥„ ¦   «         Zye1j6         7                    d¦ejz        ej{        d§„ d¨„ g¦  «        d©„ ¦   «         Z|dª„ Z}d«„ Z~d¬„ Zd­„ Z€e1j6         7                    d®d¯d°g¦  «        e1j6         7                    d±d²d³g¦  «        d´„ ¦   «         ¦   «         Z�dµ„ Z‚d¶„ Zƒd·„ Z„ e'g d¸¢¬o¦  «        d¹„ ¦   «         Z…dº„ Z†ej         G                    d¦  «        d»„ ¦   «         Z‡ e(d¼gddgdd¬f¦  «        d½„ ¦   «         Zˆ G d¾„ d¿ej‰        ¦  «        ZŠdÀ„ Z‹dÁ„ ZŒ e'¦   «         dÂ„ ¦   «         Z�e1j6         7                    dÃdEd>g¦  «         e'¦   «         dÄ„ ¦   «         ¦   «         ZŽ e'¦   «         dÅ„ ¦   «         Z� e(dÆgd¬\¦  «        dÇ„ ¦   «         Z� e(dÈgd¬\¦  «        dÉ„ ¦   «         Z‘ e(dÊgdd¬Ë¦  «        dÌ„ ¦   «         Z’ e'¦   «         dÍ„ ¦   «         Z“ e'¦   «         dÎ„ ¦   «         Z”dÏ„ Z•e1j6         –                    dÐ¦  «        e1j6         7                    d+d,d-g¦  «        e1j6         7                    dÑg dÒ¢g dÓ¢g¦  «         e'¦   «         dÔ„ ¦   «         ¦   «         ¦   «         ¦   «         Z— e'¦   «         dÕ„ ¦   «         Z˜dÖ„ Z™d×„ Zše1j6         7                    dØ ej›        g dÙ¢g¦  «        ejœ         ej›        g dÚ¢g¦  «        f ej›        g dÛ¢g¦  «        ejœ         ej›        g dÜ¢g¦  «        f ej›        g dÙ¢g¦  «        ej�         ej›        g dÝ¢g¦  «        f ej›        dWdÞgg¦  «        ej�         ej›        g dß¢g¦  «        f ej›        dWdWgg¦  «        ej�         ejž        dàdW¦  «        f ej›        dWdÞgg¦  «        ejœ         ejŸ         ejž        dádW¦  «         ejž        dádÞ¦  «        g¦  «         f                    d>dE¦  «        f ej›        dWdÞgg¦  «        ej�         ejŸ         ejž        dâdW¦  «         ej         d<dâdá¦  «         ¡                    e¢¦  «        dâz  dãz  dWz    ejž        dâdÞ¦  «        g¦  «         f                    d>dE¦  «        fg¦  «        dä„ ¦   «         Z£då„ Z¤dæ„ Z¥ e(dçgdd ejr        ¦   «         d—k    rd ndl¬è¦  «        dé„ ¦   «         Z¦ e(dêgdd¬Ë¦  «        dë„ ¦   «         Z§ e(dìgdd¬Ë¦  «        dí„ ¦   «         Z¨e1j6         7                    dœdî¦  «        e1j6         7                    dïdð¦  «        dñ„ ¦   «         ¦   «         Z©e1j6         7                    dòg dó¢¦  «        dô„ ¦   «         Zªe1j6         7                    dõdö¦  «         e'g d¸¢¬o¦  «        d÷„ ¦   «         ¦   «         Z« e(døgd¬\¦  «        dù„ ¦   «         Z¬ e(dúgd¬\¦  «        dû„ ¦   «         Z­ e(dügddý¬þ¦  «        dÿ„ ¦   «         Z® e(�d gd�d¬þ¦  «        �d„ ¦   «         Z¯ e(�dgd¬\¦  «        �d„ ¦   «         Z°dS (  é    )Ú	ExitStackN)ÚPath)Úassert_allcloseÚassert_array_equal)ÚImage)ÚcolorsÚimageÚpatchesÚpyplotÚstyleÚrcParams)Ú
MouseEvent)Ú	AxesImageÚ	BboxImageÚFigureImageÚNonUniformImageÚPcolorImage)Ú	Rectangle)Úcheck_figures_equalÚimage_comparison)ÚBboxÚAffine2DÚ	TransformÚTransformedBboxc                  ó<   —  G d„ dt           ¦  «        }  | ¦   «         S )zGNon-affine identity transform for compositing with any affine transformc                   ó   — e Zd ZdZdZd„ ZdS )ú6nonaffine_identity.<locals>.NonAffineIdentityTransformé   c                 ó   — | S ©N© ©Úselfs    ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_image.pyÚinvertedz?nonaffine_identity.<locals>.NonAffineIdentityTransform.inverted#   ó   € ØˆKó    N)Ú__name__Ú
__module__Ú__qualname__Ú
input_dimsÚoutput_dimsr%   r!   r'   r$   ÚNonAffineIdentityTransformr      s-   € € € € € Øˆ
Øˆð	ð 	ð 	ð 	ð 	r'   r-   )r   )r-   s    r$   Únonaffine_identityr.      s=   € ðð ð ð ð ¥Yñ ô ð ð &Ð%Ñ'Ô'Ð'r'   zinterp_alpha.pngTÚ_classic_test)Úremove_textr   c                  óX  — t          j        dd¦  «        \  } \  }}t          j        d¦  «        }t          j        d¦  «        |d<   t          j        t          j        dt          j        ¬¦  «        ¦  «        |d<   |                     |d¬	¦  «         |                     |d
¬	¦  «         dS )z:Test the interpolation of the alpha channel on RGBA imagesé   r   )é   r3   é   ©r3   r3   ).r2   ©Údtype©.é   Únone©ÚinterpolationÚbilinearN)ÚpltÚsubplotsÚnpÚzerosÚonesÚtrilÚuint8Úimshow)ÚfigÚaxlÚaxrÚimgs       r$   Útest_alpha_interprJ   (   s“   € õ ”l 1 aÑ(Ô(�O€C‰ˆ#ˆså
Œ(�9Ñ
Ô
€CÝ”'˜&‘/”/€Cˆ�Kå”'�"œ' &µ´Ð9Ñ9Ô9Ñ:Ô:€Cˆ�KØ‡J‚Jˆs &€JÑ)Ô)Ð)Ø‡J‚Jˆs *€JÑ-Ô-Ð-Ð-Ð-r'   Úinterp_nearest_vs_nonegš™™™™™@ÚpdfÚsvgÚmpl20)ÚtolÚ
extensionsr0   r   c                  ó\  — dt           d<   t          j        g d¢g d¢gg d¢g d¢ggt          j        ¬¦  «        } t	          j        dd	¦  «        \  }\  }}|                     | d
¬¦  «         |                     d¦  «         |                     | d¬¦  «         |                     d¦  «         dS )z5Test the effect of "nearest" and "none" interpolationr9   úsavefig.dpi)éÚ   é¥   é    )éz   ég   éî   )é   éÿ   r   )rZ   éc   éG   r6   r2   r   r:   r;   zinterpolation noneÚnearestzinterpolation nearestN)r   r@   ÚarrayrD   r>   r?   rE   Ú	set_title)ÚXrF   Úax1Úax2s       r$   Útest_interp_nearest_vs_nonerc   5   sÁ   € ð  …Hˆ]ÑÝ
Œ�>�>�> ? ? ?Ð3Ø �=�= - - -Ð0ð2Ý9;¼ð	Cñ 	Cô 	C€Aå”l 1 aÑ(Ô(�O€C‰ˆ#ˆsØ‡J‚Jˆq €JÑ'Ô'Ð'Ø‡M‚MÐ&Ñ'Ô'Ð'Ø‡J‚Jˆq 	€JÑ*Ô*Ð*Ø‡M‚MÐ)Ñ*Ô*Ð*Ð*Ð*r'   ÚsuppressCompositeFÚfigimageÚpng)rP   r   c                 óx  — t          j        dd¬¦  «        }| |_        t          j        t          j        d¦  «        dz  t          j        d¦  «        dz  ¦  «        \  }}t          j        |dz  |dz  z   ||z  z
  ¦  «        }t          j        d|dz  z  d|dz  z  z   ¦  «        }||dz  z   }|                     |d	d	d
¬¦  «         |                     |d d d…d d …f         d	dd
¬¦  «         |                     |d d …d d d…f         dd	d
¬¦  «         |                     |d d d…d d d…f         ddd
¬¦  «         d S )N©r   r   éd   ©ÚfigsizeÚdpig      Y@r   é   é2   r3   r   Úlower)ÚxoÚyoÚoriginéÿÿÿÿ)r>   Úfigurerd   r@   Úix_ÚarangeÚsinre   )rd   rF   ÚxÚyÚzÚcrI   s          r$   Útest_figimager|   G   sJ  € õ Œ*˜V¨Ð
-Ñ
-Ô
-€CØ-€CÔÝŒ6•"”)˜C‘.”. 5Ñ(­"¬)°C©.¬.¸3Ñ*>Ñ?Ô?�D€A€qÝ
Œˆq�!‰t�a˜‘d‰{˜Q˜q™SÑ Ñ!Ô!€AÝ
Œˆr�!�Q‘$‰w˜˜A˜q™D™Ñ Ñ!Ô!€AØ
ˆa�‰c‰'€Cà‡L‚L�˜˜q¨€LÑ1Ô1Ð1Ø‡L‚L��T�T�r�T˜1˜1˜1�W” !¨°G€LÑ<Ô<Ð<Ø‡L‚L��Q�Q�Q˜˜˜"˜�W” #¨!°G€LÑ<Ô<Ð<Ø‡L‚L��T�T�r�T˜4˜4˜R˜4�Z” S¨S¸€LÑAÔAÐAÐAÐAr'   c                  ó  — t          j        ¦   «         \  } }|                     g d¢¦  «         t          j        ¦   «         }|                      |¦  «         |                     d¦  «         t          j        |¦  «         d S )N)r2   r   r9   r   )r>   r?   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)rF   ÚaxÚbuffers      r$   Útest_image_python_ior†   W   si   € ÝŒl‰nŒn�G€CˆØ‡G‚GˆIˆIˆIÑÔÐÝŒZ‰\Œ\€FØ‡K‚K�ÑÔÐØ
‡K‚K��N„N€NÝ„JˆvÑÔÐÐÐr'   z!img_size, fig_size, interpolation))r3   r   Úhanning)r3   r3   r]   )r3   é
   r]   )r9   ç333333@r‡   )r9   g333333"@r]   c                 ó*  — t           j                             d¦  «         t          j        d         }t           j                             t          ||z  ¦  «        t          ||z  ¦  «        ¦  «        }| |fD ]}|                     ||¦  «         Œ|                      ¦   «         }| 	                    g d¢¦  «         | 
                    |d¬¦  «         |                     ¦   «         }| 	                    g d¢¦  «         | 
                    ||¬¦  «         d S )Né!N,rR   ©r   r   r2   r2   Úautor;   )r@   ÚrandomÚseedr>   r   ÚrandÚintÚset_size_inchesr?   Úset_positionrE   )	Úfig_testÚfig_refÚimg_sizeÚfig_sizer<   rl   ÚArF   r„   s	            r$   Útest_imshow_antialiasedr™   `   sþ   € õ „I‡N‚N�8ÑÔÐÝ
Œ,�}Ô
%€CÝ
Œ	�Š•s˜3 ™>Ñ*Ô*­C°°h±Ñ,?Ô,?Ñ@Ô@€AØ˜'Ð"ð 0ð 0ˆØ×Ò˜H hÑ/Ô/Ð/Ð/Ø	×	Ò	Ñ	Ô	€BØ‡O‚O�L�L�LÑ!Ô!Ð!Ø‡I‚Iˆa˜v€IÑ&Ô&Ð&Ø	×	Ò	Ñ	Ô	€BØ‡O‚O�L�L�LÑ!Ô!Ð!Ø‡I‚Iˆa˜}€IÑ-Ô-Ð-Ð-Ð-r'   c                 ó~  — t           j                             d¦  «         t          j        d         }t           j                             t          |dz  ¦  «        t          |dz  ¦  «        ¦  «        }| |fD ]}|                     dd¦  «         Œ|                      ¦   «         }| 	                    |d¬¦  «         | 
                    dd¦  «         |                     dd¦  «         |                     ¦   «         }| 	                    |d	¬¦  «         | 
                    dd¦  «         |                     dd¦  «         d S )
Nr‹   rR   r9   r‰   r�   r;   rˆ   rm   r]   )r@   rŽ   r�   r>   r   r�   r‘   r’   r?   rE   Úset_xlimÚset_ylim)r”   r•   rl   r˜   rF   r„   s         r$   Útest_imshow_zoomr�   x   s  € õ „I‡N‚N�8ÑÔÐÝ
Œ,�}Ô
%€CÝ
Œ	�Š•s˜3 ™7‘|”|¥S¨¨q©¡\¤\Ñ2Ô2€AØ˜'Ð"ð &ð &ˆØ×Ò˜C Ñ%Ô%Ð%Ð%Ø	×	Ò	Ñ	Ô	€BØ‡I‚Iˆa˜v€IÑ&Ô&Ð&Ø‡K‚K��BÑÔÐØ‡K‚K��BÑÔÐØ	×	Ò	Ñ	Ô	€BØ‡I‚Iˆa˜y€IÑ)Ô)Ð)Ø‡K‚K��BÑÔÐØ‡K‚K��BÑÔÐÐÐr'   c                 óZ  — t          j        d¦  «         t          t          ¦  «        j        dz  }t          t          ¦  «        j        dz  }|                      d¦  «        }|d                              t          j        |¦  «        ¦  «         |d                              t          j        |¦  «        ¦  «         |                     d¦  «        }|d                              t          j
        |¦  «        ¦  «         |d                              t          j
        |¦  «        ¦  «         d S )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.tifr   r   r2   )r   Úuser   Ú__file__Úparentr?   rE   r   Úopenr>   rƒ   )r”   r•   Úpng_pathÚ	tiff_pathÚaxss        r$   Útest_imshow_pilr©   Š   sæ   € å	„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Ñ'Ô'Ñ(Ô(Ð(Ð(Ð(r'   c                  ó  — t          j        t          j                             t          j                             t          ¦  «        ddd¦  «        ¦  «        } | j        t          j	        k    sJ ‚t          j
        | ¦  «        dk    sJ ‚d S )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)r>   rƒ   ÚosÚpathÚjoinÚdirnamer£   r7   r@   Úuint16Úsum©rI   s    r$   Útest_imread_pil_uint16rµ   —   st   € Ý
Œ*•R”W—\’\¥"¤'§/¢/µ(Ñ";Ô";Ø&¨°lñDô Dñ Eô E€CàŒ9�œ	Ò!Ð!Ð!Ð!ÝŒ6�#‰;Œ;˜)Ò#Ð#Ð#Ð#Ð#Ð#r'   c                  óÄ   — t          j        t          t          ¦  «        j        dz  ¦  «        } | j        t          j        k    sJ ‚t          j        | ¦  «        dk    sJ ‚d S )Nr¡   r­   )	r>   rƒ   r   r£   r¤   r7   r@   r²   r³   r´   s    r$   Útest_imread_fspathr·   ž   s[   € Ý
Œ*Ý�X‰ŒÔÐ GÑGñIô I€CàŒ9�œ	Ò!Ð!Ð!Ð!ÝŒ6�#‰;Œ;˜)Ò#Ð#Ð#Ð#Ð#Ð#r'   Úfmt)rf   ÚjpgÚjpegÚtiffc                 óP  — | dv}t           j                             d¦  «         t           j                             dd¦  «        }t	          j        ¦   «         }t          j        ||| d¬¦  «         t	          j        ¦   «         }t          j        ||| d¬¦  «         |                     d¦  «         t          j	        || ¬¦  «        }|                     d¦  «         t          j	        || ¬¦  «        }|j
        ddd	|z   fk    sJ ‚|j
        ddd	|z   fk    sJ ‚t          ||¦  «         d S )
N)r¹   rº   r2   i@  r   )Úformatrl   ri   r   ©r½   r9   )r@   rŽ   r�   r�   r   r€   r>   Úimsaver‚   rƒ   Úshaper   )r¸   Ú	has_alphaÚdataÚ	buff_dpi1Úbuff_dpi100Úarr_dpi1Ú
arr_dpi100s          r$   Útest_imsaverÇ   ¥   s"  € à˜?Ð*€Iõ „I‡N‚N�1ÑÔÐõ Œ9�>Š>˜$ Ñ"Ô"€Då”
‘”€IÝ„Jˆy˜$ s°Ð2Ñ2Ô2Ð2å”*‘,”,€KÝ„Jˆ{˜D¨°#Ð6Ñ6Ô6Ð6à‡N‚N�1ÑÔÐÝŒz˜)¨CÐ0Ñ0Ô0€Hà×Ò�QÑÔÐÝ”˜K°Ð4Ñ4Ô4€JàŒ>˜d A q¨9¡}Ð5Ò5Ð5Ð5Ð5ØÔ  a¨¨Y©Ð7Ò7Ð7Ð7Ð7å�x Ñ,Ô,Ð,Ð,Ð,r'   c                  ó$  — ddgddgddgg} t          j        ¦   «         }t          j        || d¬¦  «         |                     d	¦  «         t          j        |¦  «        }t          t          j        | ¦  «        |d d …d d …d d
…f         ¦  «         d S )N)ç      ð?ç        rÊ   )rÊ   rÉ   rÊ   )rÊ   rÊ   rÉ   )rÉ   rÉ   rÊ   )rÊ   rÉ   rÉ   )rÉ   rÊ   rÉ   rf   r¾   r   r9   )	r   r€   r>   r¿   r‚   rƒ   r   r@   r^   )Úimg_dataÚbuffÚread_imgs      r$   Útest_imsave_python_sequencesrÎ   È   s¨   € ð 
˜/Ð*Ø	˜/Ð*Ø	˜/Ð*ð€Hõ Œ:‰<Œ<€DÝ„Jˆt�X eÐ,Ñ,Ô,Ð,Ø‡I‚Iˆa�L„L€LÝŒz˜$ÑÔ€HåÝ
Œ�ÑÔØ����A�A�A�r˜�r�Ôñô ð ð ð r'   rr   Úupperro   c                 óˆ   — t          j        ¦   «         }t          j        dd¬¦  «        }t	          j        ||d| ¬¦  «         d S )N)rˆ   rˆ   r4   rD   r6   rf   )Úarrr½   rr   )r   r€   r@   rA   Úmimager¿   )rr   ÚbufÚresults      r$   Útest_imsave_rgba_originrÕ   Þ   sB   € õ Œ*‰,Œ,€CÝŒX�k¨Ð1Ñ1Ô1€FÝ
„M�#˜6¨%¸Ð?Ñ?Ô?Ð?Ð?Ð?r'   )rf   rL   ÚpsÚepsrM   c                 ój   — t          j        |d| › �z  t          j        ddgg¦  «        | ¬¦  «         d S )Nzunused.r   r2   r¾   )r>   r¿   r@   r^   )r¸   Útmp_paths     r$   Útest_imsave_fspathrÚ   æ   s:   € å„Jˆx˜/ C˜/˜/Ñ)­2¬8°a¸°V°HÑ+=Ô+=ÀcÐJÑJÔJÐJÐJÐJr'   c                  óÚ  — t           j                             d¦  «         dD ]È} t           j                             ddd¦  «        }t	          j        ¦   «         }t          j        ||| d¬¦  «         |                     d¦  «         t          j	        |¦  «        }d|z   
                    d	¦  «        }| d
k    r|d d d…         }d|z   
                    d	¦  «        }t          ||¦  «         ŒÉd S )Nr2   )ro   rÏ   é   r4   rf   )rr   r½   r   rZ   rD   ro   rs   )r@   rŽ   r�   r�   r   r€   r>   r¿   r‚   rƒ   Úastyper   )rr   rÂ   rÌ   Úarr_bufs       r$   Útest_imsave_color_alpharß   ë   sç   € õ „I‡N‚N�1ÑÔÐà$ð *ð *ˆÝŒy�~Š~˜b " aÑ(Ô(ˆÝŒz‰|Œ|ˆÝŒ
�4˜ f°UÐ;Ñ;Ô;Ð;à�	Š	�!‰ŒˆÝ”*˜TÑ"Ô"ˆð
 �D‘× Ò  Ñ)Ô)ˆØ�WÒÐØ˜˜˜"˜”:ˆDØ�w‘;×&Ò& wÑ/Ô/ˆå˜4 Ñ)Ô)Ð)Ð)ð!*ð *r'   c                  ó  — ddl m}  t          j        ¦   «         } | ¦   «         }|                     dd¦  «         t          j        |ddgddggdd	|i¬
¦  «         t          j        |¦  «        }|j	        d         dk    sJ ‚d S )Nr   )ÚPngInfoÚSoftwareÚtestr2   r   r9   rf   Úpnginfo©r½   Ú
pil_kwargs)
ÚPIL.PngImagePluginrá   r   r€   Úadd_textr>   r¿   r   r¥   Úinfo)rá   rÓ   rä   Úims       r$   Útest_imsave_pil_kwargs_pngrë     sŸ   € Ø*Ð*Ð*Ð*Ð*Ð*Ý
Œ*‰,Œ,€CØˆg‰iŒi€GØ×Ò�Z Ñ(Ô(Ð(Ý„Jˆs�a˜�V˜a ˜VÐ$Ø¨°GÐ(<ð>ñ >ô >ð >å	Œ�C‰Œ€BØŒ7�:Ô &Ò(Ð(Ð(Ð(Ð(Ð(r'   c                  ó6  ‡— ddl mŠ t          j        ¦   «         } ddi}t	          j        | ddgddggd|¬	¦  «         t          |¦  «        dk    sJ ‚t          j        | ¦  «        }ˆfd
„|j	         
                    ¦   «         D ¦   «         }|d         dk    sJ ‚d S )Nr   )ÚTAGS_V2Údescriptionz
test imager2   r   r9   r»   rå   c                 ó2   •— i | ]\  }}‰|         j         |“ŒS r!   )Úname)Ú.0ÚkÚvÚTAGSs      €r$   ú
<dictcomp>z/test_imsave_pil_kwargs_tiff.<locals>.<dictcomp>  s%   ø€ Ð:Ð:Ð:¡  1ˆD�ŒGŒL˜!Ð:Ð:Ð:r'   ÚImageDescription)ÚPIL.TiffTagsrí   r   r€   r>   r¿   Úlenr   r¥   Útag_v2Úitems)rÓ   ræ   rê   Útagsrô   s       @r$   Útest_imsave_pil_kwargs_tiffrü     s¶   ø€ Ø,Ð,Ð,Ð,Ð,Ð,Ý
Œ*‰,Œ,€CØ Ð.€JÝ„Jˆs�a˜�V˜a ˜VÐ$¨VÀ
ÐKÑKÔKÐKÝˆz‰?Œ?˜aÒÐÐÐÝ	Œ�C‰Œ€BØ:Ð:Ð:Ð:¨¬	¯ªÑ(9Ô(9Ð:Ñ:Ô:€DØÐ"Ô# |Ò3Ð3Ð3Ð3Ð3Ð3r'   Úimage_alphac                  óL  — t           j                             d¦  «         t           j                             dd¦  «        } t	          j        dd¦  «        \  }\  }}}|                     | dd¬¦  «         |                     | dd¬¦  «         |                     | dd	¬¦  «         d S )
Nr   é   r2   r9   rÉ   r:   )Úalphar<   ç      à?r]   )r@   rŽ   r�   r�   r>   r?   rE   )ÚZrF   ra   rb   Úax3s        r$   Útest_image_alphar    s•   € å„I‡N‚N�1ÑÔÐÝ
Œ	�Š�q˜!ÑÔ€Aåœ<¨¨1Ñ-Ô-Ñ€C‰ˆ#ˆs�CØ‡J‚Jˆq˜¨6€JÑ2Ô2Ð2Ø‡J‚Jˆq˜¨6€JÑ2Ô2Ð2Ø‡J‚Jˆq˜¨9€JÑ5Ô5Ð5Ð5Ð5r'   c                 ó$  — t           j                             d¦  «         t           j                             ddd¦  «                             t           j        ¦  «        }t          j        |dz  ¦  «        }|                      dd¦  «        \  \  }}\  }}|                     |d¬¦  «         |                     |d¬¦  «         |                     |d	¬¦  «         |                     |d
¬¦  «         t          j	        |t          j
        d¦  «        fd¬¦  «                             t           j        ¦  «        }t          j	        |t          j        ddt           j        ¦  «        fd¬¦  «        }	|                     dd¦  «        \  \  }}\  }}d|d d …d d …df<   |                     |¦  «         d|d d …d d …df<   |                     |¦  «         d|	d d …d d …df<   |                     |	¦  «         d|	d d …d d …df<   |                     |	¦  «         d S )Nr‹   rÿ   r9   rZ   r   r  ©r   ç      è?gàßßßßßß?gø÷÷÷÷÷ç?)rÿ   rÿ   r2   ©ÚaxisrY   é¿   )r@   rŽ   r�   r�   rÝ   Úfloat32rD   r?   rE   ÚconcatenaterB   Úfull)
r”   r•   ÚrgbfÚrgbuÚax0ra   rb   r  ÚrgbafÚrgbaus
             r$   Útest_imshow_alphar  %  sô  € õ „I‡N‚N�8ÑÔÐåŒ9�>Š>˜!˜Q Ñ"Ô"×)Ò)­"¬*Ñ5Ô5€DÝŒ8�D˜3‘JÑÔ€DØ'×0Ò0°°AÑ6Ô6Ñ�Z€cˆ3‘�#�sØ‡J‚Jˆt˜3€JÑÔÐØ‡J‚Jˆt˜4€JÑ Ô Ð Ø‡J‚Jˆt˜7€JÑ#Ô#Ð#Ø‡J‚Jˆt˜7€JÑ#Ô#Ð#åŒN˜D¥"¤'¨)Ñ"4Ô"4Ð5¸AÐ>Ñ>Ô>×EÒEÅbÄjÑQÔQ€EÝŒN˜D¥"¤'¨)°S½"¼(Ñ"CÔ"CÐDÈ1ÐMÑMÔM€EØ&×/Ò/°°1Ñ5Ô5Ñ�Z€cˆ3‘�#�sØ€Eˆ!ˆ!ˆ!ˆQˆQˆQ�ˆ'�NØ‡J‚JˆuÑÔÐØ€Eˆ!ˆ!ˆ!ˆQˆQˆQ�ˆ'�NØ‡J‚JˆuÑÔÐØ€Eˆ!ˆ!ˆ!ˆQˆQˆQ�ˆ'�NØ‡J‚JˆuÑÔÐØ€Eˆ!ˆ!ˆ!ˆQˆQˆQ�ˆ'�NØ‡J‚JˆuÑÔÐÐÐr'   z%n_channels, is_int, alpha_arr, opaque))r9   FFF)r4   FFF)r4   FTF)r4   FFT)r4   TFFc                 ó¾  — |r%t           j                             dddd| f¦  «        }n0t           j                             dd| f¦  «        }|rd|d d …d d …df<   |rt          j        ddgddgg¦  «        }nd }t	          j        ¦   «         \  }}|                     ||¬	¦  «        }|                     ¦   «          t           j         	                    ||j
        ¦  «         d S )
Nr   é   r   r2   r9   ç333333Ó?r  çš™™™™™é?r  )r@   rŽ   Úrandintr^   r>   r?   rE   Údraw_without_renderingÚtestingr   Ú_A)	Ú
n_channelsÚis_intÚ	alpha_arrÚopaquer^   r   rF   r„   rê   s	            r$   Útest_imshow_multi_drawr   ?  sì   € ð ð Ý”	×!Ò! ! S¨1¨a°Ð*<Ñ=Ô=ˆˆå”	× Ò  ! Q¨
Ð!3Ñ4Ô4ˆØð 	ØˆE�!�!�!�Q�Q�Q˜�'‰Nàð Ý”˜3 ˜* q¨# hÐ/Ñ0Ô0ˆˆàˆåŒl‰nŒn�G€CˆØ	�Š�5 ˆÑ	&Ô	&€BØ×ÒÑ Ô Ð õ „J×!Ò! %¨¬Ñ/Ô/Ð/Ð/Ð/r'   c                  ó†  — t          j        ¦   «         \  } }|                     t          j        d¦  «                             dd¦  «        d¬¦  «        }d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        dk    sJ ‚d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        �J ‚|                     ¦   «          |                     t          j        d¦  «                             dd¦  «        d	¬¦  «        }d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        dk    sJ ‚t          j        ¦   «         \  } }|                     t          j        d¦  «                             dd¦  «        g d
¢¬¦  «        }d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        dk    sJ ‚d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        �J ‚d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        �J ‚t          ¦   «                              d¦  «                             d¦  «        }|                     t          j        d¦  «                             dd¦  «        ||j        z   ¬¦  «        }d\  }}|j                             ||g¦  «        \  }}t          d| j	        ||¦  «        }| 
                    |¦  «        dk    sJ ‚d S )Nri   rˆ   rÏ   )rr   )r4   r4   Úmotion_notify_eventé,   )g333333$@r4   ro   )r   r  r   r  ©Úextent)ç      Ð?r&  é7   )r  r&  )ç{®Gáz„?g{®Gáz„¿r   r  ©Ú	transform)r9   rˆ   )r>   r?   rE   r@   rv   ÚreshapeÚ	transDatar*  r   ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)	rF   r„   rê   rx   ry   ÚxdispÚydispÚeventÚtranss	            r$   Útest_cursor_datar6  Z  s˜  € ÝŒl‰nŒn�G€CˆØ	�Š•2”9˜S‘>”>×)Ò)¨"¨bÑ1Ô1¸'ˆÑ	BÔ	B€Bà�D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$¨Ò*Ð*Ð*Ð*ð �D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$Ð,Ð,Ð,ð ‡H‚H�J„J€Jà	�Š•2”9˜S‘>”>×)Ò)¨"¨bÑ1Ô1¸'ˆÑ	BÔ	B€Bà�D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$¨Ò*Ð*Ð*Ð*åŒl‰nŒn�G€CˆØ	�Š•2”9˜S‘>”>×)Ò)¨"¨bÑ1Ô1Ð:JÐ:JÐ:JˆÑ	KÔ	K€Bà�D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$¨Ò*Ð*Ð*Ð*ð �D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$Ð,Ð,Ð,à�D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5åÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$Ð,Ð,Ð,õ ‰JŒJ×Ò˜QÑÔ×&Ò& sÑ+Ô+€EØ	�Š•2”9˜S‘>”>×)Ò)¨"¨bÑ1Ô1Ø" R¤\Ñ1ð 
ñ 
3ô 
3€Bà�D€A€qØ”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5ÝÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$¨Ò*Ð*Ð*Ð*Ð*Ð*r'   zxy, datar  ç      ø?r2   g      @rÜ   g      !@ç      #@g      @éU   rs   c                 óÎ  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }|t           j        d d …f         dz  |d d …t           j        f         dz  z   }t          j        ¦   «         \  }}t          ||                     ¦   «         |                     ¦   «         |                     ¦   «         |                     ¦   «         f¬¦  «        }|                     |||¦  «         | 	                    |¦  «         | 
                    |                     ¦   «         dz
  |                     ¦   «         ¦  «         |                     |                     ¦   «         dz
  |                     ¦   «         ¦  «         |j                             | ¦  «        \  }}	t          d|j        ||	¦  «        }
|                     |
¦  «        |k    sJ |                     |
¦  «        |f¦   «         ‚d S )N)r   r2   r4   é	   rÜ   )r   r2   r   r9   r4   r   r$  r"  )r@   r^   Únewaxisr>   r?   r   ÚminÚmaxÚset_dataÚ	add_imager›   rœ   r,  r*  r   r-  r.  )ÚxyrÂ   rx   ry   rz   rF   r„   rê   r2  r3  r4  s              r$   Útest_cursor_data_nonuniformrB  Ÿ  s�  € õ 	ŒÐ!Ð!Ð!Ñ"Ô"€AÝ
Œ���Ñ!Ô!€AØ	�"Œ*�a�a�aˆ-Ô˜!Ñ˜a   ¥2¤: Ô.°Ñ1Ñ1€AåŒl‰nŒn�G€CˆÝ	˜ Q§U¢U¡W¤W¨a¯eªe©g¬g°q·u²u±w´wÀÇÂÁÄÐ$HÐ	IÑ	IÔ	I€BØ‡K‚K��1�aÑÔÐØ‡L‚L�ÑÔÐà‡K‚K�—’‘”˜!‘˜QŸUšU™WœWÑ%Ô%Ð%Ø‡K‚K�—’‘”˜!‘˜QŸUšU™WœWÑ%Ô%Ð%à”<×)Ò)¨"Ñ-Ô-�L€Eˆ5ÝÐ,¨c¬j¸%ÀÑGÔG€EØ×Ò˜eÑ$Ô$¨Ò,Ð,Ð,¨r×/AÒ/AÀ%Ñ/HÔ/HÈ$Ð.OÑ,Ô,Ð,Ð,Ð,r'   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$�•ï?z[0.123]r   z[]g     ð?z[1.0000000000000000]z[-1.0]z[0.00]c                 ó$  — t          j        ¦   «         \  }}|                     | ¦  «        }|j                             ddg¦  «        \  }}t          d|j        ||¦  «        }|                     |                     |¦  «        ¦  «        |k    sJ ‚d S )Nr   r"  )	r>   r?   rE   r,  r*  r   r-  Úformat_cursor_datar.  )rÂ   ÚtextrF   r„   rê   r2  r3  r4  s           r$   Útest_format_cursor_datarF  ½  sˆ   € õ Œl‰nŒn�G€CˆØ	�Š�4‰Œ€Bà”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5ÝÐ,¨c¬j¸%ÀÑGÔG€EØ× Ò  ×!3Ò!3°EÑ!:Ô!:Ñ;Ô;¸tÒCÐCÐCÐCÐCÐCr'   c                  ó�  — t          j        ddggt           j        ¬¦  «        } t          j        ¦   «         \  }}|                     | t          j        ¦   «         ¬¦  «        }|j         	                    ddg¦  «        \  }}t          d|j        ||¦  «        }|                     |                     |¦  «        ¦  «        dk    sJ ‚d S )Nr   r#  r6   ©Únormr2   r"  z[44.000])r@   r^   rD   r>   r?   rE   r   ÚNoNormr,  r*  r   r-  rD  r.  )rÂ   rF   r„   rê   r2  r3  r4  s          r$   Ú%test_format_cursor_data_uint8_no_normrK  Ï  s®   € ÝŒ8�a˜�W�I¥R¤XÐ.Ñ.Ô.€DÝŒl‰nŒn�G€CˆØ	�Š�4�fœm™oœoˆÑ	.Ô	.€Bà”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5ÝÐ,¨c¬j¸%ÀÑGÔG€EØ× Ò  ×!3Ò!3°EÑ!:Ô!:Ñ;Ô;¸zÒIÐIÐIÐIÐIÐIr'   z[10001.000, 0.000]çš™™™™™¹?z[0.123, 0.100]©r   r   r   c                 óÊ  — t          j        ¦   «         \  }}t          j        d         }t          j        d         }|                     ddgg¦  «        }||j        _        t          j	        |j
        |j
        g¦  «        |j        _        t          j        j                             || ¦  «         |j                             ddg¦  «        \  }}t!          d|j        ||¦  «        }	|                     |                     |	¦  «        ¦  «        |k    sJ ‚||j        _        t!          d|j        ||¦  «        }	|                     |                     |	¦  «        ¦  «        |k    sJ ‚d S )NÚBiOrangeBlueÚ2VarAddAr   r2   r"  )r>   r?   ÚmplÚbivar_colormapsÚmultivar_colormapsrE   Ú	colorizerÚ_cmapr   Ú	MultiNormrI  Ú_normÚColorizingArtistÚ	set_arrayr,  r*  r   r-  rD  r.  )
rÂ   rE  rF   r„   Ú
cmap_bivarÚcmap_multivarrê   r2  r3  r4  s
             r$   Ú!test_format_cursor_data_multinormr\  Ù  s<  € õ Œl‰nŒn�G€CˆÝÔ$ ^Ô4€JÝÔ*¨:Ô6€Mð 
�Š�Q˜�F�8Ñ	Ô	€BØ#€B„LÔÝÔ)¨2¬7°B´GÐ*<Ñ=Ô=€B„LÔÝ„MÔ"×,Ò,¨R°Ñ6Ô6Ð6à”<×)Ò)¨1¨a¨&Ñ1Ô1�L€Eˆ5ÝÐ,¨c¬j¸%ÀÑGÔG€EØ× Ò  ×!3Ò!3°EÑ!:Ô!:Ñ;Ô;¸tÒCÐCÐCÐCà&€B„LÔÝÐ,¨c¬j¸%ÀÑGÔG€EØ× Ò  ×!3Ò!3°EÑ!:Ô!:Ñ;Ô;¸tÒCÐCÐCÐCÐCÐCr'   Ú
image_clip)r   c                  óÎ   — ddgddgg} t          j        ¦   «         \  }}|                     | ¦  «        }t          j        dd|j        ¬¦  «        }|                     |¦  «         d S )Nr2   r   r9   r4   ©r   r   )Úradiusr*  )r>   r?   rE   r
   ÚCircler,  Úset_clip_path)ÚdrF   r„   rê   Úpatchs        r$   Útest_image_clipre  ý  sd   € à
ˆQˆ�!�Q�Ð€AåŒl‰nŒn�G€CˆØ	�Š�1‰Œ€BÝŒN˜6¨!°r´|ÐDÑDÔD€EØ×Ò�UÑÔÐÐÐr'   Úimage_cliprectc                  óÞ   — t          j        ¦   «         \  } }ddgddgg}|                     |d¬¦  «        }t          j        ddd|j        j        ¬¦  «        }|                     |¦  «         d S )	Nr2   r   r9   r4   ©r   r3   r   r3   r$  ©r2   r2   )rA  ÚwidthÚheightr*  )r>   r?   rE   r
   r   Úaxesr,  rb  )rF   r„   rc  rê   Úrects        r$   Útest_image_cliprectrn    sz   € åŒl‰nŒn�G€CˆØ
ˆQˆ�!�Q�Ð€Aà	�Š�1˜\ˆÑ	*Ô	*€BåÔØ˜ 1°´Ô0AðCñ Cô C€Dà×Ò�TÑÔÐÐÐr'   c                 óÎ  — t          j        d¦  «                             d¦  «        }|                     ¦   «         }|                     |d d …d d …df         dd¬¦  «         |                     dd¦  «         |                     dd¦  «         |                      ¦   «         }|                     |dd¬¦  «         |                     dd¦  «         |                     dd¦  «         d S )Nri   )rˆ   rˆ   r2   r   r=   )r2   r   r2   r   )r<   r%  r9   )r@   rv   r+  r?   rE   r›   rœ   )r”   r•   rÑ   r„   s       r$   Útest_imshow_10_10_1rp    sÙ   € õ Œ)�C‰.Œ.×
 Ò
  Ñ
-Ô
-€CØ	×	Ò	Ñ	Ô	€BØ‡I‚Iˆc�!�!�!�Q�Q�Q˜�'Œl¨*¸\€IÑJÔJÐJØ‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐà	×	Ò	Ñ	Ô	€BØ‡I‚Iˆc °L€IÑAÔAÐAØ‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐÐÐr'   c                  ó  — t          j        ¦   «         \  } }t          j        d¦  «                             d¦  «        }t          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NéÈ   )rˆ   rˆ   r   ©	r>   r?   r@   rv   r+  ÚpytestÚraisesÚ	TypeErrorrE   ©rF   r„   rÑ   s      r$   Útest_imshow_10_10_2rx  "  ó¯   € ÝŒl‰nŒn�G€CˆÝ
Œ)�C‰.Œ.×
 Ò
  Ñ
-Ô
-€CÝ	Œ•yÑ	!Ô	!ð ð Ø
�	Š	�#‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ÁA:Á:A>ÂA>c                  ó  — t          j        ¦   «         \  } }t          j        d¦  «                             d¦  «        }t          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Niô  )rˆ   rˆ   r3   rs  rw  s      r$   Útest_imshow_10_10_5r|  )  ry  rz  Úno_interpolation_originc                  ó>  — t          j        d¦  «        \  } }|d                              t          j        d¦  «                             d¦  «        dd¬¦  «         |d                              t          j        d¦  «                             d¦  «        d¬	¦  «         d S )
Nr   r   ri   )r   rn   ro   r:   )rr   r<   r2   r;   )r>   r?   rE   r@   rv   r+  )rF   r¨   s     r$   Útest_no_interpolation_originr  0  s…   € åŒ|˜A‰Œ�H€CˆØˆ„F‡M‚M•"”)˜C‘.”.×(Ò(¨Ñ1Ô1¸'Ø &ð ñ (ô (ð (àˆ„F‡M‚M•"”)˜C‘.”.×(Ò(¨Ñ1Ô1À€MÑHÔHÐHÐHÐHr'   Úimage_shift)rP   r0   r   c            	      óô   — d„ t          dd¦  «        D ¦   «         } d}d}t          j        ¦   «         \  }}|                     | t	          j        ¦   «         d||ddf¬¦  «         |                     d¦  «         d S )	Nc                 óH   ‡— g | ]Šˆfd „t          dd¦  «        D ¦   «         ‘ŒS )c                 ó&   •— g | ]}d |z  d ‰z  z   ‘ŒS )r2   r!   )rñ   rx   ry   s     €r$   ú
<listcomp>z/test_image_shift.<locals>.<listcomp>.<listcomp>;  s%   ø€ Ð5Ð5Ð5 !��A‘˜˜A™‘Ð5Ð5Ð5r'   r2   ri   )Úrange)rñ   ry   s    @r$   r„  z$test_image_shift.<locals>.<listcomp>;  s6   ø€ ÐMÐMÐM¸!Ð5Ð5Ð5Ð5¥u¨Q°¡}¤}Ð5Ñ5Ô5ÐMÐMÐMr'   r2   ri   g�Mòãûk&Ag˜Šäûk&Ar:   )rI  r<   r%  r�   )r…  r>   r?   rE   r   ÚLogNormÚ
set_aspect)ÚimgDataÚtMinÚtMaxrF   r„   s        r$   Útest_image_shiftr‹  8  s†   € ð NÐM½uÀQÈ¹}¼}ÐMÑMÔM€GØ€DØ€DåŒl‰nŒn�G€CˆØ‡I‚Iˆg�FœNÑ,Ô,¸FØ˜D ! SÐ)ð ñ +ô +ð +à‡M‚M�&ÑÔÐÐÐr'   c                  ó  — t          j        ddg¬¦  «        } |                      dd¬¦  «        }t          j        t          j        d¦  «        d¦  «                             dd	¦  «        }|                     |d
g d¢dd¬¦  «        }dx}}|                     | |¦  «         | 	                    | |¦  «         | 
                    g ¦  «         |                     g ¦  «         t          j        ¦   «         }|                      |d¬¦  «         |                     d¦  «         t          j        |¦  «        }t#          |d d …df         ¦  «        \  }}}	}
t#          |d d …df         ¦  «        \  }}}	}
|dk    s
J d¦   «         ‚d S )Nr2   ©rk   rŒ   F)Úframeoné   é   rm   r;  rÏ   ©éöÿÿÿrˆ   r’  rˆ   r:   Úgray)rr   r%  r<   Úcmapr   )r   r2   r   )Ú	facecolorr   rs   ri   z.Expected a non-green edge - but sadly, it was.)r>   rt   Úadd_axesr@   Útilerv   r+  rE   r›   rœ   Ú
set_xticksÚ
set_yticksr   r€   r�   r‚   rƒ   r³   )rF   r„   rÂ   rê   rx   ry   rÓ   ÚrÚgÚbÚas              r$   Útest_image_edgesrž  E  sn  € Ý
Œ*˜a ˜VÐ
$Ñ
$Ô
$€CØ	�Š�l¨EˆÑ	2Ô	2€BåŒ7•2”9˜R‘=”= "Ñ%Ô%×-Ò-¨b°!Ñ4Ô4€Dà	�Š�4 Ð0BÐ0BÐ0BØ!'¨fð 
ñ 
6ô 
6€Bð €I€AˆØ‡K‚K���AÑÔÐØ‡K‚K���AÑÔÐà‡M‚M�"ÑÔÐØ‡M‚M�"ÑÔÐå
Œ*‰,Œ,€CØ‡K‚K�˜y€KÑ)Ô)Ð)à‡H‚HˆQ�K„K€Kå	Œ�C‰Œ€BÝ�R˜˜˜˜1˜”X‘”�J€A€qˆ!ˆQÝ�R˜˜˜˜2˜”Y‘”�J€A€qˆ!ˆQà�Š8ˆ8ˆ8ÐE‰8Œ8ˆ8ˆ8ˆ8r'   Úimage_composite_backgroundc                  ó<  — t          j        ¦   «         \  } }t          j        d¦  «                             dd¦  «        }|                     |g d¢¬¦  «         |                     |g d¢¬¦  «         |                     d¦  «         |                     dd¦  «         d S )	Nr�  r4   r9   )r   r   r�  r   r$  )r4   rÿ   r�  r   )r2   r   r   r  r   )r>   r?   r@   rv   r+  rE   Úset_facecolorr›   rw  s      r$   Útest_image_composite_backgroundr¢  a  s’   € õ Œl‰nŒn�G€CˆÝ
Œ)�B‰-Œ-×
Ò
  1Ñ
%Ô
%€CØ‡I‚Iˆc˜-˜-˜-€IÑ(Ô(Ð(Ø‡I‚Iˆc˜-˜-˜-€IÑ(Ô(Ð(Ø×Ò�^Ñ$Ô$Ð$Ø‡K‚K��2ÑÔÐÐÐr'   Úimage_composite_alphagìQ¸…ë±?)r0   r   rO   c                  óì  — t          j        ¦   «         \  } }t          j        d¦  «        }d|dd…dd…df<   t          j        t          j        ddd¦  «        t          j        ddd¦  «        ddd…         f¦  «        |dd…dd…df<   t          j        d	¦  «        }d|dd…dd…df<   d|dd…dd…df<   t          j        t          j        ddd¦  «        t          j        ddd¦  «        ddd…         f¦  «        dd…t          j        f         |dd…dd…df<   |                     |g d
¢d¬¦  «         |                     |g d¢d¬¦  «         |                     |g d¢¬¦  «         |                     |g d¢¬¦  «         |                     |g d¢d¬¦  «         |                     |g d¢d¬¦  «         |                     d¦  «         | 	                    dd¦  «         | 
                    dd¦  «         dS )z{
    Tests that the alpha value is recognized and correctly applied in the
    process of compositing images together.
    )é   é   r4   r2   Nr   çš™™™™™ñ?rL  rs   r9   )r¦  r¥  r4   )r2   r   r3   r   r  )r%  r   )r   r9   r3   r   ç333333ã?)r9   r4   r3   r   r$  )r   r3   r2   r   )r   r3   r   r9   )r   r3   r9   r4   )r   r  r   r2   r3   )r>   r?   r@   rA   r  rv   r<  rE   r¡  r›   rœ   )rF   r„   rÑ   Úarr2s       r$   Útest_image_composite_alpharª  l  s  € õ Œl‰nŒn�G€CˆÝ
Œ(�;Ñ
Ô
€CØ€Cˆˆˆˆ1ˆ1ˆ1ˆaˆ�LÝ”>Ý	Œ�1�c˜3Ñ	Ô	¥¤¨1¨a°Ñ!5Ô!5°d°d¸°dÔ!;Ð<ñ>ô >€Cˆˆˆˆ1ˆ1ˆ1ˆaˆ�LåŒ8�KÑ Ô €DØ€DˆˆˆˆAˆAˆAˆqˆ�MØ€DˆˆˆˆAˆAˆAˆqˆ�MÝ”NÝ	Œ�1�c˜3Ñ	Ô	¥¤¨1¨a°Ñ!5Ô!5°d°d¸°dÔ!;Ð<ñ>ô >Ø>?¸a¸aÅÄ¸môM€DˆˆˆˆAˆAˆAˆqˆ�Mà‡I‚Iˆc˜,˜,˜,¨c€IÑ2Ô2Ð2Ø‡I‚Iˆc˜,˜,˜,¨c€IÑ2Ô2Ð2Ø‡I‚Iˆc˜,˜,˜,€IÑ'Ô'Ð'Ø‡I‚Iˆd˜<˜<˜<€IÑ(Ô(Ð(Ø‡I‚Iˆd˜<˜<˜<¨s€IÑ3Ô3Ð3Ø‡I‚Iˆd˜<˜<˜<¨s€IÑ3Ô3Ð3Ø×Ò�^Ñ$Ô$Ð$Ø‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐÐÐr'   )rP   c                 óŒ  — t          j        d¦  «                             d¦  «        }| |fD ]�}|                     ¦   «         }|                     |t
          j                             g d¢¦  «        |j        f¬¦  «         |                     |t
          j                             g d¢¦  «        |j        f¬¦  «         Œ‘d|_	        d S )Nr;  ©r9   r9   )r_  ©r   r2   )r2   r   )Ú	clip_path)ri  ©r2   r   )r   r2   T)
r@   rv   r+  Úadd_subplotrE   rQ  r¯   r   r,  rd   )r”   r•   ÚtrF   r„   s        r$   Ú#test_clip_path_disables_compositingr²  ˆ  sÉ   € å
Œ	�!‰Œ×Ò˜VÑ$Ô$€AØ˜'Ð"ð /ð /ˆØ�_Š_ÑÔˆØ
�	Š	�!¥¤§¢Ð.FÐ.FÐ.FÑ GÔ GØ "¤ð .ˆ	ñ 	/ô 	/ð 	/à
�	Š	�!¥¤§¢Ð.FÐ.FÐ.FÑ GÔ GØ "¤ð .ˆ	ñ 	/ô 	/ð 	/ð 	/à $€GÔÐÐr'   Úrasterize_10dpic                  óX  — t          j        ddgddgg¦  «        } t          j        ddd¬¦  «        \  }}|d                              | ¦  «         |d                              ddgddgdd	¬
¦  «         |d                              dd¬¦  «         |d                              ddgddgd¬¦  «         |d                              dd¬¦  «         |D ]N}|                     g ¦  «         |                     g ¦  «         |j	        d d …          
                    d¦  «         ŒOdt          d<   d S )Nr2   r   r9   r4   )r9   r2   r�  r   g      4@T)Ú	linewidthÚ
rasterizedr­  )rs   r   ©ÚxlimÚylim)rµ  Frˆ   rR   )r@   Úasarrayr>   r?   rE   r~   Úsetr˜  r™  ÚspinesÚset_visibler   )rI   rF   r¨   r„   s       r$   Útest_rasterize_dpir¾  ”  s4  € õ Œ*�q˜!�f˜q !˜fÐ%Ñ
&Ô
&€CåŒ|˜A˜q¨&Ð1Ñ1Ô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ˆ]ÑÐÐr'   Úbbox_image_invertedc            	      óü  — t          j        d¦  «                             d¦  «        } t          j        ¦   «         \  }}t          t          t          ddgddgg¦  «        |j        ¦  «        d¬¦  «        }| 	                    | ¦  «         | 
                    d¦  «         |                     dd¦  «         |                     dd¦  «         |                     |¦  «         t          j        d¦  «        } t          t          t          dd	gd
dgg¦  «        |                     ¦   «         j        ¦  «        d¬¦  «        }| 	                    | ¦  «         | 
                    d¦  «         |                     |¦  «         d S )Nri   ©rˆ   rˆ   r   r]   r;   Frˆ   rL  çš™™™™™É?r  r&  )r@   rv   r+  r>   r?   r   r   r   r,  r?  Úset_clip_onr›   rœ   Ú
add_artistÚidentityÚ
get_figureÚtransFigure)r	   rF   r„   Úbbox_ims       r$   Útest_bbox_image_invertedrÉ  ³  sf  € õ ŒI�c‰NŒN×"Ò" 8Ñ,Ô,€EåŒl‰nŒn�G€CˆÝÝ�˜s C˜j¨1¨a¨&Ð1Ñ2Ô2°B´LÑAÔAØð!ñ !ô !€Gð ×Ò�UÑÔÐØ×Ò˜ÑÔÐØ‡K‚K��3ÑÔÐØ‡K‚K��3ÑÔÐØ‡M‚M�'ÑÔÐåŒK˜‰OŒO€Eå�­¨s°C¨j¸3À¸+Ð-FÑ(GÔ(GØ(*¯ª©¬Ô(CñEô Eà&/ð1ñ 1ô 1€Gð ×Ò�UÑÔÐØ×Ò˜ÑÔÐØ‡M‚M�'ÑÔÐÐÐr'   c                  ó²  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        dd¬¦  «        \  }}|                     g d¢¦  «         |                     d	d
¦  «         |                     d	d
¦  «         |                     | g d¢d¬¦  «        }|j         	                    ¦   «          |j        j
        }|                     |¦  «        }t          |                     ¦   «         ddgddgg¦  «         t          j        dd¬¦  «        \  }}|                     g d¢¦  «         |                     d
d¦  «         |                     d	d
¦  «         |                     | g d¢d|j        ¬¦  «        }|j         	                    ¦   «          |j        j
        }|                     |¦  «        }t          |                     ¦   «         ddgddgg¦  «         d S )N)r&  r  rÉ   r  )rL  gÍÌÌÌÌÌä?r  çš™™™™™Ù?)r¨  r  rÊ   rÂ  )çffffffæ?çÍÌÌÌÌÌì?rË  r¨  rÁ  ri   rj   rŒ   r   r2   )rË  rÌ  rÂ  rÍ  r]   )r%  r<   é�  rr  i¼  i„  r   )r%  r<   r*  )r@   r^   r>   r?   r“   r›   rœ   rE   r-  ÚdrawÚrendererÚget_window_extentr   Ú
get_pointsÚ	transAxes)rê   rF   r„   Úim_objrÐ  Úim_bboxs         r$   Ú$test_get_window_extent_for_AxisImagerÖ  Ì  sù  € õ
 
ŒÐ*Ð*Ð*Ð,AÐ,AÐ,AØ'Ð'Ð'Ð)=Ð)=Ð)=ð?ñ 
@ô 
@€BåŒl 8°Ð5Ñ5Ô5�G€CˆØ‡O‚O�L�L�LÑ!Ô!Ð!Ø‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐØ�YŠYØ
Ð'Ð'Ð'°yð ñ Bô B€Fð „J‡O‚OÑÔÐØŒzÔ"€HØ×&Ò& xÑ0Ô0€Gå�w×)Ò)Ñ+Ô+¨s°C¨j¸3À¸*Ð-EÑFÔFÐFåŒl 8°Ð5Ñ5Ô5�G€CˆØ‡O‚O�L�L�LÑ!Ô!Ð!Ø‡K‚K��1ÑÔÐØ‡K‚K��1ÑÔÐØ�YŠYØ
Ð'Ð'Ð'°yØ”,ð ñ  ô  €Fð „J‡O‚OÑÔÐØŒzÔ"€HØ×&Ò& xÑ0Ô0€Gå�w×)Ò)Ñ+Ô+¨s°C¨j¸3À¸*Ð-EÑFÔFÐFÐFÐFr'   zzoom_and_clip_upper_origin.pngc                  ó  — t          j        d¦  «        } |                      d¦  «        } t          j        ¦   «         \  }}|                     | ¦  «         |                     dd¦  «         |                     dd¦  «         d S )Nri   rÁ  ç       @ç      à¿)r@   rv   r+  r>   r?   rE   rœ   r›   )r	   rF   r„   s      r$   Útest_zoom_and_clip_upper_originrÚ  ï  sq   € õ ŒI�c‰NŒN€EØ�MŠM˜(Ñ#Ô#€EåŒl‰nŒn�G€CˆØ‡I‚IˆeÑÔÐØ‡K‚K��TÑÔÐØ‡K‚K��cÑÔÐÐÐr'   c                  ót   — t          j        ¦   «         } t          | ¦  «        }|                     d¦  «         d S )NÚBlues)r>   Úgcar   Úset_cmap©r„   rê   s     r$   Útest_nonuniformimage_setcmaprà  û  s2   € Ý	Œ‰Œ€BÝ	˜Ñ	Ô	€BØ‡K‚K�ÑÔÐÐÐr'   c                  ó–   — t          j        ¦   «         } t          | ¦  «        }|                     t          j        ¦   «         ¦  «         d S r    )r>   rÝ  r   Úset_normÚ	Normalizerß  s     r$   Útest_nonuniformimage_setnormrä    s8   € Ý	Œ‰Œ€BÝ	˜Ñ	Ô	€BØ‡K‚K•”‘”Ñ Ô Ð Ð Ð r'   c                  ód  — t          j        dd¬¦  «        } t          d¦  «        D ]"}t          j        ddd¦  «        dz  | |d d …f<   Œ#t	          j        dd¦  «        }|                     |                      ¦   «         ¦  «         t          j	        ¦   «         \  }}| 
                    |¦  «         d S )	NrÁ  rD   r6   rˆ   rÊ   rÉ   rZ   ÚL)r@   rB   r…  Úlinspacer   ÚnewÚputdataÚflattenr>   r?   rE   )ÚimdÚirê   rF   r„   s        r$   Útest_jpeg_2drí    sž   € å
Œ'�( 'Ð
*Ñ
*Ô
*€CÝ�2‰YŒYð 4ð 4ˆÝ”K  S¨"Ñ-Ô-°Ñ3ˆˆAˆqˆqˆqˆD‰	ˆ	Ý	Œ�3˜Ñ	!Ô	!€BØ‡J‚Jˆs�{Š{‰}Œ}ÑÔÐÝŒl‰nŒn�G€CˆØ‡I‚Iˆb�M„M€M€M€Mr'   c                  ó
  — t          j        dd¬¦  «         t          j        dt          ¬¦  «        } t          j        ddd¦  «        | d<   t          j        | ¦  «         t          j        ¦   «         }t          j	        |d	d
d¬¦  «         | 
                    d¦  «         t          j        |¦  «        }t          |                     d¦  «        ¦  «        }d|cxk    rdk    sn J ‚|                     d¦  «        }|dk    sJ ‚d S )Nri  é,  rj   )rï  rï  r4   r6   rÊ   rÉ   r8   Úredr¹   )r•  r½   rl   r   r  é¯   éæ   r_  )éþ   r   r   )r>   rt   r@   rA   Úfloatrç  re   r   r€   r�   r‚   r   r¥   rø   Ú	getcolorsÚgetpixel)rê   rÌ   r	   Ú
num_colorsÚcorner_pixels        r$   Útest_jpeg_alpharù    sþ   € Ý„J�v 3Ð'Ñ'Ô'Ð'õ 
Œ�-¥uÐ	-Ñ	-Ô	-€BÝ”˜S # sÑ+Ô+€B€v�Jå„L�ÑÔÐåŒ:‰<Œ<€DÝ„K� ¨e¸Ð=Ñ=Ô=Ð=à‡I‚Iˆa�L„L€LÝŒJ�tÑÔ€Eõ �U—_’_ SÑ)Ô)Ñ*Ô*€JØ�*Ð#Ð#Ò#Ð# Ò#Ð#Ð#Ð#Ð#Ð#à—>’> &Ñ)Ô)€LØ˜;Ò&Ð&Ð&Ð&Ð&Ð&r'   c                  ó  — t          j        ¦   «         } t          | ¦  «        }t          j        dt
          ¬¦  «                             d¦  «        }|                     |¦  «         d|d<   |j        d         dk    s
J d¦   «         ‚d S ©Nr�  r6   ©r4   r9   çÍÌÌÌÌÌ#@r_  r   úvalue changed)	r>   rÝ  r   r@   rv   rô  r+  r?  r  ©r„   rê   rz   s      r$   Útest_axesimage_setdatar   *  sw   € Ý	Œ‰Œ€BÝ	�2‰Œ€BÝ
Œ	�"�EÐ"Ñ"Ô"×*Ò*¨6Ñ2Ô2€AØ‡K‚K��N„N€NØ€A€d�GØŒ5�Œ;˜!ÒÐÐ˜_ÑÔÐÐÐr'   c                  ó  — t          j        ¦   «         } t          | ¦  «        }t          j        dt
          ¬¦  «                             d¦  «        }|                     |¦  «         d|d<   |j        d         dk    s
J d¦   «         ‚d S rû  )	r>   Úgcfr   r@   rv   rô  r+  r?  r  )rF   rê   rz   s      r$   Útest_figureimage_setdatar  3  sy   € Ý
Œ'‰)Œ)€CÝ	�SÑ	Ô	€BÝ
Œ	�"�EÐ"Ñ"Ô"×*Ò*¨6Ñ2Ô2€AØ‡K‚K��N„N€NØ€A€d�GØŒ5�Œ;˜!ÒÐÐ˜_ÑÔÐÐÐr'   zimage_cls,x,y,aç      @ç      @g      (@rü  g      @)r9   r   c                 óx  — t          j        ¦   «         } | |¦  «        }|                     |||¦  «         dx|d<   x|d<   |d<   |j        d         |j        d         cxk    r|j        d         cxk    rdk    sn J d¦   «         ‚|                     |||                     g |j        ¢d‘R ¦  «        ¦  «         d S )Nrý  r   r_  rþ  rs   )r>   rÝ  r?  r  Ú_AxÚ_Ayr+  rÀ   )Ú	image_clsrx   ry   r�  r„   rê   s         r$   Útest_setdata_xyar
  <  sÎ   € õ 
Œ‰Œ€BØ	ˆ�2‰Œ€BØ‡K‚K��1�aÑÔÐØÐ€A€a�DÐˆ1ˆQ‰4�!�D‘'ØŒ5�Œ;˜"œ& œ)Ð5Ð5Ò5Ð5 r¤v¨a¤yÐ5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5°Ñ5Ô5Ð5Ø‡K‚K��1�a—i’i  !¤' ¨2  Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r'   c                  óÊ  — ddl m}  t          j                             d¦  «         t          j                             dd¦  «        }t          j        dd¦  «        \  }}|d                              |¦  «        }|d                              |¦  «        }t          j	        ||d         ¬¦  «         t          j	        ||d         ¬¦  «         t          j        ¦   «         }t          j        |d¬¦  «         t          j        |                     ¦   «         ¦  «        }|                      |¦  «        }d }|                     d	¦  «        D ]}	|€	|	d
         }Œ|	d
         |k    rJ ‚Œd S )Nr   )ÚElementTreerˆ   r2   r   )r„   rM   r¾   r	   rj  )Ú	xml.etreer  r@   rŽ   r�   r�   r>   r?   Ú
pcolormeshÚcolorbarr   r€   r�   ÚgetvalueÚparseÚiter)
r  rÂ   rF   r„   Úp1Úp2rÌ   Útreerj  r	   s
             r$   Útest_minimized_rasterizedr  L  sQ  € ð &Ð%Ð%Ð%Ð%Ð%å„I‡N‚N�1ÑÔÐÝŒ9�>Š>˜"˜bÑ!Ô!€DåŒl˜1˜aÑ Ô �G€CˆØ	ˆAŒ×	Ò	˜$Ñ	Ô	€BØ	ˆAŒ×	Ò	˜$Ñ	Ô	€Bå„L�˜˜1œÐÑÔÐÝ„L�˜˜1œÐÑÔÐåŒ:‰<Œ<€DÝ„K�˜UÐ#Ñ#Ô#Ð#åŒ:�d—m’m‘o”oÑ&Ô&€DØ×Ò˜TÑ"Ô"€DØ€EØ—’˜7Ñ#Ô#ð ð ˆØˆ=Ø˜'”NˆEˆEà�WŒ~ Ò&Ð&Ø�uð 'ð	ð r'   c                  óà  — t          t          ¦  «        j        dz  } dt          j        dk    rdndz   |                      ¦   «                              ¦   «         z   }t          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             |¦  «        5 }t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr    zfile:Úwin32z///Ú zPlease open the URL©Úmatch)r   r£   r¤   ÚsysÚplatformÚresolveÚas_posixrt  ru  Ú
ValueErrorr>   rƒ   ÚurllibÚrequestÚurlopen)r¯   ÚurlÚfiles      r$   Útest_load_from_urlr&  m  sP  € Ý•‰>Œ>Ô Ð#JÑJ€DØÝ”| wÒ.Ð.ˆeˆe°Bñ8à�\Š\‰^Œ^×$Ò$Ñ&Ô&ñ'€Cõ 
Œ•zÐ)>Ð	?Ñ	?Ô	?ð ð ÝŒ
�3‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ×	Ò	 Ñ	$Ô	$ð ¨ÝŒ
�4ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Á6BÂBÂBÃC#Ã#C'Ã*C'Úlog_scale_imagec                  óÐ   — t          j        d¦  «        } d| d d d…<   t          j        ¦   «         \  }}|                     | g d¢dddd¬¦  «         |                     d	¬
¦  «         d S )NrÁ  r2   r   )r2   ri   r2   ri   Úviridisrs   r�   )r%  r”  ÚvmaxÚvminÚaspectÚlog)Úyscale)r@   rA   r>   r?   rE   r»  )r  rF   r„   s      r$   Útest_log_scale_imager/  x  sx   € å
Œ�ÑÔ€AØ€A€c€cˆ€c�FåŒl‰nŒn�G€CˆØ‡I‚IˆaÐ(Ð(Ð(¨y¸qÀrØð ñ ô ð à‡F‚F�%€FÑÔÐÐÐr'   Úrotate_imagec                  ó  — d} t          j        dd| ¦  «        x}}t          j        ||¦  «        \  }}t          j        |dz  |dz  z    dz  ¦  «        dt           j        z  z  }t          j        |dz
  dz  dz  |dz
  dz  dz  z    dz  ¦  «        dt           j        z  dz  dz  z  }||z
  }t          j        dd¦  «        \  }}	|	                     |dd	d
g d¢d¬¦  «        }
t          ¦   «          	                    d¦  «        |	j
        z   }|
                     |¦  «         |
                     ¦   «         \  }}}}|	                     |||||g|||||gdd|¬¦  «         |	                     dd¦  «         |	                     dd¦  «         d S )Nr&  ç      Àr  r   r2   r7  r  r:   r)  ro   )éþÿÿÿr4   éýÿÿÿr   T)r<   r”  rr   r%  Úclip_oné   zr--r9   )Úlwr*  r3   r   r4   )r@   rv   ÚmeshgridÚexpÚpir>   r?   rE   r   Ú
rotate_degr,  Úset_transformÚ
get_extentr~   r›   rœ   )Údeltarx   ry   r`   ÚYÚZ1ÚZ2r  rF   ra   Úim1Útrans_data2Úx1Úx2Úy1Úy2s                   r$   Útest_rotate_imagerH  ƒ  s¯  € à€EÝŒI�d˜C Ñ'Ô'Ð'€AˆÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ�!�Q‘$˜˜A™‘+� Ñ"Ñ	#Ô	# q­2¬5¡yÑ	1€BÝ
Œ&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ñ
@Ô
@Ø�rŒu‰9�s‰?˜SÑ ñ"€Bà
ˆR‰€AåŒ|˜A˜qÑ!Ô!�H€CˆØ
�*Š*�Q f°9Ø#Ø*˜N˜N°Dð ñ :ô :€Cõ ‘*”*×'Ò'¨Ñ+Ô+¨c¬mÑ;€KØ×Ò�kÑ"Ô"Ð"ð —^’^Ñ%Ô%�N€BˆˆB�à‡H‚Hˆb�"�b˜"˜bÐ! B¨¨B°°BÐ#7¸À1Ø"ð ñ $ô $ð $ð ‡L‚L��AÑÔÐØ‡L‚L��AÑÔÐÐÐr'   c                  ó  — t          j        ¦   «         } t          j        d¦  «        }t	          j        | |d¬¦  «         |                      d¦  «         t	          j        | ¦  «        }|j        d d…         |j        k    sJ ‚d S )N)iá  iA  rf   r¾   r   r   )	r   r€   r@   rA   r>   r¿   r‚   rƒ   rÀ   )rÌ   rê   rI   s      r$   Útest_image_preserve_sizerJ  Ÿ  st   € ÝŒ:‰<Œ<€Då	Œ�*Ñ	Ô	€BÝ„Jˆt�R Ð&Ñ&Ô&Ð&à‡I‚Iˆa�L„L€LÝ
Œ*�TÑ
Ô
€CàŒ9�R�a�RŒ=˜BœHÒ$Ð$Ð$Ð$Ð$Ð$r'   c                  ó^  — d} t          j        | t          ¦  «        }t          j        | | fd¬¦  «        }|                     d¦  «        }|                     ¦   «          |                     |ddd¬¦  «         t          j	        ¦   «         }| 
                    |d	¬
¦  «         |                     d¦  «         t          j        |¦  «        }|j        dk    sJ ‚t          t          j        |d d …d d …df         t           ¦  «        t          j        | t           ¦  «        d d d…         ¦  «         d S )Né   F)rk   rŽ  )rÊ   rÊ   rÉ   rÉ   r]   ro   r�   )r<   rr   r,  r2   )rl   r   )rL  rL  r4   rs   )r@   rÅ  rô  r>   rt   r–  Úset_axis_offrE   r   r€   r�   r‚   rƒ   rÀ   r   rº  Úbool)ÚnrÂ   rF   r„   rÌ   rI   s         r$   Útest_image_preserve_size2rP  «  s  € Ø	€AÝŒ;�q�%Ñ Ô €Då
Œ*˜a ˜V¨UÐ
3Ñ
3Ô
3€CØ	�ŠÐ*Ñ	+Ô	+€BØ‡O‚OÑÔÐØ‡I‚Iˆd )°GÀF€IÑKÔKÐKÝŒ:‰<Œ<€DØ‡K‚K�˜!€KÑÔÐà‡I‚Iˆa�L„L€LÝ
Œ*�TÑ
Ô
€CàŒ9˜	Ò!Ð!Ð!Ð!å•r”z # a a a¨¨¨¨A g¤,µÑ5Ô5Ý”{ 1¥dÑ+Ô+¨D¨D¨b¨DÔ1ñ3ô 3ð 3ð 3ð 3r'   zmask_image_over_under.pngrÉ   c            
      óº  — d} t          j        dd| ¦  «        x}}t          j        ||¦  «        \  }}t          j        |dz  |dz  z    dz  ¦  «        dt           j        z  z  }t          j        |dz
  dz  dz  |dz
  dz  dz  z    dz  ¦  «        dt           j        z  dz  dz  z  }d||z
  z  }t
          j        d	                              d
dd¬¦  «        }t           j         	                    |dk    |¦  «        }	t          j
        dd¦  «        \  }
\  }}|                     |	d|t          j        ddd¬¦  «        dg d¢¬¦  «        }|                     d¦  «         |
                     |dd|d¬¦  «         |                     |	d|t          j        g d¢dd¬¦  «        dg d¢¬¦  «        }|                     d¦  «         |
                     |dd d|d¬!¦  «         d S )"Ngš™™™™™™?r2  r  r   r2   r7  r  rˆ   r“  rš  r›  rœ  ©ÚoverÚunderÚbadç333333ó?r=   g      ð¿rÉ   F)r+  r*  Úclipro   )r4  r9   r4  r9   )r<   r”  rI  rr   r%  zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationr„   r,  r]   )rs   rÙ  gš™™™™™É¿r   rÂ  r  r2   r  )ÚncolorsrW  zWith BoundaryNormÚproportional)rZ  Úspacingr[  r„   r,  )r@   rv   r8  r9  r:  r>   Ú	colormapsÚwith_extremesÚmaÚmasked_wherer?   rE   r   rã  r_   r  ÚBoundaryNorm)r>  rx   ry   r`   r?  r@  rA  r  ÚpaletteÚZmrF   ra   rb   rê   s                 r$   Útest_mask_image_over_underrf  ¿  s!  € ð €EÝŒI�d˜C Ñ'Ô'Ð'€AˆÝŒ;�q˜!ÑÔ�D€A€qÝ	Œ�!�Q‘$˜˜A™‘+� Ñ"Ñ	#Ô	# q­2¬5¡yÑ	1€BÝ
Œ&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ñ
@Ô
@Ø�rŒu‰9�s‰?˜SÑ ñ"€Bà
ˆB�‰G‰€AåŒm˜FÔ#×1Ò1°sÀ#È3Ð1ÑOÔO€GÝ	Œ×	Ò	˜A šG QÑ	'Ô	'€BÝ”l 1 aÑ(Ô(�O€C‰ˆ#ˆsØ	�Š�B jØ ÝÔ)¨t¸#ÀEÐJÑJÔJØ"¨>¨>¨>ð 
ñ 
;ô 
;€Bð ‡M‚MÐ1Ñ2Ô2Ð2Ø‡L‚L�˜F°Ø ð ñ $ô $ð $ð 
�Š�B iØ ÝÔ,Ð-MÐ-MÐ-MØ58¸uðFñ Fô Fà"¨>¨>¨>ð	 
ñ 
;ô 
;€Bð
 ‡M‚MÐ%Ñ&Ô&Ð&Ø‡L‚L�˜F¨NØ)¨c¸"ð ñ >ô >ð >ð >ð >r'   Ú
mask_imagec                  ó²  — t          j        dd¦  «        \  } \  }}t          j        d¦  «        }t          j        |dd…dd…f<   |                     |d¬¦  «         t          j        dt          ¬¦  «        }d|dd…dd…f<   t          j         	                    t          j        dt          j
        ¬¦  «        |¦  «        }|                     |d¬¦  «         d S )Nr2   r   r5   r]   r;   r6   T)r>   r?   r@   rB   ÚnanrE   rA   rN  ra  Úmasked_arrayr²   )rF   ra   rb   r˜   s       r$   Útest_mask_imagerk  à  sÄ   € õ ”l 1 aÑ(Ô(�O€C‰ˆ#ˆså
Œ�‰Œ€AÝ”&€A€aˆ€cˆ1ˆQˆ3€h�Kà‡J‚Jˆq 	€JÑ*Ô*Ð*å
Œ��tÐ$Ñ$Ô$€AØ€A€aˆ€cˆ1ˆQˆ3€h�KÝ
Œ×Ò�2œ7 6µ´Ð;Ñ;Ô;¸QÑ?Ô?€Aà‡J‚Jˆq 	€JÑ*Ô*Ð*Ð*Ð*r'   c                  óÌ   — t          j        dt           j        ¦  «        } t          j        ¦   «         \  }}|                     | ¦  «         |j                             ¦   «          d S )Nrh   )r@   r  ri  r>   r?   rE   r-  Ú	draw_idle)rÂ   rF   r„   s      r$   Útest_mask_image_allrn  ò  sM   € åŒ7�6�2œ6Ñ"Ô"€DÝŒl‰nŒn�G€CˆØ‡I‚Iˆd�O„O€OØ„J×ÒÑÔÐÐÐr'   zimshow_endianess.pngc                  ór  — t          j        d¦  «        } t          j        | | ¦  «        \  }}t          j        |dz
  |dz
  ¦  «        }t	          j        dd¦  «        \  }\  }}t          ddd¬¦  «        } |j        |                     d	¦  «        fi |¤Ž  |j        |                     d
¦  «        fi |¤Ž d S )Nrˆ   r3   r2   r   ro   r]   r)  )rr   r<   r”  z<f8z>f8)	r@   rv   r8  Úhypotr>   r?   ÚdictrE   rÝ   )rx   r`   r?  r  rF   ra   rb   Úkwargss           r$   Útest_imshow_endianessrs  ú  s¸   € å
Œ	�"‰Œ€AÝŒ;�q˜!ÑÔ�D€A€qÝ
Œ��Q‘˜˜A™ÑÔ€Aå”l 1 aÑ(Ô(�O€C‰ˆ#ˆså˜°	À	ÐJÑJÔJ€Fà€C„Jˆq�xŠx˜‰ŒÐ)Ð) &Ð)Ð)Ð)Ø€C„Jˆq�xŠx˜‰ŒÐ)Ð) &Ð)Ð)Ð)Ð)Ð)r'   Úimshow_masked_interpolationÚx86_64r(  )rO   r0   r   c                  óL  — t           j        d                              ddd¬¦  «        } d}t          j        d||z  dz
  ¬	¦  «        }t          j        ||z  t          ¬
¦  «                             ||¦  «        }d|d<   d|d<   t
          j	        |d<   t          j
        |¦  «                             d¦  «        }d|d<   t
          j                             ||¦  «        }t          j        dd¦  «        \  }}t!          t"          j        ¦  «        }|                     d¦  «         |                     d¦  «         t)          ||                     ¦   «         ¦  «        D ]H\  }}	|	                     |¦  «         |	                     ||| |¬¦  «         |	                     d¦  «         ŒId S )Nr)  rš  rœ  rò   rR  rm   r   r2   ©r+  r*  r6   rs   r5   g     jø@)r�  r3   )r�  r�  rN  T)r3   r�  r9   rÿ   r�   Úantialiased)rI  r”  r<   Úoff)rQ  r_  r`  r   rã  r@   rv   rô  r+  ÚinfÚ
zeros_likerÝ   ra  rj  r>   r?   ÚsortedrÒ   Ú	_interpd_ÚremoveÚzipÚravelr_   rE   r	  )
r”  ÚNrO  rÂ   ÚmaskrF   Úax_gridÚinterpsÚinterpr„   s
             r$   Ú test_imshow_masked_interpolationr†    s‚  € õ
 Œ=˜Ô#×1Ò1°sÀ#È3Ð1ÑOÔO€Dà
€AÝÔ˜a a¨¡c¨!¡eÐ,Ñ,Ô,€AåŒ9�Q�q‘S¥Ð&Ñ&Ô&×.Ò.¨q°!Ñ4Ô4€Dà€Dˆ�Jð €Dˆ�Kõ ”6€Dˆ�LåŒ=˜ÑÔ×%Ò% fÑ-Ô-€DØ€Dˆ�KåŒ5×Ò˜d DÑ)Ô)€Då”<  1Ñ%Ô%�L€CˆÝ•VÔ%Ñ&Ô&€GØ‡N‚N�6ÑÔÐØ‡N‚N�=Ñ!Ô!Ð!å˜' 7§=¢=¡?¤?Ñ3Ô3ð ð ‰
ˆ�Ø
�Š�VÑÔÐØ
�	Š	�$˜Q T¸ˆ	Ñ@Ô@Ð@Ø
�Š�‰Œˆˆðð r'   c                  óN   — t          j        ddgdt          j        gg¦  «         d S )Nr2   r   r9   )r>   rE   r@   ri  r!   r'   r$   Útest_imshow_no_warn_invalidrˆ  -  s'   € Ý„J��A�˜�BœF˜Ð$Ñ%Ô%Ð%Ð%Ð%r'   r7   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r!   )r@   r7   )rñ   Úss     r$   r„  r„  2  s    € ÐBÐBÐB˜a�bŒh�q‰kŒkÐBÐBÐBr'   zu2 u4 i2 i4 i8 f4 f8c                 óV  — t          j        d| ¬¦  «                             d¦  «        }| j        dk    r|dz  }|dk     }|dk    }| j        dk    r|dz  }t	          j        ¦   «         \  }}|                     |¦  «                             ¦   «         }||         dk                         ¦   «         sJ ‚| j        dk    r4||         d	k                         ¦   «         sJ ‚|j	        j        dk    sJ ‚d S ||         dk                         ¦   «         sJ ‚|j	        t           j
        k    sJ ‚d S )
Nrï  r6   )rˆ   rˆ   r9   Úurˆ   r   rZ   Úfr2   )r@   rv   r+  Úkindr>   r?   rE   Ú	get_arrayÚallr7   rD   )r7   rÑ   Útoo_lowÚtoo_highÚ_r„   Úouts          r$   Ú$test_imshow_clips_rgb_to_valid_ranger•  1  s4  € õ Œ)�C˜uÐ
%Ñ
%Ô
%×
-Ò
-¨kÑ
:Ô
:€CØ„z�SÒÐØˆr‰	ˆØ�AŠg€GØ�SŠy€HØ„z�SÒÐØ�C‰iˆÝŒL‰NŒN�E€A€rØ
�)Š)�C‰.Œ.×
"Ò
"Ñ
$Ô
$€CØ�ŒL˜AÒ×"Ò"Ñ$Ô$Ð$Ð$Ð$Ø„z�SÒÐØ�H” Ò"×'Ò'Ñ)Ô)Ð)Ð)Ð)ØŒyŒ~ Ò$Ð$Ð$Ð$Ð$Ð$à�H” Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+ØŒy�BœHÒ$Ð$Ð$Ð$Ð$Ð$r'   zimshow_flatfield.pngc                  ó°   — t          j        ¦   «         \  } }|                     t          j        d¦  «        d¬¦  «        }|                     dd¦  «         d S )Nr5   r]   r;   r  r7  )r>   r?   rE   r@   rB   Úset_clim©rF   r„   rê   s      r$   Útest_imshow_flatfieldr™  F  sH   € åŒl‰nŒn�G€CˆØ	�Š•2”7˜6‘?”?°)ˆÑ	<Ô	<€BØ‡K‚K��CÑÔÐÐÐr'   zimshow_bignumbers.pngc                  óè   — dt           d<   t          j        ¦   «         \  } }t          j        g d¢g d¢gt          j        ¬¦  «        }|                     |¦  «        }|                     dd¦  «         d S )Nr]   úimage.interpolation)r2   r   g   ¢”mB)r9   r2   r4   r6   r   r3   )r   r>   r?   r@   r^   Úuint64rE   r—  ©rF   r„   rI   Úpcs       r$   Útest_imshow_bignumbersrŸ  M  sj   € à&/…HÐ"Ñ#õ Œl‰nŒn�G€CˆÝ
Œ(�L�L�L ) ) )Ð,µB´IÐ
>Ñ
>Ô
>€CØ	�Š�3‰Œ€BØ‡K‚K��1ÑÔÐÐÐr'   zimshow_bignumbers_real.pngc                  óÐ   — dt           d<   t          j        ¦   «         \  } }t          j        g d¢g d¢g¦  «        }|                     |¦  «        }|                     dd¦  «         d S )Nr]   r›  )rØ  rÉ   g’ÕMÏð€D)r  rÉ   r  r   r3   )r   r>   r?   r@   r^   rE   r—  r�  s       r$   Útest_imshow_bignumbers_realr¡  X  se   € ð '0…HÐ"Ñ#õ Œl‰nŒn�G€CˆÝ
Œ(�O�O�O \ \ \Ð2Ñ
3Ô
3€CØ	�Š�3‰Œ€BØ‡K‚K��1ÑÔÐÐÐr'   Ú	make_normc                  ó*   — t          j        d¦  «        S ©Nr2   )r   Ú
SymLogNormr!   r'   r$   ú<lambda>r¦  h  s   € �VÔ˜qÑ!Ô!€ r'   c                  ó*   — t          j        d¦  «        S r¤  )r   Ú	PowerNormr!   r'   r$   r¦  r¦  i  s   € �VÔ˜aÑ Ô € r'   c                 óô  — t          j        ¦   «         \  }}t          j        t          d¬¦  «        5  |                     g g | ¦   «         ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     g d¢¦  «         |j                             ¦   «          t          j	        t          ¦  «        5  |                     |j                             ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz.Attempting to set identical low and high xlimsr  rH  )éûÿÿÿr3   rª  r3   )r>   r?   rt  ÚwarnsÚUserWarningrE   Ú
set_extentr-  rÏ  ru  ÚRuntimeErrorÚ
make_imageÚget_renderer)r¢  rF   r„   rê   s       r$   Útest_empty_imshowr±  d  sb  € õ Œl‰nŒn�G€CˆÝ	Œ•kØLð
Nñ 
Nô 
Nð /ð /à�YŠY˜�t ) )¡+¤+ˆYÑ.Ô.ˆð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ‡M‚M�.�.�.Ñ!Ô!Ð!Ø„J‡O‚OÑÔÐå	Œ•|Ñ	$Ô	$ð 1ð 1Ø
�Š�c”j×-Ò-Ñ/Ô/Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s#   ²!AÁA#Á&A#Â3-C-Ã-C1Ã4C1c                  óÊ   — t          j        ¦   «         \  } }|                     t          j        dt          j        ¬¦  «        ¦  «         | j                             ¦   «          d S )Nr¬  r6   )r>   r?   rE   r@   rA   Úfloat16r-  rÏ  ©rF   r„   s     r$   Útest_imshow_float16rµ  v  sL   € ÝŒl‰nŒn�G€CˆØ‡I‚I�bŒh�v¥R¤ZÐ0Ñ0Ô0Ñ1Ô1Ð1à„J‡O‚OÑÔÐÐÐr'   c                  óž  — t          j        ¦   «         \  } }|                     t          j        dt          j        ¬¦  «        ¦  «         t          j        t          j        t          j        d¦  «        rt          ¦   «         nt          j
        t          ¦  «        5  | j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr¬  r6   Úequiv)r>   r?   rE   r@   rA   Ú
longdoubleÚcan_castÚfloat64r   rt  r«  r¬  r-  rÏ  r´  s     r$   Útest_imshow_float128r»  }  sÞ   € ÝŒl‰nŒn�G€CˆØ‡I‚I�bŒh�v¥R¤]Ð3Ñ3Ô3Ñ4Ô4Ð4Ýœ¥R¤]µB´JÀÑHÔHð )�)‰+Œ+ˆ+ÝŒ|�KÑ(Ô(ðð ð 	Œ
�ŠÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂCÃCÃ	Cc                  óš   — t          j        ¦   «         \  } }|                     t          j        ddgddggt
          ¬¦  «        ¦  «         d S )NTFr6   )r>   r?   rE   r@   r^   rN  r´  s     r$   Útest_imshow_boolr½  †  sE   € ÝŒl‰nŒn�G€CˆØ‡I‚I�bŒh˜˜u˜¨¨t }Ð5½TÐBÑBÔBÑCÔCÐCÐCÐCr'   c                  óÈ   — t          j        ¦   «         \  } }|                     t          j        dt          j        ¦  «        ¦  «         | j                             ¦   «          d S )NrÁ  )r>   r?   rE   r@   r  ri  r-  rÏ  r´  s     r$   Útest_full_invalidr¿  ‹  sI   € ÝŒl‰nŒn�G€CˆØ‡I‚I�bŒg�h¥¤Ñ'Ô'Ñ(Ô(Ð(à„J‡O‚OÑÔÐÐÐr'   zfmt,counted)rÖ   s    colorimage)rM   s   <imagezcomposite_image,count)Tr2   )Fr   c                 óN  — t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}t          j        |dz  ¦  «        }t	          j        ¦   «         \  }}|                     dd¦  «         |                     |g d¢¬¦  «         |                     |d d d	…         g d
¢¬¦  «         |t          j        d<   t          j
        ¦   «         }	|                     |	| ¬¦  «         |	                     ¦   «                              |¦  «        |k    sJ ‚d S )Nrª  r3   r2   r   r   r9   ©r   r2   r   r2   r$  rs   )r   r9   r   r2   zimage.composite_imager¾   )r@   r8  rv   rw   r>   r?   r›   rE   r   r   r€   r�   r  Úcount)
r¸   ÚcountedÚcomposite_imagerÂ  r`   r?  r  rF   r„   rÓ   s
             r$   Útest_compositerÅ  ’  s  € õ Œ;•r”y  Q¨Ñ*Ô*­B¬I°b¸!¸QÑ,?Ô,?Ñ@Ô@�D€A€qÝ
Œˆq�A‰v‰Œ€AåŒl‰nŒn�G€CˆØ‡K‚K��1ÑÔÐØ‡I‚Iˆa˜˜˜€IÑ%Ô%Ð%Ø‡I‚Iˆa���"�Œg˜l˜l˜l€IÑ+Ô+Ð+Ø,;…C„LÐ(Ñ)Ý
Œ*‰,Œ,€CØ‡K‚K�˜C€KÑ Ô Ð Ø�<Š<‰>Œ>×Ò Ñ(Ô(¨EÒ1Ð1Ð1Ð1Ð1Ð1r'   c                  ó  — t          j        ¦   «         \  } }|                     dggd¬¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «         |                     ¦   «         cxk    rdk    sn J ‚d S )Nr   rÁ  r$  r­  )r>   r?   rE   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr´  s     r$   Ú
test_relimrË  ¥  s€   € ÝŒl‰nŒn�G€CˆØ‡I‚I�ˆsˆe˜L€IÑ)Ô)Ð)Ø‡H‚H�J„J€JØ‡L‚L�N„N€NØ�;Š;‰=Œ=˜BŸKšK™MœMÐ3Ð3Ò3Ð3¨VÒ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r'   c                  ó”  — t          j        ¦   «         \  } }|                     ¦   «          |                     ddgddggdddd¬¦  «        }|                     dd¬¦  «         | j                             ¦   «          t          j        | j         	                    ¦   «         ¦  «        d	d d
…f         dk     
                    ¦   «         sJ ‚d S )Nr   r�   r‘  r“  F)r,  r%  r”  r5  r­  r·  .r9   )r>   r?   rM  rE   r»  r-  rÏ  r@   r^   Úbuffer_rgbar�  r˜  s      r$   Útest_unclippedrÎ  ­  sÄ   € ÝŒl‰nŒn�G€CˆØ‡O‚OÑÔÐØ	�Š�Q˜�F˜Q ˜FÐ#¨FÐ;MØ¨ð 
ñ 
/ô 
/€Bà‡F‚F�˜V€FÑ$Ô$Ð$Ø„J‡O‚OÑÔÐõ ŒH�S”Z×+Ò+Ñ-Ô-Ñ.Ô.¨s°B°Q°B¨wÔ7¸1Ò<×AÒAÑCÔCÐCÐCÐCÐCÐCr'   c                  óŠ  — t          j        d¦  «        \  } }|D ]}|                     ¦   «          Œ|d                              ddgddggdd¬¦  «        }|                     d ¦  «         |                     |d         j        ¦  «         t          j        ¦   «         }|  	                    |d¬	¦  «         h | 
                    ¦   «         £d
hk    sJ ‚|d                              d¬¦  «         t          j        ¦   «         }|  	                    |d¬	¦  «         | 
                    ¦   «         | 
                    ¦   «         k    sJ ‚d S )Nr   r2   r   r9   r�   rÁ  )r,  r%  Úrgbar¾   rZ   )rs   r   )r¹  )r>   r?   rM  rE   rb  Úset_clip_boxÚbboxr   r€   r�   r  r»  )rF   r¨   r„   rê   Ú
buf_beforeÚ	buf_afters         r$   Útest_respects_bboxrÕ  ¹  s8  € ÝŒ|˜A‰Œ�H€CˆØð ð ˆØ
�ŠÑÔÐÐØ	ˆQŒ�Š˜˜A˜  A Ð'°¸|ˆÑ	LÔ	L€BØ×Ò�TÑÔÐð ‡O‚O�C˜”F”KÑ Ô Ð Ý”‘”€JØ‡K‚K�
 6€KÑ*Ô*Ð*Ø#ˆZ× Ò Ñ"Ô"Ð#¨ vÒ-Ð-Ð-Ð-Øˆ„F‡J‚J�G€JÑÔÐÝ”
‘”€IØ‡K‚K�	 &€KÑ)Ô)Ð)Ø×ÒÑ Ô  I×$6Ò$6Ñ$8Ô$8Ò8Ð8Ð8Ð8Ð8Ð8r'   )rf   rL   rM   c                 óü  — t          j        dd¦  «        }t          j        ||¦  «        \  }}t          j        d|dz
  dz  z  |dz
  z   ¦  «        }||                     ¦   «         z  }t
          j        d         }|                      ¦   «         }|                     |||d¬	¦  «         |                     ¦   «         } | t          j
        ¦   «         |¦  «        ¦  «        }	||	d
<   |                     |	d¬¦  «         dS )zPer-pixel alpha channel test.r   r2   r4  r  r   g[�Âõ(\ß?r)  r]   )r   r”  r<   ).rs   r;   N)r@   rç  r8  r9  r>  rQ  r_  r°  rE   r   rã  )
r”   r•   rx   ÚxxÚyyÚzzr   r”  r„   rÐ  s
             r$   Útest_image_array_alpharÚ  Ë  sð   € õ 	Œ�A�qÑÔ€AÝŒ[˜˜AÑÔ�F€Bˆå	Œ�˜˜S™ Q‘Ñ'¨2°©=Ñ9Ñ	:Ô	:€BØ�—’‘”‰M€EåŒ=˜Ô#€DØ	×	Ò	Ñ	Ô	€BØ‡I‚Iˆb˜ D¸	€IÑBÔBÐBà	×	Ò	Ñ	Ô	€BØˆ4Ð"•Ô Ñ"Ô" 2Ñ&Ô&Ñ'Ô'€DØ€Dˆ�MØ‡I‚Iˆd )€IÑ,Ô,Ð,Ð,Ð,r'   c                  óÂ   — t          j        t          d¬¦  «        5  t          j        t          j        d¦  «        ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzalpha must be a float, two-dr  rh   r2   r  )rt  ru  rv  r>   rE   r@   rA   r!   r'   r$   Ú!test_image_array_alpha_validationrÜ  Þ  sŸ   € Ý	Œ•yÐ(FÐ	GÑ	GÔ	Gð 3ð 3ÝŒ
•2”8˜FÑ#Ô#¨A¨q¨6Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   œ+AÁAÁAc                  óÂ  — t           j        d                              d¬¦  «        } t          j        dd¬¦  «        }|                     d¦  «        }t          j        g d¢gt          ¬	¦  «        }| 	                    |d
| dd¬¦  «        }| 
                    d¦  «         |j                             ¦   «          |                     |j        j        ¦  «        d         d         }|                     |                     |dggdz  z  j                             ¦   «         ¦  «        ¦  «        dz                       t(          ¦  «        }t          j        ||k    ¦  «        sJ ‚d S )NÚautumn_rÚ	lightgrey©rT  )gffffffþ?rL  ri   rj   rŒ   )rs   rs   rs   r   r   r   r   é+   éO   é_   éB   r2   rs   rs   rs   r   r   r   é"   r6   r�   r   )r,  r”  r+  r*  ry  r2   rˆ   rZ   )rQ  r_  r`  r>   rt   r–  r@   r^   rô  rE   r	  r-  rÏ  r¯  rÐ  r”  rI  ÚTr€  rÝ   r‘   r�  )r”  rF   r„   rÂ   rê   Ú
from_imageÚdirect_computations          r$   Útest_exact_vminré  ã  s=  € åŒ=˜Ô$×2Ò2¸Ð2ÑEÔE€Dõ Œ*˜Z¨SÐ
1Ñ
1Ô
1€CØ	�Š�lÑ	#Ô	#€BåŒ8Ø	MÐ	MÐ	MÐNÝðñ ô €Dð
 
�Š�4 ¨T¸ÀˆÑ	DÔ	D€BØ‡G‚GˆE�N„N€NØ„J‡O‚OÑÔÐð —’˜sœzÔ2Ñ3Ô3°AÔ6°qÔ9€Jð 	�Š�—’˜ 1 # ¨¡Ñ,Ô/×5Ò5Ñ7Ô7Ñ8Ô8Ñ9Ô9¸CÑ?ß‚f�S�k„kð õ
 Œ6�*Ð 2Ò2Ñ3Ô3Ð3Ð3Ð3Ð3Ð3r'   Úimage_placementc                  ót  — t          j        ¦   «         \  } }|                     g d¢g d¢dd¬¦  «         t          j                             d¦  «         |                     t          j                             dd¦  «        dd	d
dd¬¦  «         |                     dd¦  «         | 	                    dd¦  «         dS )zK
    The red box should line up exactly with the outside of the image.
    )r   r   r2   r2   r   )r   r2   r2   r   r   rš  rL  )Úcolorr7  r‹   rÜ   rÜ  rÁ  r:   rs   r2   )r”  r%  r<   r+  r*  gš™™™™™¹¿r§  N)
r>   r?   r~   r@   rŽ   r�   rE   Úrandnr›   rœ   r´  s     r$   Útest_image_placementrî  ÿ  s¯   € õ Œl‰nŒn�G€CˆØ‡G‚GˆOˆOˆO˜_˜_˜_°C¸C€GÑ@Ô@Ð@Ý„I‡N‚N�8ÑÔÐØ‡I‚I�bŒi�oŠo˜b "Ñ%Ô%¨G¸LØ"¨°!ð ñ 5ô 5ð 5à‡K‚K��eÑÔÐØ‡K‚K��eÑÔÐÐÐr'   c                   óF   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zd„ Zed„ ¦   «         Zˆ xZ	S )Ú
QuantityNDc                 ób   — t          j        |¦  «                             | ¦  «        }||_        |S r    )r@   rº  ÚviewÚunits)ÚclsÚinput_arrayró  Úobjs       r$   Ú__new__zQuantityND.__new__  s+   € ÝŒj˜Ñ%Ô%×*Ò*¨3Ñ/Ô/ˆØˆŒ	Øˆ
r'   c                 ó2   — t          |dd ¦  «        | _        d S ©Nró  )Úgetattrró  )r#   rö  s     r$   Ú__array_finalize__zQuantityND.__array_finalize__  s   € Ý˜S '¨4Ñ0Ô0ˆŒ
ˆ
ˆ
r'   c                 óº   •— t          | dd ¦  «        }t          ¦   «                              |¦  «        }t          |t          ¦  «        s|�t	          ||¦  «        }|S rù  )rú  ÚsuperÚ__getitem__Ú
isinstancerð  )r#   Úitemró  ÚretÚ	__class__s       €r$   rþ  zQuantityND.__getitem__  sV   ø€ Ý˜˜g tÑ,Ô,ˆÝ‰gŒg×!Ò! $Ñ'Ô'ˆÝ�c�:Ñ&Ô&ð 	)¨%Ð*;Ý˜S %Ñ(Ô(ˆCØˆ
r'   c                 ó®  — t          ||¦  «        }d|v rt          S t          |¦  «        dk    r6|d         }t          |dd¦  «        } |t          j        |¦  «        fi |¤Ž}�nIt          |¦  «        dk    �r.|d         }|d         }	t          |dd¦  «        }
t          |	dd¦  «        }|
€|n|
}
|€|
n|}|t          j        t          j        fv r|
|k    rt          ‚|
}n�|t          j        k    r|
› d|› �}ni|t          j	        k    r	|
› d|› d	�}nP|t          j
        t          j        t          j        t          j        t          j        t          j        fv rd }nt          S  ||                     t          j        ¦  «        |	                     t          j        ¦  «        fi |¤Ž}nt          S |€t          j        |¦  «        }nt'          ||¦  «        }|S )
Nr”  r2   r   ró  Údimensionlessr   Ú*z/(ú))rú  ÚNotImplementedrø   r@   rº  ÚaddÚsubtractr   ÚmultiplyÚdivideÚgreaterÚgreater_equalÚequalÚ	not_equalÚlessÚ
less_equalrò  Úndarrayr^   rð  )r#   ÚufuncÚmethodÚinputsrr  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1s               r$   Ú__array_ufunc__zQuantityND.__array_ufunc__"  sÖ  € Ý�u˜fÑ%Ô%ˆØ�Fˆ?ˆ?Ý!Ð!Ýˆv‰;Œ;˜!ÒÐØ˜”ˆBÝ˜2˜w¨Ñ8Ô8ˆDØ�d�2œ: b™>œ>Ð4Ð4¨VÐ4Ð4ˆG‰GÝ�‰[Œ[˜AÒÑØ˜”ˆBØ˜”ˆBÝ˜˜W oÑ6Ô6ˆBÝ˜˜W oÑ6Ô6ˆBØ�z�� rˆBØ�z�� rˆBØ�œ¥¤Ð-Ð-Ð-Ø˜’8�8Ý$Ð$Ø��Ø�"œ+Ò%Ð%Ø�|�|˜r�|�|��Ø�"œ)Ò#Ð#Ø�~�~ �~�~�~��Ø�2œ:¥rÔ'7Ýœ8¥R¤\Ýœ7¥B¤Mð3ð 3ð 3ð ��å%Ð%Ø�d˜2Ÿ7š7¥2¤:Ñ.Ô.°·²½¼
Ñ0CÔ0CÐNÐNÀvÐNÐNˆGˆGå!Ð!Øˆ<Ý”h˜wÑ'Ô'ˆGˆGå  ¨$Ñ/Ô/ˆGØˆr'   c                 ó@   — |                       t          j        ¦  «        S r    )rò  r@   r  r"   s    r$   ró   zQuantityND.vI  s   € à�yŠy�œÑ$Ô$Ð$r'   )
r(   r)   r*   r÷  rû  rþ  r  Úpropertyró   Ú__classcell__)r  s   @r$   rð  rð    s�   ø€ € € € € ðð ð ð
1ð 1ð 1ðð ð ð ð ð%ð %ð %ðN ð%ð %ñ „Xð%ð %ð %ð %ð %r'   rð  c                  óø  — t          ddgd¦  «        } | d d …         \  }}t          j        | j        t          j        ddg¦  «        k    ¦  «        sJ ‚| j        dk    sJ ‚t          j        ||z   j        t          j        dg¦  «        k    ¦  «        sJ ‚||z  j        dk    sJ ‚||z  j        dk    sJ ‚t          j        t          ¦  «        5  |t          dd¦  «        z    d d d ¦  «         d S # 1 swxY w Y   d S )Nr2   r   Úmr9   zm*mzm/(m)rŠ  )	rð  r@   r�  ró   rº  ró  rt  ru  r   )ÚqÚq0Úq1s      r$   Útest_quantityndr&  N  sB  € Ý�A�q�6˜3ÑÔ€AØˆqˆqˆqŒT�F€BˆÝŒ6�!”#�œ Q¨ FÑ+Ô+Ò+Ñ,Ô,Ð,Ð,Ð,ØŒ7�cŠ>ˆ>ˆ>ˆ>ÝŒ6�2˜‘7”+¥¤¨Q¨C¡¤Ò0Ñ1Ô1Ð1Ð1Ð1Ø�‰GŒ?˜eÒ#Ð#Ð#Ð#Ø�‰GŒ?˜gÒ%Ð%Ð%Ð%Ý	Œ•zÑ	"Ô	"ð  ð  Ø
�Z˜˜3ÑÔÑÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ÃC/Ã/C3Ã6C3c                  óÒ   — t          t          j        d¦  «        d¦  «        } t          j        ¦   «         \  }}|                     | ¦  «         |j                             ¦   «          d S )Nrh   r"  )rð  r@   rB   r>   r?   rE   r-  rÏ  )rÑ   rF   r„   s      r$   Útest_imshow_quantityndr(  Z  sO   € å
•R”W˜V‘_”_ cÑ
*Ô
*€CÝŒl‰nŒn�G€CˆØ‡I‚Iˆc�N„N€Nà„J‡O‚OÑÔÐÐÐr'   c                 óÌ  — t          j        ddt           j        ¬¦  «        }d|dd…d d …f<   t           j                             |d¬¦  «        }d	|j        dd…dd…f<   t          j        d
                              d¬¦  «        }|  	                    ¦   «         }| 
                    |t          j        dd¬¦  «        dd|¬¦  «        }|                     t          j        dd¬¦  «        ¦  «         | 
                    |t          j        dd¬¦  «        dd|¬¦  «        }|                     t          j        dd¬¦  «        ¦  «         |                     dd¬¦  «         | 	                    ¦   «         }| 
                    |t          j        dd¬¦  «        dd|¬¦  «         | 
                    |t          j        dd¬¦  «        dd|¬¦  «         |                     dd¬¦  «         d S )Nr5   r2   r6   rs   r   r   F)r‚  Tr)  Úwrà  r  rw  rh  r]   )rI  r%  r<   r”  r3  )r3   rˆ   r3   rˆ   ©r   rˆ   r·  )r@   r  rº  ra  r^   r‚  rQ  r_  r`  r?   rE   r   r†  râ  rã  r»  )r”   r•   rÂ   Úmasked_datar”  r„   rê   s          r$   Útest_norm_changer-  c  sð  € õ Œ7�6˜1¥B¤JÐ/Ñ/Ô/€DØ€Dˆˆ1ˆˆaˆaˆaˆ�Lå”%—+’+˜d¨�+Ñ/Ô/€KØ!%€KÔ�Q�q�S˜!˜A˜#�XÑåŒ=˜Ô#×1Ò1¸Ð1Ñ<Ô<€Dà	×	Ò	Ñ	Ô	€BØ	�Š�4�fœn°#¸AÐ>Ñ>Ô>Ø&°iÀdð 
ñ 
Lô 
L€Bà‡K‚K•Ô  b¨qÐ1Ñ1Ô1Ñ2Ô2Ð2Ø	�Š�;¥V¤^¸À1Ð%EÑ%EÔ%EØ(¸	Èð 
ñ 
Nô 
N€Bà‡K‚K•Ô  b¨qÐ1Ñ1Ô1Ñ2Ô2Ð2Ø‡F‚F�˜g€FÑ&Ô&Ð&à	×	Ò	Ñ	Ô	€BØ‡I‚Iˆd�Ô)¨r¸Ð:Ñ:Ô:Ø!°Àð ñ Gô Gð Gà‡I‚Iˆk¥Ô 0°b¸qÐ AÑ AÔ AØ#°9À4ð ñ Iô Ið Ià‡F‚F�˜g€FÑ&Ô&Ð&Ð&Ð&r'   rx   c                 óN  — t          j        d|t           j        ¬¦  «        }d|dd…d d …f<   |                      ¦   «         }|                     |t          j        d|                     ¦   «         ¬¦  «        dd	¬
¦  «         t          j        d|t           j        ¬¦  «        }d|dd…d d …f<   |                     ¦   «         }t          j	        d	          
                    d¬¦  «        }|                     |t          j        d|                     ¦   «         ¬¦  «        d|¬
¦  «         d S )Nr5   r6   g@Œµx¯Dr   r   r2   rw  r]   r)  )rI  r<   r”  iè  r*  rà  )r@   r  rº  r?   rE   r   r†  r>  rQ  r_  r`  rã  )r”   r•   rx   rÂ   r„   r”  s         r$   Útest_huge_range_logr/    s   € õ Œ7�6˜1¥B¤JÐ/Ñ/Ô/€DØ€Dˆˆ1ˆˆaˆaˆaˆ�Là	×	Ò	Ñ	Ô	€BØ‡I‚Iˆd�œ¨Q°T·X²X±Z´ZÐ@Ñ@Ô@Ø%¨Ið ñ 7ô 7ð 7õ Œ7�6˜1¥B¤JÐ/Ñ/Ô/€DØ€Dˆˆ1ˆˆaˆaˆaˆ�Là	×	Ò	Ñ	Ô	€BÝŒ=˜Ô#×1Ò1¸Ð1Ñ<Ô<€DØ‡I‚Iˆd�Ô)¨q°t·x²x±z´zÐBÑBÔBØ%¨Dð ñ 2ô 2ð 2ð 2ð 2r'   c           
      óÔ  — |                       dd¦  «        }|                      dd¦  «        }ddgddggddgddggddgddggf}g d¢}t          t          ||¦  «        ¦  «        D �]�\  }\  }}||                              |¦  «         ||                              |¦  «         ||                              |¦  «         ||                              |dddddd¬	¦  «         ||                              d
d¦  «         ||                              dd
¦  «         ||         j         	                    ¦   «          ||         j
                             d¦  «         ||         j                             d¦  «         ||         j                             t          j        dg d¢d¬¦  «        ¦  «         ||         j                             t          j        dg d¢d¬¦  «        ¦  «         �Œƒd S )Nr2   r9   r   )rB   rA   Úmixedr]   r  rÏ   ÚGreys)r<   r,  rr   r”  r+  r*  rÙ  r7  gÍÌÌÌÌÌð?rX  r;  )r2   r   r3   rˆ   T)ÚnbinsÚstepsÚinteger)r?   Ú	enumerater  r_   ÚspyrE   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ì  rz   r:  s	            r$   Útest_spy_boxrE  “  s  € ð ×Ò  1Ñ%Ô%€GØ×Ò˜a Ñ#Ô#€Fð ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�Ðð€Ið
 -Ð,Ð,€Kå"¥3 y°+Ñ#>Ô#>Ñ?Ô?ð 
ñ 
‰ˆ‰:ˆAˆuØ�Œ
×Ò˜UÑ#Ô#Ð#Ø�Œ
�Š�qÑÔÐØˆqŒ	×Ò˜EÑ"Ô"Ð"ØˆqŒ	×Ò˜¨)Ø#*°7ÀØ!"¨ð 	ñ 	,ô 	,ð 	,ð 	ˆqŒ	×Ò˜4 Ñ%Ô%Ð%ØˆqŒ	×Ò˜3 Ñ%Ô%Ð%ØˆqŒ	Œ× Ò Ñ"Ô"Ð"ØˆqŒ	Œ×Ò˜dÑ#Ô#Ð#ØˆqŒ	Œ×*Ò*¨6Ñ2Ô2Ð2ØˆqŒ	Œ×)Ò)ÝÔ a¨}¨}¨}ÀdÐKÑKÔKñ	
ô 	
ð 	
ð 	ˆqŒ	Œ×)Ò)ÝÔ a¨}¨}¨}ÀdÐKÑKÔKñ	
ô 	
ð 	
ñ 	
ð
ð 
r'   znonuniform_and_pcolor.pngc                  óÚ  — t          j        d¬¦  «                             ddd¬¦  «        } t          | ddg¦  «        D ]‘\  }}t	          ||¬¦  «        }|                     t          j        d¦  «        d	z  t          j        d¦  «        d	z  t          j        d
¦  «                             d¦  «        ¦  «         | 	                    |¦  «         Œ’| d	          
                    t          j        d¦  «        d	z  t          j        d¦  «        d	z  t          j        d
¦  «                             d¦  «        ¦  «         | D ],}|                     ¦   «          |                     d¬¦  «         Œ-d S )Nr¬  r�  r9   T)ÚsharexÚshareyr]   r=   r;   r   r;  r4   r+  )r¸  )r>   rt   r?   r  r   r?  r@   rv   r+  r@  Ú
pcolorfastrM  r»  )r¨   r„   r<   rê   s       r$   Útest_nonuniform_and_pcolorrJ  ´  sV  € å
Œ*˜VÐ
$Ñ
$Ô
$×
-Ò
-¨a¸ÀTÐ
-Ñ
JÔ
J€CÝ   y°*Ð&=Ñ>Ô>ð ð ÑˆˆMÝ˜R¨}Ð=Ñ=Ô=ˆØ
�Š•B”I˜a‘L”L AÑ%¥r¤y°¡|¤|°qÑ'8Ý”I˜a‘L”L×(Ò(¨Ñ0Ô0ñ	2ô 	2ð 	2à
�Š�RÑÔÐÐØˆ„F×ÒÝ
Œ	�!‰Œ˜Ñ�2œ9 Q™<œ<¨1Ñ,­b¬i¸©l¬l×.BÒ.BÀ6Ñ.JÔ.JñLô Lð Làð ð ˆØ
�ŠÑÔÐà
�Š�GˆÑÔÐÐðð r'   znonuniform_logscale.pngc                  óÚ  — t          j        dd¬¦  «        \  } }t          d¦  «        D �]@}||         }t          |¦  «        }|                     t          j        dd¦  «        dz  t          j        dd¦  «        dz  t          j        d¦  «                             d¦  «        ¦  «         |                     dd¦  «         | 	                    dd¦  «         | 
                    d¦  «         |dk    r.|                     d	d¬
¦  «         |                     d	d¬
¦  «         |dk    r.|                     d	d¬
¦  «         |                     d	d¬
¦  «         |                     |¦  «         �ŒBd S )Nr9   r2   )ÚncolsÚnrowsr4   r   r;  r¬  rÜ   r-  )Úbase)r>   r?   r…  r   r?  r@   rv   r+  r›   rœ   Úset_box_aspectÚ
set_xscaleÚ
set_yscaler@  )r“  r¨   rì  r„   rê   s        r$   Útest_nonuniform_logscalerR  Ä  s[  € åŒ\ ¨Ð+Ñ+Ô+�F€A€så�1‰XŒXð ñ ˆØ�ŒVˆÝ˜RÑ Ô ˆØ
�Š•B”I˜a ‘O”O qÑ(­"¬)°A°q©/¬/¸QÑ*>Ý”I˜a‘L”L×(Ò(¨Ñ0Ô0ñ	2ô 	2ð 	2à
�Š�A�rÑÔÐØ
�Š�A�rÑÔÐØ
×Ò˜!ÑÔÐØ�Š6ˆ6Ø�MŠM˜% aˆMÑ(Ô(Ð(Ø�MŠM˜% aˆMÑ(Ô(Ð(Ø�Š6ˆ6Ø�MŠM˜% aˆMÑ(Ô(Ð(Ø�MŠM˜% aˆMÑ(Ô(Ð(Ø
�Š�RÑÔÐÑðð r'   zrgba_antialias.png)r   r0   c                  óÖ  — t          j        dddddd¬¦  «        \  } }d}t          j        ||f¦  «        }d|d d d…d d …f<   t          j        |¦  «        |z  dz
  }t          j        |¦  «        |z  dz
  }t          j        ||¦  «        \  }}t          j        |dz  |dz  z   ¦  «        }d	}	d
}
t          j        t          j        dz  |	|z  |
|dz  z  dz  z   z  ¦  «        }d|d t          |dz  ¦  «        …d d …f         |d t          |dz  ¦  «        …d d …f         dk     <   d|d t          |dz  ¦  «        …d d …f         |d t          |dz  ¦  «        …d d …f         dk     <   |d d …t          |dz  ¦  «        d …f         |d d …t          |dz  ¦  «        d …f<   t          j
        |dd…dd…f<   d|dd…dd…f<   d|dd…dd…f<   d|dd…dd…f<   d|dd…dd…f<   t           j        d                              dd¬¦  «        }|                     ¦   «         }|d                              |d|dd¬¦  «         |d                              |dz  d z
  |dz  d z   ¦  «         |d                              |dz  dz   |dz  d	z
  ¦  «         |d                              |d|dd¬¦  «         |d                              |d!d"|dd¬#¦  «         |d$                              |d!d%|dd¬#¦  «         d S )&Nr   )ç      @rT  FT)rk   rG  rH  Úconstrained_layoutéú   rs   r  rˆ   éK   rË  r2   r  rm   rn   g    €„.AéF   éZ   g    €„.Ár6  éÃ   é×   ÚRdBu_rÚyellowÚcyan)rS  rT  r   r]   g333333ó¿rV  )r<   r”  r+  r*  é   r�   rÂ   )r<   Úinterpolation_stager”  r+  r*  r9   rÐ  )r>   r?   r@   rB   rv   r8  Úsqrtrw   r:  r‘   ri  r_  r`  rê  rE   r›   rœ   )rF   r¨   r�  Úaarx   ry   r`   r?  ÚRÚf0rò   r�  r”  s                r$   Útest_rgba_antialiasre  Ù  sH  € åŒ|˜A˜q¨*¸UØ#(¸TðCñ Cô C�H€Cˆà€AÝ	Œ�!�Q�‰Œ€BØ€B€s€sˆ€sˆAˆAˆA€v�Jå
Œ	�!‰Œ�qÑ˜3Ñ€AÝ
Œ	�!‰Œ�qÑ˜3Ñ€AåŒ;�q˜!ÑÔ�D€A€qÝ
Œ��1‘�q˜!‘t‘ÑÔ€AØ	€BØ
€Aå
Œ�rŒu�q‰y˜B ™F Q¨¨A©¡X°¡\Ñ1Ñ2Ñ3Ô3€Að .0€A€i…sˆ1ˆQ‰3�x„x€i���€l„O�A�i•s˜1˜Q™3‘x”x�i   �l”O cÒ)Ñ*Ø-.€A€i…sˆ1ˆQ‰3�x„x€i���€l„O�A�i•s˜1˜Q™3‘x”x�i   �l”O cÒ)Ñ*Ø˜˜˜�C  !¡™HœH˜I˜I˜”€B€q€q€q�#ˆa�‰c‰(Œ(ˆ)ˆ)€|Ñõ ”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€~ÑåŒ=˜Ô"×0Ò0°hÀfÐ0ÑMÔM€Dà
�+Š+‰-Œ-€Càˆ„F‡M‚M�" I°D¸tÈ#€MÑNÔNÐNØˆ„F‡O‚O�A�a‘C˜‘F˜A˜a™C ™FÑ#Ô#Ð#Øˆ„F‡O‚O�A�a‘C˜‘F˜A˜a™C ™FÑ#Ô#Ð#ð ˆ„F‡M‚M�" I°D¸tÈ#€MÑNÔNÐNð ˆ„F‡M‚M�" FÀØ $¨Sð ñ 2ô 2ð 2ð
 ˆ„F‡M‚M�" FÀØ $¨Sð ñ 2ô 2ð 2ð 2ð 2r'   c                 ó8  — t           j                             d¦  «         t           j                             dd¦  «        }|                     ¦   «         }|                     |ddd¬¦  «         |                      ¦   «         }|                     |ddd¬¦  «         dS )	z[
    Show that interpolation_stage='auto' gives the same as 'data'
    for upsampling.
    é*N,r4   r=   r)  rÂ   ©r<   r”  r`  r�   N©r@   rŽ   r�   r�   r?   rE   ©r”   r•   Úgridr„   s       r$   Ú!test_upsample_interpolation_stagerl    s£   € õ „I‡N‚N�:ÑÔÐåŒ9�>Š>˜!˜QÑÔ€DØ	×	Ò	Ñ	Ô	€BØ‡I‚Iˆd *°9Ø"(ð ñ *ô *ð *ð 
×	Ò	Ñ	Ô	€BØ‡I‚Iˆd *°9Ø"(ð ñ *ô *ð *ð *ð *r'   c                 ó8  — t           j                             d¦  «         t           j                             dd¦  «        }|                     ¦   «         }|                     |ddd¬¦  «         |                      ¦   «         }|                     |ddd¬¦  «         dS )z]
    Show that interpolation_stage='auto' gives the same as 'rgba'
    for downsampling.
    r‹   rÎ  r�   r)  rÐ  rh  Nri  rj  s       r$   Ú#test_downsample_interpolation_stagern  !  s£   € õ „I‡N‚N�8ÑÔÐåŒ9�>Š>˜#˜sÑ#Ô#€DØ	×	Ò	Ñ	Ô	€BØ‡I‚Iˆd &¨yØ"(ð ñ *ô *ð *ð 
×	Ò	Ñ	Ô	€BØ‡I‚Iˆd &¨yØ"(ð ñ *ô *ð *ð *ð *r'   c                  óV  — dD ]`} t          j        d| i¦  «        5  t          j        ddgg¦  «                             ¦   «         | k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   ŒadD ]B} t          j        t          ¦  «        5  | t           j        d<   d d d ¦  «         n# 1 swxY w Y   ŒCd S )N©rÂ   rÐ  zimage.interpolation_stager2   r   )ÚDATAÚfooN)	rQ  Ú
rc_contextr>   rE   Úget_interpolation_stagert  ru  r   r   )Úvals    r$   Útest_rc_interpolation_stagerv  4  sL  € Øð Ið IˆÝŒ^Ð8¸#Ð>Ñ?Ô?ð 	Ið 	IÝ”:  1˜v˜hÑ'Ô'×?Ò?ÑAÔAÀSÒHÐHÐHÐHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iøà$ð <ð <ˆÝŒ]�:Ñ&Ô&ð 	<ð 	<Ø8;�CŒLÐ4Ñ5ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<øð<ð <s#   ›0AÁA	ÁA	Â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           	      óž  — |                       ¦   «         }|                      ¦   «         }t          j        d|dz   f¦  «        }	d|	d d …|	j        dz  d …f<   |dk    r|	j        }	|                     |	ddddd|¬¦  «        }
t          j        t          d	|› d
�¬¦  «        5  t          j
        ¦   «         5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        d|dz  dz   f¦  «        }	d|	d d …|	j        dz  d …f<   |dk    r|	j        }	|                     |	ddddd|¬¦  «        }
d S )Nr2   r   rx  r   r�   rÁ  r:   )r+  r*  r,  r%  r<   rr   zData with more than z  cannot be accurately displayed.r  )r?   r@   rA   Úsizeræ  rE   rt  r«  r¬  r   r€   r�   )r”   r•   Údimrz  Úmsgrr   Úhigh_memoryrA  rB  r^   rê   r…   s               r$   Útest_large_imager~  ?  s	  € ð ×ÒÑ!Ô!€GØ×ÒÑÔ€FåŒH�a˜ ™�]Ñ#Ô#€EØ!"€Eˆ!ˆ!ˆ!ˆUŒZ˜1‰_ÐÐÐ
ÑØ
ˆe‚|€|Ø”ˆØ	�Š˜ A¨AØ%¨lØ&,Ø%ð 
ñ 
'ô 
'€Bõ
 
Œ•kð.°3ð .ð .ð .ð
/ñ 
/ô 
/ð %ð %õ ŒZ‰\Œ\ð 	%˜Và×Ò˜VÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ ŒH�a˜ ™ Q™Ð'Ñ(Ô(€EØ!"€Eˆ!ˆ!ˆ!ˆUŒZ˜1‰_ÐÐÐ
ÑØ
ˆe‚|€|Ø”ˆØ	�Š�u 1¨1°VØ*Ø%+Ø$ð 
ñ 
&ô 
&€B€B€Bs6   ÂC*Â1CÃC*ÃC	ÃC*ÃC	ÃC*Ã*C.Ã1C.c                 ó–  — t           j                             dd¦  «        dz  dz   }|                      dd¦  «        }|d                              |d¬¦  «         |d                              |dd	¬
¦  «         |d                              |d¬¦  «         |d                              |ddd¬¦  «         |d                              |ddd¬¦  «         |                     dd¦  «        }|d                              |t          j        ¦   «         ¬¦  «         |d                              |t          j        d	¬¦  «        ¬¦  «         |d                              |t          j        d¬¦  «        ¬¦  «         |d                              |t          j        ddd¬¦  «        ¬¦  «         |d                              |dd¬¦  «         t          |d         j	        d         j
        ¦  «        t
          j        u sJ ‚t          j        t          ¦  «        5  |d                              |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrˆ   r  rL  r2   r3   r   r-  rH  rÂ  )rI  r+  r   Úsymlogr9   r  rÌ  )rI  r+  r*  r4   Úlogit)r+  )Ú	linthresh)r‚  r+  r*  )r  rÌ  )rI  ÚclimÚfoobar)r@   rŽ   r�   r?   rE   r   r†  r¥  ÚtypeÚimagesrI  rt  ru  r   )r”   r•   r±  ÚaxtsÚaxrss        r$   Útest_str_normsr‰  g  sG  € å
Œ	�Š�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Ô6Ð6Øˆ„G‡N‚N�1˜7¨°"€NÑ5Ô5Ð5Ø×Ò˜A˜qÑ!Ô!€DØˆ„G‡N‚N�1�6œ>Ñ+Ô+€NÑ,Ô,Ð,Øˆ„G‡N‚N�1�6œ>¨rÐ2Ñ2Ô2€NÑ3Ô3Ð3àˆ„G‡N‚N�1�6Ô,°qÐ9Ñ9Ô9€NÑ:Ô:Ð:Øˆ„G‡N‚N�1�6Ô,°q¸rÈÐKÑKÔK€NÑLÔLÐLØˆ„G‡N‚N�1˜7¨€NÑ2Ô2Ð2å��Q””˜qÔ!Ô&Ñ'Ô'­6¬>Ð9Ð9Ð9Ð9Ý	Œ•zÑ	"Ô	"ð )ð )ØˆQŒ�Š�q˜xˆÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ÈH>È>IÉIc                  ó²  — t          j        t          j        j        t          ¦   «         ¬¦  «        } t          j        t          d¬¦  «        5   | t          j
        d¦  «        d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5   | t          j
        d¦  «        t          j
        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5   | t          j
        d¦  «        t          j
        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5   | t          j
        d¦  «        t          j
        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5   | t          j
        d¦  «        t          j
        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5   | t          j
        dt          j        ¦  «        t          j
        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5   | t          j
        d¦  «        t          j
        d¦  «        j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        d¦  «        }d|j        _        t          j        t          d¬¦  «        5   | t          j
        d¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr)  zincompatible function argumentsr  ©r;  r;  zdifferent dimensionalities)r;  r;  r4   z3D input array must be RGBA)r;  r;  r9   z3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)Ú	functoolsÚpartialrQ  Ú_imageÚresampler   rt  ru  rv  r@   rA   r   rD   ræ  ÚflagsÚ	writeable)r�  r”  s     r$   Útest__resample_valid_outputr’  }  sÅ  € ÝÔ ¥¤Ô!4ÅÁ
Ä
ÐKÑKÔK€HÝ	Œ•yÐ(IÐ	JÑ	JÔ	Jð )ð )Øˆ•”˜&Ñ!Ô! 4Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å	Œ•zÐ)EÐ	FÑ	FÔ	Fð 8ð 8Øˆ•”˜&Ñ!Ô!¥2¤8¨IÑ#6Ô#6Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÐ)EÐ	FÑ	FÔ	Fð 8ð 8Øˆ•”˜)Ñ$Ô$¥b¤h¨vÑ&6Ô&6Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÐ)FÐ	GÑ	GÔ	Gð ;ð ;Øˆ•”˜)Ñ$Ô$¥b¤h¨yÑ&9Ô&9Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•zÐ)GÐ	HÑ	HÔ	Hð ;ð ;Øˆ•”˜)Ñ$Ô$¥b¤h¨yÑ&9Ô&9Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•zÐ);Ð	<Ñ	<Ô	<ð ?ð ?Øˆ•”˜&¥"¤(Ñ+Ô+­R¬X°fÑ-=Ô-=Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?å	Œ•zÐ)?Ð	@Ñ	@Ô	@ð 7ð 7Øˆ•”˜&Ñ!Ô!¥2¤8¨FÑ#3Ô#3Ô#5Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ Œ(�6Ñ
Ô
€CØ€C„IÔÝ	Œ•zÐ)IÐ	JÑ	JÔ	Jð (ð (Øˆ•”˜&Ñ!Ô! 3Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s�   ÁA8Á8A<Á?A<Â1CÃCÃ"CÄ1D>Ä>EÅEÅ$1F!Æ!F%Æ(F%Ç1HÈHÈHÈ*<I2É2I6É9I6Ê6KËKË!KÌ MÍMÍMc                  ó.  —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5  t          j                             t          j        d¦  «        t          j        d¦  «         | ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó"   — e Zd ZdxZZd„ Zd„ ZdS )ú=test__resample_nonaffine_mesh_shape.<locals>.BadMeshTransformr   c                 ó   — | S r    r!   r"   s    r$   r%   zFtest__resample_nonaffine_mesh_shape.<locals>.BadMeshTransform.invertedš  r&   r'   c                 ó*   — t          j        d¦  «        S )Nr¯  )r@   rA   )r#   Úvaluess     r$   r*  zGtest__resample_nonaffine_mesh_shape.<locals>.BadMeshTransform.transform�  s   € Ý”8˜FÑ#Ô#Ð#r'   N)r(   r)   r*   r+   r,   r%   r*  r!   r'   r$   ÚBadMeshTransformr•  —  s<   € € € € € Ø#$Ð$ˆ
�[ð	ð 	ð 	ð	$ð 	$ð 	$ð 	$ð 	$r'   r™  zmesh array should have shaper  r‹  )	r   rt  ru  r®  rQ  rŽ  r�  r@   rA   )r™  s    r$   Ú#test__resample_nonaffine_mesh_shaperš  ”  sæ   € ð$ð $ð $ð $ð $�9ñ $ô $ð $õ 
Œ•|Ð+IÐ	JÑ	JÔ	Jð 0ð 0ÝŒ
×Ò�BœH VÑ,Ô,­b¬h°vÑ.>Ô.>Ø,Ð,Ñ.Ô.ñ	0ô 	0ð 	0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ¯AB
Â
BÂBzdata, interpolation, expected)rL  r  rÂ  )
rL  rL  rL  r  r  r  r  rÂ  rÂ  rÂ  )rL  rÂ  r  rË  r  r¨  )	rL  rÂ  rÂ  r  rË  rË  r  r¨  r¨  )
rL  rL  g333333Ã?gáz®GáÊ?gHáz®GÑ?g=
×£p=Ò?gR¸…ëQÐ?gÍÌÌÌÌÌÌ?rÂ  rÂ  rÍ  )rL  rL  rL  rL  rL  gìQ¸…ëÁ?g)\�Âõ(Ì?r  gR¸…ëQØ?gq=
×£pÝ?gHáz®Gá?g×£p=
×ã?rÌ  gö(\�Âõè?g…ëQ¸…ë?rÍ  rÍ  rÍ  rÍ  rÍ  )r2   rˆ   i   r  r  c                 óè  — t          j        | |                      ¦   «         d         k    ¦  «        rdnd}t          ¦   «                              |j        d         | j        d         z  d¬¦  «        }t          j        |¦  «        }t          j        | |||¬¦  «         t          |||¬¦  «         ||z   }t          j        |¦  «        }t          j        | |||¬¦  «         t          |||¬¦  «         d S )Nr   gü©ñÒMb`?r2   )ÚsxÚsyr;   )Úatol)
r@   r�  r€  r   r0  rÀ   Ú
empty_likerÒ   r�  r   )	rÂ   r<   Úexpectedr.   rž  Úaffine_transformÚaffine_resultÚnonaffine_transformÚnonaffine_results	            r$   Útest_resample_nonaffiner¥  ¥  sû   € õ2 ”�t˜tŸzšz™|œ|¨AœÒ.Ñ/Ô/Ð9ˆ1ˆ1°T€Dõ  ‘z”z×'Ò'¨8¬>¸!Ô+<¸t¼zÈ!¼}Ñ+LÐQRÐ'ÑSÔSÐå”M (Ñ+Ô+€MÝ
„O�D˜-Ð)9ÈÐWÑWÔWÐWÝ�M 8°$Ð7Ñ7Ô7Ð7ð -Ð/?Ñ?Ðå”} XÑ.Ô.ÐÝ
„O�DÐ*Ð,?Ø"/ð1ñ 1ô 1ð 1åÐ$ h°TÐ:Ñ:Ô:Ð:Ð:Ð:r'   c                  óê  — t          j        ¦   «         } t          | ¦  «        }t          j        t
          d¬¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        dt          ¬¦  «         
                    d¦  «        }|                     |¦  «         |                     ¦   «         dk    sJ ‚|                     ¦   «         |                     ¦   «         k    sJ ‚d S )Nz"You must first set the image arrayr  r�  r6   rü  )r>   rÝ  r   rt  ru  r®  Ú	get_shaper@   rv   rô  r+  r?  Úget_sizerÿ  s      r$   Útest_axesimage_get_shaper©  Ñ  s  € å	Œ‰Œ€BÝ	�2‰Œ€BÝ	Œ•|Ð+OÐ	PÑ	PÔ	Pð ð Ø
�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å
Œ	�"�EÐ"Ñ"Ô"×*Ò*¨6Ñ2Ô2€AØ‡K‚K��N„N€NØ�<Š<‰>Œ>˜VÒ#Ð#Ð#Ð#Ø�;Š;‰=Œ=˜BŸLšL™NœNÒ*Ð*Ð*Ð*Ð*Ð*s   ¾AÁA#Á&A#c                  ó(  — t          j        ¦   «                              ¦   «         } t          j        d¦  «                             d¦  «        }|                      || j        ¬¦  «         |                      ¦   «         dk    sJ ‚|                      |t          ¦   «          
                    d¦  «        | j        z   ¬¦  «         |                      ¦   «         dk    sJ ‚|                      || j        d¬¦  «         |                      ¦   «         dk    sJ ‚d S )Nr4   rh   r)  r�   r   r2   )r*  r,  )r>   rt   r°  r@   rv   r+  rE   rÓ  Ú
get_aspectr   r0  r,  rß  s     r$   Ú.test_non_transdata_image_does_not_touch_aspectr¬  Ý  sæ   € Ý	Œ‰Œ×	!Ò	!Ñ	#Ô	#€BÝ	Œ�1‰Œ×	Ò	˜fÑ	%Ô	%€BØ‡I‚Iˆb˜BœL€IÑ)Ô)Ð)Ø�=Š=‰?Œ?˜fÒ$Ð$Ð$Ð$Ø‡I‚Iˆb�H™JœJ×,Ò,¨QÑ/Ô/°"´,Ñ>€IÑ?Ô?Ð?Ø�=Š=‰?Œ?˜aÒÐÐÐØ‡I‚Iˆb˜BœL°€IÑ3Ô3Ð3Ø�=Š=‰?Œ?˜aÒÐÐÐÐÐr'   zdownsampling.png)r   r0   rO   c                  óÚ  — d} t          j        | ¦  «        | z  dz
  }t          j        | ¦  «        | z  dz
  }t          j        | | f¦  «        }d|d d d…d d …f<   t          j        ||¦  «        \  }}t          j        |dz  |dz  z   ¦  «        }d}d}t          j        t           j        dz  ||z  ||dz  z  dz  z   z  ¦  «        }	d|	d t          | dz  ¦  «        …d d …f         |d t          | dz  ¦  «        …d d …f         dk     <   d|	d t          | dz  ¦  «        …d d …f         |d t          | dz  ¦  «        …d d …f         d	k     <   |	d d …t          | d
z  ¦  «        d …f         |d d …t          | d
z  ¦  «        d …f<   |}	t          j	        dd
dd¬¦  «        \  }
}|d          
                    |	ddd¬¦  «         |d                              dd¦  «         |d                              dd¦  «         |d                              d¦  «         t          |j        dd …         g d¢g d¢¦  «        D ];\  }}}| 
                    |	||d¬¦  «         |                     d|› d|› d�¦  «         Œ<d S )NiÂ  r  rs   r   r3   ri   rË  r2   r  r9   )rL  rÿ   Ú
compressed©rk   Úlayoutr_  r]   rÐ  r\  )r<   r`  r”  é}   rñ  rV  rr  ÚZoom)r]   r]   r‡   r‡   r�   )rÂ   rÐ  rÂ   rÐ  r�   zinterpolation='z	'
space='ú')r@   rv   rB   r8  ra  rw   r:  r‘   r>   r?   rE   r›   rœ   r_   r  Úflat)r�  rx   ry   rb  r`   r?  rc  rd  rò   r�  rF   r¨   r„   r…  Úspaces                  r$   Útest_downsamplingr¶  è  sÊ  € ð 	€AÝ
Œ	�!‰Œ�qÑ˜3Ñ€AÝ
Œ	�!‰Œ�qÑ˜3Ñ€AÝ	Œ�!�Q�‰Œ€BØ€B€s€sˆ€sˆAˆAˆA€v�JåŒ;�q˜!ÑÔ�D€A€qÝ
Œ��1‘�q˜!‘t‘ÑÔ€AØ	
€BØ€AÝ
Œ�rŒu�q‰y˜B ™F Q¨¨A©¡X°¡\Ñ1Ñ2Ñ3Ô3€Aà13€A€k…sˆ1ˆq‰5�z„z€k�1�1�1€nÔ�a˜�˜Q ™U™œ˜ Q Q Q˜Ô'¨#Ò-Ñ.Ø12€A€k…sˆ1ˆq‰5�z„z€k�1�1�1€nÔ�a˜�˜Q ™U™œ˜ Q Q Q˜Ô'¨#Ò-Ñ.Ø˜1˜1˜1�c ! a¡%™jœj˜k˜k˜>Ô*€B€q€q€q�#ˆa�!‰e‰*Œ*ˆ+ˆ+€~ÑØ
€AåŒ|˜A˜q¨&¸ÐFÑFÔF�H€CˆØˆ„I×Ò�Q iÀVØ"ð ñ $ô $ð $àˆ„I×Ò�s˜CÑ Ô Ð Øˆ„I×Ò�s˜CÑ Ô Ð Øˆ„I×Ò˜ÑÔÐå  ¤¨!¨"¨"¤ð 0Cð 0Cð 0Cà!IÐ!IÐ!IñKô Kð Cð CÑˆˆF�Eð 	�	Š	�! 6¸uØð 	ñ 	!ô 	!ð 	!à
�ŠÐA vÐAÐA¸ÐAÐAÐAÑBÔBÐBÐBðCð Cr'   zdownsampling_speckle.pngc                  óœ  — t          j        dddddd¬¦  «        \  } }|                     ¦   «         }t          j        d¦  «                             dd¦  «        t          j        d	¦  «        z  d
z  j        }t          j        d¦  «         	                    d¬¦  «        }t          j        dd¬¦  «        }|d                              d¦  «         |d                              t          j        |¦  «        ||d¬¦  «         |d                              d¦  «         |d                              t          j        |¦  «        ||¬¦  «         d S )Nr2   r   )r3   gš™™™™™@Tr®  )rk   rG  rH  r°  i   rs   iÐ  rn   r)  r"  )rS  r9   r¥  rw  r   z"interpolation='auto', stage='rgba'rÐ  )r”  rI  r`  z"interpolation='auto', stage='auto')r”  rI  )r>   r?   rê  r@   rv   r+  rB   ræ  Úget_cmapr`  r   r†  r_   rE   Útriu)rF   r¨   rI   ÚcmrI  s        r$   Útest_downsampling_speckler»    s"  € åŒ|˜A˜q¨(¸4ÈØ#/ð1ñ 1ô 1�H€Cˆà
�+Š+‰-Œ-€CÝŒI�d‰OŒO×#Ò# B¨Ñ*Ô*­R¬W°S©\¬\Ñ9¸bÑ@Ô
C€Cå	Œ�iÑ	 Ô	 ×	.Ò	.°CÐ	.Ñ	8Ô	8€BÝŒ>˜q rÐ*Ñ*Ô*€Dð
 ˆ„F×ÒÐ9Ñ:Ô:Ð:Øˆ„F‡M‚M•"”'˜#‘,”, R¨dÈ€MÑOÔOÐOð ˆ„F×ÒÐ9Ñ:Ô:Ð:Øˆ„F‡M‚M•"”'˜#‘,”, R¨d€MÑ3Ô3Ð3Ð3Ð3r'   zupsampling.pngc                  óB  — t           j                             d¦  «         t           j                             dd¦  «        } t	          j        dddd¬¦  «        \  }}|d                              | d	¬
¦  «        }|d                              d¦  «         |d                              | d	d¬¦  «         |d                              d¦  «         |d                              | d	dd¬¦  «         |d                              d¦  «         |                     ||dd¬¦  «         d S )Nrg  r4   r2   r9   )g      @r9   r®  r¯  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Ì  rX  )r„   ÚshrinkrZ  )	r@   rŽ   r�   r�   r>   r?   rE   r_   r  )r�  rF   r¨   rê   s       r$   Útest_upsamplingrÀ     s  € õ „I‡N‚N�:ÑÔÐÝ
Œ	�Š�q˜!ÑÔ€AåŒ|˜A˜q¨(¸<ÐHÑHÔH�H€CˆØ	ˆQŒ�Š�q˜yˆÑ	)Ô	)€BØˆ„F×ÒØMñOô Oð Oð ˆ„F‡M‚M�!˜)°6€MÑ:Ô:Ð:Øˆ„F×ÒØFñHô Hð Hð ˆ„F‡M‚M�!˜)°6Èv€MÑVÔVÐVØˆ„F×ÒÐ9Ñ:Ô:Ð:Ø‡L‚L�˜ C°€LÑ7Ô7Ð7Ð7Ð7r'   )rº  r  Úint16r²   Úint8rD   Úndim)r   r9   c                 ó^  — t           j                             d¦  «        }|dk    rdnd}|                     |¬¦  «                             t          j        | d¬¦  «        ¦  «        }t          j        ¦   «         \  }}|                     |¦  «        }| 	                    d ¦  «        d          d S )	NiU  r   rh   )r   r   r9   )rz  T)Úcopyr   )
r@   rŽ   Údefault_rngÚuniformrÝ   r7   r>   r?   rE   r¯  )r7   rÃ  ÚrngrÀ   rÂ   rF   r„   Ú
axes_images           r$   Útest_resample_dtypesrÊ  7  s—   € õ Œ)×
Ò
 Ñ
%Ô
%€CØ˜a’i�iˆFˆF Y€EØ�;Š;˜Eˆ;Ñ"Ô"×)Ò)­"¬(°5¸tÐ*DÑ*DÔ*DÑEÔE€DÝŒl‰nŒn�G€CˆØ—’˜4‘”€Jà×Ò˜$ÑÔ Ô"Ð"Ð"Ð"r'   r   )r   r&  r  r  r2   c                 ó´  — g d¢}t          j        d¦  «        }||dd d…f<   | |d<   t          j        ¦   «         \  }}|                     |dd¬¦  «        }|                     d ¦  «        d	         }| rt          j        |d
¦  «        ng d¢}t          t          j        | 	                    dd¦  «        d	¬¦  «        g |¢t          | d
z  ¦  «        ‘g¦  «         d S )N)rÂ  rË  r¨  )r4   r4   r4   .r9   r8   r]   rÐ  )r<   r`  r   rZ   rM  rs   r4   r  )r@   Úemptyr>   r?   rE   r¯  r
  r   Úuniquer+  r‘   )r   ÚrgbrÂ   rF   r„   rÉ  r	   Úexpected_rgbs           r$   Ú,test_rgba_stage_demultiplies_resampled_alpharÐ  H  sê   € ð ˆ/ˆ/€CÝŒ8�IÑÔ€DØ€Dˆˆbˆqˆbˆ�MØ€Dˆ�LÝŒl‰nŒn�G€CˆØ—’˜4¨yÈf�ÑUÔU€JØ×!Ò! $Ñ'Ô'¨Ô*€Eà,1Ð@•2”;˜s CÑ(Ô(Ð(°y°y°y€Lå•r”y §¢¨r°1Ñ!5Ô!5¸AÐ>Ñ>Ô>Ø9˜,Ð9­¨E°C©KÑ(8Ô(8Ð9Ð:ñ<ô <ð <ð <ð <r'   Ú
intp_stagerp  c                 óB  — |                       dd¦  «        }|                      dd¦  «        }d\  }}d}t          j                             ||¦  «        }t          j                             ||d¦  «        }	t          j        ||df¦  «        }
t          j        |	|                     ||df¦  «        fd¬¦  «        }|d         d                              |	¦  «         |d         d                              t          j        |	|
fd¬¦  «        ¦  «         |d         d                              |	||¬	¦  «         |d         d                              t          j        |	||
z  fd¬¦  «        |¬
¦  «         |d         d                              |	||¬	¦  «         |d         d                              ||¬
¦  «         |d         d                              |¦  «         |d         d                              |	|¬¦  «         |d         d                              |||¬	¦  «         |d         d                              t          j        |	||                     ||df¦  «        z  fd¬¦  «        |¬
¦  «         t          j                             ||¦  «        }|d         d                              |||¬	¦  «         |d         d                              t          j        |	|                     ||df¦  «        |                     ||df¦  «        z  fd¬¦  «        |¬
¦  «         d S )Nr   r9   r¬  r  r2   rs   r  r   )r`  r   )r`  r  )r?   r@   rŽ   r�   rB   r  r+  rE   )r”   r•   rÑ  Úaxs_tstÚaxs_refÚnyÚnxÚscalar_alphaÚarray_alphaÚim_rgbÚim_concat_default_aÚim_rgbaÚnew_array_alphas                r$   Ú2test_interpolation_stage_rgba_respects_alpha_paramrÝ  \  s8  € ð ×Ò  1Ñ%Ô%€GØ×Ò˜q !Ñ$Ô$€GØ�F€BˆØ€LÝ”)—.’.  RÑ(Ô(€Kõ ŒY�^Š^˜B  AÑ&Ô&€FÝœ' 2 r¨1 +Ñ.Ô.ÐÝŒnØ	�×$Ò$ b¨"¨a [Ñ1Ô1Ð2¸ðñ ô €Gð ˆA„Jˆq„M×Ò˜Ñ Ô Ð ØˆA„Jˆq„M×Ò�œ¨Ð1DÐ(EÈBÐOÑOÔOÑPÔPÐPØˆA„Jˆq„M×Ò˜°ZÀ|ÐÑTÔTÐTØˆA„Jˆq„M×ÒÝ
ŒØ�\Ð$7Ñ7Ð8¸rð	
ñ 	
ô 	
à)ð ñ ô ð ð
 ˆA„Jˆq„M×Ò˜°ZÀ{ÐÑSÔSÐSØˆA„Jˆq„M×Ò˜°jÐÑAÔAÐAð ˆA„Jˆq„M×Ò˜Ñ!Ô!Ð!ØˆA„Jˆq„M×Ò˜ {ÐÑ3Ô3Ð3ØˆA„Jˆq„M×Ò˜°jÈÐÑUÔUÐUØˆA„Jˆq„M×ÒÝ
ŒØ�\ K×$7Ò$7¸¸RÀ¸Ñ$DÔ$DÑDÐEÈBð	
ñ 	
ô 	
à)ð ñ ô ð õ
 ”i—n’n R¨Ñ,Ô,€OØˆA„Jˆq„M×Ò˜°jÈÐÑXÔXÐXØˆA„Jˆq„M×ÒÝ
ŒØ�[×(Ò(¨"¨b°!¨Ñ5Ô5Ø×&Ò&¨¨B° {Ñ3Ô3ñ4ð 5Ø;=ð	
ñ 	
ô 	
ð  *ð	 ñ ô ð ð ð r'   znn_pixel_alignment.pngc                 óˆ  — t          j        dd¦  «        \  }}t          g d¢¦  «        D �]\  }}t          j        |dz  ¦  «                             ||f¦  «        dz  }t          j        d|¦  «        }t          d¦  «        D ]¼}|dk    r!|||f                              |dd¬	¦  «         n1|||f                              |dd| |||f         j        z   ¬
¦  «         |||f          	                    ¦   «          |||f          
                    |d|ddd¬¦  «         |||f                              |d|ddd¬¦  «         Œ½�Œd S )Nr   r9   )r9   rL  r¥  r4   rÙ  r   ÚGraysr]   r¾  ©r”  r<   r*  rs   r  rð  Údashed©r7  rì  Úls)r>   r?   r6  r@   rv   r+  r…  rE   r,  rM  ÚvlinesÚhlines)r.   rF   r¨   Újr�  rÂ   Úsepsrì  s           r$   Útest_nn_pixel_alignmentrè  ‹  s}  € åŒ|˜A˜qÑ!Ô!�H€Cˆå˜*˜*˜*Ñ%Ô%ð Lñ L‰ˆˆ1åŒy˜˜A™‰Œ×&Ò&¨¨1 vÑ.Ô.°Ñ2ˆÝŒy˜˜qÑ!Ô!ˆå�q‘”ð 	Lð 	LˆAØ�AŠvˆvà�A�q�D”	× Ò  ¨GÀ9Ð ÑMÔMÐMÐMð �A�q�D”	× Ò  ¨GÀ9Ø+=ÀÀAÀqÀDÄ	Ô@SÑ+Sð !ñ Uô Uð Uð ��1�ŒI×"Ò"Ñ$Ô$Ð$Ø��1�ŒI×Ò˜T 2 q¨S¸À(ÐÑKÔKÐKØ��1�ŒI×Ò˜T 2 q¨S¸À(ÐÑKÔKÐKÐKñ	LðLð Lr'   z!alignment_half_display_pixels.pngc           
      ó8  — t          j        dd¬¦  «        }|                     d¦  «         g d¢}ddg}g }|D ]Q}t          |¦  «        D ]?\  }}|dv r|d	z   n|}|                     |                     ||d
dgg g ¬¦  «        ¦  «         Œ@ŒRt          |¦  «        D ]c\  }	}
|
                     ¦   «         j        }t          |dd…         |dd…         z
  ddd¬¦  «         t          |dz  |	dz  dv rdnddd¬¦  «         Œdd}t          j
        |dz  ¦  «                             ||f¦  «        dz  }t          j
        d|¦  «        }t          |¦  «        D ]Ç\  }	}
|
                     d¦  «         |	dz  dk    r
| |
j        z   n|
j        }|
                     |d|	dz  dk    rdnd|	dk    rdnd|¬¦  «         |
                     |d|dz
  dd d!¬"¦  «         |
                     |d|dz
  dd d!¬"¦  «         |
j        D ]"}|
j        |                              d#¦  «         Œ#ŒÈd S )$N)r3   r   ri   rj   r›  )r(  gF¶óýÔxÉ?g=
×£p=Ú?g^ºI+ã?gÙÎ÷Sãé?gš™™™™™©?gö(\�Âõà?)r2   r9   r4   gš™™™™™‰?gÃõ(\�ÂÅ?g333333Û?)ÚxticksÚyticksr   r4   r   r9  g‚vIhÂ%<=)Úrtolrž  r2   r3   r  rˆ   r;  rÙ  r"  rÜ  r‡   r]   rÏ   ro   ©r”  r<   rr   r*  rð  )r   )r   r4   râ  )r   )r3   rˆ   )r>   rt   r¡  r6  Úappendr–  rÑ  Úextentsr   r@   rv   r+  r,  rE   rä  rå  r¼  Úset_linestyle)r.   rF   Úcorner_xÚcorner_yr¨   ÚcyÚixÚcxÚmyrì  r„   rï  r�  rÂ   rç  r*  Úspines                    r$   Ú"test_alignment_half_display_pixelsrø  ¢  s©  € õ  Œ*˜V¨Ð
-Ñ
-Ô
-€CØ×Ò�cÑÔÐà0Ð0Ð0€HØ�dˆ|€Hà
€CØð Rð RˆÝ Ñ)Ô)ð 	Rð 	R‰FˆB�Ø " i  ��f‘�°RˆBØ�JŠJ�s—|’| R¨¨T°5Ð$9À"ÈR�|ÑPÔPÑQÔQÐQÐQð	Rõ ˜3‘”ð ,ð ,‰ˆˆ2Ø×&Ò&Ñ(Ô(Ô0ˆÝ˜  ! œ w¨q°¨s¤|Ñ3°R¸aÀeÐLÑLÔLÐLÝ˜ !™¨A°©E°YÐ,>Ð,> S SÀAØ Uð	,ñ 	,ô 	,ð 	,ð 	,ð 	€AåŒ9�Q˜‘T‰?Œ?×"Ò" A q 6Ñ*Ô*¨QÑ.€DÝŒ9�T˜1ÑÔ€Då˜3‘”ð 9ð 9‰ˆˆ2Ø
×Ò˜ÑÔÐà9:¸Q¹À!º¸Ð&¨¬Ñ5Ð5ÈÌˆ	Ø
�	Š	�$˜WØ-.°©U°aªZ¨Z 	 	¸YØ$%¨¢F F˜˜°Ø%ð 	ñ 	'ô 	'ð 	'ð
 	�	Š	�$˜˜a #™g¨#°U¸{ˆ	ÑKÔKÐKØ
�	Š	�$˜˜a #™g¨#°U¸{ˆ	ÑKÔKÐKà”Yð 	9ð 	9ˆEØŒI�eÔ×*Ò*¨<Ñ8Ô8Ð8Ð8ð	9ð9ð 9r'   zimage_bounds_handling.pnggú~j¼t“x?)r   rO   c                 ó¤  — t          j        dd¦  «        \  }}d}t          g d¢¦  «        D �]"\  }}t          j        |dz  ¦  «                             ||f¦  «        }||dz  z  |dz  dz  z   }t          ¦   «                              |dz  dz
  |dz  dz
  d¦  «        }t          d¦  «        D ] }||||f         j	        z   }	|dk    r| |	z   }	|||f          
                    |d	||	¬
¦  «         |||f                              ¦   «          t          d||dddd||||f         j	        z   ¬¦  «        }
|||f                              |
¦  «         Œ¡�Œ$d S )Nr   r9   r¥  )r]   r‡   r=   r4   rÿ   r  r2   rß  rà  )rÙ  rÙ  rð  r:   rá  )Ú	edgecolorr•  r7  rã  r*  )r>   r?   r6  r@   rv   r+  r   Úrotate_aroundr…  r,  rE   rM  r   rÄ  )r.   rF   r¨   r�  ræ  r<   rÂ   Úrotationrì  r*  Úboxs              r$   Útest_image_bounds_handlingrþ  Ü  s™  € õ Œ|˜A˜qÑ!Ô!�H€Cˆà
€Aå%Ð&HÐ&HÐ&HÑIÔIð &ñ &Ñˆˆ=ÝŒy˜˜A™‰Œ×&Ò&¨¨1 vÑ.Ô.ˆØ�a˜‘d‰{˜d Q™h¨!™^Ñ+ˆÝ‘:”:×+Ò+¨A¨a©C°©G°Q°q±S¸±W¸aÑ@Ô@ˆå�q‘”ð 	&ð 	&ˆAØ  3 q¨! t¤9Ô#6Ñ6ˆIØ�AŠvˆvà.°Ñ:�	à��1�ŒI×Ò˜T¨¸}Ø'0ð ñ 2ô 2ð 2ð ��1�ŒI×"Ò"Ñ$Ô$Ð$Ý˜L¨!¨QØ&+°vÀ#È(Ø&.°°Q¸°T´Ô1DÑ&DðFñ Fô FˆCð ��1�ŒI× Ò  Ñ%Ô%Ð%Ð%ñ	&ð&ð &r'   zrgba_clean_edges.pnggú~j¼t“h?c            
      ó¦  — t           j                             d¦  «         t           j                             dd¦  «        } t          j        | | g¦  «        } t           j        | ddd…dd…f<   t          ¦   «                              ddd¦  «        }t          j	        dd¦  «        \  }}t          d¦  «        D �]}t          dddd	d
¬¦  «        }t          ddddd
¬¦  «        }t          dddd	ddd
¬¦  «        }||                              |¦  «         ||                              |¦  «         ||                              |¦  «         ||                              | |df         dd|||         j        z   ¬¦  «         ||                              ¦   «          ||                              dd¦  «         ||                              dd¦  «         �Œd S )Nrg  é   r2   r   r4   rT  )ç      @r   r3   Úblackr   )rì  Úzorder)r   r3  r  r“  )r  r3  r:   r  )ÚfcÚecr   r  .r=   rÐ  )r<   r`  r*  g      Àr8  )r@   rŽ   r�   r�   Ústackri  r   rû  r>   r?   r…  r   Ú	add_patchrE   r,  rM  r›   rœ   )rÂ   rü  rF   r¨   rì  r  r“  Úpartly_blacks           r$   Útest_rgba_clean_edgesr	  û  sÊ  € å„I‡N‚N�:ÑÔÐÝŒ9�>Š>˜!˜QÑÔ€DÝŒ8�T˜4�LÑ!Ô!€DÝœ€DˆˆAˆaˆC��1�ˆÑå‰zŒz×'Ò'¨¨S°!Ñ4Ô4€HåŒ|˜A˜qÑ!Ô!�H€Cˆå�1‰XŒXð #ñ #ˆå˜) Q¨°ÀÐCÑCÔCˆÝ˜ $¨°ÀÐBÑBÔBˆÝ  ¨Q°°gÀ&Ø'*°1ð6ñ 6ô 6ˆàˆAŒ×Ò˜ÑÔÐØˆAŒ×Ò˜ÑÔÐØˆAŒ×Ò˜Ñ&Ô&Ð&àˆAŒ�Š�d˜1˜c˜6”lØ$.ÀFØ (¨3¨q¬6Ô+;Ñ ;ð 	ñ 	=ô 	=ð 	=ð 	ˆAŒ×ÒÑÔÐØˆAŒ�Š˜˜cÑ"Ô"Ð"ØˆAŒ�Š˜˜cÑ"Ô"Ð"Ñ"ð!#ð #r'   zaffine_fill_to_edges.pngc                  óê  — t          j        dd¦  «        \  } }d}t          j        |dz  ¦  «                             ||f¦  «        dz  }t          ¦   «         t          ¦   «                              d| dz   ¦  «                             dd¦  «        t          ¦   «                              | dz   d¦  «                             dd¦  «        g}t          d¦  «        D �]}t          d¦  «        D �]}|dk    rdnd}|||f          	                    |d	d
|||         |||f         j
        z   ¬¦  «         |||f                              ¦   «          |||f                              d|dz
  gdddd¬¦  «         |||f                              d|dz
  g|dz
  |dd¬¦  «         |||f                              d|dz
  gdddd¬¦  «         |||f                              d|dz
  g|dz
  |dd¬¦  «         �Œ�Œd S )Nr   r9   rL  r   r2   rs   rÏ   ro   rß  r‡   rí  rÙ  r  rð  )r7  rì  )r>   r?   r@   rv   r+  r   Ú	translater0  r…  rE   r,  rM  rä  rå  )rF   r¨   r�  rÂ   r*  ræ  rì  rr   s           r$   Útest_affine_fill_to_edgesr    s,  € õ Œ|˜A˜qÑ!Ô!�H€Cˆà	€AÝŒ9�Q˜‘T‰?Œ?×"Ò" A q 6Ñ*Ô*¨QÑ.€Då‘”Ý‘”×%Ò% a¨!¨¨a©Ñ0Ô0×6Ò6°q¸"Ñ=Ô=Ý‘”×%Ò% q b¨1¡f¨aÑ0Ô0×6Ò6°r¸1Ñ=Ô=ð?€Iõ �1‰XŒXð Mñ MˆÝ�q‘”ð 	Mñ 	MˆAØ ! Q¢ �W�W¨GˆFà��1�ŒI×Ò˜T¨Ø+4¸VØ'0°¤|°c¸!¸Q¸$´iÔ6IÑ'Ið ñ Kô Kð Kð ��1�ŒI×"Ò"Ñ$Ô$Ð$Ø��1�ŒI×Ò˜d A¨¡G˜_¨b°!¸À5ÐÑIÔIÐIØ��1�ŒI×Ò˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÑLÔLÐLØ��1�ŒI×Ò˜d A¨¡G˜_¨b°!¸À5ÐÑIÔIÐIØ��1�ŒI×Ò˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÑLÔLÐLÑLñ	MðMð Mr'   )±Ú
contextlibr   rŒ  r   r®   Úpathlibr   r  r  Úurllib.requestr!  Únumpyr@   Únumpy.testingr   r   ÚPILr   Ú
matplotlibrQ  r   r	   rÒ   r
   r   r>   r   r   Úmatplotlib.backend_basesr   Úmatplotlib.imager   r   r   r   r   Úmatplotlib.patchesr   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   r   r   r   Úmatplotlib.tickerÚtickerr>  rt  Úfixturer.   rJ   rc   ÚmarkÚparametrizer|   r†   r™   r�   r©   rµ   r·   rÇ   rÎ   rÕ   rÚ   rß   rë   rü   r  Úcontextr  r   r6  rB  ri  rF  rK  r\  re  rn  rp  rx  r|  r  r‹  rž  r¢  rª  r²  r¾  rÉ  rÖ  rÚ  rà  rä  rí  rù  r   r  rv   r+  r
  r  r&  r/  rH  rJ  rP  rf  rk  rn  rs  Úmachiner†  rˆ  Úsplitr•  r™  rŸ  r¡  rã  r†  r±  rµ  r»  r½  r¿  rÅ  rË  rÎ  rÕ  rÚ  rÜ  ré  rî  r  rð  r&  r(  r-  r/  rE  rJ  rR  re  rl  rn  rv  Úfilterwarningsr~  r‰  r’  rš  r^   ÚNEARESTÚBILINEARr  r  rç  rÝ   r‘   r¥  r©  r¬  r¶  r»  rÀ  rÊ  rÐ  rÝ  rè  rø  rþ  r	  r  r!   r'   r$   ú<module>r$     sâ  ðØ  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø 
€
€
€
Ø Ð Ð Ð à Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð à Ð Ð Ð ðFð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fà /Ð /Ð /Ð /Ð /Ð /ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <à (Ð (Ð (Ð (Ð (Ð (Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ #Ð #Ð #Ð #Ð #Ð #à €€€ð „ð(ð (ñ „ð(ð ÐÐ%Ð&°DÀÐPÑPÔPð	.ð 	.ñ QÔPð	.ð ÐÐ+Ð,°#Ø# U˜^¸ÀWðNñ Nô Nð+ð +ñNô Nð+ð  „×ÒÐ,¨u°d¨mÑ<Ô<ØÐ�:�,¨E°5¨>ÀÐQÑQÔQðBð Bñ RÔQñ =Ô<ðBðð ð ð „×ÒØ'ðð ð ñô ð ÐÑÔð.ð .ñ Ôñô ð.ð ÐÑÔðð ñ Ôðð" ÐÑÔð	)ð 	)ñ Ôð	)ð$ð $ð $ð$ð $ð $ð „×Ò˜Ð >Ð >Ð >Ñ?Ô?ð-ð -ñ @Ô?ð-ðDð ð ð, „×Ò˜ G¨WÐ#5Ñ6Ô6ð@ð @ñ 7Ô6ð@ð „×Ò˜Ð BÐ BÐ BÑCÔCðKð Kñ DÔCðKð*ð *ð *ð2)ð )ð )ð4ð 4ð 4ð Ð�=�/¨t¸?ÐKÑKÔKð6ð 6ñ LÔKð6ð „×Ò�7ÑÔØÐÑÔðð ñ Ôñ Ôðð0 „×ÒÐ@ð3ð 3ð 3ñ4ô 4ð0ð 0ñ4ô 4ð0ð*B+ð B+ð B+ðJ „×Ò˜à	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØˆ#€Y�ÐØ	ˆ2€Y�Ðð	&ñ 
ô 
ðPð Pñ
ô 
ðPð& „×ÒØØ�%ˆ.Ð	˜=Ð)Ø�ˆ,ˆ˜Ð#ØŒ6�1�aˆ.Ð	˜4Ð Øˆgˆ,ˆÐ/Ð0Øˆrˆ(ˆ�XÐØˆaˆ&ˆ�8Ððñô ðDð Dñô ðDðJð Jð Jð „×ÒØØ�5ˆ>Ð
˜a ˜V˜HÐ	%Ð';Ð<Ø�$ˆ<ˆ.˜C ˜8˜*Ð	%Ð'7Ð8ØŒF�A�qˆ>Ð
˜Y˜Y˜Y˜KÐ	(¨$Ð/ðñô ðDð Dñô ðDð< Ð�<�.¨Ð0Ñ0Ô0ðð ñ 1Ô0ðð ÐÐ#Ð$¨GÐ4Ñ4Ô4ðð ñ 5Ô4ðð ÐÑÔðð ñ Ôððð ð ðð ð ð ÐÐ,Ð-¸4ÀÐWÑWÔWðIð Iñ XÔWðIð Ð�=�/¨u°e¨nÈ$Ø'ð)ñ )ô )ðð ñ)ô )ððFð Fð Fð8 ÐÐ/Ð0Ø"¨'ð3ñ 3ô 3ðð ñ3ô 3ðð ÐÐ*Ð+¸À_Øðñ ô ðð ñô ðð4 Ð  Ð(Ñ(Ô(ð%ð %ñ )Ô(ð%ð ÐÐ$Ð%Ø# U˜^¸ÀWðNñ Nô Nð!ð !ñNô Nð!ð: ÐÐ(Ð)°tÀ7ÐKÑKÔKðð ñ LÔKðð0 Gð  Gð  GðF ÐÐ3Ð4Ø"¨'ð3ñ 3ô 3ðð ñ3ô 3ððð ð ð!ð !ð !ðð ð ð'ð 'ð 'ð0-ð -ð -ð-ð -ð -ð „×ÒØØ	Ø	ˆŒ�2‰Œ˜	˜œ	 "™œ y r¤y°¡~¤~×'=Ò'=¸fÑ'EÔ'Eð	Gà	Ø	ˆŒ�2‰Œ˜	˜œ	 "™œ y r¤y°¡}¤}×'<Ò'<¸VÑ'DÔ'Dð	Fðñô ð1ð 1ñô ð1ðð ð ðBð ð ð ÐÐ$Ð%°4¸ÐOÑOÔOðð ñ PÔOðð Ð�>Ð"°¸OÐLÑLÔLðð ñ MÔLðð6	%ð 	%ð 	%ð3ð 3ð 3ð( ÐÐ.Ð/¸TØ'¨Sð2ñ 2ô 2ð>ð >ñ2ô 2ð>ð> Ð�<�.¨d¸/ÐJÑJÔJð+ð +ñ KÔJð+ð"ð ð ð ÐÐ)Ð*¸ÀOÐTÑTÔTð
*ð 
*ñ UÔTð
*ð ÐÐ0Ð1Ø+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸tØ"¨'ð3ñ 3ô 3ðð ñ3ô 3ððD&ð &ð &ð „×ÒØÐBÐBÐ#9×#?Ò#?Ñ#AÔ#AÐBÑBÔBñDô Dð%ð %ñDô Dð%ð& ÐÐ)Ð*¸ÀGÐLÑLÔLðð ñ MÔLðð ÐÐ*Ð+¸ÀWÐMÑMÔMðð ñ NÔMðð ÐÐ/Ð0Ø"¨'ð3ñ 3ô 3ðð ñ3ô 3ðð „×ÒØØÔØ„^Ø!Ð!Ø Ð ð"ñ#ô #ð	1ð 	1ñ#ô #ð	1ðð ð ðð ð ðDð Dð Dð
ð ð ð „×Ò˜Ø0Ð2DÐEñGô Gà„×ÒÐ0°9¸jÐ2IÑJÔJð2ð 2ñ KÔJñGô Gð2ð 4ð 4ð 4ð	Dð 	Dð 	Dð9ð 9ð 9ð$ ÐÐ 5Ð 5Ð 5Ð6Ñ6Ô6ð-ð -ñ 7Ô6ð-ð$3ð 3ð 3ð
 „×Ò�7ÑÔð4ð 4ñ Ôð4ð6 ÐÐ$Ð%°5¸%°.Ø"¨'ð3ñ 3ô 3ð
ð 
ñ3ô 3ð
ð"9%ð 9%ð 9%ð 9%ð 9%�”ñ 9%ô 9%ð 9%ðx	 ð 	 ð 	 ðð ð ð ÐÑÔð'ð 'ñ Ôð'ð6 „×Ò˜˜r 1˜gÑ&Ô&ØÐÑÔð2ð 2ñ Ôñ 'Ô&ð2ð$ ÐÑÔð
ð 
ñ Ôð
ð@ ÐÐ.Ð/°wÐ?Ñ?Ô?ðð ñ @Ô?ðð ÐÐ,Ð-°WÐ=Ñ=Ô=ðð ñ >Ô=ðð( ÐÐ'Ð(°ÀTÐJÑJÔJð02ð 02ñ KÔJð02ðf ÐÑÔð*ð *ñ Ôð*ð& ÐÑÔð*ð *ñ Ôð*ð$<ð <ð <ð „×Òð =ñ >ô >à„×Ò˜ G¨WÐ#5Ñ6Ô6Ø„×ÒØÐ9Ð9Ð9Ø6Ð6Ð6ð8ñ9ô 9ð ÐÑÔð&ð &ñ Ôñ9ô 9ñ 7Ô6ñ>ô >ð&ðB ÐÑÔð)ð )ñ Ôð)ð*(ð (ð (ð.0ð 0ð 0ð" „×ÒÐ8Ø€b„h���Ð Ñ!Ô! 6¤>Ø€b„hÐBÐBÐBÐCÑDÔDðFà€b„hÐ.Ð.Ð.Ð/Ñ0Ô0°&´.Ø€b„hÐ=Ð=Ð=Ð>Ñ?Ô?ðAà€b„h���Ð Ñ!Ô! 6¤?Ø€b„hÐKÐKÐKÐLÑMÔMðOà€b„h��c�
ˆ|ÑÔ˜fœoØ€b„hð Gð Gð Gð Hñ Iô IðJð €b„h��c�
ˆ|ÑÔ˜fœo¨w¨r¬w°wÀÑ/DÔ/DÐEà€b„h��c�
ˆ|ÑÔ˜fœnØ€b„n�g�b”g˜c 3Ñ'Ô'¨¨¬°°cÑ):Ô):Ð;Ñ<Ô<×DÒDÀQÈÑKÔKðMà€b„h��c�
ˆ|ÑÔ˜fœoØ€b„n�g�b”g˜c 3Ñ'Ô'Ø!�b”k # s¨CÑ0Ô0×7Ò7¸Ñ<Ô<¸sÑBÀSÑHÈ3ÑNØ�b”g˜c 3Ñ'Ô'ð)ñ *ô *ç*1ª'°!°R©.¬.ð:ðñô ð(;ð ;ñ)ô ð(;ð0	+ð 	+ð 	+ð ð  ð  ð ÐÐ%Ð&¨gÀ4Ø+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸tðEñ Eô EðCð CñEô EðCðB ÐÐ-Ð.°gÈ4ÐPÑPÔPð4ð 4ñ QÔPð4ð( ÐØÐ˜g°4ð9ñ 9ô 9ð8ð 8ñ9ô 9ð8ð* „×ÒØØ>ñô ð „×Ò˜ Ñ(Ô(ð	#ð 	#ñ )Ô(ñ	ô ð
	#ð „×Ò˜Ð"9Ð"9Ð"9Ñ:Ô:ð<ð <ñ ;Ô:ð<ð& „×Ò˜Ð'7Ñ8Ô8ØÐÐ 5Ð 5Ð 5Ð6Ñ6Ô6ð*ð *ñ 7Ô6ñ 9Ô8ð*ðZ ÐÐ+Ð,°OÐDÑDÔDðLð Lñ EÔDðLð, ÐÐ6Ð7¸wÐGÑGÔGð69ð 69ñ HÔGð69ðr ÐÐ.Ð/°ÈEÐRÑRÔRð&ð &ñ SÔRð&ð< ÐÑ)Ð*°/ÁuÐMÑMÔMñ#ð #ñ NÔMð#ð: ÐÑ-Ð.°oÐFÑFÔFñMð Mñ GÔFðMð Mð Mr'   