U
    \	¸a“  ã                   @   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rÈdnd ddd„ ƒZe
dgdderêd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@éÿÿÿÿé   é   )ÚnpZmgrid)ÚYÚXÚUÚV© r   úD/tmp/pip-unpacked-wheel-wjyw_3jo/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   Zstreamplot_startpointsTZ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ÚmaxZcolumn_stackÚpltÚ
streamplotZplot)r   r   r   r   Zstart_xZstart_yr    r   r   r   Útest_startpoints    s    r&   Zstreamplot_colormapg{®Gáz¤?)Ú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$   ZrcParamsr   r%   ÚcmZautumnZcolorbar)r   r   r   r   r   r   r   Útest_colormap*   s    
ÿr-   Z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     Àr0   ©ZxlimZylimg      à?g      ð?Úk)r)   r(   r*   )	r   r   Úhypotr#   r$   ÚfigureÚsubplotsÚsetr%   )r   r   r   r   ÚspeedZlwZdfÚaxr   r   r   Útest_linewidth6   s    ÿÿr:   Z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 5 Q R X d S )N)Zdtyper
   é(   é<   é   )Úmaskr/   r1   r2   Úignore)Úinvalid)r(   r+   )r   r   ÚzerosÚshapeÚboolÚnanÚmaÚarrayr$   r5   r6   r7   Zerrstater%   r,   ZBlues)r   r   r   r   r>   r9   r   r   r   Útest_masks_and_nansD   s    ÿrG   zstreamplot_maxlength.pnggü©ñÒMb`?c               
   C   sv   t ƒ \} }}}t ¡  ¡ }|j| |||dddggddd | ¡ d | ¡ d   kr^dksdn t‚|jdd	d
 d S )Ng      $@ç        ç      ø?r	   )Ú	maxlengthr    r*   r)   r   r   )Ngž\‚bw
@)Ng‡ËÇi @r2   )	r   r$   r5   r6   r%   Zget_xlimZget_ylimÚAssertionErrorr7   )r   r   r   r   r9   r   r   r   Útest_maxlengthT   s     ÿ*rL   zstreamplot_direction.pngc                  C   s4   t ƒ \} }}}tj| |||ddddggddd	 d S )NZbackwardrI   rH   r	   )Zintegration_directionrJ   r    r*   r)   )r   r$   r%   )r   r   r   r   r   r   r   Útest_directiona   s      þrM   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éûÿÿÿr   r=   éþÿÿÿé   é   é    )Z	transform)r=   é   é   é   r
   )Údecimal)r$   Zaxesr   r   r   ÚmtransformsZAffine2DÚ	translateZ	transDataZbarbsr   r   r   ZdataLimZbounds)r9   r   r   Ztransr   r   r   Útest_streamplot_limitsj   s     
ÿrY   c               	   C   sò  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 5 Q R X t  ddgddgg¡}t  ddgddgg¡}tjtdd t ||| |¡ W 5 Q R X 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 5 Q R X t  d
¡} t  d
¡}t  dddg¡}t  dddg¡}tjtdd t ||| |¡ W 5 Q R X t  dddg¡}t  dddg¡}tjtdd t ||| |¡ W 5 Q R X d S )N)r	   r	   r   r=   rS   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   z!'y' values must be equally spacedr;   z'y' must be strictly increasing)	r   ZonesrA   rF   ÚpytestZraisesÚ
ValueErrorr$   r%   )ÚuÚvr   r   r   r   r   Útest_streamplot_gridx   s6    



r_   )ÚsysZnumpyr   Znumpy.testingr   r[   Zmatplotlib.pyplotZpyplotr$   Zmatplotlib.testing.decoratorsr   Zmatplotlib.transformsZ
transformsrW   ÚplatformZon_winZon_macr   r   r&   r-   r:   rG   rL   rM   rY   r_   r   r   r   r   Ú<module>   sN   



	  ÿ


  
ÿ
 
þ

 ÿ
