Ë
    ¸Ó^jÏ ã                   ó8  — 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l1Z1e1jd                  d„ «       Z3 e(dgdd¬«      d„ «       Z4 e(dgdddgdd¬«      d„ «       Z5e1jl                  jo                  dddg«       e(dgddgd¬«      d„ «       «       Z8d„ Z9e1jl                  jo                  d g d!¢«       e'«       d"„ «       «       Z: e'«       d#„ «       Z; e'«       d$„ «       Z<d%„ Z=d&„ Z>e1jl                  jo                  d'g d(¢«      d)„ «       Z?d*„ Z@e1jl                  jo                  d+d,d-g«      d.„ «       ZAe1jl                  jo                  d'g d/¢«      d0„ «       ZBd1„ ZCd2„ ZDd3„ ZE e(d4gdd¬«      d5„ «       ZFej4                  j�                  d«       e'«       d6„ «       «       ZHe1jl                  jo                  d7g d8¢«      d9„ «       ZId:„ ZJe1jl                  jo                  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„ «       ZKe1jl                  jo                  dGdHdIggdJfdKdLggdMfej˜                  d>dNggdOfd>dPggdQfdEdEggdRfd d ggdSfg«      dT„ «       ZMdU„ ZNe1jl                  jo                  dGdHdIggd d gggdVfdKdLggdWd gggdXfej˜                  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}„ Zde1jl                  jo                  d~e" ejÊ                  d«       ejÊ                  d€«       ejÊ                  d�«      jÍ                  d‚«      fe# ejÊ                  d«       ejÊ                  d€«       ejÊ                  dƒ«      jÍ                  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jä                  «       d—k(  rd nd˜dd¬™«      dš„ «       Zsd›„ Zte1jl                  jo                  dœd�jë                  «       D � cg c]  }  ejì                  | «      ‘Œ c} «      dž„ «       Zw e(dŸgdd¬«      d „ «       Zx e(d¡gdd¬«      d¢„ «       Zy e(d£gdd¬«      d¤„ «       Zze1jl                  jo                  d¥ejö                  ejø                  d¦„ d§„ g«      d¨„ «       Z}d©„ Z~dª„ Zd«„ Z€d¬„ Z�e1jl                  jo                  d­d®d¯g«      e1jl                  jo                  d°d±d²g«      d³„ «       «       Z‚d´„ Zƒdµ„ Z„d¶„ Z… e'g d·¢¬o«      d¸„ «       Z†d¹„ Z‡ej4                  j�                  d«      dº„ «       Zˆ e(d»gddgdd¬f«      d¼„ «       Z‰ G d½„ d¾e�j                  «      Z‹d¿„ ZŒdÀ„ Z� e'«       dÁ„ «       ZŽe1jl                  jo                  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–e1jl                  �j/                  dÏ«      e1jl                  jo                  d+d,d-g«      e1jl                  jo                  dÐg dÑ¢g dÒ¢g«       e'«       dÓ„ «       «       «       «       Z˜ e'«       dÔ„ «       Z™dÕ„ ZšdÖ„ Z›e1jl                  jo                  d× e�j8                  g dØ¢g«      e�j:                   e�j8                  g dÙ¢g«      f e�j8                  g dÚ¢g«      e�j:                   e�j8                  g dÛ¢g«      f e�j8                  g dØ¢g«      e�j<                   e�j8                  g dÜ¢g«      f e�j8                  dWdÝgg«      e�j<                   e�j8                  g dÞ¢g«      f e�j8                  dWdWgg«      e�j<                   e�j>                  dßdW«      f e�j8                  dWdÝgg«      e�j:                   e�j@                   e�j>                  dàdW«       e�j>                  dàdÝ«      g«      jÍ                  d>dE«      f e�j8                  dWdÝgg«      e�j<                   e�j@                   e�j>                  dádW«       e�jB                  d<dádà«      �jE                  e£«      dáz  dâz  dWz    e�j>                  dádÝ«      g«      jÍ                  d>dE«      fg«      dã„ «       Z¤dä„ Z¥då„ Z¦ e(dægdd ejä                  «       d—k(  rd ndl¬ç«      dè„ «       Z§ e(dégdd¬Ê«      dê„ «       Z¨ e(dëgdd¬Ê«      dì„ «       Z©e1jl                  jo                  dœdí«      e1jl                  jo                  dîdï«      dð„ «       «       Zªe1jl                  jo                  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°yc c} w (  é    )Ú	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y)ú6nonaffine_identity.<locals>.NonAffineIdentityTransformé   c                 ó   — | S ©N© ©Úselfs    úf/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/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<   |j                  |d¬	«       |j                  |d
¬	«       y)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‘l 1 aÓ(�O€C‰ˆ#ˆsä
�(‰(�9Ó
€CÜ—'‘'˜&“/€Cˆ�Kä—'‘'œ"Ÿ'™' &´·±Ô9Ó:€Cˆ�KØ‡J�Jˆs &€JÔ)Ø‡J�Jˆs *€JÕ-r'   Úinterp_nearest_vs_nonegš™™™™™@ÚpdfÚsvgÚmpl20)ÚtolÚ
extensionsr0   r   c                  óD  — dt         d<   t        j                  g d¢g d¢gg d¢g d¢ggt        j                  ¬«      } t	        j
                  dd	«      \  }\  }}|j                  | d
¬«       |j                  d«       |j                  | d¬«       |j                  d«       y)z5Test the effect of "nearest" and "none" 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€Aä—l‘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                 óP  — t        j                  dd¬«      }| |_        t        j                  t        j
                  d«      dz  t        j
                  d«      dz  «      \  }}t        j                  |dz  |dz  z   ||z  z
  «      }t        j                  d|dz  z  d|dz  z  z   «      }||dz  z   }|j                  |d	d	d
¬«       |j                  |d d d…d d …f   d	dd
¬«       |j                  |d d …d d d…f   dd	d
¬«       |j                  |d d d…d d d…f   ddd
¬«       y )N©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   s  € ô �*‰*˜V¨Ô
-€CØ-€CÔÜ�6‰6”"—)‘)˜C“. 5Ñ(¬"¯)©)°C«.¸3Ñ*>Ó?�D€A€qÜ
�‰ˆq�!‰t�a˜‘d‰{˜Q˜q™SÑ Ó!€AÜ
�‰ˆr�!�Q‘$‰w˜˜A˜q™D™Ñ Ó!€AØ
ˆa�‰c‰'€Cà‡L�L�˜˜q¨€LÔ1Ø‡L�L�‘T�r�Tš1�W‘ !¨°G€LÔ<Ø‡L�L�’Q™˜"˜�W‘ #¨!°G€LÔ<Ø‡L�L�‘T�r�T™4˜R˜4�Z‘ S¨S¸€LÕAr'   c                  óî   — t        j                  «       \  } }|j                  g d¢«       t        j                  «       }| j                  |«       |j                  d«       t        j                  |«       y )N)r2   r   r9   r   )r>   r?   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)rF   ÚaxÚbuffers      r$   Útest_image_python_ior†   W   sK   € Ü�l‰l‹n�G€CˆØ‡G�GŠIÔÜ�Z‰Z‹\€FØ‡K�K�ÔØ
‡K�K�„NÜ‡J�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                  j                  d«       t        j                  d   }t         j                  j                  t        ||z  «      t        ||z  «      «      }| |fD ]  }|j                  ||«       Œ | j                  «       }|j                  g d¢«       |j                  |d¬«       |j                  «       }|j                  g d¢«       |j                  ||¬«       y )Né!N,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�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™>Ó*¬C°°h±Ó,?Ó@€AØ˜'Ð"ò 0ˆØ×Ñ˜H hÕ/ð0à	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜v€IÔ&Ø	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜}€IÕ-r'   c                 ó*  — t         j                  j                  d«       t        j                  d   }t         j                  j                  t        |dz  «      t        |dz  «      «      }| |fD ]  }|j                  dd«       Œ | j                  «       }|j                  |d¬«       |j                  dd«       |j                  dd«       |j                  «       }|j                  |d	¬«       |j                  dd«       |j                  dd«       y )
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�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™7“|¤S¨¨q©£\Ó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                 ó  — t        j                  d«       t        t        «      j                  dz  }t        t        «      j                  dz  }| j                  d«      }|d   j                  t        j                  |«      «       |d   j                  t        j                  |«      «       |j                  d«      }|d   j                  t        j                  |«      «       |d   j                  t        j                  |«      «       y )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.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ˆ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                  j	                  t        j                  j                  t        «      ddd«      «      } | j                  t        j                  k(  sJ ‚t        j                  | «      dk(  sJ ‚y )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)r>   rƒ   ÚosÚpathÚjoinÚdirnamer£   r7   r@   Úuint16Úsum©rI   s    r$   Útest_imread_pil_uint16rµ   —   sc   € Ü
�*‰*”R—W‘W—\‘\¤"§'¡'§/¡/´(Ó";Ø&¨°lóDó E€Cà�9‰9œŸ	™	Ò!Ð!Ð!Ü�6‰6�#‹;˜)Ò#Ð#Ñ#r'   c                  óÔ   — t        j                  t        t        «      j                  dz  «      } | j
                  t        j                  k(  sJ ‚t        j                  | «      dk(  sJ ‚y )Nr¡   r­   )	r>   rƒ   r   r£   r¤   r7   r@   r²   r³   r´   s    r$   Útest_imread_fspathr·   ž   sP   € Ü
�*‰*ÜŒX‹×ÑÐ GÑGóI€Cà�9‰9œŸ	™	Ò!Ð!Ð!Ü�6‰6�#‹;˜)Ò#Ð#Ñ#r'   Úfmt)rf   ÚjpgÚjpegÚtiffc                 óR  — | dv}t         j                  j                  d«       t         j                  j                  dd«      }t	        j
                  «       }t        j                  ||| d¬«       t	        j
                  «       }t        j                  ||| d¬«       |j                  d«       t        j                  || ¬«      }|j                  d«       t        j                  || ¬«      }|j                  ddd	|z   fk(  sJ ‚|j                  ddd	|z   fk(  sJ ‚t        ||«       y )
N)r¹   rº   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�I‡N�N�1Ôô �9‰9�>‰>˜$ Ó"€Dä—
‘
“€IÜ‡J�Jˆy˜$ s°Õ2ä—*‘*“,€KÜ‡J�Jˆ{˜D¨°#Õ6à‡N�N�1ÔÜ�z‰z˜)¨CÔ0€Hà×Ñ�QÔÜ—‘˜K°Ô4€Jà�>‰>˜d A q¨9¡}Ð5Ò5Ð5Ð5Ø×Ñ  a¨¨Y©Ð7Ò7Ð7Ð7ä�x Õ,r'   c                  ó  — ddgddgddgg} t        j                  «       }t        j                  || d¬«       |j	                  d	«       t        j
                  |«      }t        t        j                  | «      |d d …d d …d d
…f   «       y )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�Jˆt�X eÕ,Ø‡I�Iˆa„LÜ�z‰z˜$Ó€HäÜ
�‰�ÓØ’’A�r˜�r�Ñõr'   rr   Úupperro   c                 óŒ   — t        j                  «       }t        j                  dd¬«      }t	        j
                  ||d| ¬«       y )N)rˆ   rˆ   r4   rD   r6   rf   )Úarrr½   rr   )r   r€   r@   rA   Úmimager¿   )rr   ÚbufÚresults      r$   Útest_imsave_rgba_originrÕ   Þ   s1   € ô �*‰*‹,€CÜ�X‰X�k¨Ô1€FÜ
‡M�M�#˜6¨%¸Ö?r'   )rf   rL   ÚpsÚepsrM   c                 ól   — t        j                  |d| › �z  t        j                  ddgg«      | ¬«       y )Nzunused.r   r2   r¾   )r>   r¿   r@   r^   )r¸   Útmp_paths     r$   Útest_imsave_fspathrÚ   æ   s,   € ä‡J�Jˆx˜G C 5˜/Ñ)¬2¯8©8°a¸°V°HÓ+=ÀcÖJr'   c                  óº  — t         j                  j                  d«       dD ]·  } t         j                  j                  ddd«      }t	        j
                  «       }t        j                  ||| d¬«       |j                  d«       t        j                  |«      }d|z  j                  d	«      }| d
k(  r|d d d…   }d|z  j                  d	«      }t        ||«       Œ¹ y )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�I‡N�N�1Ôà$ò *ˆÜ�y‰y�~‰~˜b " aÓ(ˆÜ�z‰z‹|ˆÜ�
‰
�4˜ f°UÕ;à�	‰	�!ŒÜ—*‘*˜TÓ"ˆð
 �D‘× Ñ  Ó)ˆØ�WÒØ™˜"˜‘:ˆDØ�w‘;×&Ñ& wÓ/ˆä˜4 Õ)ñ!*r'   c                  óþ   — ddl m}  t        j                  «       } | «       }|j	                  dd«       t        j                  |ddgddggdd	|i¬
«       t        j                  |«      }|j                  d   dk(  sJ ‚y )Nr   )ÚPngInfoÚSoftwareÚ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ë     sr   € Ý*Ü
�*‰*‹,€CÙ‹i€GØ×Ñ�Z Ô(Ü‡J�Jˆs�a˜�V˜a ˜VÐ$Ø¨°GÐ(<õ>ä	�‰�C‹€BØ�7‰7�:Ñ &Ò(Ð(Ñ(r'   c                  ó\  — ddl m}  t        j                  «       }ddi}t	        j
                  |ddgddggd|¬	«       t        |«      dk(  sJ ‚t        j                  |«      }|j                  j                  «       D ��ci c]  \  }}| |   j                  |“Œ }}}|d
   dk(  sJ ‚y c c}}w )Nr   )ÚTAGS_V2Údescriptionz
test imager2   r   r9   r»   rå   ÚImageDescription)ÚPIL.TiffTagsrí   r   r€   r>   r¿   Úlenr   r¥   Útag_v2ÚitemsÚname)ÚTAGSrÓ   ræ   rê   ÚkÚvÚtagss          r$   Útest_imsave_pil_kwargs_tiffrù     sŸ   € Ý,Ü
�*‰*‹,€CØ Ð.€JÜ‡J�Jˆs�a˜�V˜a ˜VÐ$¨VÀ
ÕKÜˆz‹?˜aÒÐÐÜ	�‰�C‹€BØ(*¯	©	¯©Ó(9×:¡  1ˆD�‰G�L‰L˜!‰OÐ:€DÑ:ØÐ"Ñ# |Ò3Ð3Ñ3ùó ;s   Â B(Úimage_alphac                  ó4  — t         j                  j                  d«       t         j                  j                  dd«      } t	        j
                  dd«      \  }\  }}}|j                  | dd¬«       |j                  | dd¬«       |j                  | dd	¬«       y )
Nr   é   r2   r9   rÉ   r:   )Úalphar<   ç      à?r]   )r@   rŽ   r�   r�   r>   r?   rE   )ÚZrF   ra   rb   Úax3s        r$   Útest_image_alphar    sw   € ä‡I�I‡N�N�1ÔÜ
�	‰	�‰�q˜!Ó€AäŸ<™<¨¨1Ó-Ñ€C‰ˆ#ˆs�CØ‡J�Jˆq˜¨6€JÔ2Ø‡J�Jˆq˜¨6€JÔ2Ø‡J�Jˆq˜¨9€JÕ5r'   c                 óä  — t         j                  j                  d«       t         j                  j                  ddd«      j	                  t         j
                  «      }t        j                  |dz  «      }| j                  dd«      \  \  }}\  }}|j                  |d¬«       |j                  |d¬«       |j                  |d	¬«       |j                  |d
¬«       t        j                  |t        j                  d«      fd¬«      j	                  t         j
                  «      }t        j                  |t        j                  ddt         j                  «      fd¬«      }	|j                  dd«      \  \  }}\  }}d|d d …d d …df<   |j                  |«       d|d d …d d …df<   |j                  |«       d|	d d …d d …df<   |j                  |	«       d|	d d …d d …df<   |j                  |	«       y )Nr‹   rü   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�I‡N�N�8Ôä�9‰9�>‰>˜!˜Q Ó"×)Ñ)¬"¯*©*Ó5€DÜ�8‰8�D˜3‘JÓ€DØ'×0Ñ0°°AÓ6Ñ�Z€cˆ3‘�#�sØ‡J�Jˆt˜3€JÔØ‡J�Jˆt˜4€JÔ Ø‡J�Jˆt˜7€JÔ#Ø‡J�Jˆt˜7€JÔ#ä�N‰N˜D¤"§'¡'¨)Ó"4Ð5¸AÔ>×EÑEÄbÇjÁjÓQ€EÜ�N‰N˜D¤"§'¡'¨)°S¼"¿(¹(Ó"CÐDÈ1ÔM€EØ&×/Ñ/°°1Ó5Ñ�Z€cˆ3‘�#�sØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÕr'   z%n_channels, is_int, alpha_arr, opaque))r9   FFF)r4   FFF)r4   FTF)r4   FFT)r4   TFFc                 óº  — |r%t         j                  j                  dddd| f«      }n0t         j                  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
                  «       \  }}|j                  ||¬	«      }|j                  «        t         j                  j                  ||j                  «       y )
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ˆÙØˆE’!’Q˜�'‰NáÜ—‘˜3 ˜* q¨# hÐ/Ó0‰àˆä�l‰l‹n�G€CˆØ	�‰�5 ˆÓ	&€BØ×ÑÔ ô ‡J�J×!Ñ! %¨¯©Õ/r'   c                  ó  — t        j                  «       \  } }|j                  t        j                  d«      j                  dd«      d¬«      }d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      dk(  sJ ‚d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      �J ‚|j                  «        |j                  t        j                  d«      j                  dd«      d	¬«      }d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      dk(  sJ ‚t        j                  «       \  } }|j                  t        j                  d«      j                  dd«      g d
¢¬«      }d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      dk(  sJ ‚d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      �J ‚d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      �J ‚t        «       j                  d«      j                  d«      }|j                  t        j                  d«      j                  dd«      ||j                  z   ¬«      }d\  }}|j                  j                  ||g«      \  }}t        d| j                  ||«      }|j                  |«      dk(  sJ ‚y )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_datar3  Z  s9  € Ü�l‰l‹n�G€CˆØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÓ	B€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ð �D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,ð ‡H�H„Jà	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÓ	B€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ä�l‰l‹n�G€CˆØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1Ò:JˆÓ	K€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ð*ð �D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,à�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5äÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$Ð,Ð,Ð,ô ‹J×Ñ˜QÓ×&Ñ& sÓ+€EØ	�‰”2—9‘9˜S“>×)Ñ)¨"¨bÓ1Ø" R§\¡\Ñ1ð 
ó 
3€Bà�D€A€qØ—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÜÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò*Ð*Ñ*r'   zxy, datarþ   ç      ø?r2   g      @rÜ   g      !@ç      #@g      @éU   rs   c                 óZ  — t        j                  g d¢«      }t        j                  g d¢«      }|t         j                  d d …f   dz  |d d …t         j                  f   dz  z   }t        j                  «       \  }}t        ||j                  «       |j                  «       |j                  «       |j                  «       f¬«      }|j                  |||«       |j                  |«       |j                  |j                  «       dz
  |j                  «       «       |j                  |j                  «       dz
  |j                  «       «       |j                  j                  | «      \  }}	t        d|j                  ||	«      }
|j!                  |
«      |k(  sJ |j!                  |
«      |f«       ‚y )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ê   r/  r0  r1  s              r$   Útest_cursor_data_nonuniformr?  Ÿ  s>  € ô 	�‰Ò!Ó"€AÜ
�‰’Ó!€AØ	Œ"�*‰*’aˆ-Ñ˜!Ñ˜a¢¤2§:¡: Ñ.°Ñ1Ñ1€Aä�l‰l‹n�G€CˆÜ	˜ Q§U¡U£W¨a¯e©e«g°q·u±u³wÀÇÁÃÐ$HÔ	I€BØ‡K�K��1�aÔØ‡L�L�Ôà‡K�K�—‘“˜!‘˜QŸU™U›WÔ%Ø‡K�K�—‘“˜!‘˜QŸU™U›WÔ%à—<‘<×)Ñ)¨"Ó-�L€Eˆ5ÜÐ,¨c¯j©j¸%ÀÓG€EØ×Ñ˜eÓ$¨Ò,ÐO¨r×/AÑ/AÀ%Ó/HÈ$Ð.OÓOÑ,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                  | «      }|j                  j	                  ddg«      \  }}t        d|j                  ||«      }|j                  |j                  |«      «      |k(  sJ ‚y )Nr   r  )	r>   r?   rE   r)  r'  r   r*  Úformat_cursor_datar+  )rÂ   ÚtextrF   r„   rê   r/  r0  r1  s           r$   Útest_format_cursor_datarC  ½  su   € ô �l‰l‹n�G€CˆØ	�‰�4‹€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÜÐ,¨c¯j©j¸%ÀÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÒCÐCÑCr'   c                  ó†  — t        j                  ddggt         j                  ¬«      } t        j                  «       \  }}|j                  | t        j                  «       ¬«      }|j                  j                  ddg«      \  }}t        d|j                  ||«      }|j                  |j                  |«      «      dk(  sJ ‚y )Nr   r   r6   ©Únormr2   r  z[44.000])r@   r^   rD   r>   r?   rE   r   ÚNoNormr)  r'  r   r*  rA  r+  )rÂ   rF   r„   rê   r/  r0  r1  s          r$   Ú%test_format_cursor_data_uint8_no_normrH  Ï  s˜   € Ü�8‰8�a˜�W�I¤R§X¡XÔ.€DÜ�l‰l‹n�G€CˆØ	�‰�4œfŸm™m›oˆÓ	.€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÜÐ,¨c¯j©j¸%ÀÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸zÒ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   }|j                  ddgg«      }||j                  _        t        j                  |j                  |j                  g«      |j                  _        t        j                  j                  j                  || «       |j                  j                  ddg«      \  }}t!        d|j"                  ||«      }	|j%                  |j'                  |	«      «      |k(  sJ ‚||j                  _        t!        d|j"                  ||«      }	|j%                  |j'                  |	«      «      |k(  sJ ‚y )NÚBiOrangeBlueÚ2VarAddAr   r2   r  )r>   r?   ÚmplÚbivar_colormapsÚmultivar_colormapsrE   Ú	colorizerÚ_cmapr   Ú	MultiNormrF  Ú_normÚColorizingArtistÚ	set_arrayr)  r'  r   r*  rA  r+  )
rÂ   rB  rF   r„   Ú
cmap_bivarÚcmap_multivarrê   r/  r0  r1  s
             r$   Ú!test_format_cursor_data_multinormrX  Ù  s-  € ô �l‰l‹n�G€CˆÜ×$Ñ$ ^Ñ4€JÜ×*Ñ*¨:Ñ6€Mð 
�‰�Q˜�F�8Ó	€BØ#€B‡L�LÔÜ×)Ñ)¨2¯7©7°B·G±GÐ*<Ó=€B‡L�LÔÜ‡M�M×"Ñ"×,Ñ,¨R°Ô6à—<‘<×)Ñ)¨1¨a¨&Ó1�L€Eˆ5ÜÐ,¨c¯j©j¸%ÀÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÒCÐCÐCà&€B‡L�LÔÜÐ,¨c¯j©j¸%ÀÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÒCÐCÑCr'   Ú
image_clip)r   c                  óÊ   — ddgddgg} t        j                  «       \  }}|j                  | «      }t        j                  dd|j
                  ¬«      }|j                  |«       y )Nr2   r   r9   r4   ©r   r   )Úradiusr'  )r>   r?   rE   r
   ÚCircler)  Úset_clip_path)ÚdrF   r„   rê   Úpatchs        r$   Útest_image_clipra  ý  sT   € à
ˆQˆ�!�Q�Ð€Aä�l‰l‹n�G€CˆØ	�‰�1‹€BÜ�N‰N˜6¨!°r·|±|ÔD€EØ×Ñ�UÕr'   Úimage_cliprectc                  óä   — t        j                  «       \  } }ddgddgg}|j                  |d¬«      }t        j                  ddd|j
                  j                  ¬«      }|j                  |«       y )	Nr2   r   r9   r4   ©r   r3   r   r3   r!  ©r2   r2   )r>  ÚwidthÚheightr'  )r>   r?   rE   r
   r   Úaxesr)  r^  )rF   r„   r_  rê   Úrects        r$   Útest_image_cliprectrj    sg   € ä�l‰l‹n�G€CˆØ
ˆQˆ�!�Q�Ð€Aà	�‰�1˜\ˆÓ	*€Bä×ÑØ˜ 1°·±×0AÑ0AôC€Dà×Ñ�TÕr'   c                 ó€  — t        j                  d«      j                  d«      }|j                  «       }|j	                  |d d …d d …df   dd¬«       |j                  dd«       |j                  dd«       | j                  «       }|j	                  |dd¬«       |j                  dd«       |j                  dd«       y )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_1rl    sž   € ô �)‰)�C‹.×
 Ñ
  Ó
-€CØ	×	Ñ	Ó	€BØ‡I�Iˆc’!’Q˜�'‰l¨*¸\€IÔJØ‡K�K��1ÔØ‡K�K��1Ôà	×	Ñ	Ó	€BØ‡I�Iˆc °L€IÔAØ‡K�K��1ÔØ‡K�K��1Õr'   c                  óø   — t        j                  «       \  } }t        j                  d«      j	                  d«      }t        j                  t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)NéÈ   )rˆ   rˆ   r   ©	r>   r?   r@   rv   r(  ÚpytestÚraisesÚ	TypeErrorrE   ©rF   r„   rÑ   s      r$   Útest_imshow_10_10_2rt  "  óU   € Ü�l‰l‹n�G€CˆÜ
�)‰)�C‹.×
 Ñ
  Ó
-€CÜ	�‰”yÓ	!ñ Ø
�	‰	�#Œ÷÷ ñ úó   ÁA0Á0A9c                  óø   — t        j                  «       \  } }t        j                  d«      j	                  d«      }t        j                  t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Niô  )rˆ   rˆ   r3   ro  rs  s      r$   Útest_imshow_10_10_5rx  )  ru  rv  Úno_interpolation_originc                  ó  — t        j                  d«      \  } }|d   j                  t        j                  d«      j                  d«      dd¬«       |d   j                  t        j                  d«      j                  d«      d¬	«       y )
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  si   € ä�|‰|˜A‹�H€CˆØˆ�F‡M�M”"—)‘)˜C“.×(Ñ(¨Ó1¸'Ø &ð ô (àˆ�F‡M�M”"—)‘)˜C“.×(Ñ(¨Ó1À€MÕHr'   Úimage_shift)rP   r0   r   c            
      ó@  — t        dd«      D � �cg c]%  } t        dd«      D �cg c]  }d|z  d| z  z   ‘Œ c}‘Œ' }} }d}d}t        j                  «       \  }}|j                  |t	        j
                  «       d||ddf¬«       |j                  d«       y c c}w c c}} w )Nr2   ri   g�Mòãûk&Ag˜Šäûk&Ar:   )rF  r<   r"  r�   )Úranger>   r?   rE   r   ÚLogNormÚ
set_aspect)ry   rx   ÚimgDataÚtMinÚtMaxrF   r„   s          r$   Útest_image_shiftr„  8  s“   € ô @EÀQÈ»}×M¸!¤u¨Q°£}Ö5 !��A‘˜˜A™“Ô5ÐM€GÑMØ€DØ€Dä�l‰l‹n�G€CˆØ‡I�IˆgœFŸN™NÓ,¸FØ˜D ! SÐ)ð ô +à‡M�M�&Õùò 6ùÓMs   �B£BµBÂBc                  ó¢  — t        j                  ddg¬«      } | j                  dd¬«      }t        j                  t        j
                  d«      d«      j                  dd	«      }|j                  |d
g d¢dd¬«      }dx}}|j                  | |«       |j                  | |«       |j                  g «       |j                  g «       t        j                  «       }| j                  |d¬«       |j                  d«       t        j                   |«      }t#        |d d …df   «      \  }}}	}
t#        |d d …df   «      \  }}}	}
|dk7  sJ d«       ‚y )Nr2   ©rk   rŒ   F)Úframeoné   é   rm   r8  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  s$  € Ü
�*‰*˜a ˜VÔ
$€CØ	�‰�l¨EˆÓ	2€Bä�7‰7”2—9‘9˜R“= "Ó%×-Ñ-¨b°!Ó4€Dà	�‰�4 Ò0BØ!'¨fð 
ó 
6€Bð €I€AˆØ‡K�K���AÔØ‡K�K���AÔà‡M�M�"ÔØ‡M�M�"Ôä
�*‰*‹,€CØ‡K�K�˜y€KÔ)à‡H�HˆQ„Kä	�‰�C‹€BÜ�Rš˜1˜‘X“�J€A€qˆ!ˆQÜ�Rš˜2˜‘Y“�J€A€qˆ!ˆQà�Š8ÐEÐEÓE‰8r'   Úimage_composite_backgroundc                  ó  — t        j                  «       \  } }t        j                  d«      j	                  dd«      }|j                  |g d¢¬«       |j                  |g d¢¬«       |j                  d«       |j                  dd«       y )	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›   rs  s      r$   Útest_image_composite_backgroundr›  a  si   € ô �l‰l‹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<   |j                  |g d
¢d¬«       |j                  |g d¢d¬«       |j                  |g d¢¬«       |j                  |g d¢¬«       |j                  |g d¢d¬«       |j                  |g d¢d¬«       |j                  d«       |j                  dd«       |j                  dd«       y)z{
    Tests that the alpha value is recognized and correctly applied in the
    process of compositing images together.
    )é   é   r4   r2   Nr   çš™™™™™ñ?rI  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   r9  rE   rš  r›   rœ   )rF   r„   rÑ   Úarr2s       r$   Útest_image_composite_alphar£  l  s…  € ô �l‰l‹n�G€CˆÜ
�(‰(�;Ó
€CØ€CŠŠ1ˆaˆ�LÜ—>‘>Ü	�‰�1�c˜3Ó	¤§¡¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>€CŠŠ1ˆaˆ�Lä�8‰8�KÓ €DØ€DŠŠAˆqˆ�MØ€DŠŠAˆqˆ�MÜ—N‘NÜ	�‰�1�c˜3Ó	¤§¡¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>Ú>?ÄÇÁ¸mñM€DŠŠAˆqˆ�Mà‡I�Iˆcš,¨c€IÔ2Ø‡I�Iˆcš,¨c€IÔ2Ø‡I�Iˆcš,€IÔ'Ø‡I�Iˆdš<€IÔ(Ø‡I�Iˆdš<¨s€IÔ3Ø‡I�Iˆdš<¨s€IÔ3Ø×Ñ�^Ô$Ø‡K�K��1ÔØ‡K�K��1Õr'   )rP   c                 ó„  — t        j                  d«      j                  d«      }| |fD ]Ž  }|j                  «       }|j	                  |t
        j                  j                  g d¢«      |j                  f¬«       |j	                  |t
        j                  j                  g d¢«      |j                  f¬«       Œ� d|_	        y )Nr8  ©r9   r9   )r[  ©r   r2   )r2   r   )Ú	clip_path)re  ©r2   r   )r   r2   T)
r@   rv   r(  Úadd_subplotrE   rM  r¯   r   r)  rd   )r”   r•   ÚtrF   r„   s        r$   Ú#test_clip_path_disables_compositingr«  ˆ  sœ   € ä
�	‰	�!‹×Ñ˜VÓ$€AØ˜'Ð"ò /ˆØ�_‰_ÓˆØ
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ô 	/à
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	õ 	/ð	/ð !%€GÕr'   Úrasterize_10dpic                  óþ  — t        j                  ddgddgg«      } t        j                  ddd¬«      \  }}|d   j	                  | «       |d   j                  ddgddgdd	¬
«       |d   j                  dd¬«       |d   j                  ddgddgd¬«       |d   j                  dd¬«       |D ]B  }|j                  g «       |j                  g «       |j                  d d  j                  d«       ŒD dt        d<   y )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·  ”  sö   € ô �*‰*�q˜!�f˜q !˜fÐ%Ó
&€Cä�|‰|˜A˜q¨&Ô1�H€Cˆàˆ�F‡M�M�#Ôàˆ�F‡K�K��A�˜˜A˜¨#¸$€KÔ?Øˆ�F‡J�J�F €JÔ)àˆ�F‡K�K��A�˜˜A˜¨#€KÔ.Øˆ�F‡J�J�F €JÔ)ð ò (ˆØ
�‰�bÔØ
�‰�bÔØ
�	‰	‘!ˆ× Ñ  Õ'ð(ð
 !„Hˆ]Òr'   Úbbox_image_invertedc            	      ó”  — t        j                  d«      j                  d«      } t        j                  «       \  }}t        t        t        ddgddgg«      |j                  «      d¬«      }|j                  | «       |j                  d«       |j                  dd«       |j                  dd«       |j                  |«       t        j                  d«      } t        t        t        dd	gd
dgg«      |j                  «       j                   «      d¬«      }|j                  | «       |j                  d«       |j                  |«       y )Nri   ©rˆ   rˆ   r   r]   r;   Frˆ   rI  çš™™™™™É?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Â  ³  s  € ô �I‰I�c‹N×"Ñ" 8Ó,€Eä�l‰l‹n�G€CˆÜÜœ˜s C˜j¨1¨a¨&Ð1Ó2°B·L±LÓAØô!€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡K�K��3ÔØ‡K�K��3ÔØ‡M�M�'Ôä�K‰K˜‹O€Eäœ¬¨s°C¨j¸3À¸+Ð-FÓ(GØ(*¯©«×(CÑ(CóEà&/ô1€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡M�M�'Õr'   c                  ó|  — t        j                  g d¢g d¢g d¢g d¢g«      } t        j                  dd¬«      \  }}|j	                  g d¢«       |j                  d	d
«       |j                  d	d
«       |j                  | g d¢d¬«      }|j                  j                  «        |j                  j                  }|j                  |«      }t        |j                  «       ddgddgg«       t        j                  dd¬«      \  }}|j	                  g d¢«       |j                  d
d«       |j                  d	d
«       |j                  | g d¢d|j                  ¬«      }|j                  j                  «        |j                  j                  }|j                  |«      }t        |j                  «       ddgddgg«       y )N)r#  r  rÉ   r  )rI  gÍÌÌÌÌÌä?rþ   çš™™™™™Ù?)r¡  r  rÊ   r»  )çffffffæ?çÍÌÌÌÌÌì?rÄ  r¡  rº  ri   rj   rŒ   r   r2   )rÄ  rÅ  r»  rÆ  r]   )r"  r<   é�  rn  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Ï  Ì  sx  € ô
 
�‰Ò*Ò,AÚ'Ò)=ð?ó 
@€Bä�l‰l 8°Ô5�G€CˆØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yð ó B€Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÔFä�l‰l 8°Ô5�G€CˆØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yØ—,‘,ð ó  €Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÕFr'   zzoom_and_clip_upper_origin.pngc                  óè   — t        j                  d«      } | j                  d«      } t        j                  «       \  }}|j                  | «       |j                  dd«       |j                  dd«       y )Nri   rº  ç       @ç      à¿)r@   rv   r(  r>   r?   rE   rœ   r›   )r	   rF   r„   s      r$   Útest_zoom_and_clip_upper_originrÓ  ï  sV   € ô �I‰I�c‹N€EØ�M‰M˜(Ó#€Eä�l‰l‹n�G€CˆØ‡I�IˆeÔØ‡K�K��TÔØ‡K�K��cÕr'   c                  ód   — t        j                  «       } t        | «      }|j                  d«       y )NÚBlues)r>   Úgcar   Úset_cmap©r„   rê   s     r$   Útest_nonuniformimage_setcmaprÙ  û  s#   € Ü	�‰‹€BÜ	˜Ó	€BØ‡K�K�Õr'   c                  óˆ   — t        j                  «       } t        | «      }|j                  t        j                  «       «       y r    )r>   rÖ  r   Úset_normÚ	NormalizerØ  s     r$   Útest_nonuniformimage_setnormrÝ    s)   € Ü	�‰‹€BÜ	˜Ó	€BØ‡K�K”—‘“Õ r'   c                  óN  — t        j                  dd¬«      } t        d«      D ]#  }t        j                  ddd«      dz  | |d d …f<   Œ% t	        j
                  dd«      }|j                  | j                  «       «       t        j                  «       \  }}|j                  |«       y )	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ò 4ˆÜ—K‘K  S¨"Ó-°Ñ3ˆˆAŠqˆDŠ	ð4ä	�‰�3˜Ó	!€BØ‡J�Jˆs�{‰{‹}ÔÜ�l‰l‹n�G€CˆØ‡I�Iˆb…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¬«       |j                  d«       t        j                  |«      }t        |j                  d«      «      }d|cxk  rdk  sJ ‚ J ‚|j                  d«      }|dk(  sJ ‚y )Nre  é,  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�J�v 3Õ'ô 
�‰�-¤uÔ	-€BÜ—‘˜S # sÓ+€B€v�Jä‡L�L�Ôä�:‰:‹<€DÜ‡K�K� ¨e¸Õ=à‡I�Iˆa„LÜ�J‰J�tÓ€Eô �U—_‘_ SÓ)Ó*€JØ�*Ô# Ò#Ð#Ñ#Ð#Ð#à—>‘> &Ó)€LØ˜;Ò&Ð&Ñ&r'   c                  óô   — t        j                  «       } t        | «      }t        j                  dt
        ¬«      j                  d«      }|j                  |«       d|d<   |j                  d   dk(  sJ d«       ‚y ©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ù  *  s`   € Ü	�‰‹€BÜ	�2‹€BÜ
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÒÐ,˜_Ó,Ñr'   c                  óô   — t        j                  «       } t        | «      }t        j                  dt
        ¬«      j                  d«      }|j                  |«       d|d<   |j                  d   dk(  sJ d«       ‚y rô  )	r>   Úgcfr   r@   rv   rí  r(  r<  r  )rF   rê   rz   s      r$   Útest_figureimage_setdatarü  3  sa   € Ü
�'‰'‹)€CÜ	�SÓ	€BÜ
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÒÐ,˜_Ó,Ñr'   zimage_cls,x,y,aç      @ç      @g      (@rõ  g      @)r9   r   c                 óp  — t        j                  «       } | |«      }|j                  |||«       dx|d<   x|d<   |d<   |j                  d   |j                  d   cxk(  r|j
                  d   cxk(  rdk(  sJ d«       ‚ J d«       ‚|j                  |||j                  g |j                  ¢d‘­«      «       y )Nrö  r   r[  r÷  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 r§v¡v¨a¡yÔ5°AÒ5ÐF°ÓFÑ5ÐF°ÓFÐ5Ø‡K�K��1�a—i‘i  !§'¡' ¨2¡Ó/Õ0r'   c                  óŠ  — ddl m}  t        j                  j	                  d«       t        j                  j                  dd«      }t        j                  dd«      \  }}|d   j                  |«      }|d   j                  |«      }t        j                  ||d   ¬«       t        j                  ||d   ¬«       t        j                  «       }t        j                  |d¬«       t        j                  |j                  «       «      }| j                  |«      }d }|j                  d	«      D ]  }	|€|	d
   }Œ|	d
   |k7  sŒJ ‚ y )Nr   )ÚElementTreerˆ   r2   r   )r„   rM   r¾   r	   rf  )Ú	xml.etreer  r@   rŽ   r�   r�   r>   r?   Ú
pcolormeshÚcolorbarr   r€   r�   ÚgetvalueÚparseÚiter)
r  rÂ   rF   r„   Úp1Úp2rÌ   Útreerf  r	   s
             r$   Útest_minimized_rasterizedr  L  s  € õ &ä‡I�I‡N�N�1ÔÜ�9‰9�>‰>˜"˜bÓ!€Dä�l‰l˜1˜aÓ �G€CˆØ	ˆA‰×	Ñ	˜$Ó	€BØ	ˆA‰×	Ñ	˜$Ó	€Bä‡L�L�˜˜1™ÕÜ‡L�L�˜˜1™Õä�:‰:‹<€DÜ‡K�K�˜UÕ#ä�:‰:�d—m‘m“oÓ&€DØ×Ñ˜TÓ"€DØ€EØ—‘˜7Ó#ò ˆØˆ=Ø˜'‘N‰Eà�W‰~ Ó&Ø�uñr'   c                  óÊ  — t        t        «      j                  dz  } dt        j                  dk(  rdndz   | j                  «       j                  «       z   }t        j                  t        d¬«      5  t        j                  |«       d d d «       t        j                  j                  |«      5 }t        j                  |«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)Nr    zfile:Úwin32z///Ú zPlease open the URL©Úmatch)r   r£   r¤   ÚsysÚplatformÚresolveÚas_posixrp  rq  Ú
ValueErrorr>   rƒ   ÚurllibÚrequestÚurlopen)r¯   ÚurlÚfiles      r$   Útest_load_from_urlr  m  s³   € Ü”‹>× Ñ Ð#JÑJ€DØÜ—|‘| wÒ.‰e°Bñ8à�\‰\‹^×$Ñ$Ó&ñ'€Cô 
�‰”zÐ)>Ô	?ñ Ü�
‰
�3Œ÷ä	�‰×	Ñ	 Ó	$ð ¨Ü�
‰
�4Ô÷ð ÷ð ú÷ð ús   Á1CÂ.CÃCÃC"Úlog_scale_imagec                  óÂ   — t        j                  d«      } d| d d d…<   t        j                  «       \  }}|j	                  | g d¢dddd¬«       |j                  d	¬
«       y )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  sY   € ä
�‰�Ó€AØ€A�cˆ€c�Fä�l‰l‹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«      \  }}	|	j                  |dd	d
g d¢d¬«      }
t        «       j                  d«      |	j                  z   }|
j                  |«       |
j                  «       \  }}}}|	j                  |||||g|||||gdd|¬«       |	j                  dd«       |	j                  dd«       y )Nr#  ç      Àrý  r   r2   r4  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_imagerA  ƒ  s}  € à€EÜ�I‰I�d˜C Ó'Ð'€AˆÜ�;‰;�q˜!Ó�D€A€qÜ	�‰�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&‰&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
ˆR‰€Aä�|‰|˜A˜qÓ!�H€CˆØ
�*‰*�Q f°9Ø#Ú*°Dð ó :€Cô “*×'Ñ'¨Ó+¨c¯m©mÑ;€KØ×Ñ�kÔ"ð —^‘^Ó%�N€BˆˆB�à‡H�Hˆb�"�b˜"˜bÐ! B¨¨B°°BÐ#7¸À1Ø"ð ô $ð ‡L�L��AÔØ‡L�L��AÕr'   c                  ó  — t        j                  «       } t        j                  d«      }t	        j
                  | |d¬«       | j                  d«       t	        j                  | «      }|j                  d d |j                  k(  sJ ‚y )N)iá  iA  rf   r¾   r   r   )	r   r€   r@   rA   r>   r¿   r‚   rƒ   rÀ   )rÌ   rê   rI   s      r$   Útest_image_preserve_sizerC  Ÿ  s`   € Ü�:‰:‹<€Dä	�‰�*Ó	€BÜ‡J�Jˆt�R Õ&à‡I�Iˆa„LÜ
�*‰*�TÓ
€Cà�9‰9�R�aˆ=˜BŸH™HÒ$Ð$Ñ$r'   c                  ó.  — d} t        j                  | t        «      }t        j                  | | fd¬«      }|j                  d«      }|j                  «        |j                  |ddd¬«       t        j                  «       }|j                  |d	¬
«       |j                  d«       t        j                  |«      }|j                  dk(  sJ ‚t        t        j                  |d d …d d …df   t         «      t        j                  | t         «      d d d…   «       y )Né   F)rk   r‡  )rÊ   rÊ   rÉ   rÉ   r]   ro   r�   )r<   rr   r%  r2   )rl   r   )rE  rE  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_size2rI  «  sÔ   € Ø	€AÜ�;‰;�qœ%Ó €Dä
�*‰*˜a ˜V¨UÔ
3€CØ	�‰Ð*Ó	+€BØ‡O�OÔØ‡I�Iˆd )°GÀF€IÔKÜ�:‰:‹<€DØ‡K�K�˜!€KÔà‡I�Iˆa„LÜ
�*‰*�TÓ
€Cà�9‰9˜	Ò!Ð!Ð!ä”r—z‘z #¢aª¨A g¡,´Ó5Ü—{‘{ 1¤dÓ+©D¨b¨DÑ1õ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	   j                  d
dd¬«      }t         j                  j                  |dkD  |«      }	t        j                  dd«      \  }
\  }}|j                  |	d|t        j                  ddd¬«      dg d¢¬«      }|j                  d«       |
j                  |dd|d¬«       |j                  |	d|t        j                   g d¢dd¬«      dg d¢¬«      }|j                  d«       |
j                  |dd d|d¬!«       y )"Ngš™™™™™™?r+  rý  r   r2   r4  rþ   rˆ   rŒ  r“  r”  r•  ©ÚoverÚunderÚbadç333333ó?r=   g      ð¿rÉ   F)r$  r#  Úclipro   )r-  r9   r-  r9   )r<   r�  rF  rr   r"  zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationr„   r%  r]   )rs   rÒ  gš™™™™™É¿r   r»  rþ   r2   r  )ÚncolorsrP  zWith BoundaryNormÚproportional)rS  ÚspacingrT  r„   r%  )r@   rv   r1  r2  r3  r>   Ú	colormapsÚwith_extremesÚmaÚmasked_wherer?   rE   r   rÜ  r_   r  ÚBoundaryNorm)r7  rx   ry   r`   r8  r9  r:  rÿ   ÚpaletteÚZmrF   ra   rb   rê   s                 r$   Útest_mask_image_over_underr_  ¿  sÐ  € ð €EÜ�I‰I�d˜C Ó'Ð'€AˆÜ�;‰;�q˜!Ó�D€A€qÜ	�‰�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&‰&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
ˆB�‰G‰€Aä�m‰m˜FÑ#×1Ñ1°sÀ#È3Ð1ÓO€GÜ	�‰×	Ñ	˜A ™G QÓ	'€BÜ—l‘l 1 aÓ(�O€C‰ˆ#ˆsØ	�‰�B jØ Ü×)Ñ)¨t¸#ÀEÔJØ"ª>ð 
ó 
;€Bð ‡M�MÐ1Ô2Ø‡L�L�˜F°Ø ð ô $ð 
�‰�B iØ Ü×,Ñ,Ò-MØ58¸uôFà"ª>ð	 
ó 
;€Bð
 ‡M�MÐ%Ô&Ø‡L�L�˜F¨NØ)¨c¸"ð õ >r'   Ú
mask_imagec                  ó¶  — t        j                  dd«      \  } \  }}t        j                  d«      }t        j                  |dd…dd…f<   |j                  |d¬«       t        j                  dt        ¬«      }d|dd…dd…f<   t        j                  j                  t        j                  dt        j                  ¬«      |«      }|j                  |d¬«       y )Nr2   r   r5   r]   r;   r6   T)r>   r?   r@   rB   ÚnanrE   rA   rG  rZ  Úmasked_arrayr²   )rF   ra   rb   r˜   s       r$   Útest_mask_imagerd  à  s¬   € ô —l‘l 1 aÓ(�O€C‰ˆ#ˆsä
�‰�‹€AÜ—&‘&€A€aˆ€cˆ1ˆQˆ3€h�Kà‡J�Jˆq 	€JÔ*ä
�‰�œtÔ$€AØ€A€aˆ€cˆ1ˆQˆ3€h�KÜ
�‰×Ñœ2Ÿ7™7 6´·±Ô;¸QÓ?€Aà‡J�Jˆq 	€JÕ*r'   c                  óÐ   — t        j                  dt         j                  «      } t        j                  «       \  }}|j                  | «       |j                  j                  «        y )Nrh   )r@   r
  rb  r>   r?   rE   r*  Ú	draw_idle)rÂ   rF   r„   s      r$   Útest_mask_image_allrg  ò  s@   € ä�7‰7�6œ2Ÿ6™6Ó"€DÜ�l‰l‹n�G€CˆØ‡I�Iˆd„OØ‡J�J×ÑÕr'   zimshow_endianess.pngc                  ót  — t        j                  d«      } t        j                  | | «      \  }}t        j                  |dz
  |dz
  «      }t	        j
                  dd«      \  }\  }}t        ddd¬«      } |j                  |j                  d	«      fi |¤Ž  |j                  |j                  d
«      fi |¤Ž y )Nrˆ   r3   r2   r   ro   r]   r"  )rr   r<   r�  z<f8z>f8)	r@   rv   r1  Úhypotr>   r?   ÚdictrE   rÝ   )rx   r`   r8  rÿ   rF   ra   rb   Úkwargss           r$   Útest_imshow_endianessrl  ú  s—   € ä
�	‰	�"‹€AÜ�;‰;�q˜!Ó�D€A€qÜ
�‰��Q‘˜˜A™Ó€Aä—l‘l 1 aÓ(�O€C‰ˆ#ˆsä˜°	À	ÔJ€Fà€C‡J�Jˆq�x‰x˜‹Ñ) &Ò)Ø€C‡J�Jˆq�x‰x˜‹Ñ) &Ó)r'   Úimshow_masked_interpolationÚx86_64r%  )rO   r0   r   c                  ó  — t         j                  d   j                  ddd¬«      } d}t        j                  d||z  dz
  ¬	«      }t        j                  ||z  t        ¬
«      j                  ||«      }d|d<   d|d<   t
        j                  |d<   t        j                  |«      j                  d«      }d|d<   t
        j                  j                  ||«      }t        j                  dd«      \  }}t!        t"        j$                  «      }|j'                  d«       |j'                  d«       t)        ||j+                  «       «      D ]<  \  }}	|	j-                  |«       |	j/                  ||| |¬«       |	j1                  d«       Œ> y )Nr"  r“  r•  rö   rK  rm   r   r2   ©r$  r#  r6   rs   r5   g     jø@)r‰  r3   )r‰  r‰  rG  T)r3   r‰  r9   rü   r�   Úantialiased)rF  r�  r<   Úoff)rM  rX  rY  r   rÜ  r@   rv   rí  r(  ÚinfÚ
zeros_likerÝ   rZ  rc  r>   r?   ÚsortedrÒ   Ú	_interpd_ÚremoveÚzipÚravelr_   rE   r  )
r�  ÚNrH  rÂ   ÚmaskrF   Úax_gridÚinterpsÚinterpr„   s
             r$   Ú test_imshow_masked_interpolationr    sF  € ô
 �=‰=˜Ñ#×1Ñ1°sÀ#È3Ð1ÓO€Dà
€AÜ×Ñ˜a a¨¡c¨!¡eÔ,€Aä�9‰9�Q�q‘S¤Ô&×.Ñ.¨q°!Ó4€Dà€Dˆ�Jð €Dˆ�Kô —6‘6€Dˆ�Lä�=‰=˜Ó×%Ñ% fÓ-€DØ€Dˆ�Kä�5‰5×Ñ˜d DÓ)€Dä—<‘<  1Ó%�L€CˆÜ”V×%Ñ%Ó&€GØ‡N�N�6ÔØ‡N�N�=Ô!ä˜' 7§=¡=£?Ó3ò ‰
ˆ�Ø
�‰�VÔØ
�	‰	�$˜Q T¸ˆ	Ô@Ø
�‰��ñr'   c                  óV   — t        j                  ddgdt        j                  gg«       y )Nr2   r   r9   )r>   rE   r@   rb  r!   r'   r$   Útest_imshow_no_warn_invalidr�  -  s   € Ü‡J�J��A�˜œBŸF™F˜Ð$Õ%r'   r7   zu2 u4 i2 i4 i8 f4 f8c                 óD  — t        j                  d| ¬«      j                  d«      }| j                  dk7  r|dz  }|dk  }|dkD  }| j                  dk(  r|dz  }t	        j
                  «       \  }}|j                  |«      j                  «       }||   dk(  j                  «       sJ ‚| j                  dk(  r4||   d	k(  j                  «       sJ ‚|j                  j                  dk(  sJ ‚y ||   dk(  j                  «       sJ ‚|j                  t         j                  k(  sJ ‚y )
Nrè  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  s	  € ô �)‰)�C˜uÔ
%×
-Ñ
-¨kÓ
:€CØ‡z�z�SÒØˆr‰	ˆØ�A‰g€GØ�S‰y€HØ‡z�z�SÒØ�C‰iˆÜ�L‰L‹N�E€A€rØ
�)‰)�C‹.×
"Ñ
"Ó
$€CØ�‰L˜AÑ×"Ñ"Ô$Ð$Ð$Ø‡z�z�SÒØ�H‘ Ñ"×'Ñ'Ô)Ð)Ð)Ø�y‰y�~‰~ Ò$Ð$Ñ$à�H‘ Ñ$×)Ñ)Ô+Ð+Ð+Ø�y‰yœBŸH™HÒ$Ð$Ñ$r'   zimshow_flatfield.pngc                  ó¢   — t        j                  «       \  } }|j                  t        j                  d«      d¬«      }|j                  dd«       y )Nr5   r]   r;   rþ   r4  )r>   r?   rE   r@   rB   Úset_clim©rF   r„   rê   s      r$   Útest_imshow_flatfieldr�  F  s9   € ä�l‰l‹n�G€CˆØ	�‰”2—7‘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
                  ¬«      }|j                  |«      }|j                  dd«       y )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  sR   € à&/„HÐ"Ñ#ô �l‰l‹n�G€CˆÜ
�(‰(’L¢)Ð,´B·I±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«      }|j                  |«      }|j                  dd«       y )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  sN   € ð '0„HÐ"Ñ#ô �l‰l‹n�G€CˆÜ
�(‰(’O¢\Ð2Ó
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  |j                  g g | «       ¬«      }d d d «       j                  g d¢«       |j                  j                  «        t        j                  t        «      5  |j                  |j                  j                  «       «       d d d «       y # 1 sw Y   Œ‚xY w# 1 sw Y   y xY w)Nz.Attempting to set identical low and high xlimsr  rE  )éûÿÿÿr3   r¡  r3   )r>   r?   rp  ÚwarnsÚUserWarningrE   Ú
set_extentr*  rÈ  rq  ÚRuntimeErrorÚ
make_imageÚget_renderer)r™  rF   r„   rê   s       r$   Útest_empty_imshowr¨  d  s«   € ô �l‰l‹n�G€CˆÜ	�‰”kØLô
Nñ /à�Y‰Y˜�t¡)£+ˆYÓ.ˆ÷/ð ‡M�M’.Ô!Ø‡J�J‡O�OÔä	�‰”|Ó	$ñ 1Ø
�‰�c—j‘j×-Ñ-Ó/Ô0÷1ð 1÷/ð /ú÷1ð 1ús   ³CÂ*CÃCÃC#c                  óÎ   — t        j                  «       \  } }|j                  t        j                  dt        j
                  ¬«      «       | j                  j                  «        y )Nr¥  r6   )r>   r?   rE   r@   rA   Úfloat16r*  rÈ  ©rF   r„   s     r$   Útest_imshow_float16r¬  v  s:   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h�v¤R§Z¡ZÔ0Ô1à‡J�J‡O�OÕr'   c                  ó¤  — t        j                  «       \  } }|j                  t        j                  dt        j
                  ¬«      «       t        j                  t        j
                  t        j                  d«      r
t        «       nt        j                  t        «      5  | j                  j                  «        d d d «       y # 1 sw Y   y xY w)Nr¥  r6   Úequiv)r>   r?   rE   r@   rA   Ú
longdoubleÚcan_castÚfloat64r   rp  r¢  r£  r*  rÈ  r«  s     r$   Útest_imshow_float128r²  }  sy   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h�v¤R§]¡]Ô3Ô4ÜŸ™¤R§]¡]´B·J±JÀÔHŒ)Œ+Ü�|‰|œKÓ(ñð 	�
‰
�‰Ô÷÷ ñ ús   Â"CÃCc                  ó’   — t        j                  «       \  } }|j                  t        j                  ddgddggt
        ¬«      «       y )NTFr6   )r>   r?   rE   r@   r^   rG  r«  s     r$   Útest_imshow_boolr´  †  s5   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�h‰h˜˜u˜¨¨t }Ð5¼TÔBÕCr'   c                  óÌ   — t        j                  «       \  } }|j                  t        j                  dt        j
                  «      «       | j                  j                  «        y )Nrº  )r>   r?   rE   r@   r
  rb  r*  rÈ  r«  s     r$   Útest_full_invalidr¶  ‹  s:   € Ü�l‰l‹n�G€CˆØ‡I�IŒb�g‰g�h¤§¡Ó'Ô(à‡J�J‡O�OÕr'   zfmt,counted)rÖ   s    colorimage)rM   s   <imagezcomposite_image,count)Tr2   )Fr   c                 ó(  — t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}t        j                  |dz  «      }t	        j
                  «       \  }}|j                  dd«       |j                  |g d¢¬«       |j                  |d d d	…   g d
¢¬«       |t        j                  d<   t        j                  «       }	|j                  |	| ¬«       |	j                  «       j                  |«      |k(  sJ ‚y )Nr¡  r3   r2   r   r   r9   ©r   r2   r   r2   r!  rs   )r   r9   r   r2   zimage.composite_imager¾   )r@   r1  rv   rw   r>   r?   r›   rE   r   r   r€   r�   r	  Úcount)
r¸   ÚcountedÚcomposite_imager¹  r`   r8  rÿ   rF   r„   rÓ   s
             r$   Útest_compositer¼  ’  sÑ   € ô �;‰;”r—y‘y  Q¨Ó*¬B¯I©I°b¸!¸QÓ,?Ó@�D€A€qÜ
�‰ˆq�A‰v‹€Aä�l‰l‹n�G€CˆØ‡K�K��1ÔØ‡I�Iˆaš€IÔ%Ø‡I�Iˆa‘�"�‰gšl€IÔ+Ø,;„C‡L�LÐ(Ñ)Ü
�*‰*‹,€CØ‡K�K�˜C€KÔ Ø�<‰<‹>×Ñ Ó(¨EÒ1Ð1Ñ1r'   c                  óô   — t        j                  «       \  } }|j                  dggd¬«       |j                  «        |j	                  «        |j                  «       |j                  «       cxk(  rdk(  sJ ‚ J ‚y )Nr   r¸  r!  r¦  )r>   r?   rE   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr«  s     r$   Ú
test_relimrÂ  ¥  s\   € Ü�l‰l‹n�G€CˆØ‡I�I�ˆsˆe˜L€IÔ)Ø‡H�H„JØ‡L�L„NØ�;‰;‹=˜BŸK™K›MÔ3¨VÒ3Ð3Ñ3Ð3Ñ3r'   c                  ór  — t        j                  «       \  } }|j                  «        |j                  ddgddggdddd¬«      }|j	                  dd¬«       | j
                  j                  «        t        j                  | j
                  j                  «       «      d	d d
…f   dk(  j                  «       sJ ‚y )Nr   r�   rŠ  rŒ  F)r%  r"  r�  r.  r¦  r°  .r9   )r>   r?   rF  rE   r´  r*  rÈ  r@   r^   Úbuffer_rgbar‡  r�  s      r$   Útest_unclippedrÅ  ­  s¡   € Ü�l‰l‹n�G€CˆØ‡O�OÔØ	�‰�Q˜�F˜Q ˜FÐ#¨FÐ;MØ¨ð 
ó 
/€Bà‡F�F�˜V€FÔ$Ø‡J�J‡O�OÔô �H‰H�S—Z‘Z×+Ñ+Ó-Ó.¨s°B°Q°B¨wÑ7¸1Ñ<×AÑAÔCÐCÑCr'   c                  ó6  — t        j                  d«      \  } }|D ]  }|j                  «        Œ |d   j                  ddgddggdd¬«      }|j	                  d «       |j                  |d   j                  «       t        j                  «       }| j                  |d¬	«       h |j                  «       £d
hk(  sJ ‚|d   j                  d¬«       t        j                  «       }| j                  |d¬	«       |j                  «       |j                  «       k7  sJ ‚y )Nr   r2   r   r9   r�   r¸  )r%  r"  Úrgbar¾   rZ   )rs   r   )r²  )r>   r?   rF  rE   r^  Úset_clip_boxÚbboxr   r€   r�   r	  r´  )rF   r¨   r„   rê   Ú
buf_beforeÚ	buf_afters         r$   Útest_respects_bboxrÌ  ¹  sû   € Ü�|‰|˜A‹�H€CˆØò ˆØ
�‰Õðà	ˆQ‰�‰˜˜A˜  A Ð'°¸|ˆÓ	L€BØ×Ñ�TÔð ‡O�O�C˜‘F—K‘KÔ Ü—‘“€JØ‡K�K�
 6€KÔ*Ø#ˆZ× Ñ Ó"Ð#¨ vÒ-Ð-Ð-Øˆ�F‡J�J�G€JÔÜ—
‘
“€IØ‡K�K�	 &€KÔ)Ø×ÑÓ  I×$6Ñ$6Ó$8Ò8Ð8Ñ8r'   )rf   rL   rM   c                 óÐ  — t        j                  dd«      }t        j                  ||«      \  }}t        j                  d|dz
  dz  z  |dz
  z   «      }||j	                  «       z  }t
        j                  d   }| j                  «       }|j                  |||d¬	«       |j                  «       } | t        j                  «       |«      «      }	||	d
<   |j                  |	d¬«       y)zPer-pixel alpha channel test.r   r2   r-  rþ   r   g[�Âõ(\ß?r"  r]   )rý   r�  r<   ).rs   r;   N)r@   rà  r1  r2  r;  rM  rX  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ÙÐ"”× Ñ Ó" 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 «       y # 1 sw Y   y xY w)Nzalpha must be a float, two-dr  rh   r2   r  )rp  rq  rr  r>   rE   r@   rA   r!   r'   r$   Ú!test_image_array_alpha_validationrÓ  Þ  sA   € Ü	�‰”yÐ(FÔ	Gñ 3Ü�
‰
”2—8‘8˜FÓ#¨A¨q¨6Õ2÷3÷ 3ñ 3ús   œ-AÁAc                  óŽ  — t         j                  d   j                  d¬«      } t        j                  dd¬«      }|j                  d«      }t        j                  g d¢gt        ¬	«      }|j                  |d
| dd¬«      }|j                  d«       |j                  j                  «        |j                  |j                  j                  «      d   d   }|j                  |j!                  |dggdz  z  j"                  j%                  «       «      «      dz  j'                  t(        «      }t        j*                  ||k(  «      sJ ‚y )NÚautumn_rÚ	lightgrey©rM  )gffffffþ?rI  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#  rr  r2   rˆ   rZ   )rM  rX  rY  r>   rt   r�  r@   r^   rí  rE   r  r*  rÈ  r¦  rÉ  r�  rF  ÚTry  rÝ   r‘   r‡  )r�  rF   r„   rÂ   rê   Ú
from_imageÚdirect_computations          r$   Útest_exact_vminrà  ã  s  € ä�=‰=˜Ñ$×2Ñ2¸Ð2ÓE€Dô �*‰*˜Z¨SÔ
1€CØ	�‰�lÓ	#€Bä�8‰8Ú	MÐNÜô€Dð
 
�‰�4 ¨T¸ÀˆÓ	D€BØ‡G�GˆE„NØ‡J�J‡O�OÔð —‘˜sŸz™z×2Ñ2Ó3°AÑ6°qÑ9€Jð 	�‰�—‘˜ 1 # ¨¡Ñ,×/Ñ/×5Ñ5Ó7Ó8Ó9¸CÑ?ß�fŒSƒkð ô
 �6‰6�*Ð 2Ñ2Ô3Ð3Ñ3r'   Úimage_placementc                  óT  — t        j                  «       \  } }|j                  g d¢g d¢dd¬«       t        j                  j                  d«       |j                  t        j                  j                  dd«      dd	d
dd¬«       |j                  dd«       |j                  dd«       y)zK
    The red box should line up exactly with the outside of the image.
    )r   r   r2   r2   r   )r   r2   r2   r   r   r“  rI  )Úcolorr0  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‰l‹n�G€CˆØ‡G�GŠOš_°C¸C€GÔ@Ü‡I�I‡N�N�8ÔØ‡I�IŒb�i‰i�o‰o˜b "Ó%¨G¸LØ"¨°!ð ô 5à‡K�K��eÔØ‡K�K��eÕr'   c                   ó@   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zd„ Zed„ «       Zˆ xZ	S )Ú
QuantityNDc                 ó\   — t        j                  |«      j                  | «      }||_        |S r    )r@   r³  ÚviewÚunits)ÚclsÚinput_arrayrê  Úobjs       r$   Ú__new__zQuantityND.__new__  s'   € Ü�j‰j˜Ó%×*Ñ*¨3Ó/ˆØˆŒ	Øˆ
r'   c                 ó(   — t        |dd «      | _        y ©Nrê  )Úgetattrrê  )r#   rí  s     r$   Ú__array_finalize__zQuantityND.__array_finalize__  s   € Ü˜S '¨4Ó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__  s@   ø€ Ü˜˜g tÓ,ˆÜ‰gÑ! $Ó'ˆÜ�cœ:Ô&¨%Ð*;Ü˜S %Ó(ˆCØˆ
r'   c                 ó¨  — t        ||«      }d|v rt        S t        |«      dk(  r0|d   }t        |dd«      } |t        j                  |«      fi |¤Ž}�nXt        |«      dk(  �rC|d   }|d   }	t        |dd«      }
t        |	dd«      }|
€|n|
}
|€|
n|}|t        j
                  t        j                  fv r|
|k7  rt        ‚|
}nž|t        j                  k(  r|
› d|› �}nƒ|t        j                  k(  r	|
› d|› d	�}ng|t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  fv rd }nt        S  ||j!                  t        j"                  «      |	j!                  t        j"                  «      fi |¤Ž}nt        S |€t        j$                  |«      }|S t'        ||«      }|S )
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Úinputsrk  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1s               r$   Ú__array_ufunc__zQuantityND.__array_ufunc__"  s¤  € Ü�u˜fÓ%ˆØ�F‰?Ü!Ð!Üˆv‹;˜!ÒØ˜‘ˆBÜ˜2˜w¨Ó8ˆDÙœ2Ÿ:™: b›>Ñ4¨VÑ4ŠGÜ�‹[˜AÓØ˜‘ˆBØ˜‘ˆBÜ˜˜W oÓ6ˆBÜ˜˜W oÓ6ˆBØ�z‘ rˆBØ�z‘ rˆBØœŸ™¤§¡Ð-Ñ-Ø˜’8Ü$Ð$Ø‘Øœ"Ÿ+™+Ò%Ø˜˜Q˜r˜d�|‘Øœ"Ÿ)™)Ò#Ø˜˜R ˜t 1�~‘Øœ2Ÿ:™:¤r×'7Ñ'7ÜŸ8™8¤R§\¡\ÜŸ7™7¤B§M¡Mð3ñ 3ð ‘ä%Ð%Ù˜2Ÿ7™7¤2§:¡:Ó.°·±¼¿
¹
Ó0CÑNÀvÑN‰Gä!Ð!Øˆ<Ü—h‘h˜wÓ'ˆGð ˆô ! ¨$Ó/ˆGØˆr'   c                 ó@   — | j                  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ôò%ðN ñ%ó ô%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 «       y # 1 sw Y   y xY w)Nr2   r   Úmr9   zm*mzm/(m)Ús)	rç  r@   r‡  r÷   r³  rê  rp  rq  r  )ÚqÚq0Úq1s      r$   Útest_quantityndr  N  sÜ   € Ü�A�q�6˜3Ó€AØ‰qˆT�F€BˆÜ�6‰6�!—#‘#œŸ™ Q¨ FÓ+Ñ+Ô,Ð,Ð,Ø�7‰7�cŠ>Ðˆ>Ü�6‰6�2˜‘7—+‘+¤§¡¨Q¨C£Ñ0Ô1Ð1Ð1Ø�‰G�?‰?˜eÒ#Ð#Ð#Ø�‰G�?‰?˜gÒ%Ð%Ð%Ü	�‰”zÓ	"ñ  Ø
ŒZ˜˜3ÓÒ÷ ÷  ñ  ús   ÃC6Ã6C?c                  óÆ   — t        t        j                  d«      d«      } t        j                  «       \  }}|j                  | «       |j                  j                  «        y )Nrh   r  )rç  r@   rB   r>   r?   rE   r*  rÈ  )rÑ   rF   r„   s      r$   Útest_imshow_quantityndr   Z  s>   € ä
”R—W‘W˜V“_ cÓ
*€CÜ�l‰l‹n�G€CˆØ‡I�Iˆc„Nà‡J�J‡O�OÕr'   c                 ó”  — t        j                  ddt         j                  ¬«      }d|dd…d d …f<   t         j                  j	                  |d¬«      }d	|j
                  dd…dd…f<   t        j                  d
   j                  d¬«      }| j                  «       }|j                  |t        j                  dd¬«      dd|¬«      }|j                  t        j                  dd¬«      «       |j                  |t        j                  dd¬«      dd|¬«      }|j                  t        j                  dd¬«      «       |j                  dd¬«       |j                  «       }|j                  |t        j                  dd¬«      dd|¬«       |j                  |t        j                  dd¬«      dd|¬«       |j                  dd¬«       y )Nr5   r2   r6   rs   r   r   F)r{  Tr"  Úwr×  rþ   rp  rd  r]   )rF  r"  r<   r�  r,  )r3   rˆ   r3   rˆ   ©r   rˆ   r°  )r@   r
  r±  rZ  r^   r{  rM  rX  rY  r?   rE   r   r  rÛ  rÜ  r´  )r”   r•   rÂ   Úmasked_datar�  r„   rê   s          r$   Útest_norm_changer%  c  s�  € ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Lä—%‘%—+‘+˜d¨�+Ó/€KØ!%€K×Ñ�Q�q�S˜!˜A˜#�XÑä�=‰=˜Ñ#×1Ñ1¸Ð1Ó<€Dà	×	Ñ	Ó	€BØ	�‰�4œfŸn™n°#¸AÔ>Ø&°iÀdð 
ó 
L€Bà‡K�K”× Ñ  b¨qÔ1Ô2Ø	�‰�;¤V§^¡^¸À1Ô%EØ(¸	Èð 
ó 
N€Bà‡K�K”× Ñ  b¨qÔ1Ô2Ø‡F�F�˜g€FÔ&à	×	Ñ	Ó	€BØ‡I�Iˆdœ×)Ñ)¨r¸Ô:Ø!°Àð ô Gà‡I�Iˆk¤× 0Ñ 0°b¸qÔ AØ#°9À4ð ô Ià‡F�F�˜g€FÕ&r'   rx   c                 ó.  — t        j                  d|t         j                  ¬«      }d|dd…d d …f<   | j                  «       }|j	                  |t        j                  d|j                  «       ¬«      dd	¬
«       t        j                  d|t         j                  ¬«      }d|dd…d d …f<   |j                  «       }t        j                  d	   j                  d¬«      }|j	                  |t        j                  d|j                  «       ¬«      d|¬
«       y )Nr5   r6   g@Œµx¯Dr   r   r2   rp  r]   r"  )rF  r<   r�  iè  r"  r×  )r@   r
  r±  r?   rE   r   r  r;  rM  rX  rY  rÜ  )r”   r•   rx   rÂ   r„   r�  s         r$   Útest_huge_range_logr'    sä   € ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BØ‡I�IˆdœŸ™¨Q°T·X±X³ZÔ@Ø%¨Ið ô 7ô �7‰7�6˜1¤B§J¡JÔ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BÜ�=‰=˜Ñ#×1Ñ1¸Ð1Ó<€DØ‡I�Iˆdœ×)Ñ)¨q°t·x±x³zÔBØ%¨Dð õ 2r'   c           
      óR  — | j                  dd«      }|j                  dd«      }ddgddggddgddggddgddggf}g d¢}t        t        ||«      «      D �]O  \  }\  }}||   j                  |«       ||   j	                  |«       ||   j                  |«       ||   j                  |dddddd¬	«       ||   j                  d
d«       ||   j                  dd
«       ||   j                  j                  «        ||   j                  j                  d«       ||   j                  j                  d«       ||   j                  j                  t        j                  dg d¢d¬«      «       ||   j                   j                  t        j                  dg d¢d¬«      «       �ŒR y )Nr2   r9   r   )rB   rA   Úmixedr]   r  rÏ   ÚGreys)r<   r%  rr   r�  r$  r#  rÒ  r4  gÍÌÌÌÌÌð?rQ  r8  )r2   r   r3   rˆ   T)ÚnbinsÚstepsÚinteger)r?   Ú	enumeraterx  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   r2  s	            r$   Útest_spy_boxr=  “  s¢  € ð ×Ñ  1Ó%€GØ×Ñ˜a Ó#€Fð ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�Ðð€Iò
 -€Kä"¤3 y°+Ó#>Ó?ó 
‰ˆ‰:ˆAˆuØ�‰
×Ñ˜UÔ#Ø�‰
�‰�qÔØˆq‰	×Ñ˜EÔ"Øˆq‰	×Ñ˜¨)Ø#*°7ÀØ!"¨ð 	ô 	,ð 	ˆq‰	×Ñ˜4 Ô%Øˆq‰	×Ñ˜3 Ô%Øˆq‰	�‰× Ñ Ô"Øˆq‰	�‰×Ñ˜dÔ#Øˆq‰	�‰×*Ñ*¨6Ô2Øˆq‰	�‰×)Ñ)Ü×Ñ aª}ÀdÔKô	
ð 	ˆq‰	�‰×)Ñ)Ü×Ñ aª}ÀdÔKö	
ñ
r'   znonuniform_and_pcolor.pngc                  ó˜  — t        j                  d¬«      j                  ddd¬«      } t        | ddg«      D ]„  \  }}t	        ||¬«      }|j                  t        j                  d«      d	z  t        j                  d«      d	z  t        j                  d
«      j                  d«      «       |j                  |«       Œ† | d	   j                  t        j                  d«      d	z  t        j                  d«      d	z  t        j                  d
«      j                  d«      «       | D ]$  }|j                  «        |j                  d¬«       Œ& y )Nr¥  r†  r9   T)ÚsharexÚshareyr]   r=   r;   r   r8  r4   r#  )r±  )r>   rt   r?   rx  r   r<  r@   rv   r(  r=  Ú
pcolorfastrF  r´  )r¨   r„   r<   rê   s       r$   Útest_nonuniform_and_pcolorrB  ´  s
  € ä
�*‰*˜VÔ
$×
-Ñ
-¨a¸ÀTÐ
-Ó
J€CÜ   y°*Ð&=Ó>ò ÑˆˆMÜ˜R¨}Ô=ˆØ
�‰”B—I‘I˜a“L AÑ%¤r§y¡y°£|°qÑ'8Ü—I‘I˜a“L×(Ñ(¨Ó0ô	2à
�‰�RÕð	ð
 ˆ�F×ÑÜ
�	‰	�!‹˜Ñœ2Ÿ9™9 Q›<¨1Ñ,¬b¯i©i¸«l×.BÑ.BÀ6Ó.JôLàò ˆØ
�‰Ôà
�‰�GˆÕñr'   znonuniform_logscale.pngc                  óz  — t        j                  dd¬«      \  } }t        d«      D �]  }||   }t        |«      }|j	                  t        j                  dd«      dz  t        j                  dd«      dz  t        j                  d«      j                  d«      «       |j                  dd«       |j                  dd«       |j                  d«       |dk(  r&|j                  d	d¬
«       |j                  d	d¬
«       |dk(  r&|j                  d	d¬
«       |j                  d	d¬
«       |j                  |«       �Œ y )Nr9   r2   )ÚncolsÚnrowsr4   r   r8  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_logscalerJ  Ä  s  € ä�\‰\ ¨Ô+�F€A€sä�1‹Xó ˆØ�‰VˆÜ˜RÓ ˆØ
�‰”B—I‘I˜a “O qÑ(¬"¯)©)°A°q«/¸QÑ*>Ü—I‘I˜a“L×(Ñ(¨Ó0ô	2à
�‰�A�rÔØ
�‰�A�rÔØ
×Ñ˜!ÔØ�Š6Ø�M‰M˜% aˆMÔ(Ø�M‰M˜% aˆMÔ(Ø�Š6Ø�M‰M˜% aˆMÔ(Ø�M‰M˜% aˆMÔ(Ø
�‰�RÖñ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   j                  dd¬«      }|j                  «       }|d   j                  |d|dd¬«       |d   j                  |dz  d z
  |dz  d z   «       |d   j!                  |dz  dz   |dz  d	z
  «       |d   j                  |d|dd¬«       |d   j                  |d!d"|dd¬#«       |d$   j                  |d!d%|dd¬#«       y )&Nr   )ç      @rL  FT)rk   r?  r@  Úconstrained_layoutéú   rs   rþ   rˆ   éK   rÄ  r2   r  rm   rn   g    €„.AéF   éZ   g    €„.Ár/  éÃ   é×   ÚRdBu_rÚyellowÚcyan)rL  rM  r   r]   g333333ó¿rO  )r<   r�  r$  r#  é   r�   rÂ   )r<   Úinterpolation_stager�  r$  r#  r9   rÇ  )r>   r?   r@   rB   rv   r1  Úsqrtrw   r3  r‘   rb  rX  rY  rã  rE   r›   rœ   )rF   r¨   rz  Úaarx   ry   r`   r8  ÚRÚf0rö   r–  r�  s                r$   Útest_rgba_antialiasr]  Ù  sØ  € ä�|‰|˜A˜q¨*¸UØ#(¸TôC�H€Cˆà€AÜ	�‰�!�Q�‹€BØ€B�sˆ€sŠA€v�Jä
�	‰	�!‹�qÑ˜3Ñ€AÜ
�	‰	�!‹�qÑ˜3Ñ€Aä�;‰;�q˜!Ó�D€A€qÜ
�‰��1‘�q˜!‘t‘Ó€AØ	€BØ
€Aä
�‰Œr�u‰u�q‰y˜B ™F Q¨¨A©¡X°¡\Ñ1Ñ2Ó3€Að .0€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*Ø-.€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*ØšœC  !¡›H™I˜‘€B‚qŒ#ˆa�‰c‹(‰)€|Ñô —v‘v€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆc�#ˆg€~ÑØ€B€rˆ"€uˆc�#ˆg€~Ñä�=‰=˜Ñ"×0Ñ0°hÀfÐ0ÓM€Dà
�+‰+‹-€Càˆ�F‡M�M�" I°D¸tÈ#€MÔ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ð ˆ�F‡M�M�" FÀØ $¨Sð ô 2ð
 ˆ�F‡M�M�" FÀØ $¨Sð õ 2r'   c                 ó  — t         j                  j                  d«       t         j                  j                  dd«      }|j	                  «       }|j                  |ddd¬«       | j	                  «       }|j                  |ddd¬«       y)	z[
    Show that interpolation_stage='auto' gives the same as 'data'
    for upsampling.
    é*N,r4   r=   r"  rÂ   ©r<   r�  rX  r�   N©r@   rŽ   r�   r�   r?   rE   ©r”   r•   Úgridr„   s       r$   Ú!test_upsample_interpolation_stagerd    sz   € ô ‡I�I‡N�N�:Ôä�9‰9�>‰>˜!˜QÓ€DØ	×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð ô *ð 
×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð õ *r'   c                 ó  — t         j                  j                  d«       t         j                  j                  dd«      }|j	                  «       }|j                  |ddd¬«       | j	                  «       }|j                  |ddd¬«       y)z]
    Show that interpolation_stage='auto' gives the same as 'rgba'
    for downsampling.
    r‹   rÇ  r�   r"  rÇ  r`  Nra  rb  s       r$   Ú#test_downsample_interpolation_stagerf  !  sz   € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜#˜sÓ#€DØ	×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð ô *ð 
×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð õ *r'   c                  óR  — dD ]N  } t        j                  d| i«      5  t        j                  ddgg«      j	                  «       | k(  sJ ‚	 d d d «       ŒP dD ]7  } t        j                  t        «      5  | t         j                  d<   d d d «       Œ9 y # 1 sw Y   Œ—xY w# 1 sw Y   ŒPxY w)N©rÂ   rÇ  zimage.interpolation_stager2   r   )ÚDATAÚfooN)	rM  Ú
rc_contextr>   rE   Úget_interpolation_stagerp  rq  r  r   )Úvals    r$   Útest_rc_interpolation_stagern  4  s°   € Øò IˆÜ�^‰^Ð8¸#Ð>Ó?ñ 	IÜ—:‘:  1˜v˜hÓ'×?Ñ?ÓAÀSÒHÐHÑH÷	Ið 	IðIð %ò <ˆÜ�]‰]œ:Ó&ñ 	<Ø8;ŒC�L‰LÐ4Ñ5÷	<ð 	<ñ<÷	Ið 	Iú÷	<ð 	<ús   �,BÁ2BÂB	ÂB&	z<ignore:Data with more than .* cannot be accurately displayedzdim, size, msg)Úrowi  € z2\*\*23 columns)Úcoli   z2\*\*24 rowsc           	      ó’  — | j                  «       }|j                  «       }t        j                  d|dz   f«      }	d|	d d …|	j                  dz  d …f<   |dk(  r|	j                  }	|j                  |	ddddd|¬«      }
t        j                  t        d	|› d
�¬«      5  t        j                  «       5 }| j                  |«       d d d «       d d d «       t        j                  d|dz  dz   f«      }	d|	d d …|	j                  dz  d …f<   |dk(  r|	j                  }	|j                  |	ddddd|¬«      }
y # 1 sw Y   ŒpxY w# 1 sw Y   ŒtxY w)Nr2   r   rp  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   rp  r¢  r£  r   r€   r�   )r”   r•   Údimrr  Úmsgrr   Úhigh_memoryr9  r:  r^   rê   r…   s               r$   Útest_large_imagerv  ?  sU  € ð ×ÑÓ!€GØ×ÑÓ€Fä�H‰H�a˜ ™�]Ó#€EØ!"€EŠ!ˆU�Z‰Z˜1‰_ÑÐ
ÑØ
ˆe‚|Ø—‘ˆØ	�‰˜ A¨AØ%¨lØ&,Ø%ð 
ó 
'€Bô
 
�‰”kØ2°3°%ð 8.ð .ô
/ñ %ô �Z‰Z‹\ð 	%˜Và×Ñ˜VÔ$÷	%÷%ô �H‰H�a˜ ™ Q™Ð'Ó(€EØ!"€EŠ!ˆU�Z‰Z˜1‰_ÑÐ
ÑØ
ˆe‚|Ø—‘ˆØ	�‰�u 1¨1°VØ*Ø%+Ø$ð 
ó 
&�B÷	%ð 	%ú÷%ð %ús$   ÂD=Â0D1ÃD=Ä1D:	Ä6D=Ä=Ec                 óò  — t         j                  j                  dd«      dz  dz   }| j                  dd«      }|d   j	                  |d¬«       |d   j	                  |dd	¬
«       |d   j	                  |d¬«       |d   j	                  |ddd¬«       |d   j	                  |ddd¬«       |j                  dd«      }|d   j	                  |t        j                  «       ¬«       |d   j	                  |t        j                  d	¬«      ¬«       |d   j	                  |t        j                  d¬«      ¬«       |d   j	                  |t        j                  ddd¬«      ¬«       |d   j	                  |dd¬«       t        |d   j                  d   j                  «      t
        j                  u sJ ‚t        j                  t        «      5  |d   j	                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nrˆ   r  rI  r2   r3   r   r&  rE  r»  )rF  r$  r   Úsymlogr9   r  rÅ  )rF  r$  r#  r4   Úlogit)r$  )Ú	linthresh)rz  r$  r#  )r  rÅ  )rF  ÚclimÚfoobar)r@   rŽ   r�   r?   rE   r   r  rœ  ÚtypeÚimagesrF  rp  rq  r  )r”   r•   rª  ÚaxtsÚaxrss        r$   Útest_str_normsr�  g  s¡  € ä
�	‰	�‰�r˜2Ó Ñ# bÑ(€AØ×Ñ˜Q Ó"€DØˆ�G‡N�N�1˜5€NÔ!Øˆ�G‡N�N�1˜5 r€NÔ*Øˆ�G‡N�N�1˜8€NÔ$Øˆ�G‡N�N�1˜8¨"°2€NÔ6Øˆ�G‡N�N�1˜7¨°"€NÔ5Ø×Ñ˜A˜qÓ!€DØˆ�G‡N�N�1œ6Ÿ>™>Ó+€NÔ,Øˆ�G‡N�N�1œ6Ÿ>™>¨rÔ2€NÔ3àˆ�G‡N�N�1œ6×,Ñ,°qÔ9€NÔ:Øˆ�G‡N�N�1œ6×,Ñ,°q¸rÈÔK€NÔLØˆ�G‡N�N�1˜7¨€NÔ2ä��Q‘—‘˜qÑ!×&Ñ&Ó'¬6¯>©>Ñ9Ð9Ð9Ü	�‰”zÓ	"ñ )ØˆQ‰�‰�q˜xˆÔ(÷)÷ )ñ )ús   ÇG-Ç-G6c                  ó   — t        j                  t        j                  j                  t        «       ¬«      } t        j                  t        d¬«      5   | t        j                  d«      d «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d	¬«      5   | t        j                  d«      t        j                  d«      «       d d d «       t        j                  t        d
¬«      5   | t        j                  dt        j                  «      t        j                  d«      «       d d d «       t        j                  t        d¬«      5   | t        j                  d«      t        j                  d«      j                  «       d d d «       t        j                  d«      }d|j                  _        t        j                  t        d¬«      5   | t        j                  d«      |«       d d d «       y # 1 sw Y   �Œ|xY w# 1 sw Y   �Œ6xY w# 1 sw Y   �ŒðxY w# 1 sw Y   �ŒªxY w# 1 sw Y   �ŒdxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¾xY w# 1 sw Y   y xY w)Nr&  zincompatible function argumentsr  ©r8  r8  zdifferent dimensionalities)r8  r8  r4   z3D input array must be RGBA)r8  r8  r9   z3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)Ú	functoolsÚpartialrM  Ú_imageÚresampler   rp  rq  rr  r@   rA   r  rD   rÝ  ÚflagsÚ	writeable)r‡  r‹  s     r$   Útest__resample_valid_outputrŠ  }  s;  € Ü× Ñ ¤§¡×!4Ñ!4ÄÃ
ÔK€HÜ	�‰”yÐ(IÔ	Jñ )Ù”—‘˜&Ó! 4Ô(÷)ä	�‰”zÐ)EÔ	Fñ 8Ù”—‘˜&Ó!¤2§8¡8¨IÓ#6Ô7÷8ä	�‰”zÐ)EÔ	Fñ 8Ù”—‘˜)Ó$¤b§h¡h¨vÓ&6Ô7÷8ä	�‰”zÐ)FÔ	Gñ ;Ù”—‘˜)Ó$¤b§h¡h¨yÓ&9Ô:÷;ä	�‰”zÐ)GÔ	Hñ ;Ù”—‘˜)Ó$¤b§h¡h¨yÓ&9Ô:÷;ä	�‰”zÐ);Ô	<ñ ?Ù”—‘˜&¤"§(¡(Ó+¬R¯X©X°fÓ-=Ô>÷?ä	�‰”zÐ)?Ô	@ñ 7Ù”—‘˜&Ó!¤2§8¡8¨FÓ#3×#5Ñ#5Ô6÷7ô �(‰(�6Ó
€CØ€C‡I�IÔÜ	�‰”zÐ)IÔ	Jñ (Ù”—‘˜&Ó! 3Ô'÷(ð (÷#)ñ )ú÷8ñ 8ú÷8ñ 8ú÷;ñ ;ú÷;ñ ;ú÷?ñ ?ú÷7ð 7ú÷
(ð (ús`   ÁK*Â0K7Ã&0LÄ90LÆ0LÇ?L+É:L8ËMË*K4Ë7LÌLÌLÌL(Ì+L5Ì8MÍMc                  ó  —  G d„ dt         «      } t        j                  t        d¬«      5  t        j
                  j                  t        j                  d«      t        j                  d«       | «       «       d d d «       y # 1 sw Y   y xY w)Nc                   ó    — e Zd ZdxZZd„ Zd„ Zy)ú=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‘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   rp  rq  r¥  rM  r†  r‡  r@   rA   )r‘  s    r$   Ú#test__resample_nonaffine_mesh_shaper’  ”  sb   € ô$œ9ô $ô 
�‰”|Ð+IÔ	Jñ 0Ü�
‰
×ÑœBŸH™H VÓ,¬b¯h©h°vÓ.>Ù,Ó.ô	0÷0÷ 0ñ 0ús   «ABÂB
zdata, interpolation, expected)rI  r  r»  )
rI  rI  rI  r  r  r  r  r»  r»  r»  )rI  r»  r  rÄ  rþ   r¡  )	rI  r»  r»  r  rÄ  rÄ  rþ   r¡  r¡  )
rI  rI  g333333Ã?gáz®GáÊ?gHáz®GÑ?g=
×£p=Ò?gR¸…ëQÐ?gÍÌÌÌÌÌÌ?r»  r»  rÆ  )rI  rI  rI  rI  rI  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                  | | j                  «       d   k(  «      rdnd}t        «       j	                  |j
                  d   | j
                  d   z  d¬«      }t        j                  |«      }t        j                  | |||¬«       t        |||¬«       ||z   }t        j                  |«      }t        j                  | |||¬«       t        |||¬«       y )Nr   gü©ñÒMb`?r2   )ÚsxÚsyr;   )Úatol)
r@   r‡  ry  r   r-  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™Ñ.Ô/‰1°T€Dô  “z×'Ñ'¨8¯>©>¸!Ñ+<¸t¿z¹zÈ!¹}Ñ+LÐQRÐ'ÓSÐä—M‘M (Ó+€MÜ
‡O�O�D˜-Ð)9ÈÕWÜ�M 8°$Õ7ð -Ð/?Ñ?Ðä—}‘} XÓ.ÐÜ
‡O�O�DÐ*Ð,?Ø"/õ1äÐ$ h°TÖ:r'   c                  ó¨  — t        j                  «       } t        | «      }t        j                  t
        d¬«      5  |j                  «        d d d «       t        j                  dt        ¬«      j                  d«      }|j                  |«       |j                  «       dk(  sJ ‚|j                  «       |j                  «       k(  sJ ‚y # 1 sw Y   Œ}xY w)Nz"You must first set the image arrayr  rˆ  r6   rõ  )r>   rÖ  r   rp  rq  r¥  Ú	get_shaper@   rv   rí  r(  r<  Úget_sizerø  s      r$   Útest_axesimage_get_shaper¡  Ñ  s—   € ä	�‰‹€BÜ	�2‹€BÜ	�‰”|Ð+OÔ	Pñ Ø
�‰Œ÷ä
�	‰	�"œEÔ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ�<‰<‹>˜VÒ#Ð#Ð#Ø�;‰;‹=˜BŸL™L›NÒ*Ð*Ñ*÷ð ús   »CÃCc                  óò  — t        j                  «       j                  «       } t        j                  d«      j                  d«      }| j                  || j                  ¬«       | j                  «       dk(  sJ ‚| j                  |t        «       j                  d«      | j                  z   ¬«       | j                  «       dk(  sJ ‚| j                  || j                  d¬«       | j                  «       dk(  sJ ‚y )Nr4   rh   r&  r�   r   r2   )r'  r%  )r>   rt   r©  r@   rv   r(  rE   rÌ  Ú
get_aspectr   r-  r)  rØ  s     r$   Ú.test_non_transdata_image_does_not_touch_aspectr¤  Ý  sº   € Ü	�‰‹×	!Ñ	!Ó	#€BÜ	�‰�1‹×	Ñ	˜fÓ	%€BØ‡I�Iˆb˜BŸL™L€IÔ)Ø�=‰=‹?˜fÒ$Ð$Ð$Ø‡I�IˆbœH›J×,Ñ,¨QÓ/°"·,±,Ñ>€IÔ?Ø�=‰=‹?˜aÒÐÐØ‡I�Iˆb˜BŸL™L°€IÔ3Ø�=‰=‹?˜aÒÐÑr'   zdownsampling.png)r   r0   rO   c                  óP  — 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   j                  |	ddd¬«       |d   j                  dd«       |d   j                  dd«       |d   j                  d«       t        |j                  dd  g d¢g d¢«      D ]3  \  }}}|j                  |	||d¬«       |j                  d|› d|› d�«       Œ5 y )NiÂ  rþ   rs   r   r3   ri   rÄ  r2   r  r9   )rE  rü   Ú
compressed©rk   Úlayoutr[  r]   rÇ  rT  )r<   rX  r�  é}   rê  rN  rn  ÚZoom)r]   r]   r‡   r‡   r�   )rÂ   rÇ  rÂ   rÇ  r�   zinterpolation='z	'
space='ú')r@   rv   rB   r1  rY  rw   r3  r‘   r>   r?   rE   r›   rœ   r_   rx  Úflat)rz  rx   ry   rZ  r`   r8  r[  r\  rö   r–  rF   r¨   r„   r~  Úspaces                  r$   Útest_downsamplingr®  è  s?  € ð 	€AÜ
�	‰	�!‹�qÑ˜3Ñ€AÜ
�	‰	�!‹�qÑ˜3Ñ€AÜ	�‰�!�Q�‹€BØ€B�sˆ€sŠA€v�Jä�;‰;�q˜!Ó�D€A€qÜ
�‰��1‘�q˜!‘t‘Ó€AØ	
€BØ€AÜ
�‰Œr�u‰u�q‰y˜B ™F Q¨¨A©¡X°¡\Ñ1Ñ2Ó3€Aà13€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Ø12€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Øš1œc ! a¡%›j™k˜>Ñ*€B‚qŒ#ˆa�!‰e‹*‰+€~ÑØ
€Aä�|‰|˜A˜q¨&¸ÔF�H€CˆØˆ�I×Ñ�Q iÀVØ"ð ô $àˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ˜Ôä  §¡¨!¨" ò 0Câ!IóKò CÑˆˆF�Eð 	�	‰	�! 6¸uØð 	ô 	!à
�‰� v h¨j¸¸¸qÐAÕBñCr'   zdownsampling_speckle.pngc                  ób  — t        j                  dddddd¬«      \  } }|j                  «       }t        j                  d«      j                  dd«      t        j                  d	«      z  d
z  j                  }t        j                  d«      j                  d¬«      }t        j                  dd¬«      }|d   j                  d«       |d   j                  t        j                  |«      ||d¬«       |d   j                  d«       |d   j                  t        j                  |«      ||¬«       y )Nr2   r   )r3   gš™™™™™@Tr¦  )rk   r?  r@  r¨  i   rs   iÐ  rn   r"  r  )rL  r9   rž  rp  r   z"interpolation='auto', stage='rgba'rÇ  )r�  rF  rX  z"interpolation='auto', stage='auto')r�  rF  )r>   r?   rã  r@   rv   r(  rB   rÝ  Úget_cmaprY  r   r  r_   rE   Útriu)rF   r¨   rI   ÚcmrF  s        r$   Útest_downsampling_speckler³    sò   € ä�|‰|˜A˜q¨(¸4ÈØ#/ô1�H€Cˆà
�+‰+‹-€CÜ�I‰I�d‹O×#Ñ# B¨Ó*¬R¯W©W°S«\Ñ9¸bÑ@×
CÑ
C€Cä	�‰�iÓ	 ×	.Ñ	.°CÐ	.Ó	8€BÜ�>‰>˜q rÔ*€Dð
 ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'‘'˜#“, R¨dÈ€MÔOð ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'‘'˜#“, R¨d€MÕ3r'   zupsampling.pngc                  óæ  — t         j                  j                  d«       t         j                  j                  dd«      } t	        j
                  dddd¬«      \  }}|d   j                  | d	¬
«      }|d   j                  d«       |d   j                  | d	d¬«       |d   j                  d«       |d   j                  | d	dd¬«       |d   j                  d«       |j                  ||dd¬«       y )Nr_  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<   rX  z!interpolation='sinc'
stage='rgba'rÅ  rQ  )r„   ÚshrinkrS  )	r@   rŽ   r�   r�   r>   r?   rE   r_   r  )r–  rF   r¨   rê   s       r$   Útest_upsamplingr¸     sÛ   € ô ‡I�I‡N�N�:ÔÜ
�	‰	�‰�q˜!Ó€Aä�|‰|˜A˜q¨(¸<ÔH�H€CˆØ	ˆQ‰�‰�q˜yˆÓ	)€BØˆ�F×ÑØMôOð ˆ�F‡M�M�!˜)°6€MÔ:Øˆ�F×ÑØFôHð ˆ�F‡M�M�!˜)°6Èv€MÔVØˆ�F×ÑÐ9Ô:Ø‡L�L�˜ C°€LÕ7r'   )r±  r  Úint16r²   Úint8rD   Úndim)r   r9   c                 ó8  — t         j                  j                  d«      }|dk(  rdnd}|j                  |¬«      j	                  t        j
                  | d¬«      «      }t        j                  «       \  }}|j                  |«      }|j                  d «      d    y )	NiU  r   rh   )r   r   r9   )rr  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  sz   € ô �)‰)×
Ñ
 Ó
%€CØ˜a’i‰F Y€EØ�;‰;˜Eˆ;Ó"×)Ñ)¬"¯(©(°5¸tÔ*DÓE€DÜ�l‰l‹n�G€CˆØ—‘˜4“€Jà×Ñ˜$Ó Ó"r'   Ú
intp_stagerh  c                 ó,  — | j                  dd«      }|j                  dd«      }d\  }}d}t        j                  j                  ||«      }t        j                  j                  ||d«      }	t        j                  ||df«      }
t        j
                  |	|j                  ||df«      fd¬«      }|d   d   j                  |	«       |d   d   j                  t        j
                  |	|
fd¬«      «       |d   d   j                  |	||¬	«       |d   d   j                  t        j
                  |	||
z  fd¬«      |¬
«       |d   d   j                  |	||¬	«       |d   d   j                  ||¬
«       |d   d   j                  |«       |d   d   j                  |	|¬«       |d   d   j                  |||¬	«       |d   d   j                  t        j
                  |	||j                  ||df«      z  fd¬«      |¬
«       t        j                  j                  ||«      }|d   d   j                  |||¬	«       |d   d   j                  t        j
                  |	|j                  ||df«      |j                  ||df«      z  fd¬«      |¬
«       y )Nr   r9   r¥  rþ   r2   rs   r  r   )rX  rý   )rX  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Ï  H  s   € ð ×Ñ  1Ó%€GØ×Ñ˜q !Ó$€GØ�F€BˆØ€LÜ—)‘)—.‘.  RÓ(€Kô �Y‰Y�^‰^˜B  AÓ&€FÜŸ'™' 2 r¨1 +Ó.ÐÜ�n‰nØ	�×$Ñ$ b¨"¨a [Ó1Ð2¸ô€Gð ˆA�Jˆq�M×Ñ˜Ô ØˆA�Jˆq�M×ÑœŸ™¨Ð1DÐ(EÈBÔOÔPØˆA�Jˆq�M×Ñ˜°ZÀ|ÐÔTØˆA�Jˆq�M×ÑÜ
�‰Ø�\Ð$7Ñ7Ð8¸rô	
à)ð ô ð
 ˆA�Jˆq�M×Ñ˜°ZÀ{ÐÔSØˆA�Jˆq�M×Ñ˜°jÐÔAð ˆA�Jˆq�M×Ñ˜Ô!ØˆA�Jˆq�M×Ñ˜ {ÐÔ3ØˆA�Jˆq�M×Ñ˜°jÈÐÔUØˆA�Jˆq�M×ÑÜ
�‰Ø�\ K×$7Ñ$7¸¸RÀ¸Ó$DÑDÐEÈBô	
à)ð ô ô
 —i‘i—n‘n R¨Ó,€OØˆA�Jˆq�M×Ñ˜°jÈÐÔXØˆA�Jˆq�M×ÑÜ
�‰Ø�[×(Ñ(¨"¨b°!¨Ó5Ø×&Ñ&¨¨B° {Ó3ñ4ð 5Ø;=ô	
ð  *ð	 õ r'   znn_pixel_alignment.pngc                 ó4  — t        j                  dd«      \  }}t        g d¢«      D ]ï  \  }}t        j                  |dz  «      j                  ||f«      dz  }t        j                  d|«      }t        d«      D ]š  }|dk(  r|||f   j                  |dd¬	«       n,|||f   j                  |dd| |||f   j                  z   ¬
«       |||f   j                  «        |||f   j                  |d|ddd¬«       |||f   j                  |d|ddd¬«       Œœ Œñ y )Nr   r9   )r9   rE  rž  r4   rÒ  r   ÚGraysr]   r¶  ©r�  r<   r'  rs   rþ   ré  Údashed©r0  rã  Úls)r>   r?   r.  r@   rv   r(  r~  rE   r)  rF  ÚvlinesÚhlines)r.   rF   r¨   Újrz  rÂ   Úsepsrå  s           r$   Útest_nn_pixel_alignmentrÚ  w  s4  € ä�|‰|˜A˜qÓ!�H€Cˆäš*Ó%ò L‰ˆˆ1ä�y‰y˜˜A™‹×&Ñ&¨¨1 vÓ.°Ñ2ˆÜ�y‰y˜˜qÓ!ˆä�q“ò 	LˆAØ�AŠvà�A�q�D‘	× Ñ  ¨GÀ9Ð ÕMð �A�q�D‘	× Ñ  ¨GÀ9Ø+=ÀÀAÀqÀDÁ	×@SÑ@SÑ+Sð !ô Uð ��1�‰I×"Ñ"Ô$Ø��1�‰I×Ñ˜T 2 q¨S¸À(ÐÔKØ��1�‰I×Ñ˜T 2 q¨S¸À(ÐÕKñ	LñLr'   z!alignment_half_display_pixels.pngc           
      óê  — t        j                  dd¬«      }|j                  d«       g d¢}ddg}g }|D ]G  }t        |«      D ]7  \  }}|dv r|d	z   n|}|j	                  |j                  ||d
dgg g ¬«      «       Œ9 ŒI t        |«      D ]R  \  }	}
|
j                  «       j                  }t        |dd |dd z
  ddd¬«       t        |dz  |	dz  dv rdnddd¬«       ŒT d}t        j                  |dz  «      j                  ||f«      dz  }t        j                  d|«      }t        |«      D ]Ã  \  }	}
|
j                  d«       |	dz  dk\  r| |
j                  z   n|
j                  }|
j                  |d|	dz  dk(  rdnd|	dk\  rdnd|¬«       |
j                  |d|dz
  dd d!¬"«       |
j                  |d|dz
  dd d!¬"«       |
j                   D ]   }|
j                   |   j#                  d#«       Œ" ŒÅ y )$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   r6  g‚vIhÂ%<=)Úrtolr–  r2   r3   rþ   rˆ   r8  rÒ  r  rÕ  r‡   r]   rÏ   ro   ©r�  r<   rr   r'  ré  )r   )r   r4   rÔ  )r   )r3   rˆ   )r>   rt   rš  r.  Ú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á  rz  rÂ   rÙ  r'  Úspines                    r$   Ú"test_alignment_half_display_pixelsrê  Ž  s  € ô  �*‰*˜V¨Ô
-€CØ×Ñ�cÔâ0€HØ�dˆ|€Hà
€CØò RˆÜ Ó)ò 	R‰FˆB�Ø " i¡��f’°RˆBØ�J‰J�s—|‘| R¨¨T°5Ð$9À"ÈR�|ÓPÕQñ	RðRô ˜3“ò ,‰ˆˆ2Ø×&Ñ&Ó(×0Ñ0ˆÜ˜  !˜ w¨q° |Ñ3°R¸aÀeÕLÜ˜ !™¨A°©E°YÑ,>¡SÀAØ Uö	,ð,ð 	€Aä�9‰9�Q˜‘T‹?×"Ñ" A q 6Ó*¨QÑ.€DÜ�9‰9�T˜1Ó€Dä˜3“ò 9‰ˆˆ2Ø
×Ñ˜Ôà9:¸Q¹À!ºÐ&¨¯©Ò5ÈÏÉˆ	Ø
�	‰	�$˜WØ-.°©U°aªZ¡	¸YØ$%¨¢F™°Ø%ð 	ô 	'ð
 	�	‰	�$˜˜a #™g¨#°U¸{ˆ	ÔKØ
�	‰	�$˜˜a #™g¨#°U¸{ˆ	ÔKà—Y‘Yò 	9ˆEØ�I‰I�eÑ×*Ñ*¨<Õ8ñ	9ñ9r'   zimage_bounds_handling.pnggú~j¼t“x?)r   rO   c                 óX  — t        j                  dd«      \  }}d}t        g d¢«      D ]ÿ  \  }}t        j                  |dz  «      j                  ||f«      }||dz  z  |dz  dz  z   }t        «       j                  |dz  dz
  |dz  dz
  d«      }t        d«      D ]Š  }||||f   j                  z   }	|dk(  r| |	z   }	|||f   j                  |d	||	¬
«       |||f   j                  «        t        d||dddd||||f   j                  z   ¬«      }
|||f   j                  |
«       ŒŒ �Œ y )Nr   r9   rž  )r]   r‡   r=   r4   rü   rþ   r2   rÑ  rÒ  )rÒ  rÒ  ré  r:   rÓ  )Ú	edgecolorrŽ  r0  rÕ  r'  )r>   r?   r.  r@   rv   r(  r   Úrotate_aroundr~  r)  rE   rF  r   r½  )r.   rF   r¨   rz  rØ  r<   rÂ   Úrotationrå  r'  Úboxs              r$   Útest_image_bounds_handlingrð  È  sU  € ô �|‰|˜A˜qÓ!�H€Cˆà
€Aä%Ò&HÓIò &Ñˆˆ=Ü�y‰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Ñ6ˆIØ�AŠvà.°Ñ:�	à��1�‰I×Ñ˜T¨¸}Ø'0ð ô 2ð ��1�‰I×"Ñ"Ô$Ü˜L¨!¨QØ&+°vÀ#È(Ø&.°°Q¸°T±×1DÑ1DÑ&DôFˆCð ��1�‰I× Ñ  Õ%ò	&ñ&r'   zrgba_clean_edges.pnggú~j¼t“h?c            
      ó  — t         j                  j                  d«       t         j                  j                  dd«      } t        j                  | | g«      } t         j
                  | ddd…dd…f<   t        «       j                  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
¬«      }||   j                  |«       ||   j                  |«       ||   j                  |«       ||   j                  | |df   dd|||   j                  z   ¬«       ||   j                  «        ||   j!                  dd«       ||   j#                  dd«       ŒÜ y )Nr_  é   r2   r   r4   rL  )ç      @r   r3   Úblackr   )rã  Úzorder)r   r,  ró  rŒ  )ró  r,  r:   rþ   )ÚfcÚecrý   rõ  .r=   rÇ  )r<   rX  r'  g      Àr5  )r@   rŽ   r�   r�   Ústackrb  r   rí  r>   r?   r~  r   Ú	add_patchrE   r)  rF  r›   rœ   )rÂ   rî  rF   r¨   rå  rô  rŒ  Úpartly_blacks           r$   Útest_rgba_clean_edgesrû  ç  sp  € ä‡I�I‡N�N�:ÔÜ�9‰9�>‰>˜!˜QÓ€DÜ�8‰8�T˜4�LÓ!€DÜŸ™€DˆˆAˆaˆC��1�ˆÑä‹z×'Ñ'¨¨S°!Ó4€Hä�|‰|˜A˜qÓ!�H€Cˆä�1‹Xò #ˆä˜) Q¨°ÀÔCˆÜ˜ $¨°ÀÔBˆÜ  ¨Q°°gÀ&Ø'*°1ô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                  óD  — t        j                  dd«      \  } }d}t        j                  |dz  «      j	                  ||f«      dz  }t        «       t        «       j                  d| dz   «      j                  dd«      t        «       j                  | dz   d«      j                  dd«      g}t        d«      D ]æ  }t        d«      D ]Ö  }|dk(  rdnd}|||f   j                  |d	d
|||   |||f   j                  z   ¬«       |||f   j                  «        |||f   j                  d|dz
  gdddd¬«       |||f   j                  d|dz
  g|dz
  |dd¬«       |||f   j                  d|dz
  gdddd¬«       |||f   j                  d|dz
  g|dz
  |dd¬«       ŒØ Œè y )Nr   r9   rE  r   r2   rs   rÏ   ro   rÑ  r‡   rß  rÒ  rþ   ré  )r0  rã  )r>   r?   r@   rv   r(  r   Ú	translater-  r~  rE   r)  rF  rÖ  r×  )rF   r¨   rz  rÂ   r'  rØ  rå  rr   s           r$   Útest_affine_fill_to_edgesrþ    sÒ  € ô �|‰|˜A˜qÓ!�H€Cˆà	€AÜ�9‰9�Q˜‘T‹?×"Ñ" A q 6Ó*¨QÑ.€Dä“Ü“×%Ñ% a¨!¨¨a©Ó0×6Ñ6°q¸"Ó=Ü“×%Ñ% q b¨1¡f¨aÓ0×6Ñ6°r¸1Ó=ð?€Iô �1‹Xò MˆÜ�q“ò 	MˆAØ ! Q¢‘W¨GˆFà��1�‰I×Ñ˜T¨Ø+4¸VØ'0°¡|°c¸!¸Q¸$±i×6IÑ6IÑ'Ið ô Kð ��1�‰I×"Ñ"Ô$Ø��1�‰I×Ñ˜d A¨¡G˜_¨b°!¸À5ÐÔIØ��1�‰I×Ñ˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÔLØ��1�‰I×Ñ˜d A¨¡G˜_¨b°!¸À5ÐÔIØ��1�‰I×Ñ˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÕLñ	MñMr'   )±Ú
contextlibr   r„  r   r®   Úpathlibr   r  r  Úurllib.requestr  Únumpyr@   Únumpy.testingr   r   ÚPILr   Ú
matplotlibrM  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Útickerr6  rp  Úfixturer.   rJ   rc   ÚmarkÚparametrizer|   r†   r™   r�   r©   rµ   r·   rÇ   rÎ   rÕ   rÚ   rß   rë   rù   r  Úcontextr  r  r3  r?  rb  rC  rH  rX  ra  rj  rl  rt  rx  r{  r„  r—  r›  r£  r«  r·  rÂ  rÏ  rÓ  rÙ  rÝ  ræ  rò  rù  rü  rv   r(  r  r  r  r(  rA  rC  rI  r_  rd  rg  rl  Úmachiner  r�  Úsplitr7   rŒ  r�  r–  r˜  rÜ  r  r¨  r¬  r²  r´  r¶  r¼  rÂ  rÅ  rÌ  rÑ  rÓ  rà  rå  r	  rç  r  r   r%  r'  r=  rB  rJ  r]  rd  rf  rn  Úfilterwarningsrv  r�  rŠ  r’  r^   ÚNEARESTÚBILINEARr
  r	  rà  rÝ   r‘   r�  r¡  r¤  r®  r³  r¸  rÂ  rÏ  rÚ  rê  rð  rû  rþ  )r  s   0r$   ú<module>r     s�  ðÝ  Û Û 	Û 	Ý Û Û 
Û ã ß =Ý ã ÷F÷ Få /÷<õ <å (ß Oß LÓ LÝ #ã ð ‡�ñ(ó ð(ñ Ð%Ð&°DÀÔPñ	.ó Qð	.ñ Ð+Ð,°#Ø# U˜^¸ÀWôNñ+óNð+ð  ‡�×ÑÐ,¨u°d¨mÓ<Ù�:�,¨E°5¨>ÀÔQñBó Ró =ðBòð ‡�×ÑØ'òóñ Óñ.ó óð.ñ Óñó ðñ" Óñ	)ó ð	)ò$ò$ð ‡�×Ñ˜Ò >Ó?ñ-ó @ð-òDð, ‡�×Ñ˜ G¨WÐ#5Ó6ñ@ó 7ð@ð ‡�×Ñ˜Ò BÓCñKó DðKò*ò2)ò4ñ �=�/¨t¸?ÔKñ6ó Lð6ð ‡�×Ñ�7ÓÙÓñó ó ðð0 ‡�×ÑÐ@ò3ó4ñ0ó4ð0ò*B+ðJ ‡�×Ñ˜à	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØˆ#€Y�ÐØ	ˆ2€Y�Ðð	&ó 
ñPó
ðPð& ‡�×ÑØØ�%ˆ.Ð	˜=Ð)Ø�ˆ,ˆ˜Ð#Ø�6‰6�1�aˆ.Ð	˜4Ð Øˆgˆ,ˆÐ/Ð0Øˆrˆ(ˆ�XÐØˆaˆ&ˆ�8ÐðóñDóðDòJð ‡�×ÑØØ�5ˆ>Ð
˜a ˜V˜HÐ	%Ð';Ð<Ø�$ˆ<ˆ.˜C ˜8˜*Ð	%Ð'7Ð8Ø�F‰F�A�qˆ>Ð
šY˜KÐ	(¨$Ð/ðóñDóðDñ< �<�.¨Ô0ñó 1ðñ Ð#Ð$¨GÔ4ñó 5ðñ Óñó ðòòñ Ð,Ð-¸4ÀÔWñIó XðIñ �=�/¨u°e¨nÈ$Ø'ô)ñó)ðòFñ8 Ð/Ð0Ø"¨'ô3ñó3ðñ Ð*Ð+¸À_Øôñóðñ4   Ô(ñ%ó )ð%ñ Ð$Ð%Ø# U˜^¸ÀWôNñ!óNð!ñ: Ð(Ð)°tÀ7ÔKñó Lðò0 GñF Ð3Ð4Ø"¨'ô3ñó3ðòò!òò'ò0-ò-ð ‡�×ÑØØ	Ø	ˆ�‰�2‹˜	˜Ÿ	™	 "› y r§y¡y°£~×'=Ñ'=¸fÓ'Eð	Gà	Ø	ˆ�‰�2‹˜	˜Ÿ	™	 "› y r§y¡y°£}×'<Ñ'<¸VÓ'Dð	Fðóñ1óð1òòBñ Ð$Ð%°4¸ÔOñó Pðñ �>Ð"°¸OÔLñó Mðò6	%ò3ñ( Ð.Ð/¸TØ'¨Sô2ñ>ó2ð>ñ> �<�.¨d¸/ÔJñ+ó Kð+ò"ñ Ð)Ð*¸ÀOÔTñ
*ó Uð
*ñ Ð0Ð1Ø+˜8×+Ñ+Ó-°Ò9‘a¸tØ"¨'ô3ñó3ðòD&ð ‡�×ÑØÐ#9×#?Ñ#?Ó#AÖB˜aˆhˆb�h‰h�q�kÒBóDñ%óDð%ñ& Ð)Ð*¸ÀGÔLñó Mðñ Ð*Ð+¸ÀWÔMñó Nðñ Ð/Ð0Ø"¨'ô3ñó3ðð ‡�×ÑØØ×ÑØ‡^�^Ù!Ù ð"ó#ñ	1ó#ð	1òòòDò
ð ‡�×Ñ˜Ø0Ð2DÐEóGà‡�×ÑÐ0°9¸jÐ2IÓJñ2ó KóGð2ò 4ò	Dò9ñ$ Ò 5Ô6ñ-ó 7ð-ò$3ð
 ‡�×Ñ�7Óñ4ó ð4ñ6 Ð$Ð%°5¸%°.Ø"¨'ô3ñ
ó3ð
ô"9%�—’ô 9%òx	 òñ Óñ'ó ð'ð6 ‡�×Ñ˜˜r 1˜gÓ&ÙÓñ2ó ó 'ð2ñ$ Óñ
ó ð
ñ@ Ð.Ð/°wÔ?ñó @ðñ Ð,Ð-°WÔ=ñó >ðñ( Ð'Ð(°ÀTÔJñ02ó Kð02ñf Óñ*ó ð*ñ& Óñ*ó ð*ò$<ð ‡�×Òð =ó >à‡�×Ñ˜ G¨WÐ#5Ó6Ø‡�×ÑØÒ9Ú6ð8ó9ñ Óñ&ó ó9ó 7ó>ð&ñB Óñ)ó ð)ò*(ò.0ð" ‡�×ÑÐ8Ø€b‡h‚h’Ð Ó! 6§>¢>Ø€b‡h‚hÒBÐCÓDðFà€b‡h‚hÒ.Ð/Ó0°&·.².Ø€b‡h‚hÒ=Ð>Ó?ðAà€b‡h‚h’Ð Ó! 6§?¢?Ø€b‡h‚hÒKÐLÓMðOà€b‡h‚h��c�
ˆ|Ó˜fŸošoØ€b‡h‚hò Gð Hó IðJð €b‡h‚h��c�
ˆ|Ó˜fŸošo¨w¨r¯wªw°wÀÓ/DÐEà€b‡h‚h��c�
ˆ|Ó˜fŸnšnØ€b‡n‚n�g�b—g’g˜c 3Ó'¨¨¯ª°°cÓ):Ð;Ó<×DÑDÀQÈÓKðMà€b‡h‚h��c�
ˆ|Ó˜fŸošoØ€b‡n‚n�g�b—g’g˜c 3Ó'Ø!�b—k’k # s¨CÓ0×7Ò7¸Ó<¸sÑBÀSÑHÈ3ÑNØ�b—g’g˜c 3Ó'ð)ó *ç*1©'°!°R«.ð:ðóñ(;ó)ð(;ò0	+ò ñ Ð%Ð&¨gÀ4Ø+˜8×+Ñ+Ó-°Ò9‘a¸tôEñCóEðCñB Ð-Ð.°gÈ4ÔPñ4ó Qð4ñ( ØÐ˜g°4ô9ñ8ó9ð8ð* ‡�×ÑØØ>óð ‡�×Ñ˜ Ó(ñ	#ó )ó	ð
	#ð ‡�×Ñ˜Ð'7Ó8ÙÒ 5Ô6ñ*ó 7ó 9ð*ñZ Ð+Ð,°OÔDñLó EðLñ, Ð6Ð7¸wÔGñ69ó Hð69ñr Ð.Ð/°ÈEÔRñ&ó Sð&ñ< Ð)Ð*°/ÀuÔMñ#ó Nð#ñ: Ð-Ð.°oÔFòMó GñMùòi Cs   Õl
