Ë
    ¨eh[  ã                   ól  — 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	g¬
«      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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       ú^/var/www/skyplay_api_hub/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   Ústreamplot_startpointsTÚmpl20Úpng)Úremove_textÚstyleÚ
extensionsc                  óà  — t        «       \  } }}}t        j                  t        j                  | j	                  «       | j                  «       d«      t        j                  |j	                  «       |j                  «       d«      «      \  }}t        j                  |j                  «       |j                  «       g«      }t        j                  | ||||¬«       t        j                  ||d«       y )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¢   € ô  Ó!�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Õ9Ü‡H�HˆW�g˜tÕ$r   Ústreamplot_colormapgºI+‡–?)r"   r#   Útolc            
      ó´   — t        «       \  } }}}t        j                  | ||||ddt        j                  j                  ¬«       t        j
                  «        y )Ng333333ã?r	   )ÚcolorÚdensityÚ	linewidthÚcmap)r   r-   r.   ÚcmÚautumnÚcolorbar)r   r   r   r   s       r   Útest_colormapr=   %   sB   € ô  Ó!�J€A€qˆ!ˆQÜ‡N�N�1�a˜˜A Q°¸qÜŸ™Ÿ™õ'ä‡L�L…Nr   Ústreamplot_linewidthgü©ñÒMbp?c            	      óò   — t        «       \  } }}}t        j                  ||«      }d|z  |j                  «       z  }t	        j
                  «       j                  «       }|j                  | |||ddgd|¬«       y )Nr&   g      à?r
   Úk)r7   r6   r8   )r   r   Úhypotr*   r-   ÚfigureÚsubplotsr.   )r   r   r   r   ÚspeedÚlwÚaxs          r   Útest_linewidthrG   .   si   € ô  Ó!�J€A€qˆ!ˆQÜ�H‰H�Q˜‹N€EØ	
ˆU‰�U—Y‘Y“[Ñ	 €BÜ	�‰‹×	Ñ	Ó	 €BØ‡M�M�!�Q˜˜1 s¨A h°cÀR€MÕHr   Ústreamplot_masks_and_nans)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                  | ||||t        j                  j                  ¬«       d d d «       y # 1 sw Y   y xY w)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Â   € ô  Ó!�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Ô	&ñ >Ø
�‰�a˜˜A˜q¨´·±·±ˆÔ=÷>÷ >ñ >ús   Â20C+Ã+C4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-   rB   rC   r.   Úget_xlimÚget_ylimÚset©r   r   r   r   rF   s        r   Útest_maxlengthrk   E   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 )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”   € ô &Ó'�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_   r^   r	   )Úintegration_directionr`   r'   r8   r7   )r   r-   r.   )r   r   r   r   s       r   Útest_directionrr   ]   s:   € ô &Ó'�J€A€qˆ!ˆQÜ‡N�N�1�a˜˜A°ZØ °°b°	¨{Ø¨ö+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éûÿÿÿé
   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˜!Ó�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¢«      }t	        j
                  t        d¬«      5  t        j                  ||| |«       d d d «       y # 1 sw Y   �Œ5xY w# 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   y xY w)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   sp  € Ü
�‰�‹€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ä	�‰”zÐ)JÔ	Kñ #Ü�‰�q˜!˜Q Ô"÷#ð #÷E#ñ #ú÷#ñ #ú÷#ñ #ú÷#ð #ú÷#ð #ús<   Á<KÃ.KÆ(K"È<K/Ê&K;ËKËKË"K,Ë/K8Ë;L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   ÚarangeÚfullrV   ÚrandomÚrandÚrange© 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=   rG   r[   rk   rn   rr   rˆ   r’   rš   r™   r   r   ú<module>r¢      sA  ðÛ Ý 3Û Ý Ý :Ý +òòñ Ð+Ð,¸$ÀgØ#˜Wô&ñ%ó&ð%ñ Ð(Ð)°tÀ7Øôñóðñ Ð)Ð*¸ÀGØôñIóðIñ Ð.Ð/Ø"¨'ô3ñ>ó3ð>ñ Ð-Ð.Ø"¨'°uô>ñLó>ðLñ Ð7Ð8Ø"¨'°uô>ñLó>ðLñ Ð-Ð.Ø"¨'°uô>ñ+ó>ð+ò)ò+#ó\?r   