
    h[                     B   S SK rS SKJr  S SKrS SKJr  S SKJ	r	  S SK
Jr  S rS r\	" S/SSS	/S
9S 5       r\	" S/SSSS9S 5       r\	" S/SSSS9S 5       r\	" S/SSS9S 5       r\	" S/SSSS9S 5       r\	" S/SSSS9S 5       r\	" S/SSSS9S 5       rS rS rS  rg)!    N)assert_array_almost_equal)image_comparisonc                  p    [         R                  SSS2SSS24   u  pSUS-  -
  U -   nSU-   U S-  -
  nXX#4$ )N   y              Y@y              i@      )npmgrid)YXUVs       R/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_streamplot.pyvelocity_fieldr   	   sO    88BqIr!Dy()DA
QT	AA	A1A:    c                  n   [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " X5      u  p#Sn[         R                  " U5      U* -  [         R                  " U5      U-  -
  n[         R                  " U5      U* -  [         R                  " U5      U-  -   nXXV4$ )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DAA
q	aR266!9q=(A
q	aR266!9q=(A:r   streamplot_startpointsTmpl20png)remove_textstyle
extensionsc                     [        5       u  pp#[        R                  " [        R                  " U R	                  5       U R                  5       S5      [        R                  " UR	                  5       UR                  5       S5      5      u  pE[        R                  " UR                  5       UR                  5       /5      n[        R                  " XX#US9  [        R                  " XES5        g )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      !JA!{{2;;quuw#C#%;;quuw#CEG??GMMOW]]_#EFLNN1L9HHWt$r   streamplot_colormapgI+?)r"   r#   tolc                      [        5       u  pp#[        R                  " XX#USS[        R                  R                  S9  [        R
                  " 5         g )Ng333333?r	   )colordensity	linewidthcmap)r   r-   r.   cmautumncolorbar)r   r   r   r   s       r   test_colormapr=   %   s:      !JA!NN1Qq'LLNr   streamplot_linewidthgMbp?c            
          [        5       u  pp#[        R                  " X#5      nSU-  UR                  5       -  n[        R
                  " 5       R                  5       nUR                  XX#SS/SUS9  g )Nr&   g      ?r
   k)r7   r6   r8   )r   r   hypotr*   r-   figuresubplotsr.   )r   r   r   r   speedlwaxs          r   test_linewidthrG   .   s_      !JA!HHQNE	
UUYY[	 B				 BMM!sAhcRMHr   streamplot_masks_and_nans)r"   r#   c            
         [        5       u  pp#[        R                  " UR                  [        S9nSUSS2SS24'   [        R
                  US S2S S24'   [        R                  R                  X$S9n[        R                  " 5       R                  5       n[        R                  " S	S
9   UR                  XX#U[        R                  R                  S9  S S S 5        g ! , (       d  f       g = f)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      !JA!88AGG4(DDB3&&Acrc3B3hK
A!A				 B	X	&
aA= 
'	&	&s   )+C
C+zstreamplot_maxlength.pnggS?c                     [        5       u  pp#[        R                  " 5       R                  5       nUR	                  XX#SSS//SSS9  UR                  5       S   UR                  5       S   s=:X  a  S:X  d   e   eUR                  SS	S
9  g )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     &'JA!				 BMM!B9+q  *;;=b 16Q66666FF*1JFKr   z"streamplot_maxlength_no_broken.pngc                     [        5       u  pp#[        R                  " 5       R                  5       nUR	                  XX#SSS//SSSS9	  UR                  5       S   UR                  5       S   s=:X  a  S:X  d   e   eUR                  S	S
S9  g )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     &'JA!				 BMM!B9+qU  D;;=b 16Q66666FF*1JFKr   zstreamplot_direction.pngg㥛 ?c                  X    [        5       u  pp#[        R                  " XX#SSSS//SSS9	  g )Nbackwardr_   r^   r	   )integration_directionr`   r'   r8   r7   )r   r-   r.   )r   r   r   r   s       r   test_directionrr   ]   s2     &'JA!NN1Z b	{+r   c                     [         R                  " 5       n [        R                  " SSS5      n[        R                  " SSS5      n[        R                  " X!5      u  p![
        R                  " 5       R                  SS5      U R                  -   n[         R                  " X[        R                  " U5      [        R                  " U5      US9  [        U R                  R                  S	S
S9  g )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DA  ",,R4r||CEIIaBFF1IrvvayE: bjj//&')r   c                  @   [         R                  " S5      n [         R                  " S5      n[         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        R
                  " [        SS9   [        R                  " X#X5        S S S 5        [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        R
                  " [        SS9   [        R                  " X#X5        S S S 5        [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        R                  " X#X5        [         R                  " SS/5      n[         R                  " SS///5      n[        R
                  " [        S	S9   [        R                  " X#X5        S S S 5        [         R                  " S
5      n [         R                  " S
5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        R
                  " [        SS9   [        R                  " X#X5        S S S 5        [         R                  " / SQ5      n[         R                  " / SQ5      n[        R
                  " [        SS9   [        R                  " X#X5        S S S 5        g ! , (       d  f       GN9= f! , (       d  f       GN= f! , (       d  f       GN2= f! , (       d  f       N= f! , (       d  f       g = f)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qQ" 
J 	2r(RH%&A
2r(RH%&A	z)K	LqQ" 
M 	2r(RH%&A
2r(RH%&ANN1 	!RA
Ar7)A	z *8 
9qQ"
9
 	A
A
A
A	z)L	MqQ" 
N 	A
A	z)J	KqQ" 
L	KE 
J	I 
M	L
9 
9 
N	M 
L	Ks<   >K/K)K,>K>'L
K
K),
K;>
L
Lc            
         [         R                  " [        R                  " S5      [        R                  " S5      [        R                  " S[        R
                  5      [        R                  " S[        R
                  5      [        R                  R                  SS5      S9  [         R                  " [        S5      [        S5      [        R                  R                  SS5      [        R                  R                  SS5      5        g )Nr   r   )r6   )	r-   r.   r   arangefullrV   randomrandrange r   r   test_streamplot_inputsr      s    NN299Q<1776266*BGGFBFF,C1-/ NN58U1X99>>!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      sA    3   : + +,$g#W&%&% ()t7 )*GII ./"'3>3> -."'u>L>L 78"'u>L>L -."'u>+>+)+#\?r   