o
    Gf                     @   s   d dl Zd dlmZ d dlmZ d dlmZ	 d dl
mZ d dlmZ edgdddd Zed	gdd
ddd Zedgdd Zedgdd Zdd Zdd Zedgdd
ddd Zedgddgdd d!d" Zed#gddd$d% ZdS )&    N)image_comparison)PathZpatheffect1T)remove_textc                  C   s   t  } | ddgddgg | jdddtdddd	d
dtjdddgd}|jtj	dddt
 g tjdddg}| jdd|d d S )N         test)      ?r	   )        r   z->Zangle3)Z
arrowstyleZconnectionstylelw   centerw	linewidth
foreground)Z
arrowpropssizehapath_effects   T-)Z	linestyler   )pltsubplotimshowZannotatedictr   
withStrokeZarrow_patchset_path_effectsStrokeNormalZgrid)ax1Ztxtpe r!   Alib/python3.10/site-packages/matplotlib/tests/test_patheffects.pytest_patheffect1
   s$   
r#   Zpatheffect2Zmpl20)r   stylec                  C   sz   t  } tdd}| j|dd | j|dd}|jtj	ddd	gd
 | j
|ddd}t j|tj	ddd	gd
 d S )N   )r   r   Znearest)ZinterpolationkZcolorsr   r   r   r   z%2.0fT)ZfmtZuse_clabeltext)r   r   npZarangeZreshaper   contoursetr   r   clabelZsetp)ax2ZarrZcntrZclblsr!   r!   r"   test_patheffect2   s   
r.   Zpatheffect3c                  C   s  t jg dddd\} | t t g t jdtjdddgd	 t j| gd
gddd}|j	t
 g t jdddddddd}tjdddtj
dddg}|| | | tjddddtjddd d!g}t  jd"d#d$d%d&d'd(}|| d S ))N)r   r   r      r   zo-br/   )r   ztesting$^{123}$r   rr   r(   z
Line 1$^2$Tz
upper left)Zfancyboxlocr   r   z	Drop testwhitezcircle,pad=0.1Zred)boxstylecolor)r4   bboxg      @r&   )   blue)Zshadow_rgbFace)r/   ZxxxxZgray)offsetZhatch	facecolorblackg?)	edgecolorr;   r   g{Gz?g?zHatch shadowK   i  r   )ZfontsizeZweightva)r   plotr   r   SimpleLineShadowr   titler   legendZlegendPatchZwithSimplePatchShadowtextr   Zget_bbox_patchPathPatchEffectZgcf)p1ZlegrD   r    tr!   r!   r"   test_patheffect3+   s:   

rH   zstroked_text.pngc               
   C   s   g d} d}t d}t| D ]&\}}|jdd|d  |dd|d	d
d}|tj|d ddt g q|dd |	dd |
d d S )N)zA B C D E F G H I J K LzM N O P Q R S T U V WzX Y Z a b c d e f g h i jzk l m n o p q r s t u vzw x y z 0123456789z!@#$%^&*()-=_+[]\;'z,./{}|:"<>?2   )r   r   r   r   g{Gz?g?gp=
ף?leftr   r2   )r   r?   r   r4   )xysZfontdict
   r<   r   r   r   Zoff)r   Zaxes	enumeraterD   r   r   r   r   set_xlimset_ylimaxis)Ztext_chunksZ	font_sizeaxichunkrD   r!   r!   r"   test_patheffects_stroked_textG   s"   	
rV   c                  C   sh   t jdd} t td\}|t t g | j	 }t
| |}|d|dks2J d S )N   )ZdpirN      )r   Zfigurer@   ranger   r   rA   r   ZcanvasZget_rendererZPathEffectRendererZget_path_effectsZpoints_to_pixels)figrF   ZrendererZpe_rendererr!   r!   r"    test_PathEffect_points_to_pixelsc   s   

r[   c                  C   s   t jdd} | jdksJ d S )N)r/   r   )r:   )r   ZSimplePatchShadowZ_offset)r    r!   r!   r"   test_SimplePatchShadow_offsetp   s   r\   Z
collectiongQ?)tolr$   c                  C   s   t t dddt ddd\} }t | t | }t|}|jtj	ddd	d
tj
ddgd tj|ddD ]}|tjdddg |dddd q:d S )Nr   rN   rW   r   d   r<   none   )r=   r;   r   )r   r(   r2   r'   r&   r   )r   r   Zsawtoothr8   )r3   r;   r=   )r)   meshgridlinspacesinZcosr   r*   r+   r   rE   r   r,   r   r   Zset_bbox)rK   rL   datacsrD   r!   r!   r"   test_collectionu   s   $




rg   ZtickedstrokeZpngg)\(?)r   
extensionsr]   c               	   C   s  t jdddd\} \}}}t }tj|ddtjdddd	gd
}|| |	d |
dd |dd |jddgddgdtjdddgd d}tdd|}dt|d  d }|j||dt gd |  d}d}	tdd|}
tdd|	}t|
|\}}d| | d  }|d|  d  }d|d  | }|j|||dgd d!}|jtjdd"gd# |j|||dgd$d!}|jtjd%dd&gd# |j|||dgd'd!}|jtjdd(gd# |
dd |dd d S ))Nr   r   )ra   r/   )Zfigsizer`   r   irN   )anglespacinglength)r;   r   r   Zequalr          )rj   ri   )Zlabelr   e   r
   r	   g333333?   g?i   gMbP?g      @g      @r/   g?r7   )r&   r'   )ri   r(   )r0   <   )ri   rk   )b)rj   )r   Zsubplotsr   Zunit_circlepatchesZ	PathPatchr   ZwithTickedStrokeZ	add_patchrR   rP   rQ   r@   r)   rc   rd   rC   rb   r*   r+   )rZ   r   r-   Zax3pathZpatchZnxrK   rL   nyZxvecZyvecZx1Zx2Zg1Zg2Zg3Zcg1Zcg2Zcg3r!   r!   r"   test_tickedstroke   sJ   


rx   zspaces_and_newlines.pngc               	   C   sl   t  } d}d}| jdd|dddddid	}| jdd
|dddddid	}|t g |t g d S )Nz	         z
Newline also causes problemsg      ?g      ?r   r   r4   Zsalmon)r   r?   r   r5   g      ?Zthistle)r   r   rD   r   r   r   )rS   s1s2Ztext1Ztext2r!   r!   r"   $test_patheffects_spaces_and_newlines   s   r{   )Znumpyr)   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patheffectsZpatheffectsr   Zmatplotlib.pathr   Zmatplotlib.patchesru   r#   r.   rH   rV   r[   r\   rg   rx   r{   r!   r!   r!   r"   <module>   s0    





2