
    
3j                     d   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/SSS9S  5       rS! 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       Z/home/wildlama/miniconda3/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   zstreamplot_startpoints.pngTmpl20g~jth?)remove_textstyletolc            	         [        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S9  [        R                  " XES5        g )N      )start_points
num_arrows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LQGHHWt$r   zstreamplot_colormap.pnggI+?c                  z    [        5       u  pp#[        R                  " XX#USSSS9  [        R                  " 5         g )N333333?r	   autumn)colordensity	linewidthcmap)r   r-   r.   colorbar)r   r   r   r   s       r   test_colormapr;   &   s2      !JA!NN1Qq "LLNr   zstreamplot_linewidth.pnggQ?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S9  g )Nr$   g      ?r
   kr	   )r7   r6   r8   r'   )r   r   hypotr*   r-   figuresubplotsr.   )r   r   r   r   speedlwaxs          r   test_linewidthrD   /   sb      !JA!HHQNE	
UUYY[	 B				 BMM!sAhcRTUMVr   zstreamplot_masks_and_nans.png)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SS9  S S S 5        g ! , (       d  f       g = f)N)dtyper
   (   <   P   x      )maskignore)invalidBlues)r6   r9   )r   r   zerosshapeboolnanmaarrayr-   r?   r@   errstater.   )r   r   r   r   rL   rC   s         r   test_masks_and_nansrW   9   s      !JA!88AGG4(DDB3&&Acrc3B3hK
A!A				 B	X	&
aA8 
'	&	&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-   r?   r@   r.   get_xlimget_ylimsetr   r   r   r   rC   s        r   test_maxlengthrg   F   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 )NrY   rZ   r[   r	   F)r\   r&   r8   r7   broken_streamlinesr   r   r]   r^   r_   rb   rf   s        r   test_maxlength_no_brokenrj   R   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[   rZ   r	   )integration_directionr\   r&   r8   r7   )r   r-   r.   )r   r   r   r   s       r   test_directionrn   ^   s2     &'JA!NN1Z b	{+r   zstreamplot_integration.png皙?)r!   r"   c                     Sn [         R                  " [         R                  " SSU 5      [         R                  " SSU 5      5      u  p[         R                  " X!5      n[         R                  " US-  US-  -   5      n[         R
                  " U5      * US-  -  n[         R                  " U5      * US-  -  SU-  -
  nU[         R
                  " U5      -  U[         R                  " U5      -  -
  S-   nU[         R                  " U5      -  U[         R
                  " U5      -  -   nSn	[         R                  " [         R                  " U	S5      [         R                  " SSU	5      45      n
[        R                  " SSS	S
9u  p[         R                  " SS[         R                  -  S5      n[        U/ SQ5       GH#  u  pUR                  / SQ5      n[        UU/SS/5       H}  u  nnUR                  UUUUU
SSU(       a  SOSSUUS9  UR                  [         R
                  " U5      [         R                  " U5      SSU(       a  SOSS9  UR!                  S5        M     UR#                  SS5        UR%                  SS5        UR'                  S5        UR)                  S5        UR%                  SS5        UR+                  S 5        UR-                  USS!9  GM&     UR/                  5         g )"N2   r	   r   r   r
   g      ?g      )      )figsizer   r   )ro   r
   r$   )rZ   gffffff?g333333?gffffff?FTg|=r4   r=   )r&   ri   	arrowsizer8   r6   integration_max_step_scaleintegration_max_error_scalewrs   )r6   ecrB   equalg333333gffffffggٿ g      r[   off)rz   )r   r   r   arctan2sqrtr   r   r+   fullr-   r@   pizip
inset_axesr.   fill
set_aspectset_xlimset_ylim
set_yticks
set_xticksaxisindicate_inset_zoomtight_layout)nr   r   thrvrvtvxvyn_seedseed_ptsfigaxsth_circrC   max_valax_insax_curris_insets                      r   test_integration_optionsr   g   st    	A;;r{{2q!,bkk"a.CDDA	A	B
1q!tA
&&*q!t	B
&&*q!t	a!e	#B	bffRj2r
?	*S	0B	bffRj2r
?	*B F 6B68RSTH||Aq'2HCkk!QY,G3-45!$b&\E4=!AGX%#('!S+2,3   LLww 1a   w'3 "B8 	d#d#""
D#

v#.K .N 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
   rK   rr   r%          )	transform)rK         rs   r
   )decimal)r-   axesr   r   r   mtransformsAffine2D	translate	transDatabarbsr   r   r   dataLimbounds)rC   r   r   transs       r   test_streamplot_limitsr      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g ! , (       d  f       GN = f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nt= f)Nr	   r	   r   rK   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   r   rK   )r   r   r   z!'y' values must be equally spaced)r   rK   rG   )r   rK   r   )	r   onesrP   rU   pytestraises
ValueErrorr-   r.   )uvr   r   s       r   test_streamplot_gridr      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
AA 
J	I 
M	L
9 
9 
N	Ms0   >J/J!)J3>K
J!
J03
K
Kc            	         [         R                  " SS/SS//5      n [         R                  " SS/SS//5      n[         R                  " S5      n[         R                  " S5      nSn[        R
                  " [        US9   [        R                  " XX#SS9  S S S 5        Sn[        R
                  " [        US9   [        R                  " XX#S	S
9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr   rK   r   z=The value of integration_max_step_scale must be > 0, got -0.5r   g      )rw   z=The value of integration_max_error_scale must be > 0, got 0.0rZ   )rx   )	r   rU   r   rP   r   r   r   r-   r.   )r   r   r   r   err_strs        r   "test_streamplot_integration_paramsr      s    
2r(RH%&A
2r(RH%&A
A
AMG	z	1qQdC 
2 NG	z	1qQsC 
2	1	 
2	1 
2	1s    C:C+
C(+
C9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   aranger   rS   randomrandranger|   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;   rD   rW   rg   rj   rn   r   r   r   r   r   r|   r   r   <module>r      sh    3   : + /0d'%% ,-4w -.DWW 23"'3939 -."'u>L>L 78"'u>L>L -."'u>+>+ /0TJ8 K8v)(VD?r   