+
     ]i  c                   s   ^ 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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      R0 4       4       tAR1 tB],P^                  Pa                  R2R3R3.^ .R3R4.^.R5R3.^.R6R3.^.R7R8.^U.RR3.R.R3R.R..4      R9 4       tC],P^                  Pa                  R:R;R<..R=3R>R?..R@3]P                  ^^..RA3^R..RB3RR..RC3^ ^ ..RD3.4      RE 4       tE]$! RF.R/RG7      RH 4       tF]$! RI.R/RG7      RJ 4       tG]#! R.R7      RK 4       tHRL tIRM tJ]$! RN.RR7      RO 4       tK]$! RP.RRR.RQ7      RR 4       tLRS tM]$! RT.RR/RU7      RV 4       tN]$! RW.RR7      RX 4       tO]#! R.R7      RY 4       tP]$! RZ.RR.RR/R[7      R\ 4       tQ]$! R].RR/RU7      R^ 4       tRR_ tS]$! R`.RR/RU7      Ra 4       tTRb tURc tVRd tWRe tXRf tYRg tZ],P^                  Pa                  Rh] ]P                  ! Ri4      ]P                  ! Rj4      ]P                  ! Rk4      P                  R4      3]!]P                  ! Ri4      ]P                  ! Rj4      ]P                  ! Rl4      P                  R4      3.4      Rm 4       t]Rn t^Ro t_]$! Rp.RR7      Rq 4       t`]$! Rr.RR7      Rs 4       taRt tbRu tc]$! Rv.RRwRx7      Ry 4       td]$! Rz.RR7      R{ 4       teR| tf]$! R}.RR7      R~ 4       tg]$! R.]P                  ! 4       R8X  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/RU7      R 4       tn]$! R.RR/RU7      R 4       to]$! R.RR/RU7      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/R[7      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/RG7      R 4       t]$! R.R/RG7      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                 sb   \         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onesZtriluint8imshow)figZaxlZaxrimg       B/usr/lib64/python3.14/site-packages/matplotlib/tests/test_image.pytest_alpha_interpr/      sz     ll1a(OC#
((9
C''&/CK''"''&9:CKJJs&J)JJs*J-    Zinterp_nearest_vs_noneg@pdfsvg)tol
extensionsr   c                 sH   ^\         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)i   i   i    )iz   ig   i   )i      r    )r7   ic   iG   )r   r&   arrayr)   r$   r%   r*   	set_title)Xr+   ax1ax2r-   r.   test_interp_nearest_vs_noner=   (   s      H]
>?3 -029;	CAll1a(OC#JJqJ'MM&'JJq	J*MM)*r0   suppressCompositeFfigimagepng)r4   c                 s   \         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)ZxoZyooriginNNNNrA   rA   )r$   figurer>   r&   Zix_arangesinr?   )r>   r+   xyzZcr,      &      r.   test_figimagerQ   :   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Ar0   c                  s    \         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!   rA   r#   )r$   r%   plotioBytesIOsavefigseekimread)r+   axZbuffer      r.   test_image_python_iorZ   J   sI    llnGCGGIZZ\FKK
KKNJJvr0   z!img_size, fig_size, interpolationc                 s   \         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,r5   autor   Nr    r    r!   r!   )r&   randomseedr$   r   randintset_size_inchesr%   set_positionr*   )	fig_testfig_refZimg_sizeZfig_sizer   rD   Ar+   rX   s	   &&&&&    r.   test_imshow_antialiasedrg   S   s     IINN8
,,}
%C
		s3>*C,?@A"H/ #				BOOL!IIavI&				BOOL!IIaI-r0   c                 sN   \         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# )r[   r5   333333@r\   r   r6   N)r&   r^   r_   r$   r   r`   ra   rb   r%   r*   set_xlimset_ylim)rd   re   rD   rf   r+   rX   s   &&    r.   test_imshow_zoomrk   k   s     IINN8
,,}
%C
		s37|Sq\2A"C% #				BIIavI&KKRKKR				BIIayI)KKRKKRr0   c                 sV   \         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# )Zdefault%baseline_images/pngsuite/basn3p04.png%baseline_images/test_image/uint16.tifN)r   Zuser   __file__parentr%   r*   r   openr$   rW   )rd   re   Zpng_pathZ	tiff_pathaxs   &&   r.   test_imshow_pilrs   }   s    	IIiH~$$'NNHX%%(OOI


A
CFMM%**X&'FMM%**Y'(


1
CFMM#**X&'FMM#**Y'(r0   c                  s0   \         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# )Zbaseline_imagesZ
test_imagez
uint16.tif N)r$   rW   ospathZjoinZdirnamern   r   r&   uint16sumr,       r.   test_imread_pil_uint16r{      sc    
**RWW\\"''//(";&lD EC99		!!!66#;)###r0   c                  s    \         P                  ! \        \        4      P                  R ,          4      p V P
                  \        P                  8X  g   Q h\        P                  ! V 4      R8X  g   Q hR# )rm   rt   N)	r$   rW   r   rn   ro   r   r&   rw   rx   ry   rz   r.   test_imread_fspathr|      sP    
**X GGIC99		!!!66#;)###r0   fmtc                 sp   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@  )formatrD   r   N)r~   jpeg)r&   r^   r_   r`   rS   rT   r$   imsaverV   rW   shaper   )r}   Z	has_alphadataZ	buff_dpi1Zbuff_dpi100Zarr_dpi1Z
arr_dpi100rP   r.   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,r0   c                  s   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# )      ?r@   r   N)r           r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rG   rG   Nr#   N)	rS   rT   r$   r   rV   rW   r   r&   r8   )Zimg_databuffZread_imgrY   r.   test_imsave_python_sequencesr      ss     
/*	/*	/*H ::<DJJte,IIaLzz$H
r0   rF   upperrE   c                 s    \         P                  ! 4       p\        P                  ! RRR7      p\        P
                  ! WRV R7       R# )
   r)   r   r@   )arrr   rF   N)r   r   r   )rS   rT   r&   r'   mimager   )rF   bufZresults   &  r.   test_imsave_rgba_originr      s/     **,CXXk1F
MM#%?r0   c                 s    \         P                  ! \        \        P                  4      \
        P                  ! ^ ^..4      V R7       R# )r    r   N)r$   r   r   ru   Zdevnullr&   r8   )r}      &r.   test_imsave_fspathr      s*    JJtBJJAq6(!3C@r0   c                  s   \         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!   rE   r@   )rF   r   r)   N)rE   r   rI   )r&   r^   r_   r`   rS   rT   r$   r   rV   rW   astyper   )rF   r   r   Zarr_bufr-   r.   test_imsave_color_alphar      s     IINN1$yy~~b"a(zz|

4fU;		!**T"
 D  )W":Dw;&&w/4)! %r0   c                  s   ^ 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    )PngInfoZSoftwareZtestr@   pnginfor   
pil_kwargsN)
ZPIL.PngImagePluginr   rS   rT   Zadd_textr$   r   r   rp   Zinfo)r   r   r   imr-   r.   test_imsave_pil_kwargs_pngr      sr    *
**,CiGZ(JJsaVaV$G(<>	CB77:&(((r0   c                  s|   ^ 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_V2Zdescriptionz
test imagetiffr   ZImageDescriptionN)ZPIL.TiffTagsr   rS   rT   r$   r   lenr   rp   Ztag_v2ZitemsZname)ZTAGSr   r   r   kvZtags          r.   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Zimage_alphac                  s6   \         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         ?r6   N)r&   r^   r_   r`   r$   r%   r*   )Zr+   r;   r<   ax3        r.   test_image_alphar     su    IINN1
		q!A<<1-C#CJJq6J2JJq6J2JJq9J5r0   Zmpl20c                 sD   \         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# )r[   r   r         ?axisN)   r   r!   rG   rG   r#   )
r&   r^   r_   r`   r)   r%   r*   concatenater(   full)
rd   re   ZrgbfZrgbuZax0r;   r<   r   ZrgbafZrgbau
   &&        r.   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r0   c                  s   ^ 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   )rF   motion_notify_eventg333333$@NrE   r   extent      ?r   {Gz?	transform)r    r   r    r   g{Gz)matplotlib.backend_basesr   r$   r%   r*   r&   rK   reshape	transDatar   canvasget_cursor_dataZclearr   scaleZrotate)
r   r+   rX   r   rM   rN   xdispydispeventZtrans
             r.   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$***r0   zxy, datar         ?g      @g      !@g      #@g      @c                 s   ^ 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   rG   r   r   N)r    r!   r   	   i   )r    r!   rA   r#   r   )r   r   r&   r8   newaxisr$   r%   r   Zminmaxset_data	add_imageri   rj   r   r   r   r   )xyr   r   rM   rN   rO   r+   rX   r   r   r   r   s   &&          r.   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,r0   z
data, texti'  i'  z[10001.000]grh|?g/$?z[0.123][]z[1.0000000000000000]z[-1.0]z[0.00]c                 s   ^ 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   Ztextr   r+   rX   r   r   r   r   	   &&       r.   test_format_cursor_datar     sr     4llnGC	4B<<))1a&1LE,cjj%GE  !3!3E!:;tCCCr0   Z
image_clip)r   c                  s    ^^.^^..p \         P                  ! 4       w  rVP                  V 4      p\        P                  ! R^VP
                  R7      pVP                  V4       R# )r!   )Zradiusr   Nr    r    )r$   r%   r*   r	   ZCircler   set_clip_path)dr+   rX   r   Zpatchr   r.   test_image_clipr     sR    
Q!QAllnGC	1BNN6!r||DEUr0   Zimage_cliprectc                  s    \         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   widthZheightr   Nr    r   r    r   r!   r!   )r$   r%   r*   r	   Z	RectangleZaxesr   r   )r+   rX   r   r   Zrectr   r.   test_image_cliprectr     se    llnGC
Q!QA	1\	*B10A0ACDTr0   c                 s~   \         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!   rG   rG   r    )r!   rA   r!   rA   )r&   rK   r   r%   r*   ri   rj   )rd   re   r   rX      &&  r.   test_imshow_10_10_1r     s     ))C.
 
 
-C				BIIc'l*\IJKK1KK1				BIIcLIAKK1KK1r0   c                  s   \         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)i   N)r   r   rA   	r$   r%   r&   rK   r   pytestraises	TypeErrorr*   r+   rX   r   rY   r.   test_imshow_10_10_2r     P    llnGC
))C.
 
 
-C	y	!	!
		# 
"	!	!	!   A;;B	c                  s   \         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   r   r   rY   r.   test_imshow_10_10_5r     r   r   Zno_interpolation_originc                  s,   \         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# )rA   rE   r   )rF   r   r   N)rA   2   )r$   r%   r*   r&   rK   r   )r+   rq        r.   test_no_interpolation_originr     sg    ||AHCFMM"))C.((1' &  (FMM"))C.((1MHr0   Zimage_shift)r   r4   c            
      sb   \        ^^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   r\   N)ranger$   r%   r*   r   LogNormZ
set_aspect)rN   rM   ZimgDataZtMinZtMaxr+   rX   r   r.   test_image_shiftr     s    ?DQ}M}!uQ}5}!AA}5}GMDDllnGCIIgFNN,F!S)  +MM& 6Ms   B+ B&B+&B+c                  s   \         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!   rC   F)frameonr   r   gray)rF   r   r   cmap)	facecolorz.Expected a non-green edge - but sadly, it was.Nr]   r   r   r   )r    r!   r    )rG   r    )rG   rI   )r$   rJ   add_axesr&   ZtilerK   r   r*   ri   rj   
set_xticks
set_yticksrS   rT   rU   rV   rW   rx   )r+   rX   r   r   rM   rN   r   rgbas              r.   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E8r0   Zimage_composite_background)r   r   c                  s   \         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    rA      r    )r   r   r   r    )r!   r    r    r   )r$   r%   r&   rK   r   r*   set_facecolorri   r   rY   r.   test_image_composite_backgroundr     si     llnGC
))B-

1
%CIIc-I(IIc-I(^$KKBr0   Zimage_composite_alphac                 s   \         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.
rG   皙?皙?N333333?)r   r   333333?r   )      r   r   rI   r   )r  r  r   )rG   rG   r!   )r!   rA   r   r    )rA   r#   r   r    )r#   r   r   r    )r    r   r!   rA   )r    r   rA   r#   )r    r   r#   r   )r    r   r    r!   )r$   r%   r&   r'   r   rK   r   r*   r   ri   rj   )r+   rX   r   Zarr2r-   r.   test_image_composite_alphar    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r0   c                 s   \         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   )Z	clip_pathTNr#   r#   )r   r    r!   )r!   r    )r   r!   rA   )rA   r!   )
r&   rK   r   add_subplotr*   mplrv   r   r   r>   )rd   re   tr+   rX   rr   r.   #test_clip_path_disables_compositingr  6  s    
		!V$A"__
		!.F G " .	 	/
		!.F G " .	 	/	 # !%Gr0   Zrasterize_10dpi)r4   r   r   c                  s6   \         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!   r   g      4@T)	linewidthZ
rasterizedxlimylim)r  rG   Fr5   N)r#   r!   r	  )rI   rA   )r&   asarrayr$   r%   r*   rR   setr   r   ZspinesZset_visibler   )r,   r+   rq   rX   r-   r.   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]r0   Zbbox_image_invertedc            	      s   \         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# )
r   r6   r   Fr  皙?r  r   Nr   r   )r&   rK   r   r$   r%   r   r   r   r   r   Zset_clip_onri   rj   Z
add_artistidentityZ
get_figureZtransFigure)r   r+   rX   Zbbox_imr-   r.   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'r0   c                  s   \         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   rB   r6   )r   r   i  i  i  )r   r   r   N)r   r   r   r   )r  g?r   皙?)r  r  r   r  )ffffff??r  r  r  r]   )r  r  r  r  )r&   r8   r$   r%   rc   ri   rj   r*   r   drawrendererZget_window_extentr   Z
get_points	transAxes)r   r+   rX   Zim_objr  Zim_bbox         r.   $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Fr0   zzoom_and_clip_upper_origin.pngc                  s    \         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# )r          @Nr        )r&   rK   r   r$   r%   r*   rj   ri   )r   r+   rX   rY   r.   test_zoom_and_clip_upper_originr$    sT     IIcNEMM(#EllnGCIIeKKTKKcr0   c                  sh    \         P                  ! 4       p \        V 4      pVP                  R 4       R# )BluesN)r$   gcar   Zset_cmaprX   r   r   r.   test_nonuniformimage_setcmapr(    s#    	B		BKKr0   c                  s    \         P                  ! 4       p \        V 4      pVP                  \         P                  ! 4       4       R # N)r$   r&  r   set_norm	Normalizer'  r   r.   test_nonuniformimage_setnormr,    s)    	B		BKK r0   c                  s\   \         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   rG   ZLNr  )r&   r(   r   linspacer   ZnewZputdataflattenr$   r%   r*   )Zimdir   r+   rX   r   r.   test_jpeg_2dr0    sw    
''('
*C2YKKS"-3qD	 	3	!BJJs{{}llnGCIIbMr0   c                  s   \         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!   ,  rB   r   r   r   Zredr~   )r   r   rD      Nr   )r1  r1  r   r"   r   )i   r    r    )r$   rJ   r&   r'   floatr-  r?   rS   rT   rU   rV   r   rp   r   Z	getcolorsZgetpixel)r   r   r   Z
num_colorsZcorner_pixelr   r.   test_jpeg_alphar4    s    JJv3' 
-u	-BS#s+BvJLL::<DKKe=IIaLJJtE U__S)*J*######>>&)L;&&&r0   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   #@value changedNr   r#   r   )	r$   r&  r   r&   rK   r3  r   r   _ArX   r   rO   rY   r.   test_axesimage_setdatar<    s`    	B	2B
		"E"**62AKKNAdG55;!,_,r0   c                  r5  r6  )	r$   Zgcfr   r&   rK   r3  r   r   r:  )r+   r   rO   rY   r.   test_figureimage_setdatar=    sa    
'')C	S	B
		"E"**62AKKNAdG55;!,_,r0   zimage_cls,x,y,a      @      @g      (@g      @c                 s   \         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# )r7  r8  Nr   rI   )r$   r&  r   r:  Z_AxZ_Ayr   r   )Z	image_clsrM   rN   r   rX   r   s   &&&&  r.   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/0r0   c                  s   ^ 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)rX   r2   r   Nr   r   )Z	xml.etreerA  r&   r^   r_   r`   r$   r%   Z
pcolormeshcolorbarrS   rT   rU   getvalueZparseZiter)
rA  r   r+   rX   Zp1Zp2r   Ztreer   r   r   r.   test_minimized_rasterizedrD    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 $r0   c                  s,   \        \        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)rl   zfile:Zwin32z///Z zPlease open the URLZmatchN)r   rn   ro   sysplatformZresolveZas_posixr   r   
ValueErrorr$   rW   urllibZrequestZurlopen)rv   ZurlZfilerY   r.   test_load_from_urlrJ    s    >  #JJD||w.eB8\\^$$&'C 
z)>	?	?

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

4 
%	$ 
@	?	$	$	$s   C/D/C?	D	Zlog_scale_imagec            	      s    \         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   NNrA   viridisr\   )r   r   vmaxvminaspectlog)ZyscaleNr  )r!   r   r!   r   rI   )r&   r'   r$   r%   r*   r  )r   r+   rX   rY   r.   test_log_scale_imagerQ  &  sS    
AAcFllnGCIIa(yqr  FF%Fr0   Zrotate_imagec            	      s   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   rL  rE   T)r   r   rF   r   clip_onzr--)lwr   N      )r   rA   )r&   rK   meshgridexppir$   r%   r*   r   Z
rotate_degr   Zset_transformZ
get_extentrR   ri   rj   )deltarM   rN   r:   YZ1Z2r   r+   r;   Zim1Ztrans_data2Zx1Zx2Zy1Zy2s                   r.   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r0   c                  s"   \         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# )  r@   r   :NrA   NN)r_  iA  )	rS   rT   r&   r'   r$   r   rV   rW   r   )r   r   r,   rY   r.   test_image_preserve_sizer`  M  s\    ::<D	*	BJJt&IIaL
**T
C99R=BHH$$$r0   c                  s@   ^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)rC   r   r6   rE   r\   )r   rF   rO  )rD   N)r   r   r   r   )ra  ra  r   r   rI   )r&   r  r3  r$   rJ   r   set_axis_offr*   rS   rT   rU   rV   rW   r   r   r  bool)nr   r+   rX   r   r,   r   r.   test_image_preserve_size2re  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3r0   zmask_image_over_under.pngr   )r   r3   c                  sR   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   r   r   r   ZoverunderZbad333333?r   r   F)rN  rM  cliprE   )r   r   r   rF   r   zGreen=low, Red=high, Blue=badbothZ
horizontal)extendorientationrX   rO  r6   r2  )Zncolorsri  zWith BoundaryNormZproportional)rk  Zspacingrl  rX   rO  NrT  g      )rV  r#   rV  r#   )rI   r#  gɿr    r  r   r!   )r&   rK   rW  rX  rY  r$   cmr   with_extremesmaZmasked_wherer%   r*   r   r+  r9   rB  ZBoundaryNorm)rZ  rM   rN   r:   r[  r\  r]  r   ZpaletteZZmr+   r;   r<   r   s                 r.   test_mask_image_over_underrp  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"  >r0   Z
mask_imagec                  s   \         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!   r6   r   r   TNr    )r!   rA   Nrq  )r$   r%   r&   r(   nanr*   r'   rc  ro  masked_arrayrw   )r+   r;   r<   rf   r-   r.   test_mask_imagert    s     ll1a(OC#
A&&AhKJJq	J*
t$AAhK
2776;Q?AJJq	J*r0   c                  s    \         P                  ! R\         P                  4      p \        P                  ! 4       w  rVP                  V 4       VP                  P                  4        R# )rA   NrH   )r&   r   rr  r$   r%   r*   r   Z	draw_idle)r   r+   rX   rY   r.   test_mask_image_allru    s>    776266"DllnGCIIdOJJr0   zimshow_endianess.pngc                  s   \         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   rE   r6   rL  )rF   r   r   z<f8z>f8N)	r&   rK   rW  Zhypotr$   r%   Zdictr*   r   )rM   r:   r[  r   r+   r;   r<   kwargss           r.   test_imshow_endianessrw    s    
		"A;;qDA
QAAll1a(OC#		JFJJqxx)&)JJqxx)&)r0   Zimshow_masked_interpolationZx86_64r   )r3   r   r   c                  s*   \         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# )rL  r   r   r   rf  rN  rM  r   g     j@rc  Tr\   Zantialiased)r   r   r   offNrI   r    )r   r   )r   r   )r   r   )r  	colormapsrn  r   r+  r&   rK   r3  r   ZinfZ
zeros_liker   ro  rs  r$   r%   Zsortedr   Z	_interpd_Zremovezipravelr9   r*   r   )
r   Nrd  r   maskr+   Zax_gridZinterpsinterprX   r   r.    test_imshow_masked_interpolationr    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	@
 4r0   c                  sZ    \         P                  ! ^^.^\        P                  ..4       R# )r!   N)r$   r*   r&   rr   r0   r.   test_imshow_no_warn_invalidr    s    JJABFF$%r0   r   zu2 u4 i2 i4 i8 f4 f8c                 s   \         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# )r1  r   ZuZfN)r   r   r#   )r&   rK   r   Zkindr$   r%   r*   Z	get_arrayallr   r)   )r   r   Ztoo_lowZtoo_high_rX   outrP   r.   $test_imshow_clips_rgb_to_valid_ranger    s
    ))Cu
%
-
-k
:CzzSr	AgGSyHzzSCiLLNEA
))C.
"
"
$CLA""$$$$zzS"''))))yy~~$$$$))++++yyBHH$$$r0   zimshow_flatfield.pngc                  s    \         P                  ! 4       w  rVP                  \        P                  ! R4      RR7      pVP                  RR4       R# )r   r6   r   r   r   Nr    )r$   r%   r*   r&   r(   set_climr+   rX   r   rY   r.   test_imshow_flatfieldr    s7    llnGC	2776?)	<BKKCr0   zimshow_bignumbers.pngc                  s    R \         R&   \        P                  ! 4       w  r\        P                  ! . RO. RO.\        P
                  R7      pVP                  V4      pVP                  ^ ^4       R# )r6   image.interpolationr   N)r!   rA   g   mB)r#   r!   r   )r   r$   r%   r&   r8   Zuint64r*   r  r+   rX   r,   Zpcr-   r.   test_imshow_bignumbersr    sP    &/H"# llnGC
((L),BII
>C	3BKK1r0   zimshow_bignumbers_real.pngc                  s    R \         R&   \        P                  ! 4       w  r\        P                  ! . RO. RO.4      pVP                  V4      pVP                  ^ ^4       R# )r6   r  N)r"  r   gMD)r?  r   r>  )r   r$   r%   r&   r8   r*   r  r  r-   r.   test_imshow_bignumbers_realr    sL     '0H"# llnGC
((O\2
3C	3BKK1r0   	make_normc                  .    \         P                  ! ^4      # r!   )r   
SymLogNormr  r0   r.   <lambda>r    s    Vq!r0   c                  r  r  )r   Z	PowerNormr  r0   r.   r  r    s    Va r0   c                 s   \         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 xlimsrE  r   N)r   r  r   )r$   r%   r   warnsUserWarningr*   Z
set_extentr   r  r   RuntimeError
make_imageZget_renderer)r  r+   rX   r   s   &   r.   test_empty_imshowr    s     llnGC	kL
N 
NYYt)+Y.
N MM.!JJOO	|	$	$
cjj--/0 
%	$
N 
N 
%	$	$s   C!-*C4!C1	4D	c                  s    \         P                  ! 4       w  rVP                  \        P                  ! R\        P
                  R7      4       V P                  P                  4        R# )r#   r   Nr  )r$   r%   r*   r&   r'   Zfloat16r   r  r+   rX   r   r.   test_imshow_float16r  #  s8    llnGCIIbhhvRZZ01JJOOr0   c                  s   \         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   ZequivNr  )r$   r%   r*   r&   r'   Z
longdoubleZcan_castfloat64r   r   r  r  r   r  r  r   r.   test_imshow_float128r  *  s    llnGCIIbhhvR]]34R]]BJJHH)+||K() ) 	

) ) ) )s   3CC)	c                  s    \         P                  ! 4       w  rVP                  \        P                  ! R R.RR ..\
        R7      4       R# )TFr   N)r$   r%   r*   r&   r8   rc  r  r   r.   test_imshow_boolr  3  s3    llnGCIIbhhut}5TBCr0   c                  s    \         P                  ! 4       w  rVP                  \        P                  ! R\        P
                  4      4       V P                  P                  4        R# )r   Nr  )r$   r%   r*   r&   r   rr  r   r  r  r   r.   test_full_invalidr  8  s8    llnGCIIbggh'(JJOOr0   zfmt,countedzcomposite_image,countc                 sD   \         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   r  r    r!   r    r!   rI   )rA   r#   r    r!   )r&   rW  rK   rL   r$   r%   ri   r*   r   rS   rT   rU   rC  count)
r}   ZcountedZcomposite_imager  r:   r[  r   r+   rX   r   s
   &&&&      r.   test_compositer  ?  s     ;;ryyQ*BIIb!Q,?@DA
qAvAllnGCKK1IIaI%IIa"glI+,;CLL()
**,CKKK <<>(E111r0   c                  s    \         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  r	  )r$   r%   r*   ZrelimZ	autoscaleZget_xlimZget_ylimr  r   r.   
test_relimr  R  sZ    llnGCIIseLI)HHJLLN;;=BKKM3V33333r0   c                  s   \         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    r\   r   F)rO  r   r   rR  r  Nr   r	  ).r   )r$   r%   rb  r*   r  r   r  r&   r8   Zbuffer_rgbar  r  rY   r.   test_unclippedr  Z  s    llnGCOO	QFQF#F;M 
 
/BFFVF$JJOO HHSZZ++-.w71<AACCCCr0   c                  s`   \         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# )	rA   r\   )rO  r   Nrgbar   )r  r  )rI   r    )r$   r%   rb  r*   r   Zset_clip_boxZbboxrS   rT   rU   rC  r  )r+   rq   rX   r   Z
buf_beforeZ	buf_afterr   r.   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8r0   c                  s   \         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r~  r   Fz[0]z[nan]N)r   r   )	r$   r%   r*   r&   r'   ro  rs  r   rr  )r+   rX   r   r   r-   r.   test_image_cursor_formattingr  x  s    llnGC	288F#	$B55qc/D  &$...55qc0D  &%///66D  &'111r0   c                s   \         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   rL  r6   )r   r   r   r   NrV  g[(\?).rI   )r&   r-  rW  rX  r   r  rz  r  r*   r   r+  )
rd   re   rM   ZxxZyyZzzr   r   rX   r  r   r.   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,r0   c                  s    \         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-drE  r   NrH   )r   r   r   r$   r*   r&   r'   r  r0   r.   !test_image_array_alpha_validationr    s?    	y(F	G	G

288F#Aq62 
H	G	G	Gs   /AA/	c                  s   \        \        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# )Zautumn_rZ	lightgrey)colorrB   r   r\   )rO  r   rN  rM  ry  N)gffffff?r  r]   )rI   rI   rI   r    r    r    r    i+   iO   i_   iB   r!   rI   rI   rI   r    r    r    i"   )r   r  rz  	set_underr$   rJ   r   r&   r8   r3  r*   r   r   r  r  r  r   r   Tr|  r   ra   r  )r   r+   rX   r   r   Z
from_imageZdirect_computationr   r.   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3r0   Zimage_placementc            	     sV   \         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.
r   r  )r  rS  r[   r%  r   )r   r   r   rN  rM  N)r    r    r!   r!   r    )r    r!   r!   r    r    r  rI   gr  )
r$   r%   rR   r&   r^   r_   r*   Zrandnri   rj   r  r   r.   test_image_placementr    s~     llnGCGGO_CCG@IINN8IIbiioob"%GL"!  5KKeKKer0   c                   sT   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                s\    \         P                  ! V4      P                  V 4      pW#n        V# r)  )r&   r  viewunits)ZclsZinput_arrayr  objs   &&& r.   __new__ZQuantityND.__new__  s%    jj%**3/	
r0   c                s*    \        VR R4      V n        R# r  N)getattrr  )selfr  s   &&r.   __array_finalize__ZQuantityND.__array_finalize__  s    S'40
r0   c                s   < \        V R R4      p\        SV `	  V4      p\        V\        4      '       g   Ve   \	        W24      pV# r  )r  Zsuper__getitem__Z
isinstancer  )r  Zitemr  Zret	__class__s   &&  r.   r  ZQuantityND.__getitem__  sA    gt,g!$'c:&&%*;S(C
r0   c                s   \        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  ZdimensionlessNZ*z/(Z))r  ZNotImplementedr   r&   r  ZaddZsubtractrH  ZmultiplyZdivideZgreaterZgreater_equalequalZ	not_equalZlessZ
less_equalr  ndarrayr8   r  )r  ZufuncZmethodZinputsrv  ZfuncZi0ZunitZout_arrZi1Zu0Zu1s   &&&*,       r.   __array_ufunc__Z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r0   c                s@    V P                  \        P                  4      # r)  )r  r&   r  )r  r   r.   r   ZQuantityND.v  s    yy$$r0   )r  )Z__name__Z
__module__Z__qualname__Z__firstlineno__r  r  r  r  Zpropertyr   Z__static_attributes__Z__classdictcell__Z__classcell__)r  Z__classdict__s   @@r.   r  r    s3     
1%N % % %r0   r  c                  st   \        ^^.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!   mrG   zm*mzm/(m)sN)	r  r&   r  r   r  r  r   r   rH  )ZqZq0Zq1rY   r.   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                  s    \        \        P                  ! R4      R4      p \        P                  ! 4       w  rVP                  V 4       VP                  P                  4        R# )rA   r  NrH   )r  r&   r(   r$   r%   r*   r   r  )r   r+   rX   rY   r.   test_imshow_quantityndr    s<    
RWWV_c
*CllnGCIIcNJJOOr0   c                 s   \         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  TrL  wrg  r   rx  r6   )r   r   r   r   r  Nr    rI   r    rA   NrG   )r  r  r   rU  )r   r   r   r   r    r   )r&   r   r  ro  r8   r~  r  rz  rn  r%   r*   r   r   r*  r+  r  )rd   re   r   Zmasked_datar   rX   r   s   &&     r.   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&r0   rM   c                 s(   \         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Drx  r6   rL  )r   r   r   i  r  r  Nr    r  )r&   r   r  r%   r*   r   r   r   r  rz  rn  r+  )rd   re   rM   r   rX   r   s   &&&   r.   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  2r0   c                 s   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!   r6   r  r   ZGreys)r   rO  rF   r   rN  rM  r   g?rj  T)ZnbinsZstepsZintegerN)r(   r'   Zmixedr#  )r!   rA   r   r   )r%   Z	enumerater{  r9   Zspyr*   ri   rj   ZxaxisZtick_toptitleZset_yZset_ticks_positionZset_major_locatormtickerZMaxNLocatorZyaxis)	rd   re   ax_testax_refZ	plot_dataZplot_titlesr/  rO   r  r   r.   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	
 @r0   znonuniform_and_pcolor.pngc                  s   \         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#   r   T)sharexshareyr6   r   r   )r  Nr  r  )r$   rJ   r%   r{  r   r   r&   rK   r   r   Z
pcolorfastrb  r  )rq   rX   r   r   r-   r.   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 r0   znonuniform_logscale.pngc                  s   \         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#   )ZncolsZnrowsrP  )ZbaseNr  )r$   r%   r   r   r   r&   rK   r   ri   rj   Zset_box_aspectZ
set_xscaleZ
set_yscaler   )r  rq   r/  rX   r   r   r.   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 r0   zrgba_antialias.pngg{Gz?)r   r   r3   c            	      s^   \         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# )rA   FT)rC   r  r  Zconstrained_layoutrG   r   Nr  r  g    .AZyellowZcyanr6   rh  )r   r   rN  rM  r\   r   )r   interpolation_stager   rN  rM  r  )      @r  rI   rK  rG   )   r   Nr  )iF   iZ   Nr  g    .)r  r  i   N)r  i   i   N)r  r  g333333)r$   r%   r&   r(   rK   rW  sqrtrL   rY  ra   rr  r   rm  RdBu_rset_overr  r.  r*   ri   rj   )r+   rq   r}  aarM   rN   r:   r[  Rf0r   r   r   s                r.   test_rgba_antialiasr    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  2r0   c                s   \         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   rL  r   r   r   r  r\   N*N,r&   r^   r_   r`   r%   r*   rd   re   ZgridrX   r   r.   !test_upsample_interpolation_stager    sz     IINN:99>>!QD				BIId*9"(  * 
			BIId*9"(  *r0   c                s   \         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.
r[   i  r\   rL  r  r  Nr  r  r   r.   #test_downsample_interpolation_stager    sz     IINN899>>$%D				BIId&y"(  * 
			BIId&y"(  *r0   c                  s   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  )ZDATAZfooN)	r  Z
rc_contextr$   r*   Zget_interpolation_stager   r   rH  r   )Zvalrz   r.   test_rc_interpolation_stager    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           
      sV   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!   rG   Ncolr\   r   )rN  rM  rO  r   r   rF   zData with more than z  cannot be accurately displayed.rE  r  r
  )rG   r!   )r%   r&   r'   sizer  r*   r   r  r  r   r  )
rd   re   Zdimr  ZmsgrF   r  r  r8   r   s
   &&&&&&    r.   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           	      s   \         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?r  rP  r  r  )r   rN  Zsymlogr  r  )r   rN  rM  Zlogit)rN  )	linthresh)r  rN  rM  )r   ZclimZfoobarN)r  r  )r&   r^   r`   r%   r*   r   r   r  ZtypeZimagesr   r   r   rH  )rd   re   r  ZaxtsZaxrsrr   r.   test_str_normsr  $  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                  s   \         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 argumentsrE  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#   )	functoolsZpartialr  Z_imageresampler   r   r   r   r&   r'   rH  r)   r  ZflagsZ	writeable)r  r  r   r.   test__resample_valid_outputr  :  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                  s   \         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 arrayrE  Nr   r9  )r$   r&  r   r   r   r  Z	get_shaper&   rK   r3  r   r   Zget_sizer;  rY   r.   test_axesimage_get_shaper  Q  s    	B	2B	|+O	P	P
 
Q
		"E"**62AKKN<<>V###;;=BLLN*** 
Q	Ps   CC(	c                  s   \         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   r\   )r   rO  NrH   )r$   rJ   r  r&   rK   r   r*   r  Z
get_aspectr   r   r   r'  r   r.   .test_non_transdata_image_does_not_touch_aspectr  ]  s    		!	!	#B	1		f	%BIIbLLI)==?f$$$IIbHJ,,Q/",,>I?==?aIIbLLI3==?ar0   zdownsampling.pngg
ףp=
?c                  s   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   rG   Nr  r  
compressedrC   layoutr6   r  r  )r   r  r   ZZoom:r!   NNzinterpolation='z	'
space='Z'rI   r  )ra  r   r   )r6   r6   hanningr  r\   )r   r  r   r  r\   )r&   rK   r(   rW  r  rL   rY  ra   r$   r%   r*   ri   rj   r9   r{  Zflat)r}  rM   rN   r  r:   r[  r  r  r   r   r+   rq   rX   r  Zspaces                  r.   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r0   zdownsampling_speckle.pngc            	      s   \         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!   Tr  )rC   r  r  r  i   i  rL  r  rx  z"interpolation='auto', stage='rgba'r  )r   r   r  z"interpolation='auto', stage='auto')r   r   N)r   g@rI   )r$   r%   r.  r&   rK   r   r(   r  Zget_cmapr  r   r   r9   r*   Ztriu)r+   rq   r,   rm  r   r   r.   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3r0   zupsampling.png)r   r   c                  s   \         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# )r[   r  r  rL  )r   zAinterpolation='auto'
stage='antialaised'
(default for upsampling)Zsinc)r   r   z:interpolation='sinc'
stage='auto'
(default for upsampling)r  )r   r   r  z!interpolation='sinc'
stage='rgba'r  rj  )rX   Zshrinkrk  Nr  )g      @r#   )	r&   r^   r_   r`   r$   r%   r*   r9   rB  )r   r+   rq   r   r-   r.   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7r0   ndimc                 sH   \         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   NrH   )rA   rA   r#   )
r&   r^   Zdefault_rngZuniformr   r   r$   r%   r*   r  )r   r  Zrngr   r   r+   rX   Z
axes_images   &&      r.   test_resample_dtypesr    s{     ))


%CaiFYE;;E;"))"((5t*DEDllnGC4J$""r0   
intp_stagec                 s   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# )rA   r   r   )r  r   )r  r   NrI   )r%   r&   r^   r`   r(   r   r   r*   )rd   re   r  Zaxs_tstZaxs_refZnyZnxZscalar_alphaZarray_alphaZim_rgbZim_concat_default_aZim_rgbaZnew_array_alphas   &&&          r.   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:	
)  r0   ))r   rA   r  )r   r   r6   )r   r   r6   )r#   rh   r  )r#   g333333"@r6   )r@   r~   r   r   )r@   r1   psZepsr2   rI   g     ?r9  )r#   rA   )r  s    colorimage)r2   s   <image)Tr!   )FrA   )r@   )Zrowi   z2\*\*23 columns)r  i   z2\*\*24 rows)r  Zfloat32Zint16rw   Zint8r)   )rA   r#   r  )Z
contextlibr   r   r  rS   ru   Zpathlibr   rG  rF  Zurllib.requestrI  Znumpyr&   Znumpy.testingr   ZPILr   Z
matplotlibr  r   r   r   r	   r
   r$   r   r   Zmatplotlib.imager   r   r   r   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.transformsr   r   r   Zmatplotlib.tickerZtickerr  r   r/   r=   ZmarkZparametrizerQ   rZ   rg   rk   rs   r{   r|   r   r   r   r   r   r   r   r   Zcontextr   r   r   rr  r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r$  r(  r,  r0  r4  r<  r=  rK   r   r@  rD  rJ  rQ  r^  r`  re  rp  rt  ru  rw  Zmachiner  r  Zsplitr   r  r  r  r  r+  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zfilterwarningsr  r  r  r  r  r  r  r  r  r  )r  s   0r.   <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   _6
