+
     ]i*  c                   s,   ^ RI t ^ RIt^ RIHt ^ RIHtHtHt ^ RI	t	^ RI
HtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt R tR t R t!R t"]! R.RR7      R 4       t#R t$R t%]	PL                  PO                  R4      R 4       t(R t)R t*]	PL                  PW                  ]PX                  ! R4      '       * RR7      R 4       t-]	PL                  PW                  ]PX                  ! R4      '       * RR7      R 4       t.R t/R t0R  t1R# )!    N)assert_array_almost_equal)featuresImageTiffTags)collectionspatheffectspyplot
transformsrcParams
rc_context)RendererAgg)Figure)imread)Path)image_comparison)IdentityTransformc                  s   \        ^R.4      p V P                  R4       V P                  P                  R4       \        P
                  ! 4       pV P                  VV P                  4       RR7       VP                  ^ 4       V P                  VV P                  4       RR7       VP                  ^ 4       \        \        \        V4      R,          4      R	^R7       R# )
   皙?      ?Znone)Z	facecolorZ	edgecolor)ZdecimalN)r    r   r   r    r    )              ?r   r   )r   Zset_facecolorZpatchZ	set_alphaioBytesIOsavefigZget_facecolorZseekr   Ztupler   )figbuf     @/usr/lib64/python3.14/site-packages/matplotlib/tests/test_agg.pytest_repeated_save_with_alphar      s     !S
Ck"II **,CKK++-   " HHQKKK++-   " HHQKeF3K$564&')    c            
      s.   \         P                  ! 4       p \        P                  ! 4       w  r\        P
                  ! \        R^.^
^.^
R.RR.R^..4      .4      pVP                  V4       VP                  R^4       \        P                  ! V 4       R# )i
   NiigMbP?)
r   r   pltsubplotsr   ZPathCollectionr   Z
add_artistset_xlimr   )buffZfaxZ
collection       r   !test_large_single_path_collectionr&   3   s}    ::<D
 LLNEA++	Qx"a2r(S"IQx@	ABDJMM*KKKKr   c                  s   \         P                  ! ^4      w  rRp\        P                  ! V4      pVP	                  V4       VP                  W3R,          VR,          4       \        P                  ! 4       pV P                  VRR7       R# )r   i  g?g333333?pngformatN)	r    r!   npZarangeZsemilogxZfill_betweenr   r   r   )r   r$   ZstepsZdatar   s        r   test_marker_with_nanr+   A   sc     ll1oGCE99UDKKOODs(DH-
**,CKKEK"r   c                  s   \         P                  ! 4       p \        4       pVP                  4       p\        P
                  ! R 4      pVR;;,          R,          uu&   VP                  V4       VP                  V RR7       R# )順 NN   r'   r(   N)r   r   r   r!   r*   onesplotr   )r#   r   r$   pointsr%   r   test_long_pathr3   M   sV    ::<D
(C	BWWWF
3K2KGGFOKKUK#r   zagg_filter.pngT)Zremove_textc                  s  aaaa R  oRV3R llo ! R R4      p  ! R RV 4      o ! V3R lRV 4      o ! VV3R lR	V 4      p\         P                  ! 4       w  r#VP                  . RO. RORRR^^^
RR7	      w  pVP                  . RO. RORRR^^^
RR7	      w  pV! ^4      pWE3 F  pVP                  4       pVP	                  4       p	VP                  W4      w  p
V
P                  V4       \        P                  ! VP                  4       VRRRR7      pV
P                  V4       V
P                  VP                  4       R
,
          4       V
P                  V4       V
P                  R4       K  	  VP                  RR4       VP                  RR4       VP                   P#                  R4       VP$                  P#                  R4       R# )c                 s^   \         P                  ^V ^ ,          ,          W^R1,          ,
          V ^V R,          ,          V RV) R1,          ,
          3,          p\         P                  ! V4      p\         P                  ! W3P	                  4       ,          VRR7      pWA^,
          V) ^,            # )r.   Zsame)moder/   )r*   Zr_ZhanningZconvolveZsum)x
window_lenZswys   &&   r   smooth1dZ!test_agg_filter.<locals>.smooth1dY   s    EEadFQ!B''AaeGaJ;r8I6J,JJLJJz"KK%%'	162Azk!m,,r   c                 s   < \        \        V4      ^4      ^,          ^,           p\        P                  ! S^ W4      p \        P                  ! S^W4      p V #    )maxintr*   Zapply_along_axis)ZAsigmar6   r9   s   && r   smooth2dZ!test_agg_filter.<locals>.smooth2da   sJ    UQ'!+a/
!Q;!Q;r   c                   s2   a  ] tR t^gt o R tR tR tRtV tR# )#test_agg_filter.<locals>.BaseFilterc                s    ^ # )r     selfdpi   &&r   get_padZ+test_agg_filter.<locals>.BaseFilter.get_padi   s    r   c                s    \        R 4      h)z"Should be overridden by subclasses)ZNotImplementedError)rC   
padded_srcrD   s   &&&r   process_imageZ1test_agg_filter.<locals>.BaseFilter.process_imagel   s    %&JKKr   c                s    V P                  V4      p\        P                  ! WV3W33R.R4      pV P                  WB4      pWS) V) 3# )r    Zconstantr   )rF   r*   padrH   )rC   imrD   rI   rG   	tgt_images   &&&   r   __call__Z,test_agg_filter.<locals>.BaseFilter.__call__o   sO    ,,s#C3Z#V$D *,J**:;IdSD((r   rA   N)	__name__
__module____qualname____firstlineno__rF   rH   rL   __static_attributes____classdictcell____classdict__   @r   
BaseFilterr@   g   s     		L	) 	)r   rV   c                   s6   a  ] tR t^vt o RR ltR tR tRtV tR# )%test_agg_filter.<locals>.OffsetFilterc                s    Wn         R # Noffsets)rC   rZ   rE   r   __init__Z.test_agg_filter.<locals>.OffsetFilter.__init__x   s    "Lr   c                sZ    \        \        V P                  4      ^H,          V,          4      # )H   )r=   r<   rZ   rB   rE   r   rF   Z-test_agg_filter.<locals>.OffsetFilter.get_pad{   s     s4<<(2-344r   c                s    V P                   w  r4\        P                  ! V\        V^H,          V,          4      ^R7      p\        P                  ! V\        V^H,          V,          4      ) ^ R7      pV# )r\   )Zaxis)rZ   r*   Zrollr=   )rC   rG   rD   ZoxZoyZa1Za2s   &&&    r   rH   Z3test_agg_filter.<locals>.OffsetFilter.process_image~   sS    \\FBSb3%7a@Bc"r'C-00q9BIr   rY   N)r   	rM   rN   rO   rP   r[   rF   rH   rQ   rR   rS   rU   r   OffsetFilterrW   v   s     	#	5	 	r   r^   c                   sB   <a  ] tR t^t o RtRR ltR tV3R ltRtV t	R# )'test_agg_filter.<locals>.GaussianFilterzSimple Gaussian filter.c                s*    Wn         W n        W0n        R # rX   )r>   alphacolor)rC   r>   r`   ra   s   &&&&r   r[   Z0test_agg_filter.<locals>.GaussianFilter.__init__   s    JJJr   c                sV    \        V P                  ^,          ^H,          V,          4      # r:   )r=   r>   rB   rE   r   rF   Z/test_agg_filter.<locals>.GaussianFilter.get_pad   s    tzz!|b(3.//r   c                s   < \         P                  ! V4      pV P                  VR&   S! VR,          V P                  ,          V P                  ^H,          V,          4      VR&   V# )NNN)rb   rb   :Nr;   N)rb   rb   r;   )r*   Z
empty_likera   r`   r>   )rC   rG   rD   rK   r?   s   &&& r   rH   Z5test_agg_filter.<locals>.GaussianFilter.process_image   sU    j1I"&**Ih!)*W*=

*J*.**r/C*?"AIgr   )r`   ra   r>   N)      ?r    r    r    )
rM   rN   rO   rP   Z__doc__r[   rF   rH   rQ   rR   )rT   r?   s   @r   GaussianFilterr_      s     %	
	0	 	r   re   c                   s@   <a  ] tR t^t o RVV3R lltR tR tRtV tR# ))test_agg_filter.<locals>.DropShadowFilterc                s>   < S! WV4      V n         S! V4      V n        R # rX   gauss_filteroffset_filter)rC   r>   r`   ra   rZ   re   r^   s   &&&&&r   r[   Z2test_agg_filter.<locals>.DropShadowFilter.__init__   s     .uU CD!-g!6Dr   c                s~    \        V P                  P                  V4      V P                  P                  V4      4      # rX   )r<   rh   rF   ri   rB   rE   r   rF   Z1test_agg_filter.<locals>.DropShadowFilter.get_pad   s6    t((005))11#68 8r   c                sr    V P                   P                  W4      pV P                  P                  W24      pV# rX   )rh   rH   ri   )rC   rG   rD   Zt1Zt2s   &&&  r   rH   Z7test_agg_filter.<locals>.DropShadowFilter.process_image   s3    ""00AB##11":BIr   rg   N)g333333?rd   r   r]   )rT   re   r^   s   @r   DropShadowFilterrf      s     	7 	7	8	 	r   rj   rc   zbo-Zbr7   zLine 1)ZmecZmfcZlwZmewZmsZlabelzro-rg      @r2   )r5   r8   ZunitsTr   r   FNr:   )皙?rc   ?)rl   rm   rc   )rc   g?gffffff?g      )r    r!   r1   Z	get_xdataZ	get_ydataZupdate_frommtransformsZoffset_copyZget_transformZset_transformZ
set_zorderZ
get_zorderZset_agg_filterZset_rasterizedr"   Zset_ylimZxaxisZset_visibleZyaxis)rV   rj   r   r$   Zline1Zline2ZgaussZlineZxxZyyZshadowZ	transformre   r^   r9   r?   s               @@@@r   test_agg_filterro   W   s   -) )z  $ :  llnGC WW_ou#!r  KFEWW_ou#!r  KFE QE ^^^^''"/4   ++ #HF	Y' 	$//+c12e$d## & KKBKKBHHHHr   c                  s    \         P                  ! RR7      p \        P                  ! 4       p\        P
                  ! \        4      ;_uu_ 4        V P                  V4       RRR4       R#   + '       g   i     R# ; i),  )ZfigsizeN)rp   i   )r    figurer   r   pytestraisesZ
ValueErrorr   )r   r#   r   r   test_too_large_imagert      sE    
**\
*C::<D	z	"	"D 
#	"	"	"s   A++A<	c                  s   \        ^4      p \        P                  ! 4       w  rVP                  V \        P
                  ! V 4      4       VP                  P                  4        \        P                  ! 4       w  r^i\        R&   VP                  V \        P
                  ! V 4      4       VP                  P                  4        R# )   agg.path.chunksizeN)	Zranger    r!   r1   r*   Zsincanvasdrawr	   )r5   r   r$   s      r   test_chunksizery      s|    c
A llnGCGGArvvayJJOO llnGC%(H!"GGArvvayJJOOr   ZAggc                  s    \         P                  ! . RO. RO4       \        P                  ! 4       p \         P                  ! V R^R7       \
        P                  ! V 4      pVP                  R,          R8X  g   Q hR# )r    Zjpg)r)   rD   rD   Nr    r   r.   r    r   r    )ru   ru   )r    r1   r   r   r   r   openinfor   rJ   r   r   test_jpeg_dpir      sP     HHY	"
**,CKKEs+	CB775>Z'''r   c                  s    ^ RI Hp  \        P                  ! 4       pV ! 4       pVP	                  RR4       \
        P                  ! 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   r   r   Zadd_textr    rq   r   r   r|   r}   )r   r   r   rJ   r%   r   test_pil_kwargs_pngr      sk    *
**,CiGZ(JJLU	77KL	CB77:&(((r   c                  sx   \         P                  ! 4       p R R/p\        P                  ! 4       P	                  V RVR7       \
        P                  ! V 4      pVP                  P                  4        UUu/ uF'  w  r4\        P                  V,          P                  VbK)  	  pppVR,          R8X  g   Q hR# u uppi )Zdescriptionz
test imageZtiffr   ZImageDescriptionN)r   r   r    rq   r   r   r|   Ztag_v2Zitemsr   ZTAGS_V2Zname)r   r   rJ   ZkZvZtagss         r   test_pil_kwargs_tiffr      s    
**,C.JJJLV
C	CB46IIOO4EF4EDAHQ$$a'4EDF"#|333 Gs   4-B6webpzWebP support not available)Zreasonc                  s   \         P                  ! . RO. RO4       \        P                  ! 4       p R^/p\         P                  ! V RVR7       \        V4      ^8X  g   Q h\        P                  ! 4       pR^d/p\         P                  ! VRVR7       \        V4      ^8X  g   Q hVP                  4       P                  V P                  4       P                  8  g   Q hR# )r    Zqualityr   r   Nrz   r{   )r    r1   r   r   r   ZlenZ	getbufferZnbytes)Z	buf_smallZpil_kwargs_lowZ	buf_largeZpil_kwargs_highr%   r   test_pil_kwargs_webpr      s    HHY	"

I^NKK	&^D~!###

I #&OKK	&_E1$$$ '')*=*=*?*F*FFFFr   c                  s    \         P                  ! . RO. RO4       \        P                  ! 4       p \         P                  ! V RRR7       \
        P                  ! V 4      pVP                  R8X  g   Q hR# )r    r   T)r)   ZtransparentZRGBANrz   r{   )r    r1   r   r   r   r   r|   r4   r~   r   r   test_webp_alphar   
  sJ    HHY	"
**,CKKF5	CB77fr   c                  sB   \         P                  ! 4       w  rVP                  ^.^.4      P                  \	        RR.4      4       \
        P                  ! \        4      ;_uu_ 4        V P                  P                  4        RRR4       R#   + '       g   i     R# ; i)r   N)r    r   )r.   r;   )
r    r!   scatterZ	set_pathsr   rr   rs   Z	TypeErrorrw   rx   )r   r$   r   r   (test_draw_path_collection_error_handlingr     sb    llnGCJJsQC""4(8#9:	y	!	!

 
"	!	!	!s   (BB	c            
      sB   R p Rp^V,          p^V,          p\         P                  ! ^ W 4      p\         P                  ! V 4      V,          p^ VR&   \        \         P                  ! WE34      P
                  4      p^ Vn        \        W#V4      pVP                  4       pVP                  ^4       VP                  R4       VP                  R4       \        P                  ! \        RR7      ;_uu_ 4        VP                  W\!        4       4       RRR4       VP                  R4       \        P                  ! \        RR7      ;_uu_ 4        VP                  W\!        4       R4       RRR4       \#        R	^ /4      ;_uu_ 4        \        P                  ! \        R
R7      ;_uu_ 4        VP                  W\!        4       4       RRR4       RRR4       \#        R	R/4      ;_uu_ 4        \        P                  ! \        RR7      ;_uu_ 4        VP                  W\!        4       4       RRR4       RRR4       \#        R	R/4      ;_uu_ 4        \        P                  ! \        RR7      ;_uu_ 4        VP                  W\!        4       4       RRR4       RRR4       RVn        \        P                  ! \        RR7      ;_uu_ 4        VP                  W\!        4       4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL[; i  + '       g   i     ELg; i  + '       g   i     EL; i  + '       g   i     EL*; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r,   i  r-   rk   Z/zcannot split hatched path)ZmatchNzcannot split filled pathrv   z
Please seti@B zPlease reducei_ Fzshould_simplify is False)r   r    r    )r*   Zlinspacer0   r   ZvstackZTZsimplify_thresholdr   Znew_gcZset_linewidthZset_foregroundZ	set_hatchrr   rs   ZOverflowErrorZ	draw_pathr   r
   Zshould_simplify)	ZNrD   r7   Zhr5   r8   ZpathZraZgcs	            r   test_chunksize_failsr     sv    	A
C	#A	#A 	AqA

QAAcF		1&!##$DD 
Q3	B	BQcLL	},G	H	H
R023 
ILL	},F	G	G
R02I> 
H 
)1-	.	.]]===LL#4#67 > 
/
 
)95	6	6]]=@@LL#4#67 A 
7
 
)62	3	3]]=@@LL#4#67 A 
4 !D	},F	G	G
R023 
H	G/ 
I	H	H 
H	G	G
 >== 
/	.	. A@@ 
7	6	6 A@ 
4	3
 
H	G	Gs   4K/L%L+*L	L+*%ML?	*M%M:4M'	M:
N/L 	L	L("	L++L<	?M
	MM$	'M72M::N
	N	c                  s    \         P                  ! 4       p V P                  R R7      P                  . RO. RO\        P
                  ! ^R7      .R7       V P                  P                  4        R# )Z3d)Z
projection)Z	linewidth)Zpath_effectsNrz   )r    rq   Zadd_subplotr   r   ZStrokerw   rx   )r   s    r   test_non_tuple_rgbafacer   O  sO    
**,COOtO$,,9K,>,>,K+L - NJJOOr   )2r   Znumpyr*   Znumpy.testingr   ZPILr   r   r   rr   Z
matplotlibr   r   r   r    r   rn   r	   r
   Zmatplotlib.backends.backend_aggr   Zmatplotlib.figurer   Zmatplotlib.imager   Zmatplotlib.pathr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.transformsr   r   r&   r+   r3   ro   rt   ry   ZmarkZbackendr   r   r   ZskipifZcheckr   r   r   r   r   rA   r   r   <module>r      s    	  3 ) )   8 $ #   : 3)>	#$ #$$7n  8n b U( ()4 v..7ST
G U
G v..7ST U24jr   