U
    Âmœd£  ã                   @   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ÚNormalÚgrid)Úax1ÚtxtÚpe© r#   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-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©Úcolorsr   r   r   ©r   z%2.0fT)ÚfmtZuse_clabeltext)r   r   ÚnpZarangeZreshaper   ÚcontourÚsetpÚcollectionsr   r   Úclabel)Úax2ZarrZcntrZclblsr#   r#   r$   Útest_patheffect2   s    ÿÿÿÿr4   Zpatheffect3c                  C   s
  t jdddddg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 ))Nr   r   r   é   zo-b)r   ztesting$^{123}$Úrr   r,   z
Line 1$^2$Tz
upper left)ZfancyboxÚlocr   z	Drop testÚwhitezcircle,pad=0.1Úred)ÚboxstyleÚcolor)r;   Úbboxg      @r)   )é   éýÿÿÿÚblue)Zshadow_rgbFace)r5   éüÿÿÿZxxxxÚgray)ÚoffsetZhatchÚ	facecolorÚblackgš™™™™™ñ?)Ú	edgecolorrC   r   g{®Gáz”?gš™™™™™¹?zHatch shadowéK   iè  r   )ZfontsizeÚweightÚva)r   Úplotr   r   ÚSimpleLineShadowr   Útitler   ÚlegendZlegendPatchZwithSimplePatchShadowÚtextr   Zget_bbox_patchÚPathPatchEffectZgcf)Úp1ÚlegrM   r"   Útr#   r#   r$   Útest_patheffect3.   s:    
ÿþÿÿ
ÿÿþÿrR   zstroked_text.pngc               
   C   s¤   dddddddg} d}t  d	d	d
d
g¡}t| ƒD ]L\}}|jdd|d  |dd|ddœd�}| tj|d dd�t ¡ g¡ q0| d	d
¡ | 	d	d
¡ | 
d¡ d S )Nz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   g{®Gáz„?gÍÌÌÌÌÌì?g¤p=
×£À?Úleftr   r8   )r   rH   r   r;   )ÚxÚyÚsZfontdicté
   rD   r   Úoff)r   ZaxesÚ	enumeraterM   r   r   r   r   Úset_xlimÚset_ylimÚaxis)Ztext_chunksZ	font_sizeÚaxÚiÚchunkrM   r#   r#   r$   Útest_patheffects_stroked_textJ   s2    ù	 ÿÿÿþra   c                  C   sh   t jdd�} t  tdƒ¡\}| t ¡ t ¡ g¡ | j 	¡ }t 
| ¡ |¡}| d¡| d¡ksdt‚d S )Né–   )ZdpirX   é   )r   ZfigurerI   Úranger   r   rJ   r   ZcanvasZget_rendererZPathEffectRendererZget_path_effectsZpoints_to_pixelsÚAssertionError)ÚfigrO   ÚrendererZpe_rendererr#   r#   r$   Ú test_PathEffect_points_to_pixelsf   s    
ÿ
 ÿrh   c                  C   s   t jdd�} | jdkst‚d S )N)r5   r   )rB   )r   ZSimplePatchShadowÚ_offsetre   )r"   r#   r#   r$   Útest_SimplePatchShadow_offsets   s    rj   Ú
collectiong¸…ëQ¸ž?)Ú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 ]}| |¡ qdtj|dd�D ],}| tjddd�g¡ | ddddœ¡ q‚d S )Nr   rX   rb   éûÿÿÿr   éd   rD   Únoneé   )rE   rC   r   )r   r8   r*   r)   r   )r   r   Zsawtoothr?   )r:   rC   rE   )r.   ÚmeshgridÚlinspaceÚsinÚcosr   r/   r   rN   r   r1   r   r2   r   Zset_bbox)rU   rV   ÚdataÚcsr"   rk   rM   r#   r#   r$   Útest_collectionx   s"    $
ÿ
þ

ÿ
ÿrw   ZtickedstrokeZpngg)\�Âõ(Ì?)r   Ú
extensionsrl   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   )rp   r5   )Zfigsizero   r   i¦ÿÿÿrX   )ÚangleÚspacingÚlength)rC   r   r   Úequaléþÿÿÿr   ú é   é‡   )rz   ry   )Úlabelr   ée   r
   r	   g333333Ó?é   gš™™™™™Ù?éi   gü©ñÒMbP?g      @g      @r5   gš™™™™™é?r>   )r)   r*   )ry   r,   )r6   é<   )ry   r{   )Úb)rz   )r   Zsubplotsr   Zunit_circleÚpatchesZ	PathPatchr   ZwithTickedStrokeZ	add_patchr]   r[   r\   rI   r.   rr   rs   rL   rq   r/   r0   r1   )rf   r    r3   Zax3ÚpathÚpatchÚnxrU   rV   ÚnyZxvecZyvecÚx1Zx2Úg1Úg2Zg3Zcg1Zcg2Zcg3r#   r#   r$   Útest_tickedstroke‹   sV    
ÿÿ

ÿÿÿÿÿr�   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   r;   Zsalmon)r   rH   r   r<   g      Ð?Zthistle)r   r   rM   r   r   r   )r^   Ús1Ús2Ztext1Ztext2r#   r#   r$   Ú$test_patheffects_spaces_and_newlinesÂ   s    ÿÿr’   )Únumpyr.   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patheffectsZpatheffectsr   Zmatplotlib.pathr   Zmatplotlib.patchesr‡   r%   r4   rR   ra   rh   rj   rw   r�   r’   r#   r#   r#   r$   Ú<module>   s.   




ÿ
5