o
    h[                     @   s"  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 dd Zdd Ze	dgd	d
dgddd Ze	dgd	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
dddd Ze	d gd	d
ddd!d" Ze	d#gd	d
d$dd%d& Zd'd( Zd)d* Zd+d, ZdS )-    N)assert_array_almost_equal)image_comparisonc                  C   sJ   t jddddddf \} }d|d  |  }d| | d  }|| ||fS )N   y              Y@y              i@      )npmgrid)YXUV r   t/var/www/html/construction_image-detection-poc/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 )Ng      g      @   d   g?)r	   linspacemeshgridcossin)xyr   r   ar   r   r   r   r   swirl_velocity_field   s   r   streamplot_startpointsTmpl20png)remove_textstyle
extensionsc                  C   s~   t  \} }}}tt|  |  dt| | d\}}t| | g}tj	| ||||d t
||d d S )N   )start_pointsok)r   r	   r   r   minmaxcolumn_stackravelplt
streamplotplot)r   r   r   r   start_xstart_yr#   r   r   r   test_startpoints   s   r.   streamplot_colormapgI+?)r   r    tolc               
   C   s8   t  \} }}}tj| ||||ddtjjd t  d S )Ng333333?r   )colordensity	linewidthcmap)r   r)   r*   cmautumncolorbar)r   r   r   r   r   r   r   test_colormap%   s
   r8   streamplot_linewidthgMbp?c               	   C   sV   t  \} }}}t||}d| |  }t  }|j| |||ddgd|d d S )Nr"   g      ?r   k)r2   r1   r3   )r   r	   hypotr&   r)   figuresubplotsr*   )r   r   r   r   speedlwaxr   r   r   test_linewidth.   s
    rA   streamplot_masks_and_nans)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	 
 }tjd	d
 |j| ||||tjjd W d    d S 1 sQw   Y  d S )N)dtyper   (   <   P   x      )maskignore)invalid)r1   r4   )r   r	   zerosshapeboolnanmaarrayr)   r<   r=   errstater*   r5   Blues)r   r   r   r   rI   r@   r   r   r   test_masks_and_nans8   s   "rT   zstreamplot_maxlength.pnggS?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 )N      $@              ?r   )	maxlengthr#   r3   r2   r   r   Ng\bw
@Ngi@xlimylimr   r)   r<   r=   r*   get_xlimget_ylimsetr   r   r   r   r@   r   r   r   test_maxlengthE   s   ,rc   z"streamplot_maxlength_no_broken.pngc                  C   sz   t  \} }}}t  }|j| |||dddggdddd	 | d | d   kr1dks4J  J |jd	d
d d S )NrU   rV   rW   r   F)rX   r#   r3   r2   broken_streamlinesr   r   rY   rZ   r[   r^   rb   r   r   r   test_maxlength_no_brokenQ   s   ,re   zstreamplot_direction.pngg㥛 ?c                  C   s4   t  \} }}}tj| |||ddddggddd	 d S )NbackwardrW   rV   r   )integration_directionrX   r#   r3   r2   )r   r)   r*   )r   r   r   r   r   r   r   test_direction]   s
   

rh   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 )N
   rH             )	transform)rH            r   )decimal)r)   axesr	   r   r   mtransformsAffine2D	translate	transDatabarbsr   r   r   dataLimbounds)r@   r   r   transr   r   r   test_streamplot_limitsf   s    

r}   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   rj   rH   rp   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   rj   rH   )r   rj   rp   z!'y' values must be equally spaced)r   rH   rD   )r   rH   rj   z'y' must be strictly increasing)	r	   onesrL   rQ   pytestraises
ValueErrorr)   r*   )uvr   r   r   r   r   test_streamplot_gridt   s@   



$r   c                	   C   sn   t jtdtdtdtjtdtjtjddd t tdtdtjddtjdd d S )Nr   r   )r1   )	r)   r*   r	   arangefullrO   randomrandranger   r   r   r   test_streamplot_inputs   s   r   )numpyr	   numpy.testingr   r   matplotlib.pyplotpyplotr)   matplotlib.testing.decoratorsr   matplotlib.transforms
transformsru   r   r   r.   r8   rA   rT   rc   re   rh   r}   r   r   r   r   r   r   <module>   sN    



	








.