o
    ‘iS!  ã                   @   s’  d dl Z d dlZd dlZd dlZd dlmZ d dlm	Z	 dd„ Z
ejje  ¡ dkddd	d
„ ƒZejje  ¡ dkdddd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	dgƒdd„ ƒZe	dgƒdd„ ƒZe	dgdddd„ ƒZd d!„ Ze	d"gddd#d$„ ƒZe	d%gddd&d'„ ƒZe	d(gddd)d*„ ƒZe	d+gddd,d-„ ƒZe	d.gddd/d0„ ƒZd1d2„ Zd3d4„ Zd5d6„ Ze	d7gddd8d9„ ƒZ d:d;„ Z!d<d=„ Z"dS )>é    N)Úpyplot)Úimage_comparisonc                 K   s\   t  t  ddt j d¡t  ddt j d¡¡\}}t  |¡}t  |¡}| j||fi |¤Ž}|S )Nr   é   é   )ÚnpÚmeshgridÚarangeÚpiÚcosÚsinÚquiver)ÚaxÚkwargsÚXÚYÚUÚVÚQ© r   úk/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_quiver.pyÚdraw_quiver   s   ÿ

r   ÚCPythonzRequires CPython)Úreasonc                  C   s:   t  ¡ \} }t|ƒ}|j}| ¡  ~t |¡dksJ ‚d S )Nr   )ÚpltÚsubplotsr   r   ÚremoveÚsysÚgetrefcount)Úfigr   r   ZttXr   r   r   Útest_quiver_memory_leak   s   r   c               	   C   s`   t  ¡ \} }t|ƒ}|j|dddddddid}t |¡d	ks!J ‚| ¡  t |¡dks.J ‚d S )
Nç      à?çq=
×£pí?r   ú$2 \frac{m}{s}$ÚWÚweightÚbold©ÚlabelposÚfontpropertiesé   )r   r   r   Ú	quiverkeyr   r   r   )r   r   r   Úqkr   r   r   Útest_quiver_key_memory_leak#   s   þr,   c               	   C   sˆ   ddg} t jtdd t | ¡ W d   ƒ n1 sw   Y  t jtdd t | | | | | | ¡ W d   ƒ d S 1 s=w   Y  d S )Nr   r   z7takes from 2 to 5 positional arguments but 1 were given©Úmatchz7takes from 2 to 5 positional arguments but 6 were given)ÚpytestÚraisesÚ	TypeErrorr   r   )r   r   r   r   Útest_quiver_number_of_args2   s   þýþ"ýr2   c                  C   s  ddg} g d¢}t jtdd t | || | ¡ W d   ƒ n1 s"w   Y  t jtdd t | | || ¡ W d   ƒ n1 sAw   Y  t jtdd t | | | |¡ W d   ƒ n1 s`w   Y  t jtdd t | | | | |¡ W d   ƒ d S 1 sw   Y  d S )	Nr   r   )r   r   r)   z?X and Y must be the same size, but X.size is 2 and Y.size is 3.r-   zMArgument U has a size 3 which does not match 2, the number of arrow positionszMArgument V has a size 3 which does not match 2, the number of arrow positionszMArgument C has a size 3 which does not match 2, the number of arrow positions)r/   r0   Ú
ValueErrorr   r   )ZX2ZX3r   r   r   Útest_quiver_arg_sizes>   s,   ÿýÿýÿýÿ"ýr4   c                  C   sn   t  ¡ \} }t t d¡t d¡¡\}}t |¡ }}tj dd¡d d }|j|||||d | j	 
¡  d S )Né   é
   r    é–   ©Úangles)r   r   r   r   r   Ú	ones_likeÚrandomÚrandr   ÚcanvasÚdraw©r   r   r   r   r   r   Úphir   r   r   Útest_no_warningsS   s   rA   c                  C   s^   t  ¡ \} }t t d¡t d¡¡\}}t |¡t |¡}}|j||ddd | j 	¡  d S )Nr6   r   )Z
headlengthZheadaxislength)
r   r   r   r   r   r
   r   r   r=   r>   )r   r   r   r   r   r   r   r   r   Útest_zero_headlength\   s
   rB   zquiver_animated_test_image.pngc               	   C   s8   t  ¡ \} }t|dd}|j|ddddddd	id
 d S )NT)Zanimatedr    r!   r   r"   r#   r$   r%   r&   )r   r   r   r*   ©r   r   r   r   r   r   Útest_quiver_animatef   s
   
ÿrD   zquiver_with_key_test_image.pngc                  C   sD   t  ¡ \} }| d¡ t|ƒ}|j|dddddddd	d
dœd	 d S )Nçš™™™™™¹?r    gffffffî?r   z"$2\, \mathrm{m}\, \mathrm{s}^{-1}$iöÿÿÿZfigurer#   r%   Zlarge)r$   Úsize)ÚangleZcoordinatesr'   r(   )r   r   Úmarginsr   r*   rC   r   r   r   Útest_quiver_with_keyo   s   

ûrI   zquiver_single_test_image.pngT)Zremove_textc                  C   s2   t  ¡ \} }| d¡ | dgdgdgdg¡ d S )NrE   r   r   )r   r   rH   r   ©r   r   r   r   r   Útest_quiver_single|   s   
rK   c                  C   sf   t  ¡ \} }tt dg¡t dg¡d}| dgdg|d |d ¡}d|d d< |jd dks1J ‚d S )Nçš™™™™™ñ?g       @)ÚuÚvr   rM   rN   r   )r   r   Údictr   Úarrayr   r   )r   r   ÚuvÚq0r   r   r   Útest_quiver_copyƒ   s
   rS   zquiver_key_pivot.pngc                  C   sÂ   t  ¡ \} }tjddtj d…ddtj d…f \}}| t |¡t |¡¡}| dd¡ | 	dd¡ |j
|dddddd	 |j
|dddd
d
d	 |j
|dddddd	 |j
|dddddd	 d S )Nr   r   y              $@éþÿÿÿé   r    r   ÚN)r'   ÚEÚSr#   )r   r   r   Zmgridr	   r   r   r
   Úset_xlimÚset_ylimr*   )r   r   rM   rN   Úqr   r   r   Útest_quiver_key_pivot‹   s   *r\   zquiver_key_xy.pngc                  C   sÄ   t  d¡} t  d¡}| t jd  }t  d| ¡}|j}|j}t d¡\}}t	|dƒD ]5\}}	| 
dd¡ | dd¡ |j| |||d	d
ddd
|	d
}
t	ddƒD ]\}}|j|
|dd|ddd qNq*d S )Né   é   y              ð?r   )rQ   Úxyéÿÿÿÿgš™™™™™É¿çš™™™™™É?Úmiddler_   gš™™™™™©?)ÚpivotZunitsÚwidthÚscaleÚscale_unitsr9   )ra   r    çš™™™™™é?)r   é-   éZ   rg   r   Ú Úb)r   r   r   rG   ÚlabelÚcolor)r   r   Zzerosr	   ÚexpÚrealÚimagr   r   ÚziprY   rZ   r   r*   )r   r   r9   rQ   r   r   r   Zaxsr   Z	angle_strr[   ÚxrG   r   r   r   Útest_quiver_key_xyš   s&   

ýÿùrs   zbarbs_test_image.pngc                  C   sn   t  ddd¡} t  | | ¡\}}d| d| }}t ¡ \}}|j||||t  ||¡ddtdddd	d
d	 d S )Néûÿÿÿé   é   TFç      Ð?ra   ç333333Ó?©Z	emptybarbÚspacingÚheightZviridis)Ú
fill_emptyÚroundingÚsizesZcmap)r   Úlinspacer   r   r   ÚbarbsÚhypotrO   ©rr   r   r   r   r   r   r   r   r   r   Ú
test_barbs²   s   
þrƒ   zbarbs_pivot_test_image.pngc                  C   sv   t  ddd¡} t  | | ¡\}}d| d| }}t ¡ \}}|j||||dddtddd	d
d |j||ddd d S )Nrt   ru   rv   TFç333333û?rw   ra   rx   ry   )r|   r}   rc   r~   é1   Úblack)ÚsÚc)r   r   r   r   r   r€   rO   Zscatterr‚   r   r   r   Útest_barbs_pivot½   s   ÿr‰   zbarbs_test_flip.pngc                  C   sj   t  ddd¡} t  | | ¡\}}d| d| }}t ¡ \}}|j||||dddtddd	d
|dk d	 dS )z'Test barbs with an array for flip_barb.rt   ru   rv   TFr„   rw   ra   rx   ry   r   )r|   r}   rc   r~   Z	flip_barbN)r   r   r   r   r   r€   rO   r‚   r   r   r   Útest_barbs_flipÈ   s   
þrŠ   c                  C   sp   t  ¡ \} }t dg¡}t dg¡}| dgdg||¡}d|d< |jd dks)J ‚d|d< |jd dks6J ‚d S )NrL   gš™™™™™@r   r   )r   r   r   rP   r€   rM   rN   )r   r   rM   rN   Zb0r   r   r   Útest_barb_copyÔ   s   r‹   c                  C   s¤   t  d¡} t  d¡}t j dt  d¡ ¡}t j dt  |¡ ¡}t jj|d< t jj|d< t ¡ \}}t	 
t¡ | | |||¡ W d  ƒ dS 1 sKw   Y  dS )z=Test error handling when given differing sized masked arrays.r)   g      .@)r^   r   N)r   r   ÚmarP   Zonesr:   Zmaskedr   r   r/   r0   r3   r€   )rr   ÚyrM   rN   r   r   r   r   r   Útest_bad_masked_sizesß   s   

"ÿrŽ   c                  C   sf   t  ¡ \} }t t d¡t d¡¡\}}t |¡ }}tj dd¡d d }|j|||||dd d S )Nr5   r6   r    r7   r_   )r9   rf   )	r   r   r   r   r   r:   r;   r<   r   r?   r   r   r   Útest_angles_and_scaleì   s
   r   zquiver_xy.pngc               	   C   sR   t jtddd\} }|jdddddddd | dd¡ | dd¡ | ¡  d S )	NÚequal)Zaspect)Z
subplot_kwr   r   r_   )r9   rf   re   rL   )r   r   rO   r   rY   rZ   ÚgridrJ   r   r   r   Útest_quiver_xyõ   s
   r’   c            	      C   s€   t  ¡ \} }t t d¡t d¡¡\}}t |¡ } }}|j|||||d}| |dddd¡}| j 	¡  t
|jƒdks>J ‚d S )Nr   r8   r   ÚLabel)r   r   r   r   r   r:   r   r*   r=   r>   ÚlenZverts)	r   r   r   r   r   r   r9   r[   r+   r   r   r   Útest_quiverkey_anglesÿ   s   
r•   c                  C   sV   t  ¡ \} }t t d¡t d¡¡\}}t |¡ }}| ||||¡}| dd¡ dS )zBCheck that it is possible to set all arrow UVC to the same numbersr   r   r   N)r   r   r   r   r   r:   r   Zset_UVC)r   r   r   r   r   r   r[   r   r   r   Útest_quiver_setuvc_numbers  s
   r–   )#Úplatformr   Únumpyr   r/   Z
matplotlibr   r   Zmatplotlib.testing.decoratorsr   r   ÚmarkZskipifÚpython_implementationr   r,   r2   r4   rA   rB   rD   rI   rK   rS   r\   rs   rƒ   r‰   rŠ   r‹   rŽ   r   r’   r•   r–   r   r   r   r   Ú<module>   sV    
ÿ
ÿ
	










	
	