o
    w2b                     @   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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!   C/usr/lib/python3/dist-packages/matplotlib/tests/test_patheffects.pytest_patheffect1
   s$   
r#   Zpatheffect2Zmpl20)r   stylec                  C   s~   t  } tdd}| j|dd | j|dd}t j|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)interpolationkZcolorsr   r   r   r   z%2.0fT)ZfmtZuse_clabeltext)r   r   npZarangeZreshaper   contoursetpcollectionsr   r   clabel)ax2ZarrZcntrZclblsr!   r!   r"   test_patheffect2   s   
r0   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-br1   )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)r6   Zbboxg      @r'   )   blue)Zshadow_rgbFace)r1   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legrE   r    tr!   r!   r"   test_patheffect3.   s:   

rI   zstroked_text.pngc               
   C   s   g d} d}t g 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   r4   )r   r@   r   r6   )xysZfontdict
   r=   r   r   r   Zoff)r   Zaxes	enumeraterE   r   r   r   r   set_xlimset_ylimaxis)Ztext_chunksZ	font_sizeZaxichunkrE   r!   r!   r"   test_patheffects_stroked_textJ   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dpirO      )r   ZfigurerA   ranger   r   rB   r   ZcanvasZget_rendererZPathEffectRendererZget_path_effectsZpoints_to_pixels)figrG   ZrendererZpe_rendererr!   r!   r"    test_PathEffect_points_to_pixelsf   s   

r[   c                  C   s   t jdd} | jdksJ d S )N)r1   r   )r;   )r   ZSimplePatchShadowZ_offset)r    r!   r!   r"   test_SimplePatchShadow_offsets   s   r\   
collectiongsh|??)tolr$   c                  C   s   t t dddt ddd\} }t | t | }t|}tjddd	d
tj	ddg}|j
D ]}|| q2tj|ddD ]}|tjdddg |dddd qAd S )Nr   rO   rW   r   d   r=   none   )r>   r<   r   )r   r4   r(   r'   r   )r   r   Zsawtoothr9   )r5   r<   r>   )r*   meshgridlinspacesinZcosr   r+   r   rF   r   r-   r   r.   r   Zset_bbox)rL   rM   datacsr    r]   rE   r!   r!   r"   test_collectionx   s$   $





rh   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!}t j|jtjdd"gd# |j|||dgd$d!}t j|jtjd%dd&gd# |j|||dgd'd!}t j|jtjdd(gd# |
dd |dd d S ))Nr   r   )rb   r1   )Zfigsizera   r   irO   )anglespacinglength)r<   r   r   Zequalr          )rk   rj   )Zlabelr   e   r
   r	   g333333?   g?i   gMbP?g      @g      @r1   g?r8   )r'   r(   )rj   r)   )r2   <   )rj   rl   )b)rk   )r   Zsubplotsr   Zunit_circlepatchesZ	PathPatchr   ZwithTickedStrokeZ	add_patchrS   rQ   rR   rA   r*   rd   re   rD   rc   r+   r,   r-   )rZ   r   r/   Zax3pathZpatchZnxrL   rM   nyZxvecZyvecZx1Zx2Zg1Zg2Zg3Zcg1Zcg2Zcg3r!   r!   r"   test_tickedstroke   sV   


ry   )Znumpyr*   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patheffectsZpatheffectsr   Zmatplotlib.pathr   Zmatplotlib.patchesrv   r#   r0   rI   rV   r[   r\   rh   ry   r!   r!   r!   r"   <module>   s,    




