
    P/Ph[                        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 Zd Z e	dgddd	g
          d             Z e	dgddd          d             Z e	dgddd          d             Z e	dg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d Zd Zd  ZdS )!    N)assert_array_almost_equal)image_comparisonc                  t    t           j        ddddddf         \  } }d|dz  z
  | z   }d|z   | dz  z
  }|| ||fS )N   y              Y@y              i@      )npmgrid)YXUVs       `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_streamplot.pyvelocity_fieldr   	   sS    8BqIr!Dy()DAq
QT	AA	A1AaA:    c                  Z   t          j        ddd          } t          j        ddd          }t          j        | |          \  }}d}t          j        |          | z  t          j        |          |z  z
  }t          j        |          | z  t          j        |          |z  z   }| |||fS )Ng      g      @   d   g?)r   linspacemeshgridcossin)xyr   r   ar   r   s          r   swirl_velocity_fieldr      s    
CS!!A
CS!!A;q!DAqA
q		aR26!99q=(A
q		aR26!99q=(AaA:r   streamplot_startpointsTmpl20png)remove_textstyle
extensionsc                     t                      \  } }}}t          j        t          j        |                                 |                                 d          t          j        |                                |                                d                    \  }}t          j        |                                |                                g          }t          j	        | ||||           t          j
        ||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'   s          r   test_startpointsr2      s      !!JAq!Q{2;quuww#C#C#%;quuww#C#CE EGW?GMMOOW]]__#EFFLN1aAL9999HWgt$$$$$r   streamplot_colormapgI+?)r"   r#   tolc            
          t                      \  } }}}t          j        | ||||ddt          j        j                   t          j                     d S )Ng333333?r	   )colordensity	linewidthcmap)r   r-   r.   cmautumncolorbar)r   r   r   r   s       r   test_colormapr=   %   sT      !!JAq!QN1aAQq' ' ' 'LNNNNNr   streamplot_linewidthgMbp?c            	         t                      \  } }}}t          j        ||          }d|z  |                                z  }t	          j                                                    }|                    | |||ddgd|           d S )Nr&   g      ?r
   k)r7   r6   r8   )r   r   hypotr*   r-   figuresubplotsr.   )r   r   r   r   speedlwaxs          r   test_linewidthrG   .   s}      !!JAq!QHQNNE	
UUYY[[	 B				 	 BMM!Q1sAhcRMHHHHHr   streamplot_masks_and_nans)r"   r#   c            	         t                      \  } }}}t          j        |j        t                    }d|ddddf<   t          j        |d dd df<   t          j                            ||          }t          j	                    
                                }t          j        d	
          5  |                    | ||||t          j        j                   d d d            d S # 1 swxY w Y   d S )N)dtyper
   (   <   P   x      )maskignore)invalid)r6   r9   )r   r   zerosshapeboolnanmaarrayr-   rB   rC   errstater.   r:   Blues)r   r   r   r   rP   rF   s         r   test_masks_and_nansr[   8   s!     !!JAq!Q8AG4(((DDB3&Acrc3B3hK
AD!!A				 	 B	X	&	&	& > >
aAq===> > > > > > > > > > > > > > > > > >s   /+C''C+.C+zstreamplot_maxlength.pnggS?c            
      f   t                      \  } }}}t          j                                                    }|                    | |||dddggdd           |                                d         |                                d         cxk    rdk    sn J |                    dd	
           d S )N      $@              ?r	   )	maxlengthr'   r8   r7   r   r   Ng\bw
@Ngi@xlimylimr   r-   rB   rC   r.   get_xlimget_ylimsetr   r   r   r   rF   s        r   test_maxlengthrk   E   s     &''JAq!Q				 	 BMM!Q1B9+q  * * *;;==b 16666Q666666FF*1JFKKKKKr   z"streamplot_maxlength_no_broken.pngc                  h   t                      \  } }}}t          j                                                    }|                    | |||dddggddd	  	         |                                d         |                                d         cxk    rdk    sn J |                    d	d
           d S )Nr]   r^   r_   r	   F)r`   r'   r8   r7   broken_streamlinesr   r   ra   rb   rc   rf   rj   s        r   test_maxlength_no_brokenrn   Q   s     &''JAq!Q				 	 BMM!Q1B9+qU  D D D;;==b 16666Q666666FF*1JFKKKKKr   zstreamplot_direction.pngg㥛 ?c                  l    t                      \  } }}}t          j        | |||ddddggdd	  	         d S )Nbackwardr_   r^   r	   )integration_directionr`   r'   r8   r7   )r   r-   r.   )r   r   r   r   s       r   test_directionrr   ]   sT     &''JAq!QN1aAZ b	{+ + + + + +r   c                     t          j                    } t          j        ddd          }t          j        ddd          }t          j        ||          \  }}t          j                                        dd          | j        z   }t          j	        ||t          j
        |          t          j        |          |           t          | j        j        d	d
           d S )N
   rO             )	transform)rO            r
   )decimal)r-   axesr   r   r   mtransformsAffine2D	translate	transDatabarbsr   r   r   dataLimbounds)rF   r   r   transs       r   test_streamplot_limitsr   f   s    	B
BBA
B2A;q!DAq "",,R44r|CEIaBF1IIrvayyE:::: bj/&') ) ) ) ) )r   c                     t          j        d          } t          j        d          }t          j        ddgddgg          }t          j        ddgddgg          }t	          j        t          d          5  t          j        ||| |           d d d            n# 1 swxY w Y   t          j        ddgddgg          }t          j        ddgddgg          }t	          j        t          d          5  t          j        ||| |           d d d            n# 1 swxY w Y   t          j        ddgddgg          }t          j        ddgddgg          }t          j        ||| |           t          j        ddg          }t          j        ddggg          }t	          j        t          d	          5  t          j        ||| |           d d d            n# 1 swxY w Y   t          j        d
          } t          j        d
          }t          j        g d          }t          j        g d          }t	          j        t          d          5  t          j        ||| |           d d d            n# 1 swxY w Y   t          j        g d          }t          j        g d          }t	          j        t          d          5  t          j        ||| |           d d d            d S # 1 swxY w Y   d S )N)r	   r	   ru   rO   r{   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   ru   rO   )r   ru   r{   z!'y' values must be equally spaced)r   rO   rK   )r   rO   ru   z'y' must be strictly increasing)	r   onesrS   rX   pytestraises
ValueErrorr-   r.   )uvr   r   s       r   test_streamplot_gridr   t   s   
A
A 	2r(RH%&&A
2r(RH%&&A	z)H	I	I	I # #q!Q"""# # # # # # # # # # # # # # # 	2r(RH%&&A
2r(RH%&&A	z)K	L	L	L # #q!Q"""# # # # # # # # # # # # # # # 	2r(RH%&&A
2r(RH%&&AN1aA 	!RA
Ar7)A	z *8 
9 
9 
9 # #q!Q"""# # # # # # # # # # # # # # #
 	A
A
A
A	z)L	M	M	M # #q!Q"""# # # # # # # # # # # # # # # 	A
A	z)J	K	K	K # #q!Q"""# # # # # # # # # # # # # # # # # #sZ   8BB #B 6DD!D9GG!$G!I;;I?I?K22K69K6c            
      
   t          j        t          j        d          t          j        d          t          j        dt          j                  t          j        dt          j                  t          j                            dd                     t          j        t          d          t          d          t          j                            dd          t          j                            dd                     d S )Nr   r   )r6   )	r-   r.   r   arangefullrV   randomrandrange r   r   test_streamplot_inputsr      s    N29Q<<17626**BGFBF,C,C1--/ / / / N588U1XX9>>!Q''1)=)=? ? ? ? ?r   )numpyr   numpy.testingr   r   matplotlib.pyplotpyplotr-   matplotlib.testing.decoratorsr   matplotlib.transforms
transformsr   r   r   r2   r=   rG   r[   rk   rn   rr   r   r   r   r   r   r   <module>r      sl       3 3 3 3 3 3        : : : : : : + + + + + +     +,$g#W& & &% %& &% ()t7     )*G  I I I ./"'3 3 3> >3 3> -."'u> > >L L> >L 78"'u> > >L L> >L -."'u> > >+ +> >+) ) )+# +# +#\? ? ? ? ?r   