o
    tBhG!                     @   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kwXYUVQ r   s/var/www/html/riverr-enterprise-integrations-main/venv/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   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   z/takes 2-5 positional arguments but 1 were givenmatchz/takes 2-5 positional arguments but 6 were given)pytestraises	TypeErrorr   r   )r   r   r   r   test_quiver_number_of_args2   s   "r3   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)r0   r1   
ValueErrorr   r   )X2X3r   r   r   test_quiver_arg_sizes>   s,   "r7   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   rD   c                  C   s^   t  \} }ttdtd\}}t|t|}}|j||ddd | j	  d S )Nr9   r   )
headlengthheadaxislength)
r   r   r   r   r   r
   r   r   r@   rA   )r   r   r   r   r   r   r   r   r   test_zero_headlength\   s
   rG   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)animatedr!   r"   r   r#   r$   r%   r&   r'   )r   r   r   r+   r   r   r   r   r   r   test_quiver_animatef   s
   
rJ   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figurer$   r&   large)r%   size)anglecoordinatesr(   r)   )r   r   marginsr   r+   rI   r   r   r   test_quiver_with_keyo   s   

rR   zquiver_single_test_image.pngT)remove_textc                  C   s2   t  \} }|d |dgdgdgdg d S )NrK   r   r   )r   r   rQ   r   r   r   r   r   r   test_quiver_single|   s   
rU   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   rW   rX   r   )r   r   dictr   arrayr   r   )r   r   uvq0r   r   r   test_quiver_copy   s
   r]   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   mgridr	   r   r   r
   set_xlimset_ylimr+   )r   r   rW   rX   qr   r   r   test_quiver_key_pivot   s   *rg   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   )r[   xygɿ皙?middlerj   g?)pivotunitswidthscalescale_unitsr<   )rl   r!   皙?)r   -   Z   rs   r    b)r   r   r   rO   labelcolor)r   r   zerosr	   exprealimagr   r   ziprd   re   r   r+   )r   r   r<   r[   r   r   r   axsr   	angle_strrf   xrO   r   r   r   test_quiver_key_xy   s&   

r   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      ?rl   333333?	emptybarbspacingheightviridis)
fill_emptyroundingsizescmap)r   linspacer   r   r   barbshypotrY   r   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 )Nr   r   r   TF333333?r   rl   r   r   )r   r   rn   r   1   black)sc)r   r   r   r   r   r   rY   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.r   r   r   TFr   r   rl   r   r   r   )r   r   rn   r   	flip_barbN)r   r   r   r   r   r   rY   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 )NrV   g@r   r   )r   r   r   rZ   r   rW   rX   )r   r   rW   rX   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      .@)ri   r   N)r   r   marZ   onesr=   maskedr   r   r0   r1   r4   r   )r   yrW   rX   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 )Nr8   r9   r!   r:   rj   )r<   rr   )	r   r   r   r   r   r=   r>   r?   r   rB   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)aspect)
subplot_kwr   r   rj   )r<   rr   rq   rV   )r   r   rY   r   rd   re   gridrT   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   r;   r   Label)r   r   r   r   r   r=   r   r+   r@   rA   lenverts)	r   r   r   r   r   r   r<   rf   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   set_UVC)r   r   r   r   r   r   rf   r   r   r   test_quiver_setuvc_numbers  s
   r   )#platformr   numpyr   r0   
matplotlibr   r   matplotlib.testing.decoratorsr   r   markskipifpython_implementationr    r-   r3   r7   rD   rG   rJ   rR   rU   r]   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sV    


	

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



	
	