§
    ‚Ø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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       ú•/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_streamplot.pyÚvelocity_fieldr   	   sS   € ÝŒ8�B�q˜�I˜r ! D˜yÐ(Ô)�D€A€qØ
ˆ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˜!ÑÔ�D€A€qØ€AÝ
Œˆq‰	Œ	�a�RÑ�2œ6 !™9œ9 q™=Ñ(€AÝ
Œˆq‰	Œ	�a�RÑ�2œ6 !™9œ9 q™=Ñ(€AØˆa��Aˆ:Ðr   zstreamplot_startpoints.pngTÚmpl20gú~j¼t“h?)Úremove_textÚstyleÚtolc                  ó  — t          ¦   «         \  } }}}t          j        t          j        |                      ¦   «         |                      ¦   «         d¦  «        t          j        |                     ¦   «         |                     ¦   «         d¦  «        ¦  «        \  }}t          j        |                     ¦   «         |                     ¦   «         g¦  «        }t          j	        | ||||d¬¦  «         t          j
        ||d¦  «         d S )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¬w¸¿º¹¼ÀÑ#CÔ#CÝ#%¤;¨q¯uªu©w¬w¸¿º¹¼ÀÑ#CÔ#CñEô EÑ€GˆWå”? G§M¢M¡O¤O°W·]²]±_´_Ð#EÑFÔF€LÝ„N�1�a˜˜A¨LÀQÐGÑGÔGÐGÝ„HˆW�g˜tÑ$Ô$Ð$Ð$Ð$r   zstreamplot_colormap.pnggºI+‡–?c            
      óŠ   — t          ¦   «         \  } }}}t          j        | ||||ddd¬¦  «         t          j        ¦   «          d S )Nç333333ã?r	   Úautumn)ÚcolorÚdensityÚ	linewidthÚcmap)r   r-   r.   Úcolorbar)r   r   r   r   s       r   Útest_colormapr;   &   sP   € õ  Ñ!Ô!�J€A€qˆ!ˆQÝ„N�1�a˜˜A Q°¸qØ ð"ñ "ô "ð "å„L�N„N€N€N€Nr   zstreamplot_linewidth.pngg¸…ëQ¸ž?c            
      ó  — t          ¦   «         \  } }}}t          j        ||¦  «        }d|z  |                     ¦   «         z  }t	          j        ¦   «                              ¦   «         }|                     | |||ddgd|d¬¦  «         d S )Nr$   g      à?r
   Úkr	   )r7   r6   r8   r'   )r   r   Úhypotr*   r-   ÚfigureÚsubplotsr.   )r   r   r   r   ÚspeedÚlwÚaxs          r   Útest_linewidthrD   /   s€   € õ  Ñ!Ô!�J€A€qˆ!ˆQÝŒH�Q˜‰NŒN€EØ	
ˆU‰�U—Y’Y‘[”[Ñ	 €BÝ	Œ‰Œ×	Ò	Ñ	 Ô	 €BØ‡M‚M�!�Q˜˜1 s¨A h°cÀRÐTU€MÑVÔVÐVÐVÐ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                             ||¬¦  «        }t          j	        ¦   «          
                    ¦   «         }t          j        d	¬
¦  «        5  |                     | ||||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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�A”G¥4Ð(Ñ(Ô(€DØ€DˆˆBˆ��3�ˆÑÝ”&€A€c€r€cˆ3ˆBˆ3€h�KÝ
Œ�Š�A˜DˆÑ!Ô!€AÝ	Œ‰Œ×	Ò	Ñ	 Ô	 €BÝ	Œ˜XÐ	&Ñ	&Ô	&ð 9ð 9Ø
�Š�a˜˜A˜q¨°ˆÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s   Â/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-   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Ð6Ò6Ð6°QÒ6Ð6Ð6Ð6Ð6Ð6à‡F‚FÐ*Ð1J€FÑ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 )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ô Dð Dà�;Š;‰=Œ=˜Ô §¢¡¤¨bÔ 1Ð6Ð6Ò6Ð6°QÒ6Ð6Ð6Ð6Ð6Ð6à‡F‚FÐ*Ð1J€FÑ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[   rZ   r	   )Úintegration_directionr\   r&   r8   r7   )r   r-   r.   )r   r   r   r   s       r   Útest_directionrn   ^   sT   € õ &Ñ'Ô'�J€A€qˆ!ˆQÝ„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 ]€\  }}|                     |||||
dd|rdndd||¬¦  «         |                     t          j        |¦  «        t          j        |¦  «        dd|rdnd¬¦  «         |                     d¦  «         Œ�|                     dd¦  «         |                     dd¦  «         |                     d¦  «         |                     d¦  «         |                     dd¦  «         |                     d ¦  «         |                     |d¬!¦  «         �ŒL|                     ¦   «          d S )"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¸"¸aÀÑ.CÔ.CÑDÔD�D€A€qÝ	Œ�A�qÑ	Ô	€BÝ
Œ��1‘�q˜!‘t‘ÑÔ€AÝ
Œ&�‰*Œ*ˆ�q˜!‘tÑ	€BÝ
Œ&�‰*Œ*ˆ�q˜!‘tÑ	˜a !™eÑ	#€BØ	�bŒf�R‰jŒj‰˜2¥¤ r¡
¤
™?Ñ	*¨SÑ	0€BØ	�bŒf�R‰jŒj‰˜2¥¤ r¡
¤
™?Ñ	*€Bð €FÝŒ¥¤¨°Ñ 6Ô 6½¼ÀBÈÈ6Ñ8RÔ8RÐSÑTÔT€HåŒ|˜A˜q¨'Ð2Ñ2Ô2�H€CˆÝŒk˜!˜Q¥¤™Y¨Ñ,Ô,€GÝ˜3   Ñ-Ô-ð %/ñ %/‰ˆˆGØ—’Ð4Ð4Ð4Ñ5Ô5ˆÝ!$ b¨& \°E¸4°=Ñ!AÔ!Að 	(ð 	(ÑˆG�XØ×ÒØØØØØ%Ø#(ØØ'Ð0˜!˜!¨SØØ+2Ø,3ð ñ ô ð ð �LŠLÝ”�w‘”Ý”�w‘”ØØØ Ð'�1�1 að ñ ô ð ð ×Ò˜wÑ'Ô'Ð'Ð'ð 	�Š˜˜dÑ#Ô#Ð#Ø�Š˜˜dÑ#Ô#Ð#Ø×Ò˜"ÑÔÐØ×Ò˜"ÑÔÐà
�Š�D˜#ÑÔÐØ
�Š�‰ŒˆØ
×Ò˜v¨#ÐÑ.Ô.Ð.Ñ.à×ÒÑÔÐÐÐ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éûÿÿÿé
   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Ô4°r´|ÑC€EÝ„Iˆa�•B”F˜1‘I”I�rœv a™yœy°EÐ:Ñ:Ô:Ð:õ ˜bœjÔ/°Ø&'ð)ñ )ô )ð )ð )ð )r   c                  óh  — 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¢¦  «        }d S )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õ 	Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€AÝ
Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€Aå	Œ•zÐ)HÐ	IÑ	IÔ	Ið #ð #ÝŒ�q˜!˜Q Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 	Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€AÝ
Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€Aå	Œ•zÐ)KÐ	LÑ	LÔ	Lð #ð #ÝŒ�q˜!˜Q Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 	Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€AÝ
Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€AÝ„N�1�a˜˜AÑÔÐõ 	Œ�!�R�ÑÔ€AÝ
Œ�A�r�7�)�ÑÔ€Aå	Œ•zð *8ð 
9ñ 
9ô 
9ð #ð #åŒ�q˜!˜Q Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ
 	Œ�‰Œ€AÝ
Œ�ÑÔ€AÝ
Œ���ÑÔ€AÝ
Œ���ÑÔ€Aå	Œ•zÐ)LÐ	MÑ	MÔ	Mð #ð #ÝŒ�q˜!˜Q Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 	Œ���ÑÔ€AÝ
Œ���ÑÔ€A€A€AsH   Á8BÂB Â#B Ã6DÄDÄ!DÆ9GÇG!Ç$G!ÉI;É;I?ÊI?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 ¦  «         n# 1 swxY w Y   d}t	          j        t          |¬¦  «        5  t          j        | |||d	¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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Ñ	1Ô	1ð Dð DÝŒ�q˜!˜Q ¸dÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð N€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Dð DÝŒ�q˜!˜Q ¸sÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð Ds$   Á:B Â B$Â'B$ÃC/Ã/C3Ã6C3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   Úaranger€   rS   ÚrandomÚrandÚranger|   r   r   Útest_streamplot_inputsrÅ   ë   s¸   € å„N•2”9˜Q‘<”<¥¤¨1¡¤Ý”7˜6¥2¤6Ñ*Ô*­B¬G°F½B¼FÑ,CÔ,CÝœŸš¨¨1Ñ-Ô-ð/ñ /ô /ð /õ „N•5˜‘8”8�U 1™XœXÝ”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Í      s°  ðØ Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø €€€Ø Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ðð ð ð ÐÐ/Ð0¸dÈ'Øðñ ô ð%ð %ñô ð%ð ÐÐ,Ð-¸4ÀwØðñ ô ðð ñô ðð ÐÐ-Ð.¸DÈØðñ ô ðWð Wñô ðWð ÐÐ2Ð3Ø"¨'ð3ñ 3ô 3ð9ð 9ñ3ô 3ð9ð ÐÐ-Ð.Ø"¨'°uð>ñ >ô >ðLð Lñ>ô >ðLð ÐÐ7Ð8Ø"¨'°uð>ñ >ô >ðLð Lñ>ô >ðLð ÐÐ-Ð.Ø"¨'°uð>ñ >ô >ð+ð +ñ>ô >ð+ð ÐÐ/Ð0¸ÀTÐJÑJÔJð8ð 8ñ KÔJð8ðv)ð )ð )ð(ð (ð (ðVDð Dð Dð?ð ?ð ?ð ?ð ?r   