+
    ,i                        ^ RI Ht ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RI	t	^ RI
t^ RIt^ RIHt ^ RIHt ^ RIt^ RIHtHtHtHtHtHt ^ RIHtHtHtH t H!t! ^ R	I"H#t#H$t$ ^ R
I%H&t&H't'H(t( ^ RI)H*t+ ^ RI,t,]$! R.RR7      R 4       t-]$! R.RR.RR7      R 4       t.],P^                  Pa                  RRR.4      ]$! R.RR.R7      R 4       4       t1R t2],P^                  Pa                  R. RO4      ]#! R.R7      R 4       4       t3]#! R.R7      R 4       t4]#! R.R7      R 4       t5R t6R  t7],P^                  Pa                  R!. RO4      R" 4       t8R# t9],P^                  Pa                  R$R%R&.4      R' 4       t:],P^                  Pa                  R!. RO4      R( 4       t;R) t<R* t=R+ t>]$! R,.RR7      R- 4       t?]P4                  P                  R.4      ]#! R.R7      R/ 4       4       tAR0 tB],P^                  Pa                  R1R2R2.^ .R2R3.^.R4R2.^.R5R2.^.R6R7.^U.RR2.R.R2R.R..4      R8 4       tC],P^                  Pa                  R9R:R;..R<3R=R>..R?3]P                  ^^..R@3^R..RA3RR..RB3^ ^ ..RC3.4      RD 4       tE]$! RE.R.RF7      RG 4       tF]$! RH.R.RF7      RI 4       tG]#! R.R7      RJ 4       tHRK tIRL tJ]$! RM.RR7      RN 4       tK]$! RO.RRR.RP7      RQ 4       tLRR tM]$! RS.RR.RT7      RU 4       tN]$! RV.RR7      RW 4       tO]#! R.R7      RX 4       tP]$! RY.RR.RR.RZ7      R[ 4       tQ]$! R\.RR.RT7      R] 4       tRR^ tS]$! R_.RR.RT7      R` 4       tTRa tURb tVRc tWRd tXRe tYRf tZ],P^                  Pa                  Rg] ]P                  ! Rh4      ]P                  ! Ri4      ]P                  ! Rj4      P                  R4      3]!]P                  ! Rh4      ]P                  ! Ri4      ]P                  ! Rk4      P                  R4      3.4      Rl 4       t]Rm t^Rn t_]$! Ro.RR7      Rp 4       t`]$! Rq.RR7      Rr 4       taRs tbRt tc]$! Ru.RRvRw7      Rx 4       td]$! Ry.RR7      Rz 4       teR{ tf]$! R|.RR7      R} 4       tg]$! R~.]P                  ! 4       R8X  d   ^ MRRR.R7      R 4       tiR tj],P^                  Pa                  RRP                  4        U u. uF  p ]P                  V 4      NK  	  up 4      R 4       tm]$! R.RR.RT7      R 4       tn]$! R.RR.RT7      R 4       to]$! R.RR.RT7      R 4       tp],P^                  Pa                  R]P                  ]P                  R R .4      R 4       tsR ttR tuR tvR tw],P^                  Pa                  RRR.4      ],P^                  Pa                  RRR.4      R 4       4       txR tyR tzR t{R t|]#! 4       R 4       t}R t~]P4                  P                  R.4      R 4       t]$! R.RR.RR.RZ7      R 4       t ! R R]EP                  4      tR tR t]#! R.R7      R 4       t],P^                  Pa                  RR^.4      ]#! R.R7      R 4       4       t]#! R.R7      R 4       t]$! R.R.RF7      R 4       t]$! R.R.RF7      R 4       t]$! R.R.RRR7      R 4       t]#! RR7      R 4       t]#! RR7      R 4       tR t],P^                  EP                  R4      ],P^                  Pa                  R$R%R&.4      ],P^                  Pa                  R. RO. RO.4      ]#! RR7      R 4       4       4       4       t]#! R.R7      R 4       tR tR tR t]$! R.R.RRR7      R 4       t]$! R.R.RRR7      R 4       t]$! R.R.RR7      R 4       t],P^                  Pa                  RR4      ],P^                  Pa                  RR4      R 4       4       t],P^                  Pa                  RR4      ]#! 4       R 4       4       tR# u up i )    )	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                 b   \         P                  ! ^^4      w  p w  r\        P                  ! R4      p\        P                  ! R4      VR&   \        P
                  ! \        P                  ! R\        P                  R7      4      VR	&   VP                  VRR7       VP                  VRR7       R# )
z:Test the interpolation of the alpha channel on RGBA imagesdtypenoneinterpolationbilinearN)   r!      r!   r!   ).   .   )pltsubplotsnpzerosonestriluint8imshow)figaxlaxrimgs       =/usr/lib/python3/dist-packages/matplotlib/tests/test_image.pytest_alpha_interpr4      sz     ll1a(OC#
((9
C''&/CK''"''&9:CKJJs&J)JJs*J-    interp_nearest_vs_nonepdfsvg)
extensionsr   c                 H   ^\         R&   \        P                  ! . R	O. R
O.. RO. RO..\        P                  R7      p \        P
                  ! ^^4      w  pw  r#VP                  V RR7       VP                  R4       VP                  V RR7       VP                  R4       R# )z5Test the effect of "nearest" and "none" interpolationsavefig.dpir   r   r   zinterpolation nonenearestzinterpolation nearestN)          )z   g      )      r   )rD   c   G   )r   r)   arrayr-   r'   r(   r.   	set_title)Xr/   ax1ax2s       r3   test_interp_nearest_vs_nonerL   (   s      H]
>?3 -029;	CAll1a(OC#JJqJ'MM&'JJq	J*MM)*r5   suppressCompositeFfigimagepng)r9   c                    \         P                  ! R^dR7      pWn        \        P                  ! \        P
                  ! ^d4      R,          \        P
                  ! ^d4      ^d,          4      w  r#\        P                  ! V^,          V^,          ,           W#,          ,
          4      p\        P                  ! ^V^,          ,          ^2V^,          ,          ,           4      pWE^,          ,           pVP                  V^ ^ RR7       VP                  VRRR1R3,          ^ ^dRR7       VP                  VRRRR13,          ^d^ RR7       VP                  VRRR1RRR13,          ^d^dRR7       R# )	   figsizedpig      Y@lower)xoyooriginNNNNrQ   rQ   )r'   figurerM   r)   ix_arangesinrN   )rM   r/   xyzcr2   s   &      r3   test_figimagerd   :   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Ar5   c                      \         P                  ! 4       w  rVP                  . RO4       \        P                  ! 4       pV P                  V4       VP                  ^ 4       \         P                  ! V4       R# )r$   N)r$   rQ   r&   )r'   r(   plotioBytesIOsavefigseekimread)r/   axbuffers      r3   test_image_python_iorn   J   sI    llnGCGGIZZ\FKK
KKNJJvr5   z!img_size, fig_size, interpolationc                    \         P                  P                  R 4       \        P                  R,          p\         P                  P                  \        WR,          4      \        WR,          4      4      pW3 F  pVP                  W34       K  	  V P                  4       pVP                  . RO4       VP                  VRR7       VP                  4       pVP                  . RO4       VP                  WdR7       R# )!N,r;   autor   Nr   r   r$   r$   )r)   randomseedr'   r   randintset_size_inchesr(   set_positionr.   )	fig_testfig_refimg_sizefig_sizer   rT   Ar/   rl   s	   &&&&&    r3   test_imshow_antialiasedr~   S   s     IINN8
,,}
%C
		s3>*C,?@A"H/ #				BOOL!IIavI&				BOOL!IIaI-r5   c                 N   \         P                  P                  R 4       \        P                  R,          p\         P                  P                  \        V^,          4      \        V^,          4      4      pW3 F  pVP                  RR4       K  	  V P                  4       pVP                  VRR7       VP                  ^
^.4       VP                  ^
^.4       VP                  4       pVP                  VRR7       VP                  ^
^.4       VP                  ^
^.4       R# )rp   r;   333333@rq   r   r<   N)r)   rs   rt   r'   r   ru   rv   rw   r(   r.   set_xlimset_ylim)ry   rz   rT   r}   r/   rl   s   &&    r3   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r5   c                 V   \         P                  ! R 4       \        \        4      P                  R,          p\        \        4      P                  R,          pV P                  ^4      pV^ ,          P                  \        P                  ! V4      4       V^,          P                  \        P                  ! V4      4       VP                  ^4      pV^ ,          P                  \        P                  ! V4      4       V^,          P                  \        P                  ! V4      4       R# )default%baseline_images/pngsuite/basn3p04.png%baseline_images/test_image/uint16.tifN)r   user   __file__parentr(   r.   r   openr'   rk   )ry   rz   png_path	tiff_pathaxss   &&   r3   test_imshow_pilr   }   s    	IIiH~$$'NNHX%%(OOI


A
CFMM%**X&'FMM%**Y'(


1
CFMM#**X&'FMM#**Y'(r5   c                  0   \         P                  ! \        P                  P	                  \        P                  P                  \        4      R RR4      4      p V P                  \        P                  8X  g   Q h\        P                  ! V 4      R8X  g   Q hR# )baseline_images
test_imagez
uint16.tif N)r'   rk   ospathjoindirnamer   r   r)   uint16sumr2   s    r3   test_imread_pil_uint16r      sc    
**RWW\\"''//(";&lD EC99		!!!66#;)###r5   c                      \         P                  ! \        \        4      P                  R ,          4      p V P
                  \        P                  8X  g   Q h\        P                  ! V 4      R8X  g   Q hR# )r   r   N)	r'   rk   r   r   r   r   r)   r   r   r   s    r3   test_imread_fspathr      sP    
**X GGIC99		!!!66#;)###r5   fmtc                 p   V R9  p\         P                  P                  ^4       \         P                  P                  R^4      p\        P
                  ! 4       p\        P                  ! W2V ^R7       \        P
                  ! 4       p\        P                  ! WBV ^dR7       VP                  ^ 4       \        P                  ! W0R7      pVP                  ^ 4       \        P                  ! W@R7      pVP                  R^^V,           38X  g   Q hVP                  R^^V,           38X  g   Q h\        WV4       R# )jpgi@  )formatrT   r   N)r   jpeg)r)   rs   rt   ru   rg   rh   r'   imsaverj   rk   shaper   )r   	has_alphadata	buff_dpi1buff_dpi100arr_dpi1
arr_dpi100s   &      r3   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,r5   c                     RR.RR.RR	..p \         P                  ! 4       p\        P                  ! WRR7       VP	                  ^ 4       \        P
                  ! V4      p\        \        P                  ! V 4      VR
,          4       R# )      ?rO   r   N)r           r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rY   rY   Nr&   N)	rg   rh   r'   r   rj   rk   r   r)   rG   )img_databuffread_imgs      r3   test_imsave_python_sequencesr      ss     
/*	/*	/*H ::<DJJte,IIaLzz$H
r5   rX   upperrU   c                     \         P                  ! 4       p\        P                  ! RRR7      p\        P
                  ! WRV R7       R# )
   r-   r   rO   )arrr   rX   N)r   r   r"   )rg   rh   r)   r*   mimager   )rX   bufresults   &  r3   test_imsave_rgba_originr      s/     **,CXXk1F
MM#%?r5   c                     \         P                  ! \        \        P                  4      \
        P                  ! ^ ^..4      V R7       R# )r   r   N)r'   r   r   r   devnullr)   rG   )r   s   &r3   test_imsave_fspathr      s*    JJtBJJAq6(!3C@r5   c                     \         P                  P                  ^4       R F  p \         P                  P                  ^^^4      p\        P
                  ! 4       p\        P                  ! W!V RR7       VP                  ^ 4       \        P                  ! V4      p^V,          P                  R4      pV R8X  d   VRRR1,          p^V,          P                  R4      p\        W4       K  	  R# )r$   rU   rO   )rX   r   r-   N)rU   r   r[   )r)   rs   rt   ru   rg   rh   r'   r   rj   rk   astyper   )rX   r   r   arr_bufs       r3   test_imsave_color_alphar      s     IINN1$yy~~b"a(zz|

4fU;		!**T"
 D  )W":Dw;&&w/4)! %r5   c                     ^ RI Hp  \        P                  ! 4       pV ! 4       pVP	                  RR4       \
        P                  ! V^ ^.^^..RRV/R7       \        P                  ! V4      pVP                  R,          R8X  g   Q hR# )r   )PngInfoSoftwaretestrO   pnginfor   
pil_kwargsN)
PIL.PngImagePluginr   rg   rh   add_textr'   r   r   r   info)r   r   r   ims       r3   test_imsave_pil_kwargs_pngr      sr    *
**,CiGZ(JJsaVaV$G(<>	CB77:&(((r5   c                  |   ^ RI Hp  \        P                  ! 4       pRR/p\        P
                  ! V^ ^.^^..RVR7       \        V4      ^8X  g   Q h\        P                  ! V4      pVP                  P                  4        UUu/ uF  w  rEW,          P                  VbK  	  pppVR,          R8X  g   Q hR# u uppi )r   )TAGS_V2descriptionz
test imagetiffr   ImageDescriptionN)PIL.TiffTagsr   rg   rh   r'   r   lenr   r   tag_v2itemsname)TAGSr   r   r   kvtagss          r3   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   B8image_alphac                  6   \         P                  P                  ^ 4       \         P                  P                  ^^4      p \        P
                  ! ^^4      w  pw  r#pVP                  V RRR7       VP                  V RRR7       VP                  V RRR7       R# )r   r   r   )alphar         ?r<   N)r)   rs   rt   ru   r'   r(   r.   )Zr/   rJ   rK   ax3s        r3   test_image_alphar     su    IINN1
		q!A<<1-C#CJJq6J2JJq6J2JJq9J5r5   mpl20c                 D   \         P                  P                  R 4       \         P                  P                  ^^^4      p\         P                  ! V^,          4      pV P                  ^^4      w  w  rEw  rgVP                  VRR7       VP                  VRR7       VP                  VRR7       VP                  VRR7       \         P                  ! V\         P                  ! R4      3^R7      p\         P                  ! V\         P                  ! R^\         P                  4      3^R7      p	VP                  ^^4      w  w  rEw  rgRVR&   VP                  V4       RVR&   VP                  V4       ^V	R&   VP                  V	4       ^V	R&   VP                  V	4       R# )rp   r   r         ?axisN)   r   r$   rY   rY   r&   )
r)   rs   rt   ru   r-   r(   r.   concatenater+   full)
ry   rz   rgbfrgbuax0rJ   rK   r   rgbafrgbaus
   &&        r3   test_imshow_alphar     sJ    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'NJJuE'NJJuE'NJJuE'NJJur5   c                     ^ RI Hp  \        P                  ! 4       w  rVP	                  \
        P                  ! ^d4      P                  ^
^
4      RR7      p^^rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      ^,8X  g   Q hR^rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      e   Q hVP                  4        VP	                  \
        P                  ! ^d4      P                  ^
^
4      RR7      p^^rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      ^,8X  g   Q h\        P                  ! 4       w  rVP	                  \
        P                  ! ^d4      P                  ^
^
4      . ROR	7      pR
R
rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      ^78X  g   Q hRR
rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      e   Q hRRrTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      e   Q h\        4       P                  ^4      P                  R4      p	VP	                  \
        P                  ! ^d4      P                  ^
^
4      WP                  ,           R7      p^^
rTVP                  P                  WE.4      w  rgV ! RVP                  Wg4      pVP                  V4      ^,8X  g   Q hR# )r   
MouseEventr   )rX   motion_notify_eventg333333$@NrU   r   extent      ?r   {Gz?	transform)r   r   r   r   g{Gz)matplotlib.backend_basesr   r'   r(   r.   r)   r^   reshape	transDatar   canvasget_cursor_dataclearr   scalerotate)
r   r/   rl   r   r`   ra   xdispydispeventtranss
             r3   test_cursor_datar  2  s   3llnGC	299S>))"b1'	BBaq<<))1&1LE,cjj%GEe$*** q<<))1&1LE,cjj%GEe$,,, HHJ	299S>))"b1'	BBaq<<))1&1LE,cjj%GEe$***llnGC	299S>))"b1:J	KBq<<))1&1LE,cjj%GEe$*** q<<))1&1LE,cjj%GEe$,,,q<<))1&1LE,cjj%GEe$,,, JQ&&s+E	299S>))"b1"\\1 
 
3Bbq<<))1&1LE,cjj%GEe$***r5   zxy, datar         ?g      @g      !@g      #@g      @c                    ^ RI Hp \        P                  ! . RO4      p\        P                  ! . RO4      pV\        P                  R3,          ^,          VR\        P                  3,          ^,          ,           p\
        P                  ! 4       w  rg\        WsP                  4       VP                  4       VP                  4       VP                  4       3R7      pVP                  W4V4       VP                  V4       VP                  VP                  4       ^,
          VP                  4       4       VP                  VP                  4       ^,
          VP                  4       4       VP                  P                  V 4      w  rV! RVP                   W4      pVP#                  V4      V8X  g   Q VP#                  V4      V34       hR# )r   r   rY   r   r   N)r   r$   r"   	      )r   r$   rQ   r&   r"   )r   r   r)   rG   newaxisr'   r(   r   minmaxset_data	add_imager   r   r  r   r  r  )xyr   r   r`   ra   rb   r/   rl   r   r  r	  r
  s   &&          r3   test_cursor_data_nonuniformr  y  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,r5   z
data, texti'  i'  z[10001.000]grh|?g/$?z[0.123][]z[1.0000000000000000]z[-1.0]z[0.00]c                    ^ RI Hp \        P                  ! 4       w  r4VP	                  V 4      pVP
                  P                  ^ ^ .4      w  rgV! RVP                  Wg4      pVP                  VP                  V4      4      V8X  g   Q hR# )r   r   r   N)
r   r   r'   r(   r.   r  r   r  format_cursor_datar  )	r   textr   r/   rl   r   r  r	  r
  s	   &&       r3   test_format_cursor_datar    sr     4llnGC	4B<<))1a&1LE,cjj%GE  !3!3E!:;tCCCr5   
image_clip)r   c                      ^^.^^..p \         P                  ! 4       w  rVP                  V 4      p\        P                  ! R^VP
                  R7      pVP                  V4       R# )r$   )radiusr   Nr   r   )r'   r(   r.   r   Circler  set_clip_path)dr/   rl   r   patchs        r3   test_image_clipr%    sR    
Q!QAllnGC	1BNN6!r||DEUr5   image_cliprectc                      \         P                  ! 4       w  r^^.^^..pVP                  VRR7      p\        P                  ! R^^VP
                  P                  R7      pVP                  V4       R# )r$   r   )r  widthheightr   Nr   r!   r   r!   r$   r$   )r'   r(   r.   r   	Rectangleaxesr  r"  )r/   rl   r#  r   rects        r3   test_image_cliprectr/    se    llnGC
Q!QA	1\	*B10A0ACDTr5   c                 ~   \         P                  ! ^d4      P                  R4      pVP                  4       pVP	                  VR,          RRR7       VP                  ^ ^4       VP                  ^ ^4       V P                  4       pVP	                  VRRR7       VP                  ^ ^4       VP                  ^ ^4       R# )d   r    )r   r   N)r   r   r$   rY   rY   r   )r$   rQ   r$   rQ   )r)   r^   r  r(   r.   r   r   )ry   rz   r   rl   s   &&  r3   test_imshow_10_10_1r3    s     ))C.
 
 
-C				BIIc'l*\IJKK1KK1				BIIcLIAKK1KK1r5   c                     \         P                  ! 4       w  r\        P                  ! ^4      P	                  R4      p\
        P                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)   N)r   r   rQ   	r'   r(   r)   r^   r  pytestraises	TypeErrorr.   r/   rl   r   s      r3   test_imshow_10_10_2r;    P    llnGC
))C.
 
 
-C	y	!	!
		# 
"	!	!	!   A;;B	c                     \         P                  ! 4       w  r\        P                  ! R 4      P	                  R4      p\
        P                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)i  N)r   r   r!   r6  r:  s      r3   test_imshow_10_10_5r?    r<  r=  no_interpolation_originc                  ,   \         P                  ! ^4      w  rV^ ,          P                  \        P                  ! ^d4      P                  R4      RRR7       V^,          P                  \        P                  ! ^d4      P                  R4      RR7       R# )rQ   rU   r   )rX   r   r   N)rQ   2   )r'   r(   r.   r)   r^   r  )r/   r   s     r3   test_no_interpolation_originrC    sg    ||AHCFMM"))C.((1' &  (FMM"))C.((1MHr5   image_shift)r   r9   c            
      b   \        ^^d4       U Uu. uF4  p \        ^^d4       Uu. uF  p^V,          ^V ,          ,           NK  	  upNK6  	  pp pRpRp\        P                  ! 4       w  rVVP                  V\        P
                  ! 4       RW4^^d3R7       VP                  R4       R# u upi u upp i )r$   gMk&Agk&Ar   )normr   r   rq   N)ranger'   r(   r.   r	   LogNorm
set_aspect)ra   r`   imgDatatMintMaxr/   rl   s          r3   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                     \         P                  ! ^^.R7      p V P                  . RORR7      p\        P                  ! \        P
                  ! ^4      ^4      P                  ^^	4      pVP                  VR. RORRR7      p^;rEVP                  V) V.4       VP                  V) V.4       VP                  . 4       VP                  . 4       \        P                  ! 4       pV P                  VRR7       VP                  ^ 4       \         P                   ! V4      p\#        VR,          4      w  rxr\#        VR,          4      w  rxrV^d8w  g   Q R	4       hR
# )r$   rS   F)frameonr   r   gray)rX   r   r   cmap)	facecolorz.Expected a non-green edge - but sadly, it was.Nrr   r   rU  r   )r   r$   r   )rY   r   )rY   r[   )r'   r\   add_axesr)   tiler^   r  r.   r   r   
set_xticks
set_yticksrg   rh   ri   rj   rk   r   )r/   rl   r   r   r`   ra   r   rgbas              r3   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XJA!RYJA!8EEE8r5   image_composite_background)r   r   c                     \         P                  ! 4       w  r\        P                  ! ^4      P	                  ^^4      pVP                  V. ROR7       VP                  V. ROR7       VP                  R4       VP                  ^ ^.4       R# )   r   N)r   rQ      r   )r"   r   rb  r   )r$   r   r   r   )r'   r(   r)   r^   r  r.   set_facecolorr   r:  s      r3   test_image_composite_backgroundrd    si     llnGC
))B-

1
%CIIc-I(IIc-I(^$KKBr5   image_composite_alphac                    \         P                  ! 4       w  r\        P                  ! R	4      p^VR
&   \        P                  ! \        P
                  ! ^ RR4      \        P
                  ! ^ ^R4      RRR1,          34      VR&   \        P                  ! R4      p^VR
&   ^VR&   \        P                  ! \        P
                  ! ^ RR4      \        P
                  ! ^ ^R4      RRR1,          34      R\        P                  3,          VR&   VP                  V. RORR7       VP                  V. RORR7       VP                  V. ROR7       VP                  V. ROR7       VP                  V. RORR7       VP                  V. RORR7       VP                  R4       VP                  ^ ^.4       VP                  ^^ .4       R# )zo
Tests that the alpha value is recognized and correctly applied in the
process of compositing images together.
rY   皙?皙?N333333?)r   r   333333?r   )      r"   r2  r[   r   )rl  rk  r"   )rY   rY   r$   )r$   rQ   r!   r   )rQ   r&   r!   r   )r&   r"   r!   r   )r   r!   r$   rQ   )r   r!   rQ   r&   )r   r!   r&   r"   )r   r   r   r$   )r'   r(   r)   r*   r   r^   r  r.   rc  r   r   )r/   rl   r   arr2s       r3   test_image_composite_alpharn    si    llnGC
((;
CCL>>	1c3	1a!5dd!;<>CL88K DDMDMNN	1c3	1a!5dd!;<>>?mMDMIIc,cI2IIc,cI2IIc,I'IId<I(IId<sI3IId<sI3^$KKAKKAr5   c                    \         P                  ! ^	4      P                  R4      pW3 F  pVP                  4       pVP	                  V\
        P                  P                  . RO4      VP                  3R7       VP	                  V\
        P                  P                  . RO4      VP                  3R7       K  	  RVn	        R# )r  )	clip_pathTNr&   r&   )r   r   r$   )r$   r   )r+  r$   rQ   )rQ   r$   )
r)   r^   r  add_subplotr.   mplr   r   r  rM   )ry   rz   tr/   rl   s   &&   r3   #test_clip_path_disables_compositingrw  6  s    
		!V$A"__
		!.F G " .	 	/
		!.F G " .	 	/	 # !%Gr5   rasterize_10dpi)r9   r   r   c                  6   \         P                  ! ^^.^^..4      p \        P                  ! ^^RR7      w  rV^ ,          P	                  V 4       V^,          P                  ^ ^.^ ^.RRR7       V^,          P                  RRR7       V^,          P                  ^ ^.^ ^.RR7       V^,          P                  RRR7       V FG  pVP                  . 4       VP                  . 4       VP                  R,          P                  R4       KI  	  ^
\        R	&   R
# )r$   rO  g      4@T)	linewidth
rasterizedxlimylim)rz  rY   Fr;   N)r&   r$   rr  )r[   rQ   )r)   asarrayr'   r(   r.   rf   setrX  rY  spinesset_visibler   )r2   r/   r   rl   s       r3   test_rasterize_dpir  B  s     **q!fq!f%
&C||Aq&1HCFMM#FKKAA#$K?FJJFJ)FKKAA#K.FJJFJ) 
b
b
		!  ' 
 !H]r5   bbox_image_invertedc            	         \         P                  ! ^d4      P                  R	4      p \        P                  ! 4       w  r\        \        \        ^d^d.^ ^ ..4      VP                  4      RR7      pVP                  V 4       VP                  R4       VP                  ^ ^d4       VP                  ^ ^d4       VP                  V4       \         P                  ! ^
4      p \        \        \        RR.RR..4      VP                  4       P                   4      RR7      pVP                  V 4       VP                  R4       VP                  V4       R# )
r1  r<   r   Frh  皙?ri  r   Nr   r   )r)   r^   r  r'   r(   r   r   r   r  r  set_clip_onr   r   
add_artistidentity
get_figuretransFigure)r
   r/   rl   bbox_ims       r3   test_bbox_image_invertedr  a  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'r5   c                     \         P                  ! . R	O. R
O. RO. RO.4      p \        P                  ! R^dR7      w  rVP	                  . RO4       VP                  ^ ^4       VP                  ^ ^4       VP                  V . RORR7      pVP                  P                  4        VP                  P                  pVP                  V4      p\        VP                  4       R^.RR..4       \        P                  ! R^dR7      w  rVP	                  . RO4       VP                  ^^4       VP                  ^ ^4       VP                  V . RORVP                  R7      pVP                  P                  4        VP                  P                  pVP                  V4      p\        VP                  4       R^.RR..4       R# )r   rR   r<   )r   r   i  i  i  )r   r   r   N)r   r   r   r   )rh  g?r   皙?)rj  ri  r   r  )ffffff??r  rj  r  rr   )r  r  r  r  )r)   rG   r'   r(   rx   r   r   r.   r  drawrendererget_window_extentr   
get_points	transAxes)r   r/   rl   im_objr  im_bboxs         r3   $test_get_window_extent_for_AxisImager  z  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Fr5   zzoom_and_clip_upper_origin.pngc                      \         P                  ! ^d4      p V P                  R4      p \        P                  ! 4       w  rVP                  V 4       VP                  RR4       VP                  RR4       R# )r1         @Nr        )r)   r^   r  r'   r(   r.   r   r   )r
   r/   rl   s      r3   test_zoom_and_clip_upper_originr    sT     IIcNEMM(#EllnGCIIeKKTKKcr5   c                  h    \         P                  ! 4       p \        V 4      pVP                  R 4       R# )BluesN)r'   gcar   set_cmaprl   r   s     r3   test_nonuniformimage_setcmapr    s#    	B		BKKr5   c                      \         P                  ! 4       p \        V 4      pVP                  \         P                  ! 4       4       R # N)r'   r  r   set_norm	Normalizer  s     r3   test_nonuniformimage_setnormr    s)    	B		BKK r5   c                  \   \         P                  ! RRR7      p \        ^
4       F&  p\         P                  ! RR^
4      ^,          WR3&   K(  	  \        P
                  ! RR4      pVP                  V P                  4       4       \        P                  ! 4       w  r4VP                  V4       R# )	r   r-   r   r   r   rY   LNr  )r)   r+   rG  linspacer   newputdataflattenr'   r(   r.   )imdir   r/   rl   s        r3   test_jpeg_2dr    sw    
''('
*C2YKKS"-3qD	 	3	!BJJs{{}llnGCIIbMr5   c                     \         P                  ! RRR7       \        P                  ! R\        R7      p \        P
                  ! RRR4      V R&   \         P                  ! V 4       \        P                  ! 4       p\         P                  ! VRRRR7       VP                  ^ 4       \        P                  ! V4      p\        VP                  R	4      4      p^Tu;8:  d	   ^8:  g   Q h Q hVP                  R4      pVR8X  g   Q hR
# )r$   ,  rR   r   r   r   redr   )rS  r   rT      Nr+  )r  r  r"   r%   r   )   r   r   )r'   r\   r)   r*   floatr  rN   rg   rh   ri   rj   r   r   r   	getcolorsgetpixel)r   r   r
   
num_colorscorner_pixels        r3   test_jpeg_alphar    s    JJv3' 
-u	-BS#s+BvJLL::<DKKe=IIaLJJtE U__S)*J*######>>&)L;&&&r5   c                     \         P                  ! 4       p \        V 4      p\        P                  ! ^\
        R7      P                  R4      pVP                  V4       RVR&   VP                  R,          ^ 8X  g   Q R4       hR# ra  r   #@value changedNr"   r&   r   )	r'   r  r   r)   r^   r  r  r  _Arl   r   rb   s      r3   test_axesimage_setdatar    s`    	B	2B
		"E"**62AKKNAdG55;!,_,r5   c                     \         P                  ! 4       p \        V 4      p\        P                  ! ^\
        R7      P                  R4      pVP                  V4       RVR&   VP                  R,          ^ 8X  g   Q R4       hR# r  )	r'   gcfr   r)   r^   r  r  r  r  )r/   r   rb   s      r3   test_figureimage_setdatar    sa    
'')C	S	B
		"E"**62AKKNAdG55;!,_,r5   zimage_cls,x,y,a      @      @g      (@g      @c                    \         P                  ! 4       pV ! V4      pVP                  WV4       R ;V^ &   ;V^ &   VR&   VP                  R,          VP                  ^ ,          u;8X  d'   VP
                  ^ ,          u;8X  d   ^ 8X  g   Q R4       h Q R4       hVP                  WVP                  . VP                  ORN54      4       R# )r  r  Nr   r[   )r'   r  r  r  _Ax_Ayr  r   )	image_clsr`   ra   r]  rl   r   s   &&&&  r3   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/0r5   c                     ^ RI Hp  \        P                  P	                  ^ 4       \        P                  P                  ^
^
4      p\        P                  ! ^^4      w  r#V^ ,          P                  V4      pV^,          P                  V4      p\        P                  ! WC^ ,          R7       \        P                  ! WS^,          R7       \        P                  ! 4       p\        P                  ! VRR7       \        P                  ! VP                  4       4      pV P                  V4      pRpVP                  R4       F"  p	Vf   V	R,          pK  V	R,          V8w  g   K"  Q h	  R# )r   )ElementTree)rl   r8   r   Nr
   r(  )	xml.etreer  r)   rs   rt   ru   r'   r(   
pcolormeshcolorbarrg   rh   ri   getvalueparseiter)
r  r   r/   rl   p1p2r   treer(  r
   s
             r3   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 $r5   c                  ,   \        \        4      P                  R ,          p R\        P                  R8X  d   RMR,           V P                  4       P                  4       ,           p\        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V4       RRR4       \        P                  P                  V4      ;_uu_ 4       p\        P                  ! V4       RRR4       R#   + '       g   i     LX; i  + '       g   i     R# ; i)r   zfile:win32z/// zPlease open the URLmatchN)r   r   r   sysplatformresolveas_posixr7  r8  
ValueErrorr'   rk   urllibrequesturlopen)r   urlfiles      r3   test_load_from_urlr    s    >  #JJD||w.eB8\\^$$&'C 
z)>	?	?

3 
@				$	$

4 
%	$ 
@	?	$	$	$s   C/D/C?	D	log_scale_imagec            	          \         P                  ! R4      p ^V R&   \        P                  ! 4       w  rVP	                  V . R	OR^R
RR7       VP                  RR7       R# )r   NNrQ   viridisrq   )r   rR  vmaxvminaspectlog)yscaleNr  )r$   r1  r$   r1  r[   )r)   r*   r'   r(   r.   r  )r   r/   rl   s      r3   test_log_scale_imager  &  sS    
AAcFllnGCIIa(yqr  FF%Fr5   rotate_imagec            	         R p \         P                  ! RRV 4      ;r\         P                  ! W4      w  r4\         P                  ! V^,          V^,          ,           ) ^,          4      ^\         P                  ,          ,          p\         P                  ! V^,
          R,          ^,          V^,
          R,          ^,          ,           ) ^,          4      ^\         P                  ,          R,          R,          ,          pWe,
          p\
        P                  ! ^^4      w  rV	P                  VRRR. RORR7      p
\        4       P                  ^4      V	P                  ,           pV
P                  V4       V
P                  4       w  rrV	P                  WWV.WWV.R	^VR
7       V	P                  ^^4       V	P                  ^ ^4       R# )r   r  r  r   r   r  rU   T)r   rR  rX   r   clip_onzr--)lwr   N      )r"   rQ   )r)   r^   meshgridexppir'   r(   r.   r   
rotate_degr  set_transform
get_extentrf   r   r   )deltar`   ra   rI   YZ1Z2r   r/   rJ   im1trans_data2x1x2y1y2s                   r3   test_rotate_imager  1  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r5   c                  "   \         P                  ! 4       p \        P                  ! R4      p\        P
                  ! WRR7       V P                  ^ 4       \        P                  ! V 4      pVP                  R,          VP                  8X  g   Q hR# )  rO   r   :NrQ   NN)r  iA  )	rg   rh   r)   r*   r'   r   rj   rk   r   )r   r   r2   s      r3   test_image_preserve_sizer  M  s\    ::<D	*	BJJt&IIaL
**T
C99R=BHH$$$r5   c                  @   ^p \         P                  ! V \        4      p\        P                  ! W 3RR7      pVP                  R	4      pVP                  4        VP                  VRRRR7       \        P                  ! 4       pVP                  V^R7       VP                  ^ 4       \        P                  ! V4      pVP                  R
8X  g   Q h\        \         P                  ! VR,          \         4      \         P                  ! V \         4      RRR1,          4       R# )   F)rS   rP  r<   rU   rq   )r   rX   r  )rT   N)r   r   r   r   )r  r  r"   r2  r[   )r)   r  r  r'   r\   rV  set_axis_offr.   rg   rh   ri   rj   rk   r   r   r  bool)nr   r/   rl   r   r2   s         r3   test_image_preserve_size2r  Y  s    	A;;q% D
**aVU
3C	*	+BOOIId)GFIK::<DKK!KIIaL
**T
C99	!!!rzz#g,5{{1d+DbD13r5   zmask_image_over_under.pngr   )r   tolc                  R   R p \         P                  ! RRV 4      ;r\         P                  ! W4      w  r4\         P                  ! V^,          V^,          ,           ) ^,          4      ^\         P                  ,          ,          p\         P                  ! V^,
          R,          ^,          V^,
          R,          ^,          ,           ) ^,          4      ^\         P                  ,          R,          R,          ,          p^
We,
          ,          p\
        P                  P                  P                  RRRR7      p\         P                  P                  VR8  V4      p	\
        P                  ! ^^4      w  p
w  rVP                  V	R	V\        P                  ! RR
RR7      R. ROR7      pVP                  R4       V
P!                  VRRV^
R7       VP                  V	RV\        P"                  ! . RORRR7      R. ROR7      pVP                  R4       V
P!                  VRRRV^
R7       R# )g?r  r  r   rZ  r[  r\  overunderbad333333?r    r   F)r  r  cliprU   )r   rR  rF  rX   r   zGreen=low, Red=high, Blue=badboth
horizontal)extendorientationrl   r  r<   r  )ncolorsr  zWith BoundaryNormproportional)r!  spacingr"  rl   r  Nr  g      )r  r&   r  r&   )r[   r  gɿr   r  r   r$   )r)   r^   r  r  r  r'   cmrQ  with_extremesmamasked_wherer(   r.   r	   r  rH   r  BoundaryNorm)r  r`   ra   rI   r  r  r  r   paletteZmr/   rJ   rK   r   s                 r3   test_mask_image_over_underr-  m  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"  >r5   
mask_imagec                     \         P                  ! ^^4      w  p w  r\        P                  ! R4      p\        P                  VR&   VP                  VRR7       \        P                  ! R\        R7      pRVR&   \        P                  P                  \        P                  ! R\        P                  R7      V4      pVP                  VRR7       R# )r$   r<   r   r   TNr#   )r$   rQ   Nr0  )r'   r(   r)   r+   nanr.   r*   r  r(  masked_arrayr   )r/   rJ   rK   r}   s       r3   test_mask_imager3    s     ll1a(OC#
A&&AhKJJq	J*
t$AAhK
2776;Q?AJJq	J*r5   c                      \         P                  ! R\         P                  4      p \        P                  ! 4       w  rVP                  V 4       VP                  P                  4        R# )rQ   NrZ   )r)   r   r1  r'   r(   r.   r  	draw_idle)r   r/   rl   s      r3   test_mask_image_allr6    s>    776266"DllnGCIIdOJJr5   zimshow_endianess.pngc                     \         P                  ! ^
4      p \         P                  ! W 4      w  r\         P                  ! V^,
          V^,
          4      p\        P
                  ! ^^4      w  pw  rV\        RRRR7      pVP                  ! VP                  R4      3/ VB  VP                  ! VP                  R4      3/ VB  R# )r   rU   r<   r  )rX   r   rR  z<f8z>f8N)	r)   r^   r  hypotr'   r(   dictr.   r   )r`   rI   r  r   r/   rJ   rK   kwargss           r3   test_imshow_endianessr;    s    
		"A;;qDA
QAAll1a(OC#		JFJJqxx)&)JJqxx)&)r5   imshow_masked_interpolationx86_64r   )r  r   r   c                  *   \         P                  R ,          P                  RRRR7      p ^p\        P                  ! ^ W,          ^,
          R7      p\
        P                  ! W,          \        R7      P                  W4      pRVR&   RVR&   \
        P                  VR&   \
        P                  ! V4      P                  R4      pR	VR&   \
        P                  P                  W44      p\        P                  ! ^^4      w  rV\!        \"        P$                  4      pVP'                  R
4       VP'                  R4       \)        WvP+                  4       4       F:  w  rV	P-                  V4       V	P/                  W2WR7       V	P1                  R4       K<  	  R# )r  rZ  r\  r   r  r  r  r   g     j@r  Trq   antialiased)rF  rR  r   offNr[   r#   )rb  r!   )rb  rb  )r!   rb  )ru  	colormapsr'  r	   r  r)   r^   r  r  inf
zeros_liker   r(  r2  r'   r(   sortedr   	_interpd_removezipravelrH   r.   r   )
rR  Nr  r   maskr/   ax_gridinterpsinterprl   s
             r3    test_imshow_masked_interpolationrO    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	@
 4r5   c                  Z    \         P                  ! ^^.^\        P                  ..4       R# )r$   N)r'   r.   r)   r1   r5   r3   test_imshow_no_warn_invalidrR    s    JJABFF$%r5   r   zu2 u4 i2 i4 i8 f4 f8c                    \         P                  ! R V R7      P                  R4      pV P                  R8w  d
   V^
,          pV^ 8  pV^8  pV P                  R8X  d
   V^,          p\        P
                  ! 4       w  rEVP                  V4      P                  4       pWb,          ^ 8H  P                  4       '       g   Q hV P                  R8X  dA   Wc,          ^8H  P                  4       '       g   Q hVP                  P                  R8X  g   Q hR# Wc,          ^8H  P                  4       '       g   Q hVP                  \         P                  8X  g   Q hR# )r  r   ufN)r   r   r&   )r)   r^   r  kindr'   r(   r.   	get_arrayallr   r-   )r   r   too_lowtoo_high_rl   outs   &      r3   $test_imshow_clips_rgb_to_valid_ranger]    s
    ))Cu
%
-
-k
:CzzSr	AgGSyHzzSCiLLNEA
))C.
"
"
$CLA""$$$$zzS"''))))yy~~$$$$))++++yyBHH$$$r5   zimshow_flatfield.pngc                      \         P                  ! 4       w  rVP                  \        P                  ! R4      RR7      pVP                  RR4       R# )r!   r<   r   r   r  Nr#   )r'   r(   r.   r)   r+   set_climr/   rl   r   s      r3   test_imshow_flatfieldra    s7    llnGC	2776?)	<BKKCr5   zimshow_bignumbers.pngc                      R \         R&   \        P                  ! 4       w  r\        P                  ! . RO. RO.\        P
                  R7      pVP                  V4      pVP                  ^ ^4       R# )r<   image.interpolationr   N)r$   rQ   g   mB)r&   r$   r"   )r   r'   r(   r)   rG   uint64r.   r_  r/   rl   r2   pcs       r3   test_imshow_bignumbersrg    sP    &/H"# llnGC
((L),BII
>C	3BKK1r5   zimshow_bignumbers_real.pngc                      R \         R&   \        P                  ! 4       w  r\        P                  ! . RO. RO.4      pVP                  V4      pVP                  ^ ^4       R# )r<   rc  N)r  r   gMD)r  r   r  )r   r'   r(   r)   rG   r.   r_  re  s       r3   test_imshow_bignumbers_realri    sL     '0H"# llnGC
((O\2
3C	3BKK1r5   	make_normc                  .    \         P                  ! ^4      # r$   )r	   
SymLogNormrQ  r5   r3   <lambda>rn    s    Vq!r5   c                  .    \         P                  ! ^4      # rl  )r	   	PowerNormrQ  r5   r3   rn  rn    s    Va r5   c                    \         P                  ! 4       w  r\        P                  ! \        R R7      ;_uu_ 4        VP                  . .V ! 4       R7      pRRR4       XP                  . RO4       VP                  P                  4        \        P                  ! \        4      ;_uu_ 4        VP                  VP                  P                  4       4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z.Attempting to set identical low and high xlimsr  rF  N)r!   rs  r!   )r'   r(   r7  warnsUserWarningr.   
set_extentr  r  r8  RuntimeError
make_imageget_renderer)rj  r/   rl   r   s   &   r3   test_empty_imshowrz    s     llnGC	kL
N 
NYYt)+Y.
N MM.!JJOO	|	$	$
cjj--/0 
%	$
N 
N 
%	$	$s   C!-*C4!C1	4D	c                      \         P                  ! 4       w  rVP                  \        P                  ! R\        P
                  R7      4       V P                  P                  4        R# )r&   r   Nrq  )r'   r(   r.   r)   r*   float16r  r  r/   rl   s     r3   test_imshow_float16r~  #  s8    llnGCIIbhhvRZZ01JJOOr5   c                     \         P                  ! 4       w  rVP                  \        P                  ! R\        P
                  R7      4       \        P                  ! \        P
                  \        P                  R4      '       d   \        4       M\        P                  ! \        4      ;_uu_ 4        V P                  P                  4        RRR4       R#   + '       g   i     R# ; i)r&   r   equivNrq  )r'   r(   r.   r)   r*   
longdoublecan_castfloat64r   r7  rt  ru  r  r  r}  s     r3   test_imshow_float128r  *  s    llnGCIIbhhvR]]34R]]BJJHH)+||K() ) 	

) ) ) )s   3CC)	c                      \         P                  ! 4       w  rVP                  \        P                  ! R R.RR ..\
        R7      4       R# )TFr   N)r'   r(   r.   r)   rG   r  r}  s     r3   test_imshow_boolr  3  s3    llnGCIIbhhut}5TBCr5   c                      \         P                  ! 4       w  rVP                  \        P                  ! R\        P
                  4      4       V P                  P                  4        R# )r   Nr  )r'   r(   r.   r)   r   r1  r  r  r}  s     r3   test_full_invalidr  8  s8    llnGCIIbggh'(JJOOr5   zfmt,countedzcomposite_image,countc                 D   \         P                  ! \         P                  ! R^^4      \         P                  ! R^^4      4      w  rE\         P                  ! V^,          4      p\        P
                  ! 4       w  rxVP                  ^ ^4       VP                  V. ROR7       VP                  VRRR1,          . ROR7       V\        P                  R&   \        P                  ! 4       p	VP                  WR7       V	P                  4       P                  V4      V8X  g   Q hR# )	r!   r   Nzimage.composite_imager   rs  r   r$   r   r$   r[   )rQ   r&   r   r$   )r)   r  r^   r_   r'   r(   r   r.   r   rg   rh   ri   r  count)
r   countedcomposite_imager  rI   r  r   r/   rl   r   s
   &&&&      r3   test_compositer  ?  s     ;;ryyQ*BIIb!Q,?@DA
qAvAllnGCKK1IIaI%IIa"glI+,;CLL()
**,CKKK <<>(E111r5   c                      \         P                  ! 4       w  rVP                  ^ ..RR7       VP                  4        VP	                  4        VP                  4       VP                  4       u;8X  d	   R8X  g   Q h Q hR# )r   r   Nr  rr  )r'   r(   r.   relim	autoscaleget_xlimget_ylimr}  s     r3   
test_relimr  R  sZ    llnGCIIseLI)HHJLLN;;=BKKM3V33333r5   c                     \         P                  ! 4       w  rVP                  4        VP                  ^ ^ .^ ^ ..RRRRR7      pVP	                  RRR7       V P
                  P                  4        \        P                  ! V P
                  P                  4       4      R	,          ^ 8H  P                  4       '       g   Q hR# )
r   rq   rQ  F)r  r   rR  r  r|  NrT  rr  ).r   )r'   r(   r  r.   r  r  r  r)   rG   buffer_rgbarX  r`  s      r3   test_unclippedr  Z  s    llnGCOO	QFQF#F;M 
 
/BFFVF$JJOO HHSZZ++-.w71<AACCCCr5   c                  `   \         P                  ! ^4      w  rV F  pVP                  4        K  	  V^,          P                  ^ ^.^^..RRR7      pVP	                  R4       VP                  V^ ,          P                  4       \        P                  ! 4       pV P                  VRR7       0 VP                  4       m^08X  g   Q hV^,          P                  RR7       \        P                  ! 4       pV P                  VRR7       VP                  4       VP                  4       8w  g   Q hR# )	rQ   rq   )r  r   Nrgbar   )r~  r  )r[   r   )r'   r(   r  r.   r"  set_clip_boxbboxrg   rh   ri   r  r  )r/   r   rl   r   
buf_before	buf_afters         r3   test_respects_bboxr  f  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8r5   c                     \         P                  ! 4       w  rVP                  \        P                  ! R4      4      p\        P
                  P                  ^ .R.R7      pVP                  V4      R8X  g   Q h\        P
                  P                  ^ .R.R7      pVP                  V4      R8X  g   Q h\        P                  pVP                  V4      R8X  g   Q hR# )	r"   TrK  r  Fz[0]z[nan]N)r"   r"   )	r'   r(   r.   r)   r*   r(  r2  r  r1  )r/   rl   r   r   s       r3   test_image_cursor_formattingr  x  s    llnGC	288F#	$B55qc/D  &$...55qc0D  &%///66D  &'111r5   c                   \         P                  ! ^ ^4      p\         P                  ! W"4      w  r4\         P                  ! RVR,
          ^,          ,          VR,
          ,           4      pWUP	                  4       ,          p\
        P                  R,          pV P                  4       pVP                  WVVRR7       VP                  4       pV! \        P                  ! 4       ! V4      4      p	WiR	&   VP                  V	RR7       R# )
zPer-pixel alpha channel test.r   r  r<   )r   rR  r   r   Nr  g[(\?).r[   )r)   r  r  r  r  ru  rB  rt  r.   r	   r  )
ry   rz   r`   xxyyzzr   rR  rl   r  s
   &&        r3   test_image_array_alphar    s     	AqA[[FB	SQ'2=9	:BME==#D				BIIbD	IB				B  "2&'DMIId)I,r5   c                      \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! \
        P                  ! R4      ^^.R7       RRR4       R#   + '       g   i     R# ; i)zalpha must be a float, two-dr  r   NrZ   )r7  r8  r9  r'   r.   r)   r*   rQ  r5   r3   !test_image_array_alpha_validationr    s?    	y(F	G	G

288F#Aq62 
H	G	G	Gs   /AA/	c                     \        \        P                  R ,          4      p V P                  RR7       \        P
                  ! R	^dR7      pVP                  . R
O4      p\        P                  ! . RO.\        R7      pVP                  VRV ^ ^dR7      pVP                  R4       VP                  P                  4        VP                  VP                  P                  4      ^ ,          ^ ,          pVP!                  VP#                  V^..^
,          ,          P$                  P'                  4       4      4      ^,          P)                  \*        4      p\        P,                  ! WV8H  4      '       g   Q hR# )autumn_r	lightgrey)colorrR   r   rq   )r  rR  r  r  rA  N)gffffff?rh  rr   )r[   r[   r[   r   r   r   r   +   O   _   B   r$   r[   r[   r[   r   r   r   "   )r   ru  rB  	set_underr'   r\   rV  r)   rG   r  r.   r   r  r  rx  r  rR  rF  TrI  r   rv   rX  )rR  r/   rl   r   r   
from_imagedirect_computations          r3   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3r5   image_placementc            	     V   \         P                  ! 4       w  rVP                  . R	O. R
ORRR7       \        P                  P                  R4       VP                  \        P                  P                  ^^4      RRRR^R7       VP                  RR4       VP                  RR4       R# )zC
The red box should line up exactly with the outside of the image.
rZ  rh  )r  r  rp   r  r   )rR  r   r   r  r  N)r   r   r$   r$   r   )r   r$   r$   r   r   r  r[   grg  )
r'   r(   rf   r)   rs   rt   r.   randnr   r   r}  s     r3   test_image_placementr    s~     llnGCGGO_CCG@IINN8IIbiioob"%GL"!  5KKeKKer5   c                   T   a a ] tR tRt oR tR tV 3R ltR t]R 4       t	Rt
VtV ;t# )
QuantityNDi  c                \    \         P                  ! V4      P                  V 4      pW#n        V# r  )r)   r  viewunits)clsinput_arrayr  objs   &&& r3   __new__QuantityND.__new__  s%    jj%**3/	
r5   c                *    \        VR R4      V n        R# r  N)getattrr  )selfr  s   &&r3   __array_finalize__QuantityND.__array_finalize__  s    S'40
r5   c                   < \        V R R4      p\        SV `	  V4      p\        V\        4      '       g   Ve   \	        W24      pV# r  )r  super__getitem__
isinstancer  )r  itemr  ret	__class__s   &&  r3   r  QuantityND.__getitem__  sA    gt,g!$'c:&&%*;S(C
r5   c                   \        W4      pR V9   d   \        # \        V4      ^8X  d6   V^ ,          p\        VRR4      pV! \        P                  ! V4      3/ VB pEMq\        V4      ^8X  Ed[   V^ ,          pV^,          p	\        VRR4      p
\        V	RR4      pV
f   TMT
p
Vf   T
MTpV\        P
                  \        P                  39   d   W8w  d   \        hT
pMV\        P                  8X  d	   V
 RV 2pMV\        P                  8X  d
   V
 RV R2pMjV\        P                  \        P                  \        P                  \        P                  \        P                  \        P                  39   d   RpM\        # V! VP!                  \        P"                  4      V	P!                  \        P"                  4      3/ VB pM\        # Vf   \        P$                  ! V4      pV# \'        W4      pV# )r\  r  dimensionlessN*z/())r  NotImplementedr   r)   r  addsubtractr  multiplydividegreatergreater_equalequal	not_equalless
less_equalr  ndarrayrG   r  )r  ufuncmethodinputsr:  funci0unitout_arri1u0u1s   &&&*,       r3   __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r5   c                @    V P                  \        P                  4      # r  )r  r)   r  )r  s   &r3   r   QuantityND.v  s    yy$$r5   )r  )__name__
__module____qualname____firstlineno__r  r  r  r  propertyr   __static_attributes____classdictcell____classcell__)r  __classdict__s   @@r3   r  r    s3     
1%N % % %r5   r  c                  t   \        ^^.R4      p V R,          w  r\        P                  ! V P                  \        P                  ! ^^.4      8H  4      '       g   Q hV P
                  R8X  g   Q h\        P                  ! W,           P                  \        P                  ! ^.4      8H  4      '       g   Q hW,          P
                  R8X  g   Q hW!,          P
                  R8X  g   Q h\        P                  ! \        4      ;_uu_ 4        V\        ^R4      ,            RRR4       R#   + '       g   i     R# ; i)r$   mrY   zm*mzm/(m)sN)	r  r)   rX  r   r  r  r7  r8  r  )qq0q1s      r3   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&&D7	c                      \        \        P                  ! R4      R4      p \        P                  ! 4       w  rVP                  V 4       VP                  P                  4        R# )rQ   r  NrZ   )r  r)   r+   r'   r(   r.   r  r  )r   r/   rl   s      r3   test_imshow_quantityndr    s<    
RWWV_c
*CllnGCIIcNJJOOr5   c                    \         P                  ! R^\         P                  R7      pRVR&   \         P                  P	                  VRR7      pRVP
                  R&   \        P                  R,          P                  RR7      pV P                  4       pVP                  V\        P                  ! R^R	7      RR
VR7      pVP                  \        P                  ! R^R	7      4       VP                  V\        P                  ! R^R	7      RR
VR7      pVP                  \        P                  ! R^R	7      4       VP                  RRR7       VP                  4       pVP                  V\        P                  ! R^R	7      RR
VR7       VP                  V\        P                  ! R^R	7      RR
VR7       VP                  RRR7       R# )r!   r   Fr  Tr  wr  r   r?  r<   )rF  r   r   rR  r|  Nr#   r[   r   rQ   NrY   )r  r  r*  r  )r!   r   r!   r   r   r   )r)   r   r  r(  rG   rK  ru  rB  r'  r(   r.   r	   rH  r  r  r  )ry   rz   r   masked_datarR  rl   r   s   &&     r3   test_norm_changer
     s{    7761BJJ/DDL%%++d+/K!%K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&r5   r`   c                 (   \         P                  ! RV\         P                  R7      pRVR&   V P                  4       pVP	                  V\
        P                  ! ^VP                  4       R7      RRR7       \         P                  ! RV\         P                  R7      pRVR&   VP                  4       p\        P                  R,          P                  RR	7      pVP	                  V\
        P                  ! ^VP                  4       R7      RVR7       R
# )r!   r   g@xDr?  r<   r  )rF  r   rR  i  r  r  Nr#   r  )r)   r   r  r(   r.   r	   rH  r  ru  rB  r'  r  )ry   rz   r`   r   rl   rR  s   &&&   r3   test_huge_range_logr  <  s     7761BJJ/DDL				BIIdQTXXZ@%I  7 7761BJJ/DDL				B==#111<DIId))qtxxzB%D  2r5   c                    V P                  ^^4      pVP                  ^^4      p^^.^^..^ ^ .^ ^ ..^ ^.^^ ..3p. ROp\        \        WE4      4       EFr  w  pw  rxW&,          P                  V4       W&,          P	                  V4       W6,          P                  V4       W6,          P                  VRRRR^ ^R7       W6,          P                  RR4       W6,          P                  RR4       W6,          P                  P                  4        W6,          P                  P                  R4       W6,          P                  P                  R4       W6,          P                  P                  \        P                  ! ^	. ROR	R
7      4       W6,          P                   P                  \        P                  ! ^	. ROR	R
7      4       EKu  	  R# )r$   r<   r  r   Greys)r   r  rX   rR  r  r  r  g?r  T)nbinsstepsintegerN)r+   r*   mixedr  )r$   rQ   r!   r   )r(   	enumeraterH  rH   spyr.   r   r   xaxistick_toptitleset_yset_ticks_positionset_major_locatormtickerMaxNLocatoryaxis)	ry   rz   ax_testax_ref	plot_dataplot_titlesr  rb   r  s	   &&       r3   test_spy_boxr"  P  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	
 @r5   znonuniform_and_pcolor.pngc                     \         P                  ! R	R7      P                  ^RRR7      p \        V RR.4       F  w  r\	        WR7      pVP                  \        P                  ! ^4      ^,          \        P                  ! ^4      ^,          \        P                  ! ^	4      P                  R	4      4       VP                  V4       K  	  V ^,          P                  \        P                  ! ^4      ^,          \        P                  ! ^4      ^,          \        P                  ! ^	4      P                  R	4      4       V  F%  pVP                  4        VP                  R
R7       K'  	  R# )r&   rO  T)sharexshareyr<   r    r   )r}  Nrq  r  )r'   r\   r(   rH  r   r  r)   r^   r  r  
pcolorfastr  r  )r   rl   r   r   s       r3   test_nonuniform_and_pcolorr'  q  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 r5   znonuniform_logscale.pngc                     \         P                  ! ^^R7      w  r\        ^4       EF%  pW,          p\        V4      pVP	                  \
        P                  ! ^^4      ^,          \
        P                  ! ^^4      ^,          \
        P                  ! ^	4      P                  R4      4       VP                  ^^4       VP                  ^^4       VP                  ^4       V^8X  d'   VP                  R^R7       VP                  R^R7       V^8X  d'   VP                  R^R7       VP                  R^R7       VP                  V4       EK(  	  R# )r&   )ncolsnrowsr  )baseNrq  )r'   r(   rG  r   r  r)   r^   r  r   r   set_box_aspect
set_xscale
set_yscaler  )r[  r   r  rl   r   s        r3   test_nonuniform_logscaler/    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 r5   zrgba_antialias.pngg{Gz?)r   r   r  c            	      ^   \         P                  ! ^^RRRRR7      w  r^p\        P                  ! W"34      pRVR&   \        P                  ! V4      V,          R,
          p\        P                  ! V4      V,          R,
          p\        P
                  ! WE4      w  rg\        P                  ! V^,          V^,          ,           4      p^
p	^Kp
\        P                  ! \        P                  ^,          W,          W^,          ,          ^,          ,           ,          4      pRVR\        V^,          4      1R3,          VR\        V^,          4      1R3,          R8  &   ^VR\        V^,          4      1R3,          VR\        V^,          4      1R3,          R8  &   VR\        V^,          4      R13,          VR\        V^,          4      R13&   \        P                  VR&   R	VR&   RVR&   R	VR&   RVR&   \        \         P                  P                  4      pVP                  R
4       VP                  R4       VP!                  4       pV^ ,          P#                  VRVRRR7       V^ ,          P%                  V^,          ^,
          V^,          ^,           .4       V^ ,          P'                  V^,          ^2,           V^,          ^
,
          .4       V^,          P#                  VRVRRR7       V^,          P#                  VRRVRRR7       V^,          P#                  VRRVRRR7       R# )rQ   FT)rS   r$  r%  constrained_layoutrY   r   Nr  ri  g    .Ayellowcyanr<   r  )r   rR  r  r  rq   r   )r   interpolation_stagerR  r  r  r  )      @r5  r[   r  rY   )   rB  Nr7  )F   Z   Nr9  g    .)r9  r8     N)r9        N)r<  r>  g333333)r'   r(   r)   r+   r^   r  sqrtr_   r  rv   r1  r   r&  RdBu_rset_overr  r  r.   r   r   )r/   r   rJ  aar`   ra   rI   r  Rf0r   r]  rR  s                r3   test_rgba_antialiasrG    s   ||Aq*U#(TCHCA	!BBvJ
		!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()| vvB|B|B|B~B~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  2r5   c                   \         P                  P                  R4       \         P                  P                  ^^4      pVP	                  4       pVP                  VRRRR7       V P	                  4       pVP                  VRRRR7       R# )zO
Show that interpolation_stage='auto' gives the same as 'data'
for upsampling.
r    r  r   r   rR  r4  rq   N*N,r)   rs   rt   ru   r(   r.   ry   rz   gridrl   s   &&  r3   !test_upsample_interpolation_stagerN    sz     IINN:99>>!QD				BIId*9"(  * 
			BIId*9"(  *r5   c                   \         P                  P                  R4       \         P                  P                  RR4      pVP	                  4       pVP                  VRRRR7       V P	                  4       pVP                  VRRRR7       R# )zQ
Show that interpolation_stage='auto' gives the same as 'rgba'
for downsampling.
rp   i  rq   r  r  rI  NrK  rL  s   &&  r3   #test_downsample_interpolation_stagerP    sz     IINN899>>$%D				BIId&y"(  * 
			BIId&y"(  *r5   c                     R F[  p \         P                  ! RV /4      ;_uu_ 4        \        P                  ! ^^..4      P	                  4       V 8X  g   Q h RRR4       K]  	  R FA  p \
        P                  ! \        4      ;_uu_ 4        V \         P                  R&   RRR4       KC  	  R#   + '       g   i     K  ; i  + '       g   i     Kl  ; i)r   zimage.interpolation_stageNr   r  )DATAfooN)	ru  
rc_contextr'   r.   get_interpolation_stager7  r8  r  r   )vals    r3   test_rc_interpolation_stagerX    s    ^^8#>??::1vh'??ASHHH @?   %]]:&&8;CLL45 '& % @?? '&&s   /B+	B?+B<?Cz<ignore:Data with more than .* cannot be accurately displayedzdim, size, msgc           
      V   V P                  4       pVP                  4       p\        P                  ! ^V^,           34      p^VRVP                  ^,          R13&   VR8X  d   VP                  pVP                  V^ ^RR
RVR7      p	\        P                  ! \        RV R2R	7      ;_uu_ 4        V P                  P                  4        RRR4       \        P                  ! R4      p^VR&   VR8X  d   VP                  pVP                  V^ ^RR
RVR7      p	R#   + '       g   i     LX; i)r$   rY   Ncolrq   r   )r  r  r  r   r   rX   zData with more than z  cannot be accurately displayed.r  r  rs  )rY   r$   )r(   r)   r*   sizer  r.   r7  rt  ru  r  r  )
ry   rz   dimr[  msgrX   r  r  rG   r   s
   &&&&&&    r3   test_large_imager^    s    !GFHHa]#E!"E!UZZ1_

e|	AA%l&,% 
 
'B
 
k23% 8. .
/ 
/ 	
/
 HHVEE$K
e|	u11V*%+$ 
 
&B
/ 
/s   -DD(	c           	         \         P                  P                  ^
^
4      R,          R,           pV P                  ^^4      pV^ ,          P	                  VRR7       V^,          P	                  VRRR7       V^,          P	                  VRR7       V^,          P	                  VRRR	R
7       V^,          P	                  VRRR	R
7       VP                  ^^4      pV^ ,          P	                  V\
        P                  ! 4       R7       V^,          P	                  V\
        P                  ! RR7      R7       V^,          P	                  V\
        P                  ! ^R7      R7       V^,          P	                  V\
        P                  ! ^RR	R7      R7       V^,          P	                  VRRR7       \        V^ ,          P                  ^ ,          P                  4      \
        P                  J g   Q h\        P                  ! \        4      ;_uu_ 4        V^ ,          P	                  VRR7       RRR4       R#   + '       g   i     R# ; i)r   g?rh  r  rr  r  )rF  r  symlogri  r  )rF  r  r  logit)r  )	linthresh)rb  r  r  )rF  climfoobarN)ri  r  )r)   rs   ru   r(   r.   r	   rH  rm  typeimagesrF  r7  r8  r  )ry   rz   rv  axtsaxrss   &&   r3   test_str_normsri  $  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   H99I
	c                     \         P                  ! \        P                  P                  \        4       R 7      p \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      R4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      \        P                  ! R4      4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      \        P                  ! R4      4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      \        P                  ! R4      4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      \        P                  ! R4      4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R\        P                  4      \        P                  ! R4      4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V ! \        P                  ! R4      \        P                  ! R4      P                  4       RRR4       \        P                  ! R4      pR	VP                  n        \        P                  ! \        R
R7      ;_uu_ 4        V ! \        P                  ! R4      V4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL=; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELP; i  + '       g   i     L; i  + '       g   i     R# ; i)r   zincompatible function argumentsr  Nzdifferent dimensionalitiesz3D input array must be RGBAz3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)r  r  )r  r  r"   )r  r  r&   )	functoolspartialru  _imageresampler   r7  r8  r9  r)   r*   r  r-   r  flags	writeable)rn  r\  s     r3   test__resample_valid_outputrq  :  s+     !4!4
KH	y(I	J	J&!4( 
K	z)E	F	F&!288I#67 
G	z)E	F	F)$bhhv&67 
G	z)F	G	G)$bhhy&9: 
H	z)G	H	H)$bhhy&9: 
I	z);	<	<&"((+RXXf-=> 
=	z)?	@	@&!288F#3#5#56 
A ((6
CCII	z)I	J	J&!3' 
K	J# 
K	J	J	F	F	F	F	F	F	G	G	G	H	H	H	<	<	<	@	@
 
K	J	Jsa   M'2M2M+#2M?2NAN'<N;OM	M(	+M<	?N	N$	'N8	;O	O	c                     \         P                  ! 4       p \        V 4      p\        P                  ! \
        R R7      ;_uu_ 4        VP                  4        RRR4       \        P                  ! ^\        R7      P                  R4      pVP                  V4       VP                  4       R8X  g   Q hVP                  4       VP                  4       8X  g   Q hR#   + '       g   i     L; i)z"You must first set the image arrayr  Nr   r  )r'   r  r   r7  r8  rw  	get_shaper)   r^   r  r  r  get_sizer  s      r3   test_axesimage_get_shaperu  Q  s    	B	2B	|+O	P	P
 
Q
		"E"**62AKKN<<>V###;;=BLLN*** 
Q	Ps   CC(	c                     \         P                  ! 4       P                  4       p \        P                  ! ^4      P                  R4      pV P                  WP                  R7       V P                  4       R8X  g   Q hV P                  V\        4       P                  ^4      V P                  ,           R7       V P                  4       ^8X  g   Q hV P                  WP                  ^R7       V P                  4       ^8X  g   Q hR# )r"   r   rq   )r   r  NrZ   )r'   r\   rt  r)   r^   r  r.   r  
get_aspectr   r  r  r  s     r3   .test_non_transdata_image_does_not_touch_aspectrx  ]  s    		!	!	#B	1		f	%BIIbLLI)==?f$$$IIbHJ,,Q/",,>I?==?aIIbLLI3==?ar5   zdownsampling.pngg
ףp=
?c                     R p \         P                  ! V 4      V ,          R,
          p\         P                  ! V 4      V ,          R,
          p\         P                  ! W 34      pRVR&   \         P                  ! W4      w  rE\         P                  ! V^,          V^,          ,           4      p^p^dp\         P
                  ! \         P                  ^,          Wv,          W^,          ,          ^,          ,           ,          4      p	RV	R\        V ^,          4      1R3,          VR\        V ^,          4      1R3,          R8  &   ^V	R\        V ^,          4      1R3,          VR\        V ^,          4      1R3,          R8  &   V	R\        V ^,          4      R13,          VR\        V ^,          4      R13&   Tp	\        P                  ! ^^RRR7      w  rVR,          P                  V	RR	R
R7       VR,          P                  ^}^4       VR,          P                  ^^4       VR,          P                  R4       \        VP                  R,          . RO. RO4       F2  w  rpVP                  WVR
R7       VP                  RV RV R24       K4  	  R# )i  r   rY   Nr  ri  
compressedrS   layoutr<   r  rB  )r   r4  rR  Zoom:r$   NNzinterpolation='z	'
space=''r[   r6  )r  r   r   )r<   r<   hanningr  rq   )r   r  r   r  rq   )r)   r^   r+   r  rA  r_   r  rv   r'   r(   r.   r   r   rH   rH  flat)rJ  r`   ra   rD  rI   r  rE  rF  r   r]  r/   r   rl   rN  spaces                  r3   test_downsamplingr  h  s    	A
		!q3A
		!q3A	!BBvJ;;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r5   zdownsampling_speckle.pngc            	         \         P                  ! ^^RRRRR7      w  rVP                  4       p\        P                  ! R4      P                  R^4      \        P                  ! R4      ,          ^2,          P                  p\         P                  ! R4      pVP                  R4       \        P                  ! ^^R7      pV^ ,          P                  R	4       V^ ,          P                  \        P                  ! V4      W4R
R7       V^,          P                  R4       V^,          P                  \        P                  ! V4      W4R7       R# )r$   Trz  )rS   r$  r%  r|  i   i  r  r  r?  z"interpolation='auto', stage='rgba'r  )rR  rF  r4  z"interpolation='auto', stage='auto')rR  rF  N)r!   g@r[   )r'   r(   r  r)   r^   r  r+   r  get_cmaprC  r	   rH  rH   r.   triu)r/   r   r2   r&  rF  s        r3   test_downsampling_speckler    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3r5   zupsampling.png)r   r   c                     \         P                  P                  R4       \         P                  P                  ^^4      p \        P
                  ! ^^RRR7      w  rV^ ,          P                  V RR7      pV^ ,          P                  R4       V^,          P                  V RRR7       V^,          P                  R4       V^,          P                  V RRR	R
7       V^,          P                  R4       VP                  W2RRR7       R# )rp   rz  r{  r  )rR  zAinterpolation='auto'
stage='antialaised'
(default for upsampling)sinc)rR  r   z:interpolation='sinc'
stage='auto'
(default for upsampling)r  )rR  r   r4  z!interpolation='sinc'
stage='rgba'r  r  )rl   shrinkr!  NrJ  )g      @r&   )	r)   rs   rt   ru   r'   r(   r.   rH   r  )r]  r/   r   r   s       r3   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7r5   ndimc                 H   \         P                  P                  R 4      pV^8X  d   RMRpVP                  VR7      P	                  \         P
                  ! V RR7      4      p\        P                  ! 4       w  rVVP                  V4      pVP                  R4      ^ ,           R# )iU  )r[  Tr   NrZ   )rQ   rQ   r&   )
r)   rs   default_rnguniformr   r   r'   r(   r.   rx  )r   r  rngr   r   r/   rl   
axes_images   &&      r3   test_resample_dtypesr    s{     ))


%CaiFYE;;E;"))"((5t*DEDllnGC4J$""r5   
intp_stagec                    V P                  ^^4      pVP                  ^^4      p^^reRp\        P                  P                  WV4      p\        P                  P                  WV^4      p	\        P                  ! WV^34      p
\        P
                  ! WP                  WV^34      3RR7      pV^ ,          ^ ,          P                  V	4       V^ ,          ^ ,          P                  \        P
                  ! W3RR7      4       V^ ,          ^,          P                  WVR7       V^ ,          ^,          P                  \        P
                  ! WV
,          3RR7      VR7       V^ ,          ^,          P                  WVR7       V^ ,          ^,          P                  WR7       V^,          ^ ,          P                  V4       V^,          ^ ,          P                  WR7       V^,          ^,          P                  WVR7       V^,          ^,          P                  \        P
                  ! WVP                  WV^34      ,          3RR7      VR7       \        P                  P                  WV4      pV^,          ^,          P                  WVR7       V^,          ^,          P                  \        P
                  ! WP                  WV^34      3RR7      VR7       R# )rQ   r   r   )r4  r   )r4  r   Nr[   )r(   r)   rs   ru   r+   r   r  r.   )ry   rz   r  axs_tstaxs_refnynxscalar_alphaarray_alphaim_rgbim_concat_default_aim_rgbanew_array_alphas   &&&          r3   2test_interpolation_stage_rgba_respects_alpha_paramr    s[    1%Gq!$G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:	
)  r5   ))r!   rQ   r  )r!   r!   r<   )r!   r   r<   )r&   r   r  )r&   g333333"@r<   )rO   r   r   r   )rO   r7   psepsr8   r[   g     ?r  )r&   rQ   )r  s    colorimage)r8   s   <image)Tr$   )FrQ   )rO   )rowi   z2\*\*23 columns)rZ  i   z2\*\*24 rows)r  float32int16r   int8r-   )rQ   r&   rR  )
contextlibr   r   rk  rg   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  r7  r4   rL   markparametrizerd   rn   r~   r   r   r   r   r   r   r   r   r   r   r   r   contextr   r  r  r1  r  r%  r/  r3  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-  r3  r6  r;  machinerO  rR  splitr   r]  ra  rg  ri  r  rH  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r
  r  r"  r'  r/  rG  rN  rP  rX  filterwarningsr^  ri  rq  ru  rx  r  r  r  r  r  )r  s   0r3   <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   _5
