
    
3j0                        S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
r
S SKJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S r S r!S r"S r#S r$\" S/SSS9S 5       r%S r&S r'\
RP                  RS                  S5      S 5       r*S r+S r,\ " S5      S 5       r-\ " S5      S 5       r.S r/S  r0\ " S5      S! 5       r1\ " S5      S" 5       r2S# r3S$ r4S% r5g)&    N)assert_array_almost_equal)featuresImageTiffTags)collectionspatheffectspyplot
transformsrcParams
rc_context)RendererAgg)Figure)imread)Path)image_comparison)IdentityTransformc                     [         R                  " 5          [         R                  " S5        [        R                  " U R                  5       5      nS S S 5        [        R                  R                  W(       + U  S3S9$ ! , (       d  f       N4= f)Nignorez support not available)reason)	warningscatch_warningssimplefilterr   checklowerpytestmarkskipif)name	availables     S/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_agg.pyrequire_pillow_featurer!      sd    		 	 	"h'NN4::<0	 
# ;;)mtf<R4STT 
#	"s   ;A??
Bc                     [        SS/5      n U R                  S5        U R                  R                  S5        [        R
                  " 5       nU R                  UU R                  5       SS9  UR                  S5        U R                  UU R                  5       SS9  UR                  S5        [        [        [        U5      S   5      S	S
S9  g )N   皙?)r   r#   r$         ?none)	facecolor	edgecolorr   r   r   )              ?r$   r%      )decimal)r   set_facecolorpatch	set_alphaioBytesIOsavefigget_facecolorseekr   tupler   )figbufs     r    test_repeated_save_with_alphar9      s     !S
Ck"II **,CKK++-   " HHQKKK++-   " HHQKeF3K$564&')    c            
      ,   [         R                  " 5       n [        R                  " 5       u  p[        R
                  " [        SS/SS/SS/SS/SS//5      /5      nUR                  U5        UR                  SS5        [        R                  " U 5        g )Ni   
   gMbP?r#   )
r1   r2   pltsubplotsr   PathCollectionr   
add_artistset_xlimr3   )bufffax
collections       r    !test_large_single_path_collectionrH   ;   s}    ::<D
 LLNEA++	Qx"a2r(S"IQx@	ABDJMM*KKKKr:   c                      [         R                  " S5      u  pSn[        R                  " U5      nUR	                  U5        UR                  X3S-  US-  5        [        R                  " 5       nU R                  USS9  g )Nr#   i  g?g333333?pngformat)	r?   r@   nparangesemilogxfill_betweenr1   r2   r3   )r7   rF   stepsdatar8   s        r    test_marker_with_nanrS   I   sc     ll1oGCE99UDKKOODs(DH-
**,CKKEK"r:   c                      [         R                  " 5       n [        5       nUR                  5       n[        R
                  " S5      nUS S S2==   S-  ss'   UR                  U5        UR                  U SS9  g )N順    rJ   rK   )r1   r2   r   r@   rM   onesplotr3   )rD   r7   rF   pointss       r    test_long_pathr[   U   sZ    ::<D
(C	BWWWF
3Q3K2KGGFOKKUK#r:   zagg_filter.pngT_classic_test)remove_textstylec                  ~  ^^^^ S mS"U4S jjm " S S5      n  " S SU 5      m " U4S jS	U 5      m " UU4S
 jSU 5      n[         R                  " 5       u  p#UR                  / SQ/ SQSSSSSSSS9	u  nUR                  / SQ/ SQSSSSSSSS9	u  nU" S5      nXE4 H  nUR                  5       nUR	                  5       n	UR                  X5      u  n
U
R                  U5        [        R                  " UR                  5       USSSS9nU
R                  U5        U
R                  UR                  5       S-
  5        U
R                  U5        U
R                  S5        M     UR                  SS 5        UR                  SS 5        UR                   R#                  S!5        UR$                  R#                  S!5        g )#Nc                     [         R                  SU S   -  XSS2   -
  U SU S   -  U SU* S2   -
  4   n[         R                  " U5      n[         R                  " X3R	                  5       -  USS9nXAS-
  U* S-    $ )NrV   r   r#   rW   same)mode)rM   r_hanningconvolvesum)x
window_lenswys        r    smooth1d!test_agg_filter.<locals>.smooth1da   s    EEadFQ!B''AaeGaJ;r8I6J,JJLJJz"KK%%'	162Azk!m,,r:   r,   c                    > [        [        U5      S5      S-  S-   n[        R                  " TSX5      n [        R                  " TSX5      n U $ )Nr,   rV   r#   r   )maxintrM   apply_along_axis)Asigmarh   rl   s      r    smooth2d!test_agg_filter.<locals>.smooth2di   sJ    UQ'!+a/
!Q;!Q;r:   c                   &    \ rS rSrS rS rS rSrg)#test_agg_filter.<locals>.BaseFiltero   c                     g)Nr    selfdpis     r    get_pad+test_agg_filter.<locals>.BaseFilter.get_padq   s    r:   c                     [        S5      e)Nz"Should be overridden by subclasses)NotImplementedError)r|   
padded_srcr}   s      r    process_image1test_agg_filter.<locals>.BaseFilter.process_imaget   s    %&JKKr:   c                     U R                  U5      n[        R                  " XU4X34S/S5      nU R                  XB5      nXS* U* 4$ )Nr)   constant)r~   rM   padr   )r|   imr}   r   r   	tgt_images         r    __call__,test_agg_filter.<locals>.BaseFilter.__call__w   sO    ,,s#C3Z#V$D *,J**:;IdSD((r:   rz   N)__name__
__module____qualname____firstlineno__r~   r   r   __static_attributes__rz   r:   r    
BaseFilterrw   o   s    		L	)r:   r   c                   *    \ rS rSrSS jrS rS rSrg)%test_agg_filter.<locals>.OffsetFilter~   c                     Xl         g Noffsets)r|   r   s     r    __init__.test_agg_filter.<locals>.OffsetFilter.__init__   s    "Lr:   c                 J    [        [        U R                  5      S-  U-  5      $ )NH   )rp   ro   r   r{   s     r    r~   -test_agg_filter.<locals>.OffsetFilter.get_pad   s     s4<<(2-344r:   c                     U R                   u  p4[        R                  " U[        US-  U-  5      SS9n[        R                  " U[        US-  U-  5      * SS9nU$ )Nr   r#   )axisr   )r   rM   rollrp   )r|   r   r}   oxoya1a2s          r    r   3test_agg_filter.<locals>.OffsetFilter.process_image   sS    \\FBSb3%7a@Bc"r'C-00q9BIr:   r   N)r)   r   r   r   r   r   r~   r   r   rz   r:   r    OffsetFilterr   ~   s    	#	5	r:   r   c                   6   > \ rS rSrSrSS jrS rU 4S jrSrg)	'test_agg_filter.<locals>.GaussianFilter   zSimple Gaussian filter.c                 (    Xl         X l        X0l        g r   )rs   alphacolor)r|   rs   r   r   s       r    r   0test_agg_filter.<locals>.GaussianFilter.__init__   s    JJJr:   c                 >    [        U R                  S-  S-  U-  5      $ Nr,   r   )rp   rs   r{   s     r    r~   /test_agg_filter.<locals>.GaussianFilter.get_pad   s    tzz!|b(3.//r:   c                    > [         R                  " U5      nU R                  US S 2S S 2S S24'   T" US S 2S S 2S4   U R                  -  U R                  S-  U-  5      US S 2S S 2S4'   U$ r   )rM   
empty_liker   r   rs   )r|   r   r}   r   rt   s       r    r   5test_agg_filter.<locals>.GaussianFilter.process_image   sk    j1I"&**IaBQBh!)*Q1W*=

*J*.**r/C*?"AIaAgr:   )r   r   rs   N)      ?r   r   r   )	r   r   r   r   __doc__r   r~   r   r   )rt   s   r    GaussianFilterr      s    %	
	0	 	r:   r   c                   4   > \ rS rSrSU U4S jjrS rS rSrg))test_agg_filter.<locals>.DropShadowFilter   c                 <   > T" XU5      U l         T" U5      U l        g r   gauss_filteroffset_filter)r|   rs   r   r   r   r   r   s        r    r   2test_agg_filter.<locals>.DropShadowFilter.__init__   s     .uU CD!-g!6Dr:   c                 ~    [        U R                  R                  U5      U R                  R                  U5      5      $ r   )ro   r   r~   r   r{   s     r    r~   1test_agg_filter.<locals>.DropShadowFilter.get_pad   s6    t((005))11#68 8r:   c                 r    U R                   R                  X5      nU R                  R                  X25      nU$ r   )r   r   r   )r|   r   r}   t1t2s        r    r   7test_agg_filter.<locals>.DropShadowFilter.process_image   s3    ""00AB##11":BIr:   r   N)g333333?r   r)   r   )r   r   s   r    DropShadowFilterr      s    	7 	7	8	r:   r   )皙?r   ?)r   r   r   zbo-brj   r<   r=   zLine 1)mecmfclwmewmslabel)r   g?gffffff?zro-r   g      @g      rZ   )rg   rk   unitsr   Tr*   r+   F)r,   )r?   r@   rY   	get_xdata	get_ydataupdate_frommtransformsoffset_copyget_transformset_transform
set_zorder
get_zorderset_agg_filterset_rasterizedrC   set_ylimxaxisset_visibleyaxis)r   r   r7   rF   line1line2gausslinexxyyshadow	transformr   r   rl   rt   s               @@@@r    test_agg_filterr   _   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                      [         R                  " SS9n [        R                  " 5       n[        R
                  " [        5         U R                  U5        S S S 5        g ! , (       d  f       g = f)N)i,  i   )figsize)r?   figurer1   r2   r   raises
ValueErrorr3   )r7   rD   s     r    test_too_large_imager      s?    
**\
*C::<D	z	"D 
#	"	"s   A
A-c                     [        S5      n [        R                  " 5       u  pUR                  U [        R
                  " U 5      5        UR                  R                  5         [        R                  " 5       u  pS[        S'   UR                  U [        R
                  " U 5      5        UR                  R                  5         g )N   i   agg.path.chunksize)	ranger?   r@   rY   rM   sincanvasdrawr   )rg   r7   rF   s      r    test_chunksizer      s|    c
A llnGCGGArvvayJJOO llnGC%(H!"GGArvvayJJOOr:   Aggc                      [         R                  " / SQ/ SQ5        [        R                  " 5       n [         R                  " U SSS9  [
        R                  " U 5      nUR                  S   S:X  d   eg )Nr   r#   rV   r   r#   r   jpgr   )rL   r}   r}   )r   r   )r?   rY   r1   r2   r3   r   openinfor8   r   s     r    test_jpeg_dpir     sP     HHY	"
**,CKKEs+	CB775>Z'''r:   c                     SSK Jn   [        R                  " 5       nU " 5       nUR	                  SS5        [
        R                  " 5       R                  USSU0S9  [        R                  " U5      nUR                  S   S:X  d   eg )Nr   )PngInfoSoftwaretestrJ   pnginforL   
pil_kwargs)PIL.PngImagePluginr  r1   r2   add_textr?   r   r3   r   r   r  )r  r8   r  r   s       r    test_pil_kwargs_pngr     sk    *
**,CiGZ(JJLU	77KL	CB77:&(((r:   c                  `   [         R                  " 5       n SS0n[        R                  " 5       R	                  U SUS9  [
        R                  " U 5      nUR                  R                  5        VVs0 s H#  u  p4[        R                  U   R                  U_M%     nnnUS   S:X  d   eg s  snnf )Ndescriptionz
test imagetiffr	  ImageDescription)r1   r2   r?   r   r3   r   r   tag_v2itemsr   TAGS_V2r   )r8   r
  r   kvtagss         r    test_pil_kwargs_tiffr     s    
**,C.JJJLV
C	CB46IIOO4EF4EDAHQ$$a'4EDF"#|333 Gs   1*B*WebPc                     [         R                  " / SQ/ SQ5        [        R                  " 5       n SS0n[         R                  " U SUS9  [        U5      S:X  d   e[        R                  " 5       nSS0n[         R                  " USUS9  [        U5      S:X  d   eUR                  5       R                  U R                  5       R                  :  d   eg )Nr   r   qualityr#   webpr	  d   r?   rY   r1   r2   r3   len	getbuffernbytes	buf_smallpil_kwargs_low	buf_largepil_kwargs_highs       r    test_pil_kwargs_webpr'        HHY	"

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

I #&OKK	&_E1$$$ '')*=*=*?*F*FFFFr:   AVIFc                     [         R                  " / SQ/ SQ5        [        R                  " 5       n SS0n[         R                  " U SUS9  [        U5      S:X  d   e[        R                  " 5       nSS0n[         R                  " USUS9  [        U5      S:X  d   eUR                  5       R                  U R                  5       R                  :  d   eg )Nr   r   r  r#   avifr	  r  r  r"  s       r    test_pil_kwargs_avifr,    r(  r:   c                  D   [         R                  " / SQ/ SQ5        [        R                  " 5       n [         R                  " U SSS9  [
        R                  " U 5      nUR                  S:X  d   eUR                  S   [        UR                  R                  5      :  d   eg )Nr   r   gifFrL   transparentPtransparencyr?   rY   r1   r2   r3   r   r   rb   r  r  palettecolorsr  s     r    test_gif_no_alphar6     sn    HHY	"
**,CKKEu5	CB77c>>77>"c"***;*;&<<<<r:   c                  D   [         R                  " / SQ/ SQ5        [        R                  " 5       n [         R                  " U SSS9  [
        R                  " U 5      nUR                  S:X  d   eUR                  S   [        UR                  R                  5      :  d   eg )Nr   r   r.  Tr/  r1  r2  r3  r  s     r    test_gif_alphar8  )  sn    HHY	"
**,CKKEt4	CB77c>>77>"S):):%;;;;r:   c                      [         R                  " / SQ/ SQ5        [        R                  " 5       n [         R                  " U SSS9  [
        R                  " U 5      nUR                  S:X  d   eg )Nr   r   r  Tr/  RGBAr?   rY   r1   r2   r3   r   r   rb   r  s     r    test_webp_alphar<  2  J    HHY	"
**,CKKF5	CB77fr:   c                      [         R                  " / SQ/ SQ5        [        R                  " 5       n [         R                  " U SSS9  [
        R                  " U 5      nUR                  S:X  d   eg )Nr   r   r+  Tr/  r:  r;  r  s     r    test_avif_alphar?  ;  r=  r:   c                  *   [         R                  " 5       u  pUR                  S/S/5      R                  [	        SS/5      5        [
        R                  " [        5         U R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nr#   )r   r#   )rV   r,   )
r?   r@   scatter	set_pathsr   r   r   	TypeErrorr   r   )r7   rF   s     r    (test_draw_path_collection_error_handlingrD  D  s\    llnGCJJsQC""4(8#9:	y	!

 
"	!	!s    B
Bc                 P   SnSnSU-  nSU-  n[         R                  " SX15      n[         R                  " U5      U-  nSUS S S2'   [        [         R                  " XV45      R
                  5      nSUl        [        X4U5      nUR                  5       n	U	R                  S5        U	R                  S5        U	R                  S	5        [        R                  " [        S
S9   UR                  X[!        5       5        S S S 5        U	R                  S 5        [        R                  " [        SS9   UR                  X[!        5       S5        S S S 5        [#        SS05         [        R                  " [        SS9   UR                  X[!        5       5        S S S 5        S S S 5        [#        SS05         [        R                  " [        SS9   UR                  X[!        5       5        S S S 5        S S S 5        [#        SS05         [        R                  " [        SS9   UR                  X[!        5       5        S S S 5        S S S 5        SUl        [        R                  " [        SS9   UR                  X[!        5       5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN[= f! , (       d  f       GN#= f! , (       d  f       GN-= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrU   i  r<      r   rV   r#   r   /zcannot split hatched path)matchzcannot split filled path)r#   r   r   r   z
Please seti@B zPlease reducei_ Fzshould_simplify is False)rM   linspacerX   r   vstackTsimplify_thresholdr   new_gcset_linewidthset_foreground	set_hatchr   r   OverflowError	draw_pathr   r   should_simplify)
high_memoryNr}   rj   hrg   rk   pathragcs
             r    test_chunksize_failsrZ  K  sJ    	A
C	#A	#A 	AqA

QAAccF		1&!##$DD 
Q3	B	BQcLL	},G	H
R023 
ILL	},F	G
R02I> 
H 
)1-	.]]==LL#4#67 > 
/
 
)95	6]]=@LL#4#67 A 
7
 
)62	3]]=@LL#4#67 A 
4 !D	},F	G
R023 
H	G/ 
I	H 
H	G
 >= 
/	. A@ 
7	6 A@ 
4	3
 
H	Gs    J-JK8J/K0K$
K%K$LK57L'L
J
J,/
J>	9K
K
K!	K$$
K25
L	?L
L
L%c                      [         R                  " 5       n U R                  SS9R                  / SQ/ SQ[        R
                  " SS9/S9  U R                  R                  5         g )N3d)
projectionr   r   )	linewidth)path_effects)r?   r   add_subplotrA  r   Stroker   r   )r7   s    r    test_non_tuple_rgbafacerb    sO    
**,COOtO$,,9K,>,>,K+L - NJJOOr:   )6r1   r   numpyrM   numpy.testingr   PILr   r   r   r   
matplotlibr   r   r	   r?   r
   r   r   r   matplotlib.backends.backend_aggr   matplotlib.figurer   matplotlib.imager   matplotlib.pathr   matplotlib.testing.decoratorsr   matplotlib.transformsr   r!   r9   rH   rS   r[   r   r   r   r   backendr  r  r  r'  r,  r6  r8  r<  r?  rD  rZ  rb  rz   r:   r    <module>rn     s0   	   3 ) )   8 $ #   : 3U)>	#$ #$$oNn  On b U( ()4 
G  
G 
G  
G=<      24jr:   