o
    i                     @   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#   p/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/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)interpolationkcolorsr   r   r   r   z%2.0fT)fmtZuse_clabeltext)r   r   npZarangeZreshaper   contoursetr   r   clabelZsetp)ax2ZarrZcntrZclblsr#   r#   r$   test_patheffect2   s   
r3   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-br4   )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.1red)boxstylecolor)r:   bboxg      @r)   )   blue)Zshadow_rgbFace)r4   Zxxxxgray)offsetZhatch	facecolorblackg?)	edgecolorrB   r   g{Gz?g?zHatch shadowK   i  r   )Zfontsizeweightva)r   plotr   r   SimpleLineShadowr   titler   legendZlegendPatchZwithSimplePatchShadowtextr   Zget_bbox_patchPathPatchEffectZgcf)p1legrL   r"   tr#   r#   r$   test_patheffect3+   s:   

rQ   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   r7   )r   rG   r   r:   )xysZfontdict
   rC   r   r   r   off)r   Zaxes	enumeraterL   r   r   r   r   set_xlimset_ylimaxis)Ztext_chunksZ	font_sizeaxichunkrL   r#   r#   r$   test_patheffects_stroked_textG   s"   	
r`   c                  C   sh   t jdd} t td\}|t t g | j	 }t
| |}|d|dks2J d S )N   )ZdpirW      )r   ZfigurerH   ranger   r   rI   r   ZcanvasZget_rendererZPathEffectRendererZget_path_effectsZpoints_to_pixels)figrN   rendererZpe_rendererr#   r#   r$    test_PathEffect_points_to_pixelsc   s   

rf   c                  C   s   t jdd} | jdksJ d S )N)r4   r   )rA   )r   ZSimplePatchShadow_offset)r"   r#   r#   r$   test_SimplePatchShadow_offsetp   s   rh   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   rW   ra   r   d   rC   none   )rD   rB   r   )r   r,   r7   r*   r)   r   )r   r   Zsawtoothr>   )r9   rB   rD   )r.   meshgridlinspacesincosr   r/   r0   r   rM   r   r1   r   r   Zset_bbox)rT   rU   datacsrL   r#   r#   r$   test_collectionu   s   $




rt   ZtickedstrokeZpngg)\(?)r   
extensionsri   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   )rm   r4   )Zfigsizerl   r   irW   )anglespacinglength)rB   r   r   equalr          )rw   rv   )labelr   e   r
   r	   g333333?   g?i   gMbP?g      @g      @r4   g?r=   )r)   r*   )rv   r,   )r5   <   )rv   rx   )b)rw   )r   Zsubplotsr   Zunit_circlepatchesZ	PathPatchr   ZwithTickedStrokeZ	add_patchr\   rZ   r[   rH   r.   ro   rp   rK   rn   r/   r0   )rd   r    r2   Zax3pathpatchnxrT   rU   nyZxvecZyvecx1Zx2g1g2Zg3Zcg1Zcg2Zcg3r#   r#   r$   test_tickedstroke   sJ   


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   rG   r   r;   g      ?Zthistle)r   r   rL   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%   r3   rQ   r`   rf   rh   rt   r   r   r#   r#   r#   r$   <module>   s0    





2