Ë
    íÍ: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       úu/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/matplotlib/tests/test_streamplot.pyÚvelocity_fieldr   	   sU   € Ü�8‰8�B�q˜�I˜r ! D˜yÐ(Ñ)�D€A€qØ
ˆ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˜!Ó�D€A€qØ€AÜ
�‰ˆq‹	�a�RÑœ2Ÿ6™6 !›9 q™=Ñ(€AÜ
�‰ˆq‹	�a�RÑœ2Ÿ6™6 !›9 q™=Ñ(€AØˆa��Aˆ:Ðr   zstreamplot_startpoints.pngTÚmpl20gú~j¼t“h?)Ú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¤   € ô  Ó!�J€A€qˆ!ˆQÜ—{‘{¤2§;¡;¨q¯u©u«w¸¿¹»ÀÓ#CÜ#%§;¡;¨q¯u©u«w¸¿¹»ÀÓ#CóEÑ€GˆWä—?‘? G§M¡M£O°W·]±]³_Ð#EÓF€LÜ‡N�N�1�a˜˜A¨LÀQÕGÜ‡H�HˆW�g˜tÕ$r   zstreamplot_colormap.pnggºI+‡–?c            
      ó„   — t        «       \  } }}}t        j                  | ||||ddd¬«       t        j                  «        y )Nç333333ã?r	   Úautumn)ÚcolorÚdensityÚ	linewidthÚcmap)r   r-   r.   Úcolorbar)r   r   r   r   s       r   Útest_colormapr;   &   s:   € ô  Ó!�J€A€qˆ!ˆQÜ‡N�N�1�a˜˜A Q°¸qØ õ"ä‡L�L…Nr   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   € ô  Ó!�J€A€qˆ!ˆQÜ�H‰H�Q˜‹N€EØ	
ˆU‰�U—Y‘Y“[Ñ	 €BÜ	�‰‹×	Ñ	Ó	 €BØ‡M�M�!�Q˜˜1 s¨A h°cÀRÐTU€MÕ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º   € ô  Ó!�J€A€qˆ!ˆQÜ�8‰8�A—G‘G¤4Ô(€DØ€DˆˆBˆ��3�ˆÑÜ—&‘&€A€c€r€cˆ3ˆBˆ3€h�KÜ
�‰�‰�A˜DˆÓ!€AÜ	�‰‹×	Ñ	Ó	 €BÜ	�‰˜XÔ	&ñ 9Ø
�‰�a˜˜A˜q¨°ˆÔ8÷9÷ 9ñ 9ús   Â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‘   € ô &Ó'�J€A€qˆ!ˆQÜ	�‰‹×	Ñ	Ó	 €BØ‡M�M�!�Q˜˜1¨¸BÀ¸9¸+Ø qð ô *à�;‰;‹=˜Ñ §¡£¨bÑ 1Ô6°QÒ6Ð6Ñ6Ð6Ð6à‡F�FÐ*Ð1J€FÕ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”   € ô &Ó'�J€A€qˆ!ˆQÜ	�‰‹×	Ñ	Ó	 €BØ‡M�M�!�Q˜˜1¨¸BÀ¸9¸+Ø q¸Uð ô Dà�;‰;‹=˜Ñ §¡£¨bÑ 1Ô6°QÒ6Ð6Ñ6Ð6Ð6à‡F�FÐ*Ð1J€FÕ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:   € ô &Ó'�J€A€qˆ!ˆQÜ‡N�N�1�a˜˜A°ZØ °°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 )"Né2   éþÿÿÿ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   Úequalg333333ó¿gffffffæ¿gš™™™™™é¿gš™™™™™Ù¿© 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—{‘{ 2 q¨!Ó,¬b¯k©k¸"¸aÀÓ.CÓD�D€A€qÜ	�‰�A�qÓ	€BÜ
�‰��1‘�q˜!‘t‘Ó€AÜ
�&‰&�‹*ˆ�q˜!‘tÑ	€BÜ
�&‰&�‹*ˆ�q˜!‘tÑ	˜a !™eÑ	#€BØ	Œb�f‰f�R‹j‰˜2¤§¡ r£
™?Ñ	*¨SÑ	0€BØ	Œb�f‰f�R‹j‰˜2¤§¡ r£
™?Ñ	*€Bð €FÜ�‰¤§¡¨°Ó 6¼¿¹ÀBÈÈ6Ó8RÐSÓT€Hä�|‰|˜A˜q¨'Ô2�H€CˆÜ�k‰k˜!˜Q¤§¡™Y¨Ó,€GÜ˜3¢Ó-ó %/‰ˆˆGØ—‘Ò4Ó5ˆÜ!$ b¨& \°E¸4°=Ó!Aò 	(ÑˆG�XØ×ÑØØØØØ%Ø#(ØÙ'™!¨SØØ+2Ø,3ð ô ð �L‰LÜ—‘�w“Ü—‘�w“ØØÙ ‘1 að ô ð ×Ñ˜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˜!Ó�D€A€qÜ× Ñ Ó"×,Ñ,¨R°Ó4°r·|±|ÑC€EÜ‡I�Iˆa�”B—F‘F˜1“IœrŸv™v a›y°EÕ:ô ˜bŸj™j×/Ñ/°Ø&'ö)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ô 	�‰�2�r�(˜R ˜HÐ%Ó&€AÜ
�‰�2�r�(˜R ˜HÐ%Ó&€Aä	�‰”zÐ)HÔ	Iñ #Ü�‰�q˜!˜Q Ô"÷#ô 	�‰�2�r�(˜R ˜HÐ%Ó&€AÜ
�‰�2�r�(˜R ˜HÐ%Ó&€Aä	�‰”zÐ)KÔ	Lñ #Ü�‰�q˜!˜Q Ô"÷#ô 	�‰�2�r�(˜R ˜HÐ%Ó&€AÜ
�‰�2�r�(˜R ˜HÐ%Ó&€AÜ‡N�N�1�a˜˜AÔô 	�‰�!�R�Ó€AÜ
�‰�A�r�7�)�Ó€Aä	�‰”zð *8ô 
9ñ #ä�‰�q˜!˜Q Ô"÷#ô
 	�‰�‹€AÜ
�‰�Ó€AÜ
�‰’Ó€AÜ
�‰’Ó€Aä	�‰”zÐ)LÔ	Mñ #Ü�‰�q˜!˜Q Ô"÷#ô 	�‰’Ó€AÜ
�‰’Ó�A÷A#ñ #ú÷#ñ #ú÷#ð #ú÷#ð #ú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Ü   € Ü
�‰�2�r�(˜R ˜HÐ%Ó&€AÜ
�‰�2�r�(˜R ˜HÐ%Ó&€AÜ
�‰�‹€AÜ
�‰�Ó€AàM€GÜ	�‰”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”   € ä‡N�N”2—9‘9˜Q“<¤§¡¨1£Ü—7‘7˜6¤2§6¡6Ó*¬B¯G©G°F¼B¿F¹FÓ,CÜŸ™Ÿ™¨¨1Ó-õ/ô ‡N�N”5˜“8œU 1›XÜ—9‘9—>‘> ! 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Û Ý Ý :Ý +òòñ Ð/Ð0¸dÈ'Øôñ%óð%ñ Ð,Ð-¸4ÀwØôñóðñ Ð-Ð.¸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   