+
     ]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)Z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sigmar5   r8   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)rB   
padded_srcrC   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   )rE   r*   padrG   )rB   imrC   rH   rF   	tgt_images   &&&   r   __call__Z,test_agg_filter.<locals>.BaseFilter.__call__o   sO    ,,s#C3Z#V$D *,J**:;IdSD((r   r@   N)	__name__
__module____qualname____firstlineno__rE   rG   rK   __static_attributes____classdictcell____classdict__   @r   
BaseFilterr?   g   s     		L	) 	)r   rU   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)rB   rY   rD   r   __init__Z.test_agg_filter.<locals>.OffsetFilter.__init__x   s    "Lr   c                sZ    \        \        V P                  4      ^H,          V,          4      # )H   )r<   r;   rY   rA   rD   r   rE   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)rY   r*   Zrollr<   )rB   rF   rC   ZoxZoyZa1Za2s   &&&    r   rG   Z3test_agg_filter.<locals>.OffsetFilter.process_image~   sS    \\FBSb3%7a@Bc"r'C-00q9BIr   rX   N)r   	rL   rM   rN   rO   rZ   rE   rG   rP   rQ   rR   rT   r   OffsetFilterrV   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 # rW   )r=   alphacolor)rB   r=   r_   r`   s   &&&&r   rZ   Z0test_agg_filter.<locals>.GaussianFilter.__init__   s    JJJr   c                sV    \        V P                  ^,          ^H,          V,          4      # r9   )r<   r=   rA   rD   r   rE   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)ra   ra   :Nr:   N)ra   ra   r:   )r*   Z
empty_liker`   r_   r=   )rB   rF   rC   rJ   r>   s   &&& r   rG   Z5test_agg_filter.<locals>.GaussianFilter.process_image   sU    j1I"&**Ih!)*W*=

*J*.**r/C*?"AIgr   )r_   r`   r=   N)      ?r    r    r    )
rL   rM   rN   rO   Z__doc__rZ   rE   rG   rP   rQ   )rS   r>   s   @r   GaussianFilterr^      s     %	
	0	 	r   rd   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 # rW   gauss_filteroffset_filter)rB   r=   r_   r`   rY   rd   r]   s   &&&&&r   rZ   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      # rW   )r;   rg   rE   rh   rA   rD   r   rE   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# rW   )rg   rG   rh   )rB   rF   rC   Zt1Zt2s   &&&  r   rG   Z7test_agg_filter.<locals>.DropShadowFilter.process_image   s3    ""00AB##11":BIr   rf   N)g333333?rc   r   r\   )rS   rd   r]   s   @r   DropShadowFilterre      s     	7 	7	8	 	r   ri   rb   zbo-Zbr6   zLine 1)ZmecZmfcZlwZmewZmsZlabelzro-rg      @r2   )r4   r7   ZunitsTr   r   FNr9   )皙?rb   ?)rk   rl   rb   )rb   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)rU   ri   r   r$   Zline1Zline2ZgaussZlineZxxZyyZshadowZ	transformrd   r]   r8   r>   s               @@@@r   test_agg_filterrn   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)ro   i   )r    figurer   r   pytestraisesZ
ValueErrorr   )r   r#   r   r   test_too_large_imagers      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# )i   agg.path.chunksizeN)	Zranger    r!   r1   r*   Zsincanvasdrawr	   )r4   r   r$   s      r   test_chunksizerw      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R# )r    Zjpg)r)   rC   Nr    r   r.   r    r   r    r    r1   r   r   r   r   openr   rI   r   r   test_jpeg_dpir}      s:     HHY	"
**,CKKEs+	CBr   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R# )r    )PngInfoZSoftwareZtestr'   pnginfor)   
pil_kwargsN)
ZPIL.PngImagePluginr~   r   r   Zadd_textr    rp   r   r   r{   )r~   r   r   rI   r%   r   test_pil_kwargs_pngr      sT    *
**,CiGZ(JJLU	77KL	CBr   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R# u uppi )Zdescriptionz
test imageZtiffr   N)r   r   r    rp   r   r   r{   Ztag_v2Zitemsr   ZTAGS_V2Zname)r   r   rI   ZkZvZtagss         r   test_pil_kwargs_tiffr      s}    
**,C.JJJLV
C	CB46IIOO4EF4EDAHQ$$a'4EDFDFs   4-B&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       \        P                  ! 4       pR^d/p\         P                  ! VRVR7       R# )r    Zqualityr   r   Nrx   ry   )r    r1   r   r   r   )Z	buf_smallZpil_kwargs_lowZ	buf_largeZpil_kwargs_highr%   r   test_pil_kwargs_webpr      sY    HHY	"

I^NKK	&^D

I #&OKK	&_Er   c                  s    \         P                  ! . RO. RO4       \        P                  ! 4       p \         P                  ! V RRR7       \
        P                  ! V 4      pR# )r    r   T)r)   ZtransparentNrx   ry   rz   r|   r   r   test_webp_alphar   
  s8    HHY	"
**,CKKF5	CBr   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   rq   rr   Z	TypeErrorru   rv   )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-   rj   Z/zcannot split hatched path)ZmatchNzcannot split filled pathrt   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_hatchrq   rr   ZOverflowErrorZ	draw_pathr   r
   Zshould_simplify)	ZNrC   r6   Zhr4   r7   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_effectsNrx   )r    rp   Zadd_subplotr   r   ZStrokeru   rv   )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   rq   Z
matplotlibr   r   r   r    r   rm   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   rn   rs   rw   ZmarkZbackendr}   r   r   ZskipifZcheckr   r   r   r   r   r@   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   