o
    g                     @   s&  d dl Z d dlZd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ e jdkZe jdkZdd Zdd	 Ze
d
gddddd Ze
dgdddddd Ze
dgddddd Ze
dgdderddnd ddd Ze
dgdderudnd ddd Ze
d gdddd!d" Zd#d$ Zd%d& ZdS )'    N)assert_array_almost_equal)image_comparisonwin32darwinc                  C   sJ   t jddddddf \} }d|d  |  }d| | d  }|| ||fS )N   y              Y@      )npmgrid)YXUV r   ^/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/matplotlib/tests/test_streamplot.pyvelocity_field   s   r   c                  C   sx   t ddd} t ddd}t | |\}}d}t ||  t ||  }t ||  t ||  }| |||fS )N      g      @d   g?)r   linspacemeshgridcossin)xyr   r   ar   r   r   r   r   swirl_velocity_field   s   r   streamplot_startpointsTmpl20)remove_textstylec                  C   sn   t  \} }}}t|  |  d}t| | d}t||g}tj| ||||d t||d d S )N
   )start_pointsok)	r   r   r   minmaxcolumn_stackplt
streamplotplot)r   r   r   r   start_xstart_yr#   r   r   r   test_startpoints    s   r-   streamplot_colormapg{Gz?)tolr    r!   c               
   C   sB   dt jd< t \} }}}t j| ||||ddt jjd t   d S )NFzpcolormesh.snapg333333?r	   )colordensity	linewidthcmap)r(   rcParamsr   r)   cmautumncolorbar)r   r   r   r   r   r   r   test_colormap*   s   
r8   streamplot_linewidthc               	   C   sp   t  \} }}}t||}d| |  }d}t  }|jddd |j| |||d| d| gd|d	 d S )
N   g?r   @g     r<   xlimylimg      ?g      ?k)r1   r0   r2   )	r   r   hypotr&   r(   figuresubplotssetr)   )r   r   r   r   speedlwdfaxr   r   r   test_linewidth6   s   
rJ   streamplot_masks_and_nans)r    r!   r/   c               	   C   s   t  \} }}}tj|jtd}d|ddddf< tj|d dd df< tjj||d}t	 
 }|jddd	 tjd
d |j| ||||tjjd W d    d S 1 sXw   Y  d S )N)dtyper
   (   <      )maskr;   r=   r>   ignore)invalid)r0   r3   )r   r   zerosshapeboolnanmaarrayr(   rC   rD   rE   errstater)   r5   Blues)r   r   r   r   rP   rI   r   r   r   test_masks_and_nansD   s   "r[   zstreamplot_maxlength.pnggMb`?c               
   C   sx   t  \} }}}t  }|j| |||dddggddd | d | d   kr0dks3J  J |jdd	d
 d S )Ng      $@              ?r	   )	maxlengthr#   r2   r1   r   r   )Ng\bw
@)Ngi@r>   )r   r(   rC   rD   r)   get_xlimget_ylimrE   )r   r   r   r   rI   r   r   r   test_maxlengthT   s   ,ra   zstreamplot_direction.pngc                  C   s4   t  \} }}}tj| |||ddddggddd	 d S )Nbackwardr]   r\   r	   )integration_directionr^   r#   r2   r1   )r   r(   r)   )r   r   r   r   r   r   r   test_directiona   s
   

rd   c                  C   s   t  } tddd}tddd}t||\}}t dd| j }t j	||t
|t||d t| jjd	d
d d S )Nr"   rO             )	transform)rO            r
   )decimal)r(   axesr   r   r   mtransformsAffine2D	translate	transDatabarbsr   r   r   dataLimbounds)rI   r   r   transr   r   r   test_streamplot_limitsj   s    

rx   c                  C   sR  t d} t d}t ddgddgg}t ddgddgg}tjtdd t||| | W d    n1 s:w   Y  t ddgddgg}t ddgddgg}tjtdd t||| | W d    n1 sow   Y  t ddgddgg}t ddgddgg}t||| | t ddg}t ddggg}tjtd	d t||| | W d    n1 sw   Y  t d
} t d
}t g d}t g d}tjtdd t||| | W d    n1 sw   Y  t g d}t g d}tjtdd t||| | W d    d S 1 s"w   Y  d S )N)r	   r	   r"   rO   rk   zThe rows of 'x' must be equal)matchz The columns of 'y' must be equalr   z$'y' can have at maximum 2 dimensions)r   r   )r   r"   rO   )r   r"   rk   z!'y' values must be equally spaced)r   rO   rM   )r   rO   r"   z'y' must be strictly increasing)	r   onesrS   rX   pytestraises
ValueErrorr(   r)   )uvr   r   r   r   r   test_streamplot_gridx   s@   



$r   )sysnumpyr   numpy.testingr   r{   matplotlib.pyplotpyplotr(   matplotlib.testing.decoratorsr   matplotlib.transforms
transformsrp   platformon_winon_macr   r   r-   r8   rJ   r[   ra   rd   rx   r   r   r   r   r   <module>   sD    



	







