Ë
    µ2ÚiS!  ã                   ó|  — d dl Z d dlZd dlZd dlZd dlmZ d dlm	Z	 d„ Z
ej                  j                   e j                  «       dk7  d¬«      d„ «       Zej                  j                   e j                  «       dk7  d¬«      d	„ «       Zd
„ Zd„ Zd„ Zd„ Z e	dg«      d„ «       Z e	dg«      d„ «       Z e	dgd¬«      d„ «       Zd„ Z e	dgd¬«      d„ «       Z e	dgd¬«      d„ «       Z e	dgd¬«      d„ «       Z e	dgd¬«      d„ «       Z e	dgd¬«      d „ «       Zd!„ Zd"„ Zd#„ Z e	d$gd¬«      d%„ «       Z d&„ Z!d'„ Z"y)(é    N)Úpyplot)Úimage_comparisonc                 óL  — t        j                  t        j                  ddt         j                  z  d«      t        j                  ddt         j                  z  d«      «      \  }}t        j                  |«      }t        j
                  |«      } | j                  ||fi |¤Ž}|S )Nr   é   é   )ÚnpÚmeshgridÚarangeÚpiÚcosÚsinÚquiver)ÚaxÚkwargsÚXÚYÚUÚVÚQs          úS/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/tests/test_quiver.pyÚdraw_quiverr      sy   € Ü�;‰;”r—y‘y  A¬¯©¡I¨qÓ1Ü—y‘y  A¬¯©¡I¨qÓ1ó3�D€A€qä
�‰ˆq‹	€AÜ
�‰ˆq‹	€Aàˆ�	‰	�!�QÑ!˜&Ñ!€AØ€Hó    ÚCPythonzRequires CPython)Úreasonc                  ó¶   — t        j                  «       \  } }t        |«      }|j                  }|j	                  «        ~t        j                  |«      dk(  sJ ‚y )Nr   )ÚpltÚsubplotsr   r   ÚremoveÚsysÚgetrefcount)Úfigr   r   ÚttXs       r   Útest_quiver_memory_leakr#      sH   € ô �l‰l‹n�G€Cˆä�B‹€AØ
�#‰#€CØ‡H�H„Jà	ä�?‰?˜3Ó 1Ò$Ð$Ñ$r   c            
      ó  — t        j                  «       \  } }t        |«      }|j                  |dddddddi¬«      }t	        j
                  |«      d	k(  sJ ‚|j                  «        t	        j
                  |«      dk(  sJ ‚y )
Nç      à?çq=
×£pí?r   ú$2 \frac{m}{s}$ÚWÚweightÚbold©ÚlabelposÚfontpropertiesé   )r   r   r   Ú	quiverkeyr   r    r   )r!   r   r   Úqks       r   Útest_quiver_key_memory_leakr1   #   s~   € ô �l‰l‹n�G€Cˆä�B‹€Aà	�‰�a˜˜d AÐ'9Ø"Ø&.°Ð%7ð 
ó 
9€Bô �?‰?˜2Ó !Ò#Ð#Ð#Ø‡I�I„KÜ�?‰?˜2Ó !Ò#Ð#Ñ#r   c            	      ó*  — ddg} t        j                  t        d¬«      5  t        j                  | «       d d d «       t        j                  t        d¬«      5  t        j                  | | | | | | «       d d d «       y # 1 sw Y   ŒHxY w# 1 sw Y   y xY w)Nr   r   z7takes from 2 to 5 positional arguments but 1 were given©Úmatchz7takes from 2 to 5 positional arguments but 6 were given)ÚpytestÚraisesÚ	TypeErrorr   r   )r   s    r   Útest_quiver_number_of_argsr8   2   s‡   € Ø	
ˆAˆ€AÜ	�‰ÜØKô
Mñ ô 	�
‰
�1Œ÷ô 
�‰ÜØKô
Mñ %ô 	�
‰
�1�a˜˜A˜q !Ô$÷%ð %÷	ð ú÷%ð %ús    A=ÁB	Á=BÂ	Bc                  óV  — ddg} g d¢}t        j                  t        d¬«      5  t        j                  | || | «       d d d «       t        j                  t        d¬«      5  t        j                  | | || «       d d d «       t        j                  t        d¬«      5  t        j                  | | | |«       d d d «       t        j                  t        d¬«      5  t        j                  | | | | |«       d d 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   y xY w)	Nr   r   )r   r   r.   z?X and Y must be the same size, but X.size is 2 and Y.size is 3.r3   zMArgument U has a size 3 which does not match 2, the number of arrow positionszMArgument V has a size 3 which does not match 2, the number of arrow positionszMArgument C has a size 3 which does not match 2, the number of arrow positions)r5   r6   Ú
ValueErrorr   r   )ÚX2ÚX3s     r   Útest_quiver_arg_sizesr=   >   s  € Ø
ˆQˆ€BÚ	€BÜ	�‰Üð  >ô
@ñ #ô 	�
‰
�2�r˜2˜rÔ"÷#ô 
�‰Üð  Bô
Dñ #ô 	�
‰
�2�r˜2˜rÔ"÷#ô 
�‰Üð  Bô
Dñ #ô 	�
‰
�2�r˜2˜rÔ"÷#ô 
�‰Üð  Bô
Dñ 'ô 	�
‰
�2�r˜2˜r 2Ô&÷'ð '÷#ð #ú÷#ð #ú÷#ð #ú÷'ð 'ús/   ¤C;Á DÂDÃDÃ;DÄDÄDÄD(c                  óŠ  — t        j                  «       \  } }t        j                  t        j                  d«      t        j                  d«      «      \  }}t        j
                  |«      x}}t        j                  j                  dd«      dz
  dz  }|j                  |||||¬«       | j                  j                  «        y )Né   é
   r%   é–   ©Úangles)r   r   r   r	   r
   Ú	ones_likeÚrandomÚrandr   ÚcanvasÚdraw©r!   r   r   r   r   r   Úphis          r   Útest_no_warningsrK   S   s‰   € Ü�l‰l‹n�G€CˆÜ�;‰;”r—y‘y “}¤b§i¡i°£mÓ4�D€A€qÜ�L‰L˜‹OÐ€AˆÜ�9‰9�>‰>˜"˜bÓ! BÑ&¨#Ñ
-€CØ‡I�Iˆa��A�q €IÔ%Ø‡J�J‡O�OÕr   c                  ób  — t        j                  «       \  } }t        j                  t        j                  d«      t        j                  d«      «      \  }}t        j
                  |«      t        j                  |«      }}|j                  ||dd¬«       | j                  j                  «        y )Nr@   r   )Ú
headlengthÚheadaxislength)
r   r   r   r	   r
   r   r   r   rG   rH   )r!   r   r   r   r   r   s         r   Útest_zero_headlengthrO   \   sr   € ô �l‰l‹n�G€CˆÜ�;‰;”r—y‘y “}¤b§i¡i°£mÓ4�D€A€qÜ�6‰6�!‹9”b—f‘f˜Q“i€q€AØ‡I�Iˆa�˜q°€IÔ3Ø‡J�J‡O�OÕr   zquiver_animated_test_image.pngc            
      ó€   — t        j                  «       \  } }t        |d¬«      }|j                  |ddddddd	i¬
«       y )NT)Úanimatedr%   r&   r   r'   r(   r)   r*   r+   )r   r   r   r/   ©r!   r   r   s      r   Útest_quiver_animaterS   f   sF   € ô �l‰l‹n�G€CˆÜ�B Ô&€AØ‡L�L��C˜˜qÐ"4Ø¨x¸Ð.@ð õ Br   zquiver_with_key_test_image.pngc                  ó¤   — t        j                  «       \  } }|j                  d«       t        |«      }|j	                  |dddddddd	d
dœ¬«	       y )Nçš™™™™™¹?r%   gffffffî?r   z"$2\, \mathrm{m}\, \mathrm{s}^{-1}$iöÿÿÿÚfigurer(   r*   Úlarge)r)   Úsize)ÚangleÚcoordinatesr,   r-   )r   r   Úmarginsr   r/   rR   s      r   Útest_quiver_with_keyr\   o   sS   € ä�l‰l‹n�G€CˆØ‡J�Jˆs„OÜ�B‹€AØ‡L�L��C˜˜qØ6ØØ%ØØ+1¸7Ñ Cð õ Er   zquiver_single_test_image.pngT)Úremove_textc                  ó„   — t        j                  «       \  } }|j                  d«       |j                  dgdgdgdg«       y )NrU   r   r   )r   r   r[   r   ©r!   r   s     r   Útest_quiver_singler`   |   s6   € ä�l‰l‹n�G€CˆØ‡J�Jˆs„OØ‡I�Iˆqˆc�A�3˜˜˜a˜SÕ!r   c                  ó  — t        j                  «       \  } }t        t        j                  dg«      t        j                  dg«      ¬«      }|j                  dgdg|d   |d   «      }d|d   d<   |j                  d   dk(  sJ ‚y )Nçš™™™™™ñ?g       @)ÚuÚvr   rc   rd   r   )r   r   Údictr   Úarrayr   r   )r!   r   ÚuvÚq0s       r   Útest_quiver_copyri   ƒ   sr   € Ü�l‰l‹n�G€CˆÜ	”—‘˜#˜“¤2§8¡8¨S¨E£?Ô	3€BØ	�‰�A�3˜˜˜R ™W b¨¡gÓ	.€BØ€B€s�GˆA�JØ�4‰4�‰7�cŠ>Ð‰>r   zquiver_key_pivot.pngc                  ó"  — t        j                  «       \  } }t        j                  ddt        j                  z  d…ddt        j                  z  d…f   \  }}|j                  t        j                  |«      t        j                  |«      «      }|j                  dd«       |j                  dd«       |j                  |ddddd¬	«       |j                  |dddd
d
¬	«       |j                  |ddddd¬	«       |j                  |ddddd¬	«       y )Nr   r   y              $@éþÿÿÿé   r%   r   ÚN)r,   ÚEÚSr(   )r   r   r   Úmgridr   r   r   r   Úset_xlimÚset_ylimr/   )r!   r   rc   rd   Úqs        r   Útest_quiver_key_pivotrt   ‹   sà   € ä�l‰l‹n�G€Cˆä�8‰8�A�aœŸ™‘g˜c�M 1 Q¤r§u¡u¡W¨S =Ð0Ñ1�D€A€qà
�	‰	”"—&‘&˜“)œRŸV™V A›YÓ'€AØ‡K�K��BÔØ‡K�K��BÔØ‡L�L��C˜˜A˜s¨S€LÔ1Ø‡L�L��A�s˜A˜s¨S€LÔ1Ø‡L�L��C˜˜A˜s¨S€LÔ1Ø‡L�L��A�s˜A˜s¨S€LÕ1r   zquiver_key_xy.pngc                  ó  — t        j                  d«      } t        j                  d«      }| t         j                  dz  z  }t        j                  d|z  «      }|j
                  }|j                  }t        j                  d«      \  }}t        |d«      D ]p  \  }}	|j                  dd«       |j                  dd«       |j                  | |||d	d
ddd
|	¬«
      }
t        dd«      D ]  \  }}|j                  |
|dd|dd¬«       Œ Œr y )Né   é   y              ð?r   )rg   Úxyéÿÿÿÿgš™™™™™É¿çš™™™™™É?Úmiddlerx   gš™™™™™©?)ÚpivotÚunitsÚwidthÚscaleÚscale_unitsrC   )rz   r%   çš™™™™™é?)r   é-   éZ   r�   r   Ú Úb)r   r   r   rY   ÚlabelÚcolor)r   r
   Úzerosr   ÚexpÚrealÚimagr   r   Úziprq   rr   r   r/   )r   r   rC   rg   r   r   r!   Úaxsr   Ú	angle_strrs   ÚxrY   s                r   Útest_quiver_key_xyr�   š   sþ   € ô 	�	‰	�!‹€AÜ
�‰�‹€AØ”"—%‘%˜!‘)‰_€FÜ	�‰��V‘Ó	€BØ
�‰€AØ
�‰€AÜ�|‰|˜A‹�H€CˆÜ˜S ,Ó/ò O‰ˆˆIØ
�‰�B˜ÔØ
�‰�D˜#ÔØ�I‰I�a˜˜A˜q¨Ø ¨Ø¨4Ø&ð ó (ˆô ˜O¨[Ó9ò 	O‰HˆAˆuØ�L‰L˜˜a 3¨!°5ÀÈ#ˆLÕNñ	OñOr   zbarbs_test_image.pngc                  ó  — t        j                  ddd«      } t        j                  | | «      \  }}d|z  d|z  }}t        j                  «       \  }}|j                  ||||t        j                  ||«      ddt        ddd¬	«      d
¬«	       y )Néûÿÿÿé   é   TFç      Ð?rz   ç333333Ó?©Ú	emptybarbÚspacingÚheightÚviridis)Ú
fill_emptyÚroundingÚsizesÚcmap)r   Úlinspacer	   r   r   ÚbarbsÚhypotre   ©r�   r   r   r   r   r!   r   s          r   Ú
test_barbsr¤   ²   s€   € ä
�‰�B˜˜1Ó€AÜ�;‰;�q˜!Ó�D€A€qØˆa‰4��A‘€q€AÜ�l‰l‹n�G€CˆØ‡H�HˆQ��1�aœŸ™ ! Q›°DÀ5Ü $°¸CÔ@Øð õ r   zbarbs_pivot_test_image.pngc                  ó  — t        j                  ddd«      } t        j                  | | «      \  }}d|z  d|z  }}t        j                  «       \  }}|j                  ||||dddt        ddd	¬
«      ¬«       |j                  ||dd¬«       y )Nr’   r“   r”   TFç333333û?r•   rz   r–   r—   )rœ   r�   r|   rž   é1   Úblack)ÚsÚc)r   r    r	   r   r   r¡   re   Úscatterr£   s          r   Útest_barbs_pivotr¬   ½   sˆ   € ä
�‰�B˜˜1Ó€AÜ�;‰;�q˜!Ó�D€A€qØˆa‰4��A‘€q€AÜ�l‰l‹n�G€CˆØ‡H�HˆQ��1�a D°5ÀÜ $°¸CÔ@ð ô Bà‡J�Jˆq�!�r˜W€JÕ%r   zbarbs_test_flip.pngc                  óø   — t        j                  ddd«      } t        j                  | | «      \  }}d|z  d|z  }}t        j                  «       \  }}|j                  ||||dddt        ddd	¬
«      |dk  ¬«	       y)z'Test barbs with an array for flip_barb.r’   r“   r”   TFr¦   r•   rz   r–   r—   r   )rœ   r�   r|   rž   Ú	flip_barbN)r   r    r	   r   r   r¡   re   r£   s          r   Útest_barbs_flipr¯   È   s|   € ô 	�‰�B˜˜1Ó€AÜ�;‰;�q˜!Ó�D€A€qØˆa‰4��A‘€q€AÜ�l‰l‹n�G€CˆØ‡H�HˆQ��1�a D°5ÀÜ $°¸CÔ@Ø˜1‘uð õ r   c                  ó  — t        j                  «       \  } }t        j                  dg«      }t        j                  dg«      }|j	                  dgdg||«      }d|d<   |j
                  d   dk(  sJ ‚d|d<   |j                  d   dk(  sJ ‚y )Nrb   gš™™™™™@r   r   )r   r   r   rf   r¡   rc   rd   )r!   r   rc   rd   Úb0s        r   Útest_barb_copyr²   Ô   s�   € Ü�l‰l‹n�G€CˆÜ
�‰�#�‹€AÜ
�‰�#�‹€AØ	�‰�1�#˜�s˜A˜qÓ	!€BØ€A€a�DØ�4‰4�‰7�cŠ>Ðˆ>Ø€A€a�DØ�4‰4�‰7�cŠ>Ð‰>r   c                  óR  — t        j                  d«      } t        j                  d«      }t         j                  j                  dt        j                  d«      z  «      }t         j                  j                  dt        j
                  |«      z  «      }t         j                  j                  |d<   t         j                  j                  |d<   t        j                  «       \  }}t        j                  t        «      5  |j                  | |||«       ddd«       y# 1 sw Y   yxY w)z=Test error handling when given differing sized masked arrays.r.   g      .@)rw   r   N)r   r
   Úmarf   ÚonesrD   Úmaskedr   r   r5   r6   r:   r¡   )r�   Úyrc   rd   r!   r   s         r   Útest_bad_masked_sizesr¸   ß   s¾   € ä
�	‰	�!‹€AÜ
�	‰	�!‹€AÜ
�‰�‰�Cœ"Ÿ'™' $›-Ñ'Ó(€AÜ
�‰�‰�Cœ"Ÿ,™, q›/Ñ)Ó*€AÜ�5‰5�<‰<€A€a�DÜ�5‰5�<‰<€A€a�DÜ�l‰l‹n�G€CˆÜ	�‰”zÓ	"ñ Ø
�‰��A�q˜!Ô÷÷ ñ ús   Ã?DÄD&c                  óX  — t        j                  «       \  } }t        j                  t        j                  d«      t        j                  d«      «      \  }}t        j
                  |«      x}}t        j                  j                  dd«      dz
  dz  }|j                  |||||d¬«       y )Nr?   r@   r%   rA   rx   )rC   r€   )	r   r   r   r	   r
   rD   rE   rF   r   rI   s          r   Útest_angles_and_scalerº   ì   s}   € ä�l‰l‹n�G€CˆÜ�;‰;”r—y‘y “}¤b§i¡i°£mÓ4�D€A€qÜ�L‰L˜‹OÐ€AˆÜ�9‰9�>‰>˜"˜bÓ! BÑ&¨#Ñ
-€CØ‡I�Iˆa��A�q °$€IÕ7r   zquiver_xy.pngc            	      óâ   — t        j                  t        d¬«      ¬«      \  } }|j                  ddddddd¬«       |j	                  dd«       |j                  dd«       |j                  «        y )	NÚequal)Úaspect)Ú
subplot_kwr   r   rx   )rC   r€   r   rb   )r   r   re   r   rq   rr   Úgridr_   s     r   Útest_quiver_xyrÀ   õ   sZ   € ô �l‰l¤d°'Ô&:Ô;�G€CˆØ‡I�Iˆa��A�q °4¸q€IÔAØ‡K�K��3ÔØ‡K�K��3ÔØ‡G�G…Ir   c                  ó   — t        j                  «       \  } }t        j                  t        j                  d«      t        j                  d«      «      \  }}t        j
                  |«      x}x}}|j                  |||||¬«      }|j                  |dddd«      }| j                  j                  «        t        |j                  «      dk(  sJ ‚y )Nr   rB   r   ÚLabel)r   r   r   r	   r
   rD   r   r/   rG   rH   ÚlenÚverts)	r!   r   r   r   r   r   rC   rs   r0   s	            r   Útest_quiverkey_anglesrÅ   ÿ   s    € ô �l‰l‹n�G€Cˆä�;‰;”r—y‘y “|¤R§Y¡Y¨q£\Ó2�D€A€qÜ—\‘\ !“_Ð$€AÐ$ˆˆFà
�	‰	�!�Q˜˜1 Vˆ	Ó,€AØ	�‰�a˜˜A˜q 'Ó	*€Bà‡J�J‡O�OÔÜˆr�x‰x‹=˜AÒÐÑr   c                  ó*  — t        j                  «       \  } }t        j                  t        j                  d«      t        j                  d«      «      \  }}t        j
                  |«      x}}|j                  ||||«      }|j                  dd«       y)zBCheck that it is possible to set all arrow UVC to the same numbersr   r   r   N)r   r   r   r	   r
   rD   r   Úset_UVC)r!   r   r   r   r   r   rs   s          r   Útest_quiver_setuvc_numbersrÈ     sj   € ô �l‰l‹n�G€Cˆä�;‰;”r—y‘y “|¤R§Y¡Y¨q£\Ó2�D€A€qÜ�L‰L˜‹OÐ€Aˆà
�	‰	�!�Q˜˜1Ó€AØ‡I�Iˆa�…Or   )#Úplatformr   Únumpyr   r5   Ú
matplotlibr   r   Úmatplotlib.testing.decoratorsr   r   ÚmarkÚskipifÚpython_implementationr#   r1   r8   r=   rK   rO   rS   r\   r`   ri   rt   r�   r¤   r¬   r¯   r²   r¸   rº   rÀ   rÅ   rÈ   © r   r   ú<module>rÑ      sä  ðÛ Û 
ã Û å $Ý :òð ‡�×ÑÐ2�H×2Ñ2Ó4¸	ÑAØ-ð ó /ñ	%ó/ð	%ð ‡�×ÑÐ2�H×2Ñ2Ó4¸	ÑAØ-ð ó /ñ
$ó/ð
$ò	%ò'ò*òñ Ð3Ð4Ó5ñBó 6ðBñ Ð3Ð4Ó5ñ	Eó 6ð	Eñ Ð1Ð2ÀÔEñ"ó Fð"òñ Ð)Ð*¸Ô=ñ2ó >ð2ñ Ð&Ð'°TÔ:ñOó ;ðOñ. Ð)Ð*¸Ô=ñó >ðñ Ð/Ð0¸dÔCñ&ó Dð&ñ Ð(Ð)°tÔ<ñó =ðòò
ò8ñ �?Ð#°Ô6ñó 7ðòó	r   