
    ^j                        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	
      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 e	dgdd      d         Zd! Zd" Zd# Zd$ Zy)%    N)assert_array_almost_equal)image_comparisonc                  v    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       k/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_streamplot.pyvelocity_fieldr   	   sU    88BqIr!Dy()DAq
QT	AA	A1AaA:    c                  h   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266!9q=(A
q	aR266!9q=(AaA:r   zstreamplot_startpoints.pngTmpl20g~jth?)remove_textstyletolc                     t               \  } }}}t        j                  t        j                  | j	                         | j                         d      t        j                  |j	                         |j                         d            \  }}t        j                  |j                         |j                         g      }t        j                  | ||||d       t        j                  ||d       y )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      !JAq!Q{{2;;quuw#C#%;;quuw#CEGW??GMMOW]]_#EFLNN1aALQGHHWgt$r   zstreamplot_colormap.pnggI+?c            
          t               \  } }}}t        j                  | ||||ddd       t        j                          y )N333333?r	   autumn)colordensity	linewidthcmap)r   r-   r.   colorbar)r   r   r   r   s       r   test_colormapr;   &   s:      !JAq!QNN1aAQq "LLNr   zstreamplot_linewidth.pnggQ?c            
          t               \  } }}}t        j                  ||      }d|z  |j                         z  }t	        j
                         j                         }|j                  | |||ddgd|d       y )Nr$   g      ?r
   kr	   )r7   r6   r8   r'   )r   r   hypotr*   r-   figuresubplotsr.   )r   r   r   r   speedlwaxs          r   test_linewidthrD   /   sl      !JAq!QHHQNE	
UUYY[	 B				 BMM!Q1sAhcRTUMVr   zstreamplot_masks_and_nans.png)r    r!   c            	         t               \  } }}}t        j                  |j                  t              }d|ddddf<   t        j
                  |d dd df<   t        j                  j                  ||      }t        j                         j                         }t        j                  d	
      5  |j                  | ||||d       d d d        y # 1 sw Y   y xY w)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      !JAq!Q88AGG4(DDB3&&Acrc3B3hK
AD!A				 B	X	& 9
aAq89 9 9s   2CCzstreamplot_maxlength.pnggS?c            
      (   t               \  } }}}t        j                         j                         }|j	                  | |||dddggdd       |j                         d   |j                         d   cxk(  rdk(  sJ  J |j                  dd	
       y )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     &'JAq!Q				 BMM!Q1B9+q  *;;=b 16Q66666FF*1JFKr   z"streamplot_maxlength_no_broken.pngc                  *   t               \  } }}}t        j                         j                         }|j	                  | |||dddggddd	       |j                         d   |j                         d   cxk(  rdk(  sJ  J |j                  d	d
       y )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     &'JAq!Q				 BMM!Q1B9+qU  D;;=b 16Q66666FF*1JFKr   zstreamplot_direction.pngg㥛 ?c                  d    t               \  } }}}t        j                  | |||ddddggdd	       y )Nbackwardr[   rZ   r	   )integration_directionr\   r&   r8   r7   )r   r-   r.   )r   r   r   r   s       r   test_directionrn   ^   s:     &'JAq!QNN1aAZ b	{+r   zstreamplot_integration.png皙?)r!   r"   c                     d} t        j                  t        j                  dd|       t        j                  dd|             \  }}t        j                  ||      }t        j                  |dz  |dz  z         }t        j
                  |       |dz  z  }t        j                  |       |dz  z  d|z  z
  }|t        j
                  |      z  |t        j                  |      z  z
  dz   }|t        j                  |      z  |t        j
                  |      z  z   }d}	t        j                  t        j                  |	d      t        j                  dd|	      f      }
t        j                  ddd	
      \  }}t        j                  ddt         j                  z  d      }t        |g d      D ]  \  }}|j                  g d      }t        ||gddg      D ]v  \  }}|j                  |||||
dd|rdndd||       |j                  t        j
                  |      t        j                  |      dd|rdnd       |j!                  d       x |j#                  dd       |j%                  dd       |j'                  d       |j)                  d       |j%                  dd       |j+                  d        |j-                  |d!       ! |j/                          y )"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   s    	A;;r{{2q!,bkk"a.CDDAq	Aq	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- %/G45!$b&\E4=!A 	(GX%#('!S+2,3   LLww 1a   w'3	(8 	d#d#""
D#

v#.K%/N r   c                     t        j                         } t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                         j                  dd      | j                  z   }t        j                  ||t        j                  |      t        j                  |      |       t        | j                  j                  d	d
       y )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!DAq  ",,R4r||CEIIaBFF1IrvvayE: bjj//&')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        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        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        t        j                  d
      } t        j                  d
      }t        j                  g d      }t        j                  g d      }t	        j
                  t        d      5  t        j                  ||| |       d d d        t        j                  g d      }t        j                  g d      }y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w)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      s5   
A
A 	2r(RH%&A
2r(RH%&A	z)H	I #q!Q"# 	2r(RH%&A
2r(RH%&A	z)K	L #q!Q"# 	2r(RH%&A
2r(RH%&ANN1aA 	!RA
Ar7)A	z *8 
9 #q!Q"#
 	A
A
A
A	z)L	M #q!Q"# 	A
AA# ## ## ## #s0   <J.J(J&<J2JJ#&J/2J;c                     t        j                  ddgddgg      } t        j                  ddgddgg      }t        j                  d      }t        j                  d      }d}t	        j
                  t        |      5  t        j                  | |||d       d d d        d}t	        j
                  t        |      5  t        j                  | |||d	
       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)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 Dq!QdCD NG	z	1 Dq!QsCD D	D DD Ds   >C">C."C+.C7c            
         t        j                  t        j                  d      t        j                  d      t        j                  dt        j
                        t        j                  dt        j
                        t        j                  j                  dd             t        j                  t        d      t        d      t        j                  j                  dd      t        j                  j                  dd             y )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   