
    h0                        S SK Jr  S SKJr  S SKrS SKrS SKrS SKJr  S SKrS SK	r	S SK
rS SKrS SKJr  S SKJr  S SKrS SKJrJrJrJrJrJr  S SKJrJrJrJ r J!r!  S S	K"J#r#J$r$  S S
K%J&r&J'r'J(r(  S SK)J*r+  S SK,r,\$" S/SS9S 5       r-\$" S/SS/SS9S 5       r.\,R^                  Ra                  SSS/5      \$" S/SS/S9S 5       5       r1S r2\,R^                  Ra                  S/ SQ5      \#" S/S9S 5       5       r3\#" S/S9S 5       r4\#" 5       S 5       r5S  r6S! r7\,R^                  Ra                  S"/ S#Q5      S$ 5       r8\,R^                  Ra                  S%S&S'/5      S( 5       r9\,R^                  Ra                  S"/ S)Q5      S* 5       r:S+ r;S, r<S- r=\$" S./SS9S/ 5       r>\R4                  R                  S05      \#" S/S9S1 5       5       r@S2 rA\,R^                  Ra                  S3S4S4/S /S4S5/S6/S7S4/S8/S9S4/S8/S:S;/S</S=S4/S/S4S=/S//5      S> 5       rB\,R^                  Ra                  S?S@SA//SB4SCSD//SE4\R                  S6SF//SG4S6SH//SI4S=S=//SJ4S S //SK4/5      SL 5       rD\$" SM/S0SN9SO 5       rE\$" SP/S0SN9SQ 5       rF\#" S/S9SR 5       rGSS rHST rI\$" SU/SS9SV 5       rJ\$" SW/SSS/SX9SY 5       rKSZ rL\$" S[/SS0S\9S] 5       rM\$" S^/SS9S_ 5       rN\#" S/S9S` 5       rO\$" Sa/SS/SS0Sb9Sc 5       rP\$" Sd/SS0S\9Se 5       rQSf rR\$" Sg/SS0S\9Sh 5       rSSi rTSj rUSk rVSl rWSm rXSn rY\,R^                  Ra                  So\ \R                  " Sp5      \R                  " Sq5      \R                  " Sr5      R                  Ss5      4\!\R                  " Sp5      \R                  " Sq5      \R                  " St5      R                  Su5      4/5      Sv 5       r\Sw r]Sx r^\$" Sy/SS9Sz 5       r_\$" S{/SS9S| 5       r`S} raS~ rb\$" S/SSS9S 5       rc\$" S/SS9S 5       rdS re\$" S/SS9S 5       rf\$" S/\R                  " 5       S:X  a  S OSSS0S9S 5       rhS ri\,R^                  Ra                  SSR                  5        V s/ s H  n \R                  U 5      PM     sn 5      S 5       rl\$" S/SS0S\9S 5       rm\$" S/SS0S\9S 5       rn\$" S/SS0S\9S 5       ro\,R^                  Ra                  S\R                  \R                  S S /5      S 5       rrS rsS rtS ruS rv\,R^                  Ra                  SSS/5      \,R^                  Ra                  SSS/5      S 5       5       rwS rxS ryS rzS r{\#" 5       S 5       r|S r}\R4                  R                  S05      S 5       r~\$" S/SS/SS0Sb9S 5       r " S S\GR                   5      rS rS r\#" S/S9S 5       r\,R^                  Ra                  SS=S6/5      \#" S/S9S 5       5       r\#" 5       S 5       r\$" S/S0SN9S 5       r\$" S/S0SN9S 5       r\$" S/S0SSS9S 5       r\#" SS9S 5       r\#" SS9S 5       rS r\,R^                  GR                  S5      \,R^                  Ra                  S%S&S'/5      \,R^                  Ra                  S/ SQ/ SQ/5      \#" SS9S 5       5       5       5       r\#" S/S9S 5       rS rS rS r\$" S/S0SSS9S 5       r\$" S/S0SSS9S 5       r\$" S/S0SS9S 5       r\,R^                  Ra                  SS5      \,R^                  Ra                  SS5      S 5       5       r\,R^                  Ra                  SS5      \#" 5       S 5       5       rgs  sn f )    )	ExitStackcopyN)Path)assert_array_equal)Image)colorsimagepatchespyplotstylercParams)	AxesImage	BboxImageFigureImageNonUniformImagePcolorImage)check_figures_equalimage_comparison)BboxAffine2DTransformedBboxzinterp_alpha.pngT)remove_textc                  N   [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  " S5      US'   [        R
                  " [        R                  " S[        R                  S95      US'   UR                  USS	9  UR                  US
S	9  g)z:Test the interpolation of the alpha channel on RGBA images      )   r      r   r   ).r   dtype.   noneinterpolationbilinearN)pltsubplotsnpzerosonestriluint8imshow)figaxlaxrimgs       M/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_image.pytest_alpha_interpr5      sz     ll1a(OC#
((9
C''&/CK''"''&9:CKJJs&J)JJs*J-    interp_nearest_vs_nonepdfsvg)
extensionsr   c                  4   S[         S'   [        R                  " / SQ/ SQ// SQ/ SQ//[        R                  S9n [        R
                  " SS	5      u  nu  p#UR                  U S
S9  UR                  S5        UR                  U SS9  UR                  S5        g)z5Test the effect of "nearest" and "none" interpolationr#   savefig.dpi)          )z   g      )      r   )rD   c   G   r    r   r   r$   r%   zinterpolation nonenearestzinterpolation nearestN)r   r*   arrayr.   r(   r)   r/   	set_title)Xr0   ax1ax2s       r4   test_interp_nearest_vs_nonerM   (   s      H]
>?3 -029;	CAll1a(OC#JJqJ'MM&'JJq	J*MM)*r6   suppressCompositeFfigimagepng)r:   c                 6   [         R                  " SSS9nXl        [        R                  " [        R
                  " S5      S-  [        R
                  " S5      S-  5      u  p#[        R                  " US-  US-  -   X#-  -
  5      n[        R                  " SUS-  -  SUS-  -  -   5      nXES-  -   nUR                  US	S	S
S9  UR                  US S S2S S 24   S	SS
S9  UR                  US S 2S S S24   SS	S
S9  UR                  US S S2S S S24   SSS
S9  g )Nr   r   d   figsizedpig      Y@r      2   r   r   lower)xoyoorigin)r(   figurerN   r*   ix_arangesinrO   )rN   r0   xyzcr3   s          r4   test_figimagerf   :   s    **V
-C-66"))C.5("))C.3*>?DA
q!tad{QS !A
r!Q$wAqD !A
c'CLLqL1LLTrT1W!GL<LLQ"W#!GL<LLTrT4R4ZSSLAr6   c                      [         R                  " 5       u  pUR                  / SQ5        [        R                  " 5       nU R                  U5        UR                  S5        [         R                  " U5        g )N)r   r   r#   r   )r(   r)   plotioBytesIOsavefigseekimread)r0   axbuffers      r4   test_image_python_iorp   J   sI    llnGCGGIZZ\FKK
KKNJJvr6   z!img_size, fig_size, interpolation))r   r   hanning)r   r   rG   )r   
   rG   )r#   333333@rq   )r#   g333333"@rG   c                    [         R                  R                  S5        [        R                  S   n[         R                  R                  [        XR-  5      [        XR-  5      5      nX4 H  nUR                  X35        M     U R                  5       nUR                  / SQ5        UR                  USS9  UR                  5       nUR                  / SQ5        UR                  XdS9  g )N!N,r<   r   r   r   r   autor%   )r*   randomseedr(   r   randintset_size_inchesr)   set_positionr/   )	fig_testfig_refimg_sizefig_sizer&   rV   Ar0   rn   s	            r4   test_imshow_antialiasedr   S   s     IINN8
,,}
%C
		s3>*C,?@A"H/ #				BOOL!IIavI&				BOOL!IIaI-r6   c                 (   [         R                  R                  S5        [        R                  S   n[         R                  R                  [        US-  5      [        US-  5      5      nX4 H  nUR                  SS5        M     U R                  5       nUR                  USS9  UR                  SS/5        UR                  SS/5        UR                  5       nUR                  US	S9  UR                  SS/5        UR                  SS/5        g )
Nru   r<   r#   rs   rw   r%   rr   rW   rG   )r*   rx   ry   r(   r   rz   r{   r|   r)   r/   set_xlimset_ylim)r~   r   rV   r   r0   rn   s         r4   test_imshow_zoomr   k   s     IINN8
,,}
%C
		s37|Sq\2A"C% #				BIIavI&KKRKKR				BIIayI)KKRKKRr6   c                 $   [         R                  " S5        [        [        5      R                  S-  n[        [        5      R                  S-  nU R                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        UR                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        g )Ndefault%baseline_images/pngsuite/basn3p04.png%baseline_images/test_image/uint16.tifr   r   r   )r   user   __file__parentr)   r/   r   openr(   rm   )r~   r   png_path	tiff_pathaxss        r4   test_imshow_pilr   }   s    	IIiH~$$'NNHX%%(OOI


A
CFMM%**X&'FMM%**Y'(


1
CFMM#**X&'FMM#**Y'(r6   c                  *   [         R                  " [        R                  R	                  [        R                  R                  [        5      SSS5      5      n U R                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )Nbaseline_images
test_imagez
uint16.tif )r(   rm   ospathjoindirnamer   r!   r*   uint16sumr3   s    r4   test_imread_pil_uint16r      sc    
**RWW\\"''//(";&lD EC99		!!!66#;)###r6   c                      [         R                  " [        [        5      R                  S-  5      n U R
                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )Nr   r   )	r(   rm   r   r   r   r!   r*   r   r   r   s    r4   test_imread_fspathr      sP    
**X GGIC99		!!!66#;)###r6   fmt)rP   jpgjpegtiffc                 B   U S;  n[         R                  R                  S5        [         R                  R                  SS5      n[        R
                  " 5       n[        R                  " X2U SS9  [        R
                  " 5       n[        R                  " XBU SS9  UR                  S5        [        R                  " X0S9nUR                  S5        [        R                  " X@S9nUR                  SSS	U-   4:X  d   eUR                  SSS	U-   4:X  d   e[        XV5        g )
N)r   r   r   i@  r   )formatrV   rS   r   r   r#   )r*   rx   ry   rz   ri   rj   r(   imsaverl   rm   shaper   )r   	has_alphadata	buff_dpi1buff_dpi100arr_dpi1
arr_dpi100s          r4   test_imsaver      s    ?*I IINN1 99>>$"D

IJJys2**,KJJ{#6NN1zz)0HQK4J>>dAq9}5555aY7777x,r6   r\   upperrY   c                     [         R                  " 5       n[        R                  " SSS9n[        R
                  " XSU S9  g )N)rr   rr   r   r.   r    rP   )arrr   r\   )ri   rj   r*   r+   mimager   )r\   bufresults      r4   test_imsave_rgba_originr      s/     **,CXXk1F
MM#%?r6   )rP   r8   psepsr9   c                     [         R                  " [        [        R                  5      [
        R                  " SS//5      U S9  g )Nr   r   r   )r(   r   r   r   devnullr*   rH   )r   s    r4   test_imsave_fspathr      s*    JJtBJJAq6(!3C@r6   c                     [         R                  R                  S5        S H  n [         R                  R                  SSS5      n[        R
                  " 5       n[        R                  " X!U SS9  UR                  S5        [        R                  " U5      nSU-  R                  S	5      nU S
:X  a  US S S2   nSU-  R                  S	5      n[        X5        M     g )Nr   )rY   r      r   rP   )r\   r   r   rD   r.   rY   r]   )r*   rx   ry   rz   ri   rj   r(   r   rl   rm   astyper   )r\   r   buffarr_bufs       r4   test_imsave_color_alphar      s     IINN1$yy~~b"a(zz|

4fU;		!**T"
 D  )W":Dw;&&w/4)! %r6   c                      SSK Jn   [        R                  " 5       nU " 5       nUR	                  SS5        [
        R                  " USS/SS//SS	U0S
9  [        R                  " U5      nUR                  S   S:X  d   eg )Nr   )PngInfoSoftwaretestr   r   r#   rP   pnginfor   
pil_kwargs)
PIL.PngImagePluginr   ri   rj   add_textr(   r   r   r   info)r   r   r   ims       r4   test_imsave_pil_kwargs_pngr      sr    *
**,CiGZ(JJsaVaV$G(<>	CB77:&(((r6   c                  b   SSK Jn   [        R                  " 5       nSS0n[        R
                  " USS/SS//SUS	9  [        U5      S:X  d   e[        R                  " U5      nUR                  R                  5        VVs0 s H  u  pEX   R                  U_M     nnnUS
   S:X  d   eg s  snnf )Nr   )TAGS_V2descriptionz
test imager   r   r#   r   r   ImageDescription)PIL.TiffTagsr   ri   rj   r(   r   lenr   r   tag_v2itemsname)TAGSr   r   r   kvtagss          r4   test_imsave_pil_kwargs_tiffr      s    ,
**,C.JJJsaVaV$V
Kz?a	CB(*		(9:(9DGLL!O(9D:"#|333 ;s   B+image_alphac                  "   [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SS5      u  nu  p#nUR                  U SSS9  UR                  U SSS9  UR                  U SS	S9  g )
Nr      r   r#         ?r$   )alphar&         ?rG   )r*   rx   ry   rz   r(   r)   r/   )Zr0   rK   rL   ax3s        r4   test_image_alphar      su    IINN1
		q!A<<1-C#CJJq6J2JJq6J2JJq9J5r6   mpl20c                 N   [         R                  R                  S5        [         R                  R                  SSS5      n[         R                  " US-  5      nU R                  SS5      u  u  pEu  pgUR                  USS9  UR                  USS9  UR                  USS9  UR                  USS9  [         R                  " U[         R                  " S	5      4SS
9n[         R                  " U[         R                  " S	S[         R                  5      4SS
9n	UR                  SS5      u  u  pEu  pgSUS S 2S S 2S4'   UR                  U5        SUS S 2S S 2S4'   UR                  U5        SU	S S 2S S 2S4'   UR                  U	5        SU	S S 2S S 2S4'   UR                  U	5        g )Nru   r   r#   rD   r   r   r         ?)r   r   r   axisrC      )
r*   rx   ry   rz   r.   r)   r/   concatenater,   full)
r~   r   rgbfrgbuax0rK   rL   r   rgbafrgbaus
             r4   test_imshow_alphar     sb    IINN899>>!Q"D88D3JD'00A6Zc#JJt3JJJt4J JJt3JJJt4J NND"'')"45A>ENND"'')S"(("CD1ME&//15Zc#E!Q'NJJuE!Q'NJJuE!Q'NJJuE!Q'NJJur6   c                     SSK Jn   [        R                  " 5       u  pUR	                  [
        R                  " S5      R                  SS5      SS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   eS
u  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   eUR                  5         UR	                  [
        R                  " S5      R                  SS5      SS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   e[        R                  " 5       u  pUR	                  [
        R                  " S5      R                  SS5      / SQS9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S:X  d   eSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   eSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      b   e[        5       R                  S5      R                  S5      n	UR	                  [
        R                  " S5      R                  SS5      XR                  -   S9nSu  pEUR                  R                  XE/5      u  pgU " SUR                  Xg5      nUR                  U5      S	:X  d   eg )Nr   
MouseEventrS   rr   r   )r\   r   r   motion_notify_event,   )g333333$@r   rY   )r   r   r   r   extent)      ?r   7   )r   r   ){Gz?g{Gzr   r   	transform)r#   rr   )matplotlib.backend_basesr   r(   r)   r/   r*   r`   reshape	transDatar  canvasget_cursor_dataclearr   scalerotate)
r   r0   rn   r   rb   rc   xdispydispeventtranss
             r4   test_cursor_datar    s   3llnGC	299S>))"b1'	BBDA<<))1&1LE,cjj%GEe$*** DA<<))1&1LE,cjj%GEe$,,, HHJ	299S>))"b1'	BBDA<<))1&1LE,cjj%GEe$***llnGC	299S>))"b1:J	KBDA<<))1&1LE,cjj%GEe$*** DA<<))1&1LE,cjj%GEe$,,,DA<<))1&1LE,cjj%GEe$,,, JQ&&s+E	299S>))"b1"\\1 
 
3BDA<<))1&1LE,cjj%GEe$***r6   zxy, datar         ?r   g      @r   g      !@g      #@g      @U   r]   c                 X   SSK Jn  [        R                  " / SQ5      n[        R                  " / SQ5      nU[        R                  S S 24   S-  US S 2[        R                  4   S-  -   n[
        R                  " 5       u  pg[        XsR                  5       UR                  5       UR                  5       UR                  5       4S9nUR                  X4U5        UR                  U5        UR                  UR                  5       S-
  UR                  5       5        UR                  UR                  5       S-
  UR                  5       5        UR                  R                  U 5      u  pU" SUR                   X5      nUR#                  U5      U:X  d   UR#                  U5      U45       eg )Nr   r   )r   r   r   	   r   )r   r   r   r#   r   r   r   r   )r  r   r*   rH   newaxisr(   r)   r   minmaxset_data	add_imager   r   r  r  r  r  )xyr   r   rb   rc   rd   r0   rn   r   r  r  r  s               r4   test_cursor_data_nonuniformr  c  s9    4 	!"A
!A	"**a-!a2::.11AllnGC	UUWaeegquuw$H	IBKKaLLKK!QUUW%KK!QUUW%<<))"-LE,cjj%GEe$,Or/A/A%/H$.OO,r6   z
data, texti'  i'  z[10001.000]grh|?g/$?z[0.123]r   []g     ?z[1.0000000000000000]z[-1.0]z[0.00]c                    SSK Jn  [        R                  " 5       u  p4UR	                  U 5      nUR
                  R                  SS/5      u  pgU" SUR                  Xg5      nUR                  UR                  U5      5      U:X  d   eg )Nr   r   r   )
r  r   r(   r)   r/   r  r  r  format_cursor_datar  )	r   textr   r0   rn   r   r  r  r  s	            r4   test_format_cursor_datar    sr     4llnGC	4B<<))1a&1LE,cjj%GE  !3!3E!:;tCCCr6   
image_clip)r   c                      SS/SS//n [         R                  " 5       u  pUR                  U 5      n[        R                  " SSUR
                  S9nUR                  U5        g )Nr   r   r#   r   r   r   )radiusr  )r(   r)   r/   r   Circler  set_clip_path)dr0   rn   r   patchs        r4   test_image_clipr(    sR    
Q!QAllnGC	1BNN6!r||DEUr6   image_cliprectc                      [         R                  " 5       u  pSS/SS//nUR                  USS9n[        R                  " SSSUR
                  R                  S9nUR                  U5        g )	Nr   r   r#   r   r   r   r   r   r   r   r   )r  widthheightr  )r(   r)   r/   r   	Rectangleaxesr  r%  )r0   rn   r&  r   rects        r4   test_image_cliprectr2    se    llnGC
Q!QA	1\	*B10A0ACDTr6   c                 v   [         R                  " S5      R                  S5      nUR                  5       nUR	                  US S 2S S 2S4   SSS9  UR                  SS5        UR                  SS5        U R                  5       nUR	                  USSS9  UR                  SS5        UR                  SS5        g )NrS   )rr   rr   r   r   r'   )r   r   r   r   )r&   r   r#   )r*   r`   r  r)   r/   r   r   )r~   r   r   rn   s       r4   test_imshow_10_10_1r4    s     ))C.
 
 
-C				BIIc!Q'l*\IJKK1KK1				BIIcLIAKK1KK1r6   c                     [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)N   )rr   rr   r   	r(   r)   r*   r`   r  pytestraises	TypeErrorr/   r0   rn   r   s      r4   test_imshow_10_10_2r<    J    llnGC
))C.
 
 
-C	y	!
		# 
"	!	!   A22
B c                     [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Ni  )rr   rr   r   r7  r;  s      r4   test_imshow_10_10_5r@    r=  r>  no_interpolation_originc                     [         R                  " S5      u  pUS   R                  [        R                  " S5      R                  S5      SSS9  US   R                  [        R                  " S5      R                  S5      SS	9  g )
Nr   r   rS   )r   rX   rY   r$   )r\   r&   r   r%   )r(   r)   r/   r*   r`   r  )r0   r   s     r4   test_no_interpolation_originrC    sg    ||AHCFMM"))C.((1' &  (FMM"))C.((1MHr6   image_shift)r   r:   c            
      F   [        SS5       V Vs/ s H)  n [        SS5       Vs/ s H  nSU-  SU -  -   PM     snPM+     nn nSnSn[        R                  " 5       u  pVUR                  U[        R
                  " 5       SX4SS4S9  UR                  S5        g s  snf s  snn f )Nr   rS   gMk&Agk&Ar$   )normr&   r   rw   )ranger(   r)   r/   r	   LogNorm
set_aspect)rc   rb   imgDatatMintMaxr0   rn   s          r4   test_image_shiftrM    s    ?DQ}M}!uQ}5}!AA}5}GMDDllnGCIIgFNN,F!S)  +MM& 6Ms   BBBBc                     [         R                  " SS/S9n U R                  / SQSS9n[        R                  " [        R
                  " S5      S5      R                  SS	5      nUR                  US
/ SQSSS9nS=pEUR                  U* U/5        UR                  U* U/5        UR                  / 5        UR                  / 5        [        R                  " 5       nU R                  USS9  UR                  S5        [         R                   " U5      n[#        US S 2S4   5      u  pxp[#        US S 2S4   5      u  pxpUS:w  d   S5       eg )Nr   rU   rv   F)frameon      rW   r  r   rr   rT  rr   r$   gray)r\   r   r&   cmapr   )r   r   r   )	facecolorr   r]   rS   z.Expected a non-green edge - but sadly, it was.)r(   r^   add_axesr*   tiler`   r  r/   r   r   
set_xticks
set_yticksri   rj   rk   rl   rm   r   )r0   rn   r   r   rb   rc   r   rgbas              r4   test_image_edgesr`    s   
**aV
$C	lE	2B77299R="%--b!4D	40B!'f 
 
6B IAKK!QKK!QMM"MM"
**,CKKyK)HHQK	CBR1XJA!R2YJA!8EEE8r6   image_composite_background)r   r   c                     [         R                  " 5       u  p[        R                  " S5      R	                  SS5      nUR                  U/ SQS9  UR                  U/ SQS9  UR                  S5        UR                  SS/5        g )	NrQ  r   r#   )r   r   rR  r   r   )r   r   rR  r   )r   r   r   r   r   )r(   r)   r*   r`   r  r/   set_facecolorr   r;  s      r4   test_image_composite_backgroundrd    si     llnGC
))B-

1
%CIIc-I(IIc-I(^$KKBr6   image_composite_alphac                     [         R                  " 5       u  p[        R                  " S5      nSUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      USS2SS2S4'   [        R                  " S	5      nSUSS2SS2S4'   SUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      SS2[        R                  4   USS2SS2S4'   UR                  U/ S
QSS9  UR                  U/ SQSS9  UR                  U/ SQS9  UR                  U/ SQS9  UR                  U/ SQSS9  UR                  U/ SQSS9  UR                  S5        UR                  SS/5        UR                  SS/5        g)zo
Tests that the alpha value is recognized and correctly applied in the
process of compositing images together.
)      r   r   Nr   皙?皙?r]   r#   )rh  rg  r   )r   r   r   r   333333?)r   r   )r   r#   r   r   333333?)r#   r   r   r   r   )r   r   r   r   )r   r   r   r#   )r   r   r#   r   )r   r   r   r   r   )r(   r)   r*   r+   r   r`   r  r/   rc  r   r   )r0   rn   r   arr2s       r4   test_image_composite_alpharn    s    llnGC
((;
CC1aL>>	1c3	1a!5dd!;<>C1aL88K DDAqMDAqMNN	1c3	1a!5dd!;<>>?mMDAqMIIc,cI2IIc,cI2IIc,I'IId<I(IId<sI3IId<sI3^$KKAKKAr6   c                 |   [         R                  " S5      R                  S5      nX4 H  nUR                  5       nUR	                  U[
        R                  R                  / SQ5      UR                  4S9  UR	                  U[
        R                  R                  / SQ5      UR                  4S9  M     SUl	        g )Nr  r#   r#   )r"  r   r   )r   r   )	clip_path)r,  r   r   )r   r   T)
r*   r`   r  add_subplotr/   mplr   r   r  rN   )r~   r   tr0   rn   s        r4   #test_clip_path_disables_compositingrw     s    
		!V$A"__
		!.F G " .	 	/
		!.F G " .	 	/	 # !%Gr6   rasterize_10dpi)r:   r   r   c                     [         R                  " SS/SS//5      n [        R                  " SSSS9u  pUS   R	                  U 5        US   R                  SS/SS/SS	S
9  US   R                  SSS9  US   R                  SS/SS/SS9  US   R                  SSS9  U HC  nUR                  / 5        UR                  / 5        UR                  S S  R                  S5        ME     S[        S'   g )Nr   r   r#   r   )r#   r   rO  r   g      4@T)	linewidth
rasterizedrq  )r]   r   xlimylim)rz  Frr   r<   )r*   asarrayr(   r)   r/   rh   setrZ  r[  spinesset_visibler   )r3   r0   r   rn   s       r4   test_rasterize_dpir  ,  s     **q!fq!f%
&C||Aq&1HCFMM#FKKAA#$K?FJJFJ)FKKAA#K.FJJFJ) 
b
b
		!  ' 
 !H]r6   bbox_image_invertedc            	         [         R                  " S5      R                  S5      n [        R                  " 5       u  p[        [        [        SS/SS//5      UR                  5      SS9nUR                  U 5        UR                  S5        UR                  SS5        UR                  SS5        UR                  U5        [         R                  " S5      n [        [        [        SS	/S
S//5      UR                  5       R                   5      SS9nUR                  U 5        UR                  S5        UR                  U5        g )NrS   rr   rr   r   rG   r%   Frr   rj  皙?rk  r   )r*   r`   r  r(   r)   r   r   r   r  r  set_clip_onr   r   
add_artistidentity
get_figuretransFigure)r
   r0   rn   bbox_ims       r4   test_bbox_image_invertedr  K  s    IIcN""8,EllnGCsCj1a&12BLLA!G UKK3KK3MM'KKOEsCj3+-F(G(*(C(CE&/1G UMM'r6   c                  f   [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [        R                  " SSS9u  pUR	                  / SQ5        UR                  S	S
5        UR                  S	S
5        UR                  U / SQSS9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        [        R                  " SSS9u  pUR	                  / SQ5        UR                  S
S5        UR                  S	S
5        UR                  U / SQSUR                  S9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        g )N)r   r   r   r   )rj  g?r   皙?)rl  rk          r  )ffffff??r  rl  r  rS   rT   rv   r   r   )r  r  r  r  rG   )r   r&   i  r6  i  i  r   )r   r&   r  )r*   rH   r(   r)   r}   r   r   r/   r  drawrendererget_window_extentr   
get_points	transAxes)r   r0   rn   im_objr  im_bboxs         r4   $test_get_window_extent_for_AxisImager  d  st   
 
*,A')=? 
@Bll85GCOOL!KK1KK1YY
'y  BF JJOOzz""H&&x0Gw))+sCj3*-EFll85GCOOL!KK1KK1YY
'y,,   F JJOOzz""H&&x0Gw))+sCj3*-EFr6   zzoom_and_clip_upper_origin.pngc                      [         R                  " S5      n U R                  S5      n [        R                  " 5       u  pUR                  U 5        UR                  SS5        UR                  SS5        g )NrS   r         @      )r*   r`   r  r(   r)   r/   r   r   )r
   r0   rn   s      r4   test_zoom_and_clip_upper_originr    sT     IIcNEMM(#EllnGCIIeKKTKKcr6   c                  f    [         R                  " 5       n [        U 5      nUR                  S5        g )NBlues)r(   gcar   set_cmaprn   r   s     r4   test_nonuniformimage_setcmapr    s#    	B		BKKr6   c                      [         R                  " 5       n [        U 5      nUR                  [         R                  " 5       5        g N)r(   r  r   set_norm	Normalizer  s     r4   test_nonuniformimage_setnormr    s)    	B		BKK r6   c                  P   [         R                  " SSS9n [        S5       H$  n[         R                  " SSS5      S-  XS S 24'   M&     [        R
                  " SS5      nUR                  U R                  5       5        [        R                  " 5       u  p4UR                  U5        g )	Nr  r.   r    rr   r  r   rD   L)r*   r,   rG  linspacer   newputdataflattenr(   r)   r/   )imdir   r0   rn   s        r4   test_jpeg_2dr    sw    
''('
*C2YKKS"-3qD	 	3	!BJJs{{}llnGCIIbMr6   c                     [         R                  " SSS9  [        R                  " S[        S9n [        R
                  " SSS5      U S'   [         R                  " U 5        [        R                  " 5       n[         R                  " US	S
SS9  UR                  S5        [        R                  " U5      n[        UR                  S5      5      nSUs=::  a  S::  d   e   eUR                  S5      nUS:X  d   eg )Nr,  ,  rT   )r  r  r   r    r  r   r"   redr   )rW  r   rV   r            r"  )   r   r   )r(   r^   r*   r+   floatr  rO   ri   rj   rk   rl   r   r   r   	getcolorsgetpixel)r   r   r
   
num_colorscorner_pixels        r4   test_jpeg_alphar    s    JJv3' 
-u	-BS#s+BvJLL::<DKKe=IIaLJJtE U__S)*J*######>>&)L;&&&r6   c                      [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg NrQ  r    r   r#   #@r"  r   value changed)	r(   r  r   r*   r`   r  r  r  _Arn   r   rd   s      r4   test_axesimage_setdatar    s`    	B	2B
		"E"**62AKKNAdG55;!,_,r6   c                      [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg r  )	r(   gcfr   r*   r`   r  r  r  r  )r0   r   rd   s      r4   test_figureimage_setdatar    sa    
'')C	S	B
		"E"**62AKKNAdG55;!,_,r6   zimage_cls,x,y,a      @      @g      (@r  g      @)r#   r   c                 t   [         R                  " 5       nU " U5      nUR                  XU5        S=US'   =US'   US'   UR                  S   UR                  S   s=:X  a   UR
                  S   s=:X  a  S:X  d   S5       e   S5       eUR                  XUR                  / UR                  QSP75      5        g )Nr  r   r"  r  r]   )r(   r  r  r  _Ax_Ayr  r   )	image_clsrb   rc   r_  rn   r   s         r4   test_setdata_xyar    s     
B	2BKKaAaD1Q4!D'55;"&&)5rvvay5A5FF5FF5KKaii!''2/0r6   c                     SSK Jn   [        R                  R	                  S5        [        R                  R                  SS5      n[        R                  " SS5      u  p#US   R                  U5      nUS   R                  U5      n[        R                  " XCS   S9  [        R                  " XSS   S9  [        R                  " 5       n[        R                  " USS9  [        R                  " UR                  5       5      nU R                  U5      nS nUR                  S	5       H  n	Uc  U	S
   nM  U	S
   U:w  d  M   e   g )Nr   )ElementTreerr   r   r   )rn   r9   r   r
   r-  )	xml.etreer  r*   rx   ry   rz   r(   r)   
pcolormeshcolorbarri   rj   rk   getvalueparseiter)
r  r   r0   rn   p1p2r   treer-  r
   s
             r4   test_minimized_rasterizedr    s     &IINN199>>"b!Dll1a GC	A		$	B	A		$	BLL1LL1::<DKKU#::dmmo&DT"DE7#='NEW~&u $r6   c                     [        [        5      R                  S-  n S[        R                  S:X  a  SOS-   U R                  5       R                  5       -   n[        R                  " [        SS9   [        R                  " U5        S S S 5        [        R                  R                  U5       n[        R                  " U5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)Nr   zfile:win32z/// zPlease open the URLmatch)r   r   r   sysplatformresolveas_posixr8  r9  
ValueErrorr(   rm   urllibrequesturlopen)r   urlfiles      r4   test_load_from_urlr    s    >  #JJD||w.eB8\\^$$&'C 
z)>	?

3 
@				$

4 
%	$ 
@	?	$	$s   0C.C
C
C-log_scale_imagec            	          [         R                  " S5      n SU S S S2'   [        R                  " 5       u  pUR	                  U / SQSSSSS9  UR                  S	S
9  g )Nr  r   r   )r   rS   r   rS   viridisr]   rw   )r   rV  vmaxvminaspectlog)yscale)r*   r+   r(   r)   r/   r  )r   r0   rn   s      r4   test_log_scale_imager    sW    
AAccFllnGCIIa(yqr  FF%Fr6   rotate_imagec            	         Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nXe-
  n[
        R                  " SS5      u  pU	R                  USS	S
/ SQSS9n
[        5       R                  S5      U	R                  -   nU
R                  U5        U
R                  5       u  ppU	R                  XXU/XXU/SSUS9  U	R                  SS5        U	R                  SS5        g )Nr         r  r   r   r  r   r$   r  rY   )r   r   T)r&   rV  r\   r   clip_on   zr--r#   )lwr  r   r   r   )r*   r`   meshgridexppir(   r)   r/   r   
rotate_degr  set_transform
get_extentrh   r   r   )deltarb   rc   rJ   YZ1Z2r   r0   rK   im1trans_data2x1x2y1y2s                   r4   test_rotate_imager    sg   EIIdC''A;;qDA	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B
A||Aq!HC
**Qf9#*D  :C *''+cmm;Kk" ^^%NBBHHbbb!BBB#71"  $ LLALLAr6   c                     [         R                  " 5       n [        R                  " S5      n[        R
                  " XSS9  U R                  S5        [        R                  " U 5      nUR                  S S UR                  :X  d   eg )N)i  iA  rP   r   r   r   )	ri   rj   r*   r+   r(   r   rl   rm   r   )r   r   r3   s      r4   test_image_preserve_sizer  7  s^    ::<D	*	BJJt&IIaL
**T
C99Ra=BHH$$$r6   c                  (   Sn [         R                  " U [        5      n[        R                  " X 4SS9nUR                  S5      nUR                  5         UR                  USSSS9  [        R                  " 5       nUR                  US	S
9  UR                  S5        [        R                  " U5      nUR                  S:X  d   e[        [         R                  " US S 2S S 2S4   [         5      [         R                  " U [         5      S S S2   5        g )N   F)rU   rP  )r  r  r   r   rG   rY   rw   )r&   r\   r  r   )rV   r   )r  r  r   r]   )r*   r  r  r(   r^   rX  set_axis_offr/   ri   rj   rk   rl   rm   r   r   r  bool)nr   r0   rn   r   r3   s         r4   test_image_preserve_size2r  C  s    	A;;q% D
**aVU
3C	*	+BOOIId)GFIK::<DKK!KIIaL
**T
C99	!!!rzz#aAg,5{{1d+DbD13r6   zmask_image_over_under.pngr   )r   tolc                     Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nSXe-
  -  n[
        R                  R                  R                  S	S
SS9n[         R                  R                  US:  U5      n	[
        R                  " SS5      u  n
u  pUR                  U	SU[        R                  " SSSS9S/ SQS9nUR                  S5        U
R!                  USSUSS9  UR                  U	SU[        R"                  " / SQSSS9S/ SQS9nUR                  S5        U
R!                  USSSUSS 9  g )!Ng?r  r  r   r   r  r   rr   r\  r]  r^  overunderbad333333?r'   g      r   F)r  r  cliprY   )r  r#   r  r#   )r&   rV  rF  r\   r   zGreen=low, Red=high, Blue=badboth
horizontal)extendorientationrn   r  rG   )r]   r  gɿr   r  r   r   r  )ncolorsr   zWith BoundaryNormproportional)r#  spacingr$  rn   r  )r*   r`   r   r  r  r(   cmrU  with_extremesmamasked_wherer)   r/   r	   r  rI   r  BoundaryNorm)r  rb   rc   rJ   r  r  r	  r   paletteZmr0   rK   rL   r   s                 r4   test_mask_image_over_underr/  W  s    EIIdC''A;;qDA	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B
BGAffkk''S'EG			AGQ	'Bll1a(OC#	Bj ))t#EJ"> 
 
;B MM12LLF  $ 
Bi ,,-M58uF">	 
 
;B
 MM%&LLFN)c"  >r6   
mask_imagec                     [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  USS2SS24'   UR                  USS9  [        R                  " S[        S9nSUSS2SS24'   [        R                  R                  [        R                  " S[        R                  S9U5      nUR                  USS9  g )Nr   r   r   rG   r%   r    T)r(   r)   r*   r,   nanr/   r+   r  r*  masked_arrayr   )r0   rK   rL   r   s       r4   test_mask_imager4  w  s     ll1a(OC#
A&&Aac1Q3hKJJq	J*
t$AAac1Q3hK
2776;Q?AJJq	J*r6   c                      [         R                  " S[         R                  5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )NrR   )r*   r   r2  r(   r)   r/   r  	draw_idle)r   r0   rn   s      r4   test_mask_image_allr7    s>    776266"DllnGCIIdOJJr6   zimshow_endianess.pngc                  p   [         R                  " S5      n [         R                  " X 5      u  p[         R                  " US-
  US-
  5      n[        R
                  " SS5      u  nu  pV[        SSSS9nUR                  " UR                  S	5      40 UD6  UR                  " UR                  S
5      40 UD6  g )Nrr   r   r   r   rY   rG   r  )r\   r&   rV  z<f8z>f8)	r*   r`   r   hypotr(   r)   dictr/   r   )rb   rJ   r  r   r0   rK   rL   kwargss           r4   test_imshow_endianessr<    s    
		"A;;qDA
QAAll1a(OC#		JFJJqxx)&)JJqxx)&)r6   imshow_masked_interpolationx86_64r   )r  r   r   c                     [         R                  S   R                  SSSS9n Sn[        R                  " SX-  S-
  S	9n[
        R                  " X-  [        S
9R                  X5      nSUS'   SUS'   [
        R                  US'   [
        R                  " U5      R                  S5      nSUS'   [
        R                  R                  X45      n[        R                  " SS5      u  pV[!        ["        R$                  5      nUR'                  S5        UR'                  S5        [)        XvR+                  5       5       H7  u  pU	R-                  U5        U	R/                  X2XS9  U	R1                  S5        M9     g )Nr  r\  r^  r   r  rW   r   r   r  r  r    r]   r   g     j@)rR  r   )rR  rR  r  T)r   rR  r#   r   rw   antialiased)rF  rV  r&   off)ru  	colormapsr)  r	   r  r*   r`   r  r  inf
zeros_liker   r*  r3  r(   r)   sortedr   	_interpd_removezipravelrI   r/   r   )
rV  Nr  r   maskr0   ax_gridinterpsinterprn   s
             r4    test_imshow_masked_interpolationrP    s/   
 ==#11s#31OD
Aaac!e,A99QS&..q4DDJ DK 66DL==%%f-DDK55d)D<<1%LCV%%&GNN6NN=!'==?3

V
		$T	@
 4r6   c                  X    [         R                  " SS/S[        R                  //5        g )Nr   r   r#   )r(   r/   r*   r2   r6   r4   test_imshow_no_warn_invalidrS    s    JJABFF$%r6   r!   zu2 u4 i2 i4 i8 f4 f8c                 b   [         R                  " SU S9R                  S5      nU R                  S:w  a  US-  nUS:  nUS:  nU R                  S:X  a  US-  n[        R
                  " 5       u  pEUR                  U5      R                  5       nXb   S:H  R                  5       (       d   eU R                  S:X  a9  Xc   S	:H  R                  5       (       d   eUR                  R                  S:X  d   eg Xc   S:H  R                  5       (       d   eUR                  [         R                  :X  d   eg )
Nr  r    )rr   rr   r#   urr   r   rD   fr   )r*   r`   r  kindr(   r)   r/   	get_arrayallr!   r.   )r!   r   too_lowtoo_high_rn   outs          r4   $test_imshow_clips_rgb_to_valid_ranger^    s
    ))Cu
%
-
-k
:CzzSr	AgGSyHzzSCiLLNEA
))C.
"
"
$CLA""$$$$zzS"''))))yy~~$$$$))++++yyBHH$$$r6   zimshow_flatfield.pngc                      [         R                  " 5       u  pUR                  [        R                  " S5      SS9nUR                  SS5        g )Nr   rG   r%   r   r  )r(   r)   r/   r*   r,   set_climr0   rn   r   s      r4   test_imshow_flatfieldrb    s7    llnGC	2776?)	<BKKCr6   zimshow_bignumbers.pngc                      S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/[        R
                  S9nUR                  U5      nUR                  SS5        g )NrG   image.interpolation)r   r   g   mB)r#   r   r   r    r   r   )r   r(   r)   r*   rH   uint64r/   r`  r0   rn   r3   pcs       r4   test_imshow_bignumbersrh    sP    &/H"# llnGC
((L),BII
>C	3BKK1r6   zimshow_bignumbers_real.pngc                      S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/5      nUR                  U5      nUR                  SS5        g )NrG   rd  )r  r   gMD)r  r   r  r   r   )r   r(   r)   r*   rH   r/   r`  rf  s       r4   test_imshow_bignumbers_realrj    sL     '0H"# llnGC
((O\2
3C	3BKK1r6   	make_normc                  .    [         R                  " S5      $ Nr   )r	   
SymLogNormrR  r6   r4   <lambda>ro    s    Vq!r6   c                  .    [         R                  " S5      $ rm  )r	   	PowerNormrR  r6   r4   ro  ro     s    Va r6   c                    [         R                  " 5       u  p[        R                  " [        SS9   UR                  / /U " 5       S9nS S S 5        WR                  / SQ5        UR                  R                  5         [        R                  " [        5         UR                  UR                  R                  5       5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz.Attempting to set identical low and high xlimsr  rF  )r   rt  r   )r(   r)   r8  warnsUserWarningr/   
set_extentr  r  r9  RuntimeError
make_imageget_renderer)rk  r0   rn   r   s       r4   test_empty_imshowr{    s     llnGC	kL
NYYt)+Y.
N MM.!JJOO	|	$
cjj--/0 
%	$
N 
N 
%	$s   C
*C

C
C)c                      [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        U R                  R                  5         g )Nrp  r    )r(   r)   r/   r*   r+   float16r  r  r0   rn   s     r4   test_imshow_float16r    s8    llnGCIIbhhvRZZ01JJOOr6   c                     [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        [        R                  " [        R
                  [        R                  S5      (       a
  [        5       O[        R                  " [        5         U R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nrp  r    equiv)r(   r)   r/   r*   r+   
longdoublecan_castfloat64r   r8  ru  rv  r  r  r~  s     r4   test_imshow_float128r    sz    llnGCIIbhhvR]]34R]]BJJHH)+||K() 	

) ) )s   'C
Cc                      [         R                  " 5       u  pUR                  [        R                  " SS/SS//[
        S95        g )NTFr    )r(   r)   r/   r*   rH   r  r~  s     r4   test_imshow_boolr    s3    llnGCIIbhhut}5TBCr6   c                      [         R                  " 5       u  pUR                  [        R                  " S[        R
                  5      5        U R                  R                  5         g )Nr  )r(   r)   r/   r*   r   r2  r  r  r~  s     r4   test_full_invalidr  "  s8    llnGCIIbggh'(JJOOr6   zfmt,counted)r   s    colorimage)r9   s   <imagezcomposite_image,count)Tr   )Fr   c                    [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  pE[         R                  " US-  5      n[        R
                  " 5       u  pxUR                  SS5        UR                  U/ SQS9  UR                  US S S	2   / S
QS9  U[        R                  S'   [        R                  " 5       n	UR                  XS9  U	R                  5       R                  U5      U:X  d   eg )Nrt  r   r   r   r   r#   r   r   r   r   r   r]   )r   r#   r   r   zimage.composite_imager   )r*   r   r`   ra   r(   r)   r   r/   r   ri   rj   rk   r  count)
r   countedcomposite_imager  rJ   r  r   r0   rn   r   s
             r4   test_compositer  )  s     ;;ryyQ*BIIb!Q,?@DA
qAvAllnGCKK1IIaI%IIa"glI+,;CLL()
**,CKKK <<>(E111r6   c                      [         R                  " 5       u  pUR                  S//SS9  UR                  5         UR	                  5         UR                  5       UR                  5       s=:X  a  S:X  d   e   eg )Nr   r  r   rq  )r(   r)   r/   relim	autoscaleget_xlimget_ylimr~  s     r4   
test_relimr  <  sZ    llnGCIIseLI)HHJLLN;;=BKKM3V33333r6   c                  r   [         R                  " 5       u  pUR                  5         UR                  SS/SS//SSSSS9nUR	                  SSS9  U R
                  R                  5         [        R                  " U R
                  R                  5       5      S	S S
24   S:H  R                  5       (       d   eg )Nr   rw   rS  rU  F)r  r   rV  r  rq  r|  .r#   )r(   r)   r  r/   r  r  r  r*   rH   buffer_rgbarY  ra  s      r4   test_unclippedr  D  s    llnGCOO	QFQF#F;M 
 
/BFFVF$JJOO HHSZZ++-.sBQBw71<AACCCCr6   c                  *   [         R                  " S5      u  pU H  nUR                  5         M     US   R                  SS/SS//SSS9nUR	                  S 5        UR                  US   R                  5        [        R                  " 5       nU R                  USS	9  1 UR                  5       kS
1:X  d   eUS   R                  SS9  [        R                  " 5       nU R                  USS	9  UR                  5       UR                  5       :w  d   eg )Nr   r   r   r#   rw   r  )r  r   rgbar   rD   )r]   r   )r~  )r(   r)   r  r/   r%  set_clip_boxbboxri   rj   rk   r  r  )r0   r   rn   r   
buf_before	buf_afters         r4   test_respects_bboxr  P  s    ||AHC
 	QAA'|	LBT OOCFKK JKK
6K*#Z  "#v---FJJGJ

IKK	&K) I$6$6$8888r6   c                     [         R                  " 5       u  pUR                  [        R                  " S5      5      n[        R
                  R                  S/S/S9nUR                  U5      S:X  d   e[        R
                  R                  S/S/S9nUR                  U5      S:X  d   e[        R                  nUR                  U5      S:X  d   eg )	Nr   r   TrL  r  Fz[0]z[nan])	r(   r)   r/   r*   r+   r*  r3  r  r2  )r0   rn   r   r   s       r4   test_image_cursor_formattingr  b  s    llnGC	288F#	$B55qc/D  &$...55qc0D  &%///66D  &'111r6   c                    [         R                  " SS5      n[         R                  " X"5      u  p4[         R                  " SUS-
  S-  -  US-
  -   5      nXUR	                  5       -  n[
        R                  S   nU R                  5       nUR                  XVUSS	9  UR                  5       nU" [        R                  " 5       " U5      5      n	XiS
'   UR                  U	SS9  g)zPer-pixel alpha channel test.r   r   r  r   r   g[(\?r  rG   )r   rV  r&   ).r]   r%   N)r*   r  r   r  r  ru  rC  rt  r/   r	   r  )
r~   r   rb   xxyyzzr   rV  rn   r  s
             r4   test_image_array_alphar  q  s     	AqA[[FB	SQ'2=9	:BME==#D				BIIbD	IB				B  "2&'DMIId)I,r6   c                      [         R                  " [        SS9   [        R                  " [
        R                  " S5      SS/S9  S S S 5        g ! , (       d  f       g = f)Nzalpha must be a float, two-dr  rR   r   r   )r8  r9  r:  r(   r/   r*   r+   rR  r6   r4   !test_image_array_alpha_validationr    s9    	y(F	G

288F#Aq62 
H	G	Gs   ,A
Ac                     [        [        R                  S   5      n U R                  SS9  [        R
                  " SSS9nUR                  / SQ5      n[        R                  " / SQ/[        S	9nUR                  US
U SSS9nUR                  S5        UR                  R                  5         UR                  UR                  R                  5      S   S   nUR!                  UR#                  US//S-  -  R$                  R'                  5       5      5      S-  R)                  [*        5      n[        R,                  " XV:H  5      (       d   eg )Nautumn_r	lightgrey)color)gffffff?rj  rS   rT   rv   )r]   r]   r]   r   r   r   r   +   O   _   B   r   r]   r]   r]   r   r   r   "   r    rw   r   )r  rV  r  r  rB  r   rr   rD   )r   ru  rC  	set_underr(   r^   rX  r*   rH   r  r/   r   r  r  ry  r  rV  rF  TrJ  r   r{   rY  )rV  r0   rn   r   r   
from_imagedirect_computations          r4   test_exact_vminr    s   j)*DNNN% **ZS
1C	l	#B88	MND
 
4T	DBGGENJJOO szz223A6q9J 	1#,//55789C?fSk 
 66*23333r6   image_placementc            	      H   [         R                  " 5       u  pUR                  / SQ/ SQSSS9  [        R                  R                  S5        UR                  [        R                  R                  SS5      SS	S
SSS9  UR                  SS5        UR                  SS5        g)zC
The red box should line up exactly with the outside of the image.
)r   r   r   r   r   )r   r   r   r   r   r\  rj  )r  r  ru   r   r  r  r$   r]   r   )rV  r   r&   r  r  gri  N)
r(   r)   rh   r*   rx   ry   r/   randnr   r   r~  s     r4   test_image_placementr    s~     llnGCGGO_CCG@IINN8IIbiioob"%GL"!  5KKeKKer6   c                   J   ^  \ rS rSrS rS rU 4S jrS r\S 5       r	Sr
U =r$ )
QuantityNDi  c                 \    [         R                  " U5      R                  U 5      nX#l        U$ r  )r*   r  viewunits)clsinput_arrayr  objs       r4   __new__QuantityND.__new__  s%    jj%**3/	
r6   c                 (    [        USS 5      U l        g Nr  )getattrr  )selfr  s     r4   __array_finalize__QuantityND.__array_finalize__  s    S'40
r6   c                    > [        U SS 5      n[        TU ]	  U5      n[        U[        5      (       d  Ub  [	        X25      nU$ r  )r  super__getitem__
isinstancer  )r  itemr  ret	__class__s       r4   r  QuantityND.__getitem__  sA    gt,g!$'c:&&%*;S(C
r6   c                    [        X5      nSU;   a  [        $ [        U5      S:X  a1  US   n[        USS5      nU" [        R                  " U5      40 UD6nGOa[        U5      S:X  GaK  US   nUS   n	[        USS5      n
[        U	SS5      nU
c  UOU
n
Uc  U
OUnU[        R
                  [        R                  4;   a  X:w  a  [        eU
nOU[        R                  :X  a  U
 SU 3nOU[        R                  :X  a	  U
 SU S	3nOiU[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4;   a  S nO[        $ U" UR!                  [        R"                  5      U	R!                  [        R"                  5      40 UD6nO[        $ Uc  [        R$                  " U5      nU$ ['        X5      nU$ )
Nr]  r   r   r  dimensionlessr   *z/())r  NotImplementedr   r*   r  addsubtractr  multiplydividegreatergreater_equalequal	not_equalless
less_equalr  ndarrayrH   r  )r  ufuncmethodinputsr;  funci0unitout_arri1u0u1s               r4   __array_ufunc__QuantityND.__array_ufunc__  s   u%F?!!v;!B2w8D2::b>4V4G[ABBWo6BWo6BzrBzrB--8$$"++%Qrd|"))#Rt1~2::r'7'788R\\77BMM3 3 %%2772::.

0CNvNG!!<hhw'G  !/Gr6   c                 @    U R                  [        R                  5      $ r  )r  r*   r  )r  s    r4   r   QuantityND.v  s    yy$$r6   )r  )__name__
__module____qualname____firstlineno__r  r  r  r  propertyr   __static_attributes____classcell__)r  s   @r4   r  r    s,    
1%N % %r6   r  c                  *   [        SS/S5      n U S S  u  p[        R                  " U R                  [        R                  " SS/5      :H  5      (       d   eU R
                  S:X  d   e[        R                  " X-   R                  [        R                  " S/5      :H  5      (       d   eX-  R
                  S:X  d   eX!-  R
                  S:X  d   e[        R                  " [        5         U[        SS5      -     S S S 5        g ! , (       d  f       g = f)Nr   r   mr#   zm*mzm/(m)s)	r  r*   rY  r   r  r  r8  r9  r  )qq0q1s      r4   test_quantityndr    s    Aq63AqTFB66!##QF++,,,,77c>>6627++QC01111G??e###G??g%%%	z	"
Z3 
#	"	"s   +D
Dc                      [        [        R                  " S5      S5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )NrR   r  )r  r*   r,   r(   r)   r/   r  r  )r   r0   rn   s      r4   test_imshow_quantityndr    s<    
RWWV_c
*CllnGCIIcNJJOOr6   c                 H   [         R                  " SS[         R                  S9nSUSS2S S 24'   [         R                  R	                  USS9nS	UR
                  SS2SS24'   [        R                  S
   R                  SS9nU R                  5       nUR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  SSS9  UR                  5       nUR                  U[        R                  " SSS9SSUS9  UR                  U[        R                  " SSS9SSUS9  UR                  SSS9  g )Nr   r   r    r]   r   r   Fr  Tr  wr  r   r@  r+  rG   )rF  r   r&   rV  r  )r   rr   r   rr   r   rr   r|  )r*   r   r  r*  rH   rL  ru  rC  r)  r)   r/   r	   rH  r  r  r  )r~   r   r   masked_datarV  rn   r   s          r4   test_norm_changer  
  s    7761BJJ/DD1aL%%++d+/K!%KQqS!A#X==#111<D				B	4fnn#A>&id 
 
LBKK  bq12	;V^^1%E(	 
 
NBKK  bq12FFgF&				BIId))r:!  GIIk 0 0bq A#94  IFFgF&r6   rb   c                    [         R                  " SU[         R                  S9nSUSS2S S 24'   U R                  5       nUR	                  U[
        R                  " SUR                  5       S9SS	S
9  [         R                  " SU[         R                  S9nSUSS2S S 24'   UR                  5       n[        R                  S	   R                  SS9nUR	                  U[
        R                  " SUR                  5       S9SUS
9  g )Nr   r    g@xDr   r   r   r@  rG   r  )rF  r&   rV  i  r  r  )r*   r   r  r)   r/   r	   rH  r  ru  rC  r)  r  )r~   r   rb   r   rn   rV  s         r4   test_huge_range_logr	  &  s     7761BJJ/DD1aL				BIIdQTXXZ@%I  7 7761BJJ/DD1aL				B==#111<DIId))qtxxzB%D  2r6   c                 .   U R                  SS5      nUR                  SS5      nSS/SS//SS/SS//SS/SS//4n/ SQn[        [        XE5      5       GH=  u  nu  pxX&   R                  U5        X&   R	                  U5        X6   R                  U5        X6   R                  USSSSSSS	9  X6   R                  S
S5        X6   R                  SS
5        X6   R                  R                  5         X6   R                  R                  S5        X6   R                  R                  S5        X6   R                  R                  [        R                  " S/ SQSS95        X6   R                   R                  [        R                  " S/ SQSS95        GM@     g )Nr   r#   r   )r,   r+   mixedrG   r  r   Greys)r&   r  r\   rV  r  r  r  r  g?r!  r  )r   r   r   rr   T)nbinsstepsinteger)r)   	enumeraterI  rI   spyr/   r   r   xaxistick_toptitleset_yset_ticks_positionset_major_locatormtickerMaxNLocatoryaxis)	r~   r   ax_testax_ref	plot_dataplot_titlesr  rd   r  s	            r4   test_spy_boxr  :  s    1%Ga#F Q!Q
Q!Q
Q!QI
 -K"3y#>?:A
U#
q	E"	)#*7!" 	 	, 		4%	3%	  "	d#	**62	))a}dK	
 		))a}dK	
 @r6   znonuniform_and_pcolor.pngc                     [         R                  " SS9R                  SSSS9n [        U SS/5       H  u  p[	        XS9nUR                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        UR                  U5        M     U S	   R                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        U  H"  nUR                  5         UR                  SS9  M$     g )Nrp  rO  r#   T)sharexshareyrG   r'   r%   r   r  r   r  )r}  )r(   r^   r)   rI  r   r  r*   r`   r  r  
pcolorfastr  r  )r   rn   r&   r   s       r4   test_nonuniform_and_pcolorr$  [  s    
**V
$
-
-aT
-
JC y*&=>R=
BIIaLA%ryy|q'8IIaL((0	2
R	 ?
 F
		!299Q<1,biil.B.B6.JL

G r6   znonuniform_logscale.pngc                  h   [         R                  " SSS9u  p[        S5       GH  nX   n[        U5      nUR	                  [
        R                  " SS5      S-  [
        R                  " SS5      S-  [
        R                  " S5      R                  S5      5        UR                  SS5        UR                  SS5        UR                  S5        US:X  a   UR                  S	SS
9  UR                  S	SS
9  US:X  a   UR                  S	SS
9  UR                  S	SS
9  UR                  U5        GM     g )Nr#   r   )ncolsnrowsr   r   r  rp  r   r  )base)r(   r)   rG  r   r  r*   r`   r  r   r   set_box_aspect
set_xscale
set_yscaler  )r\  r   r  rn   r   s        r4   test_nonuniform_logscaler,  k  s    \\+FA1XVR 
BIIaOq("))Aq/Q*>IIaL((0	2
Ar
Ar
!6MM%aM(MM%aM(6MM%aM(MM%aM(
R r6   zrgba_antialias.pngg{Gz?)r   r   r  c            	      h   [         R                  " SSSSSSS9u  pSn[        R                  " X"45      nSUS S S2S S 24'   [        R                  " U5      U-  S-
  n[        R                  " U5      U-  S-
  n[        R
                  " XE5      u  pg[        R                  " US-  US-  -   5      nS	n	S
n
[        R                  " [        R                  S-  X-  XS-  -  S-  -   -  5      nSUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   SUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   US S 2[        US-  5      S 24   US S 2[        US-  5      S 24'   [        R                  USS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   [        [         R                  R                  5      nUR                  S5        UR                  S5        UR!                  5       nUS   R#                  USUSSS9  US   R%                  US-  S-
  US-  S-   /5        US   R'                  US-  S-   US-  S	-
  /5        US   R#                  USUSSS9  US   R#                  USS USSS!9  US"   R#                  USS#USSS!9  g )$Nr   )      @r.  FT)rU   r!  r"  constrained_layout   r]   r   rr   K   r  r   rk  rW   rX   g    .AF   Z   g    .r        yellowcyanr   rG   g333333r  )r&   rV  r  r     rw   r   )r&   interpolation_stagerV  r  r  r#   r  )r(   r)   r*   r,   r`   r   sqrtra   r  r{   r2  r   r(  RdBu_rset_overr  r  r/   r   r   )r0   r   rK  aarb   rc   rJ   r  Rf0r   r_  rV  s                r4   test_rgba_antialiasr@    s   ||Aq*U#(TCHCA	!BBssAvJ
		!q3A
		!q3A;;qDA
1q!tA	B
A
ruuqyBFQAX\123A .0Ais1Q3xilOAis1Q3xilOc)*-.Ais1Q3xilOAis1Q3xilOc)*C!HIBq#ac()| vvBr"ube|Br"ube|Br"ube|Br"uc#g~Br"uc#g~DMM(NN6
++-CFMM"IDt#MNFOOQqSVQqSV$%FOOQqSVQqSV$% FMM"IDt#MN FMM"F$S  2
 FMM"F$S  2r6   )rP   c                 
   [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)	zO
Show that interpolation_stage='auto' gives the same as 'data'
for upsampling.
*N,r   r'   r  r   r&   rV  r9  rw   Nr*   rx   ry   rz   r)   r/   r~   r   gridrn   s       r4   !test_upsample_interpolation_stagerG    sz     IINN:99>>!QD				BIId*9"(  * 
			BIId*9"(  *r6   c                 
   [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)zQ
Show that interpolation_stage='auto' gives the same as 'rgba'
for downsampling.
ru   i  rw   r  r  rC  NrD  rE  s       r4   #test_downsample_interpolation_stagerI    sz     IINN899>>$%D				BIId&y"(  * 
			BIId&y"(  *r6   c                  z   S HR  n [         R                  " SU 05         [        R                  " SS//5      R	                  5       U :X  d   e S S S 5        MT     S H9  n [
        R                  " [        5         U [         R                  S'   S S S 5        M;     g ! , (       d  f       M  = f! , (       d  f       M_  = f)Nr   r  zimage.interpolation_stager   r   )DATAfooN)	ru  
rc_contextr(   r/   get_interpolation_stager8  r9  r  r   )vals    r4   test_rc_interpolation_stagerQ    s    ^^8#>?::1vh'??ASHHH @?   %]]:&8;CLL45 '& % @? '&s   .B8B+
B(	+
B:	z<ignore:Data with more than .* cannot be accurately displayedzdim, size, msg)rowi   z2\*\*23 columns)coli   z2\*\*24 rowsc           
      &   U R                  5       nUR                  5       n[        R                  " SUS-   45      nSUS S 2UR                  S-  S 24'   US:X  a  UR                  nUR                  USSSSSUS9n	[        R                  " [        S	U S
3S9   U R                  R                  5         S S S 5        [        R                  " S5      nSUS S 2S4'   US:X  a  UR                  nUR                  USSSSSUS9n	g ! , (       d  f       NU= f)Nr   r   rS  r   rw   r  r$   )r  r  r  r   r&   r\   zData with more than z  cannot be accurately displayed.r  rs  )r)   r*   r+   sizer  r/   r8  ru  rv  r  r  )
r~   r   dimrU  msgr\   r  r  rH   r   s
             r4   test_large_imagerX    s    !GFHHa]#E!"E!UZZ1_

e|	AA%l&,% 
 
'B
 
k23% 8. .
/ 	
/
 HHVEE!Q$K
e|	u11V*%+$ 
 
&B
/ 
/s   D
Dc           	         [         R                  R                  SS5      S-  S-   nU R                  SS5      nUS   R	                  USS9  US   R	                  USS	S
9  US   R	                  USS9  US   R	                  USSSS9  US   R	                  USSSS9  UR                  SS5      nUS   R	                  U[
        R                  " 5       S9  US   R	                  U[
        R                  " S	S9S9  US   R	                  U[
        R                  " SS9S9  US   R	                  U[
        R                  " SSSS9S9  US   R	                  USSS9  [        US   R                  S   R                  5      [
        R                  L d   e[        R                  " [        5         US   R	                  USS9  S S S 5        g ! , (       d  f       g = f)Nrr   g?rj  r   r   r   r  rs  r  )rF  r  r   symlogr#   rk  r  )rF  r  r  r   logit)r  )	linthresh)r\  r  r  )rk  r  )rF  climfoobar)r*   rx   rz   r)   r/   r	   rH  rn  typeimagesrF  r8  r9  r  )r~   r   rv  axtsaxrss        r4   test_str_normsrc    s   
		r2#b(AQ"DGNN15N!GNN15rN*GNN18N$GNN18"2N6GNN17"N5Aq!DGNN16>>+N,GNN16>>r2N3GNN16,,q9N:GNN16,,qrKNLGNN17N2Qq!&&'6>>999	z	"Qqx( 
#	"	"s   ,G		
Gc                     [         R                  " [        R                  R                  [        5       S9n [        R                  " [        SS9   U " [        R                  " S5      S 5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S	S9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S
S9   U " [        R                  " S[        R                  5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      R                  5        S S S 5        [        R                  " S5      nSUR                  l        [        R                  " [        SS9   U " [        R                  " S5      U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN@= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN}= f! , (       d  f       GN-= f! , (       d  f       N= f! , (       d  f       g = f)Nr  zincompatible function argumentsr  )r  r  zdifferent dimensionalities)r  r  r   z3D input array must be RGBA)r  r  r#   z3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)	functoolspartialru  _imageresampler   r8  r9  r:  r*   r+   r  r.   r  flags	writeable)rh  r]  s     r4   test__resample_valid_outputrk  $  s     !4!4
KH	y(I	J&!4( 
K	z)E	F&!288I#67 
G	z)E	F)$bhhv&67 
G	z)F	G)$bhhy&9: 
H	z)G	H)$bhhy&9: 
I	z);	<&"((+RXXf-=> 
=	z)?	@&!288F#3#5#56 
A ((6
CCII	z)I	J&!3' 
K	J# 
K	J	F	F	F	F	G	G	H	H	<	<	@	@
 
K	Jsa   K'2K9!2L42L2L/AM<<M M$'
K69
L
L
L,/
L>
M
M!$
M2c                     [         R                  " 5       n [        U 5      n[        R                  " [
        SS9   UR                  5         S S S 5        [        R                  " S[        S9R                  S5      nUR                  U5        UR                  5       S:X  d   eUR                  5       UR                  5       :X  d   eg ! , (       d  f       N= f)Nz"You must first set the image arrayr  rQ  r    r  )r(   r  r   r8  r9  rx  	get_shaper*   r`   r  r  r  get_sizer  s      r4   test_axesimage_get_shapero  ;  s    	B	2B	|+O	P
 
Q
		"E"**62AKKN<<>V###;;=BLLN*** 
Q	Ps   C
Cc                     [         R                  " 5       R                  5       n [        R                  " S5      R                  S5      nU R                  XR                  S9  U R                  5       S:X  d   eU R                  U[        5       R                  S5      U R                  -   S9  U R                  5       S:X  d   eU R                  XR                  SS9  U R                  5       S:X  d   eg )Nr   rR   r  rw   r   r   )r  r  )r(   r^   rt  r*   r`   r  r/   r  
get_aspectr   r	  r  r  s     r4   .test_non_transdata_image_does_not_touch_aspectrr  G  s    		!	!	#B	1		f	%BIIbLLI)==?f$$$IIbHJ,,Q/",,>I?==?aIIbLLI3==?ar6   zdownsampling.pngg
ףp=
?c                  @   Sn [         R                  " U 5      U -  S-
  n[         R                  " U 5      U -  S-
  n[         R                  " X 45      nSUS S S2S S 24'   [         R                  " X5      u  pE[         R                  " US-  US-  -   5      nSnSn[         R
                  " [         R                  S-  Xv-  XS-  -  S-  -   -  5      n	SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S:  '   SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S	:  '   U	S S 2[        U S
-  5      S 24   US S 2[        U S
-  5      S 24'   Un	[        R                  " SS
SSS9u  pUS   R                  U	SSSS9  US   R                  SS5        US   R                  SS5        US   R                  S5        [        UR                  SS  / SQ/ SQ5       H/  u  pnUR                  XUSS9  UR                  SU SU S35        M1     g )Ni  r   r]   r   r   rS   r  r   rk  r#   )r  r   
compressedrU   layoutr"  rG   r  r;  )r&   r9  rV  }   r  r0  r6  Zoom)rG   rG   rq   rq   rw   )r   r  r   r  rw   zinterpolation='z	'
space='')r*   r`   r,   r   r:  ra   r  r{   r(   r)   r/   r   r   rI   rI  flat)rK  rb   rc   r=  rJ   r  r>  r?  r   r_  r0   r   rn   rO  spaces                  r4   test_downsamplingr|  R  s)    	A
		!q3A
		!q3A	!BBssAvJ;;qDA
1q!tA	
BA
ruuqyBFQAX\123A13Aks1q5zk1naQUQ'#-.12Aks1q5zk1naQUQ'#-.1c!a%jk>*Bq#a!e*+~
A||Aq&FHCIQiV"  $IsC IsC I !" 0C!IKE 			!u 	 	!
vhjqABKr6   zdownsampling_speckle.pngc            	      T   [         R                  " SSSSSSS9u  pUR                  5       n[        R                  " S5      R                  SS5      [        R                  " S	5      -  S
-  R                  n[         R                  " S5      nUR                  S5        [        R                  " SSS9nUS   R                  S5        US   R                  [        R                  " U5      X4SS9  US   R                  S5        US   R                  [        R                  " U5      X4S9  g )Nr   r   )r   g@Trt  )rU   r!  r"  rv  i   r]   i  rX   r  r  r#   rg  r@  r   z"interpolation='auto', stage='rgba'r  )rV  rF  r9  z"interpolation='auto', stage='auto')rV  rF  )r(   r)   r  r*   r`   r  r,   r  get_cmapr<  r	   rH  rI   r/   triu)r0   r   r3   r(  rF  s        r4   test_downsampling_speckler  u  s     ||Aq(4#/1HC
++-CIIdO##B*RWWS\9b@
C
CC	i	 BKK>>qr*D
 F9:FMM"''#,RMO F9:FMM"''#,RM3r6   zupsampling.png)r   r   c                     [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SSSSS9u  pUS   R                  U S	S
9nUS   R                  S5        US   R                  U S	SS9  US   R                  S5        US   R                  U S	SSS9  US   R                  S5        UR                  X2SSS9  g )NrB  r   r   r#   )g      @r#   rt  ru  r   r  )rV  zAinterpolation='auto'
stage='antialaised'
(default for upsampling)sinc)rV  r&   z:interpolation='sinc'
stage='auto'
(default for upsampling)r   r  )rV  r&   r9  z!interpolation='sinc'
stage='rgba'r  r!  )rn   shrinkr#  )	r*   rx   ry   rz   r(   r)   r/   rI   r  )r_  r0   r   r   s       r4   test_upsamplingr    s     IINN:
		q!A||Aq(<HHC	Qqy	)BFMO FMM!)6M:FFH FMM!)6vMVF9:LLCL7r6   )r  float32int16r   int8r.   ndim)r   r#   c                 0   [         R                  R                  S5      nUS:X  a  SOSnUR                  US9R	                  [         R
                  " U SS95      n[        R                  " 5       u  pVUR                  U5      nUR                  S 5      S     g )	NiU  r   rR   )r   r   r#   )rU  Tr   r   )
r*   rx   default_rnguniformr   r!   r(   r)   r/   ry  )r!   r  rngr   r   r0   rn   
axes_images           r4   test_resample_dtypesr    sx     ))


%CaiFYE;;E;"))"((5t*DEDllnGC4J$"r6   
intp_stagerK  c                    U R                  SS5      nUR                  SS5      nSu  pVSn[        R                  R                  XV5      n[        R                  R                  XVS5      n	[        R                  " XVS45      n
[        R
                  " XR                  XVS45      4SS9nUS   S   R                  U	5        US   S   R                  [        R
                  " X4SS95        US   S   R                  XUS	9  US   S   R                  [        R
                  " XU
-  4SS9US
9  US   S   R                  XUS	9  US   S   R                  XS
9  US   S   R                  U5        US   S   R                  XS9  US   S   R                  XUS	9  US   S   R                  [        R
                  " XUR                  XVS45      -  4SS9US
9  [        R                  R                  XV5      nUS   S   R                  XUS	9  US   S   R                  [        R
                  " XR                  XVS45      4SS9US
9  g )Nr   r#   rp  r   r   r]   r   r   )r9  r   )r9  r   )r)   r*   rx   rz   r,   r   r  r/   )r~   r   r  axs_tstaxs_refnynxscalar_alphaarray_alphaim_rgbim_concat_default_aim_rgbanew_array_alphas                r4   2test_interpolation_stage_rgba_respects_alpha_paramr    s[    1%Gq!$GFBL))..(K YY^^BA&F''21+.nn	$$ba[12G AJqM AJqM(EBOPAJqM|TAJqM
$778r	
)  
 AJqM{SAJqMA AJqM!AJqM3AJqMUAJqM
K$7$7$DDEB	
)  
 iinnR,OAJqMXAJqM
,,ba[9:	
)  r6   )
contextlibr   r   re  ri   r   pathlibr   r  r  urllib.requestr  numpyr*   numpy.testingr   PILr   
matplotlibru  r	   r
   r   r   r   r(   r   r   matplotlib.imager   r   r   r   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   r   r   matplotlib.tickertickerr  r8  r5   rM   markparametrizerf   rp   r   r   r   r   r   r   r   r   r   r   r   r   contextr   r  r  r2  r  r(  r2  r4  r<  r@  rC  rM  r`  rd  rn  rw  r  r  r  r  r  r  r  r  r  r  r`   r  r  r  r  r  r  r  r  r/  r4  r7  r<  machinerP  rS  splitr!   r^  rb  rh  rj  r  rH  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r$  r,  r@  rG  rI  rQ  filterwarningsrX  rc  rk  ro  rr  r|  r  r  r  r  )r  s   0r4   <module>r     s
       	 	   
   ,  F F< < O A A #  %&D9	. :	. +,#U^?+?+  ,udm<:,E5>:B ; =B ' (. ). ( )" 	) 	)$$  >?- @-D GW#56@ 7@  BCA DA*2)4 =/t46 56 7( ) 0D+N 	3Z	3Z	3Z	3Z	3Z#Y	2Y	& 
P
P* %.	=),#661a.	4 g,/0r(Xa&8DD <.0 1 #$G4 5 ( ) ,-4@I AI =/tO PF8 /0"'33 *+> ?4 (% )% $%#U^WN!N!: ()t7K L0 GF 34"'33!'0-- 		2		"ryy~'='=f'E	G		2		"ryy}'<'<V'D	F11B $%48 9 >"5 66	%3( ./TsK> L>> <.d3+ 4+" )*=
* >
* 01#++-9at"'33D& #9#?#?#AB#Aabhhqk#ABD%D%& )*GL M *+WM N /0"'33 ^^! "#	1#	1D
 02DEG09j2IJ2 KG2 4	D9$2 - -$3
 74 48 $%5%."'3
3
"9% 9%x	  (' )'6 r1g&(2 ) '2$ 
 
@ ./w? @ ,-W= >( '(TtT22 U22j 	** +*& 	** +*$<  = >GW#569689 	*& +9 7>&> () ))*(.	+  TtECECB  TtM4M4* g49898* > (	# )	
	# '78)  9)[ Cs   3]3
