a
    ëÝEb»  ã                   @   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„ ƒ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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@éÿÿÿÿé   é   )ÚnpZmgrid)ÚYÚXÚUÚV© r   ú`/home/ja/django-apps/lartica_env/lib/python3.9/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   Zstreamplot_startpointsTZmpl20Z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ÚmaxZcolumn_stackZravelÚpltÚ
streamplotZplot)r   r
   r   r   Zstart_xZstart_yr   r   r   r   Útest_startpoints   s    ÿr%   Zstreamplot_colormap)r   r   c               
   C   s8   t ƒ \} }}}tj| ||||ddtjjd� t ¡  d S )Ng333333ã?r   )ÚcolorÚdensityÚ	linewidthÚcmap)r   r#   r$   ÚcmÚautumnZcolorbar)r   r
   r   r   r   r   r   Útest_colormap%   s
    ÿr,   Zstreamplot_linewidthgü©ñÒMb`?)r   r   Ztolc               	   C   sV   t ƒ \} }}}t ||¡}d| | ¡  }t ¡  ¡ }|j| |||ddgd|d� d S )Nr   g      à?r   Úk)r'   r&   r(   )r   r	   Úhypotr"   r#   ÚfigureÚsubplotsr$   )r   r
   r   r   ÚspeedZlwÚaxr   r   r   Útest_linewidth-   s
    r3   Zstreamplot_masks_and_nansc               	   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   ƒ n1 s 0    Y  d S )N)Zdtyper   é(   é<   éP   éx   é   )ÚmaskÚignore)Úinvalid)r&   r)   )r   r	   ÚzerosÚshapeÚboolÚnanÚmaÚarrayr#   r/   r0   Zerrstater$   r*   ZBlues)r   r
   r   r   r9   r2   r   r   r   Útest_masks_and_nans7   s    rB   zstreamplot_maxlength.pngg‡ÙÎ÷SÓ?c               
   C   sv   t ƒ \} }}}t ¡  ¡ }|j| |||dddggddd� | ¡ d | ¡ d   kr^dksdn J ‚|jdd	d
� d S )Ng      $@ç        ç      ø?r   )Ú	maxlengthr   r(   r'   r   r   )Ngž\‚bw
@)Ng‡ËÇi @)ZxlimZylim)r   r#   r/   r0   r$   Zget_xlimZget_ylimÚset)r   r   r   r   r2   r   r   r   Útest_maxlengthD   s    ÿ*rG   zstreamplot_direction.pnggyé&1¬¬?c                  C   s4   t ƒ \} }}}tj| |||ddddggddd�	 d S )NZbackwardrD   rC   r   )Zintegration_directionrE   r   r(   r'   )r   r#   r$   )r   r   r   r   r   r   r   Útest_directionP   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éûÿÿÿé
   r8   éþÿÿÿé   é   é    )Z	transform)r8   é   é   é   r   )Údecimal)r#   Zaxesr	   r   r   ÚmtransformsZAffine2DÚ	translateZ	transDataZbarbsr   r   r   ZdataLimZbounds)r2   r   r   Ztransr   r   r   Útest_streamplot_limitsY   s     
ÿrU   c                  C   sT  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 st0    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 sÞ0    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 �sz0    Y  t  d
¡} t  d
¡}t  g d¢¡}t  g d¢¡}tjtdd��  t ||| |¡ W d   ƒ n1 �sê0    Y  t  g d¢¡}t  g d¢¡}tjtdd��  t ||| |¡ W d   ƒ n1 �sF0    Y  d S )N)r   r   rJ   r8   rO   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   r8   )r   rJ   rO   z!'y' values must be equally spaced)r   r8   r4   )r   r8   rJ   z'y' must be strictly increasing)	r	   Zonesr<   rA   ÚpytestZraisesÚ
ValueErrorr#   r$   )ÚuÚvr   r   r   r   r   Útest_streamplot_gridg   s6    

..0

0r[   )Únumpyr	   Znumpy.testingr   rW   Zmatplotlib.pyplotZpyplotr#   Zmatplotlib.testing.decoratorsr   Zmatplotlib.transformsZ
transformsrS   r   r   r%   r,   r3   rB   rG   rH   rU   r[   r   r   r   r   Ú<module>   s>   

ÿ
	

ÿ
ÿ
ÿ

ÿ
