Ë
    µ2ÚiZ$  ã                   ó  — d dl m Z mZmZ d dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlZd dlZ G d„ d«      Zej*                  d„ «       Z ed	gd
 ej.                  «       dk(  rd nd¬«      d„ «       Z edgdd
 ej.                  «       dk(  rd nd¬«      d„ «       Zd„ Z edgddid
¬«      d„ «       Z edgddid
¬«      d„ «       Zd„ Zd„ Zd„ Z e
dg¬«      d „ «       Z d!„ Z!d"„ Z"d#„ Z#d$„ Z$ G d%„ d&«      Z%d'„ Z&y)(é    )ÚdatetimeÚtimezoneÚ	timedeltaN)Ú	MagicMock)Úcheck_figures_equalÚimage_comparison)ÚUnitDatac                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚQuantityc                 ó    — || _         || _        y ©N)Ú	magnitudeÚunits)ÚselfÚdatar   s      úR/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/tests/test_units.pyÚ__init__zQuantity.__init__   s   € ØˆŒØˆ�
ó    c                 óÆ   — dddddddœ}| j                   |k7  r*|| j                   |f   }t        || j                  z  |«      S t        | j                  | j                   «      S )Ni  g‘?é<   gÓ0�Ó(?é   i€÷  ))ÚhoursÚseconds)Úminutesr   )r   r   )ÚfeetÚmiles)r   Úinches)r   r   )r   r   r   )r   Ú	new_unitsÚfactorsÚmults       r   ÚtozQuantity.to   se   € Ø)-ÀVØ+-À)Ø')À	ñKˆð �:‰:˜Ò"Ø˜4Ÿ:™: yÐ0Ñ1ˆDÜ˜D 4§>¡>Ñ1°9Ó=Ð=ä˜DŸN™N¨D¯J©JÓ7Ð7r   c                 óB   — t        | j                  | j                  «      S r   )r   r   r   ©r   s    r   Ú__copy__zQuantity.__copy__   s   € Ü˜Ÿ™¨¯
©
Ó3Ð3r   c                 ó.   — t        | j                  |«      S r   )Úgetattrr   )r   Úattrs     r   Ú__getattr__zQuantity.__getattr__    s   € Ü�t—~‘~ tÓ,Ð,r   c                 óÆ   — t        j                  | j                  «      r#t        | j                  |   | j                  «      S t        | j                  | j                  «      S r   )ÚnpÚiterabler   r   r   )r   Úitems     r   Ú__getitem__zQuantity.__getitem__#   sA   € Ü�;‰;�t—~‘~Ô&Ü˜DŸN™N¨4Ñ0°$·*±*Ó=Ð=ä˜DŸN™N¨D¯J©JÓ7Ð7r   c                 ó@   — t        j                  | j                  «      S r   )r*   Úasarrayr   r#   s    r   Ú	__array__zQuantity.__array__)   s   € Ü�z‰z˜$Ÿ.™.Ó)Ð)r   N)	Ú__name__Ú
__module__Ú__qualname__r   r!   r$   r(   r-   r0   © r   r   r   r      s    „ òò8ò4ò-ò8ó*r   r   c                  ó¢   — t        j                  «       } d„ }d„ }t        |¬«      | _        t        d„ ¬«      | _        t        |¬«      | _        | S )Nc           	      óê  — t        | d«      r| j                  |«      j                  S t        j                  | «      r*	 | D �cg c]  }|j                  |«      j                  ‘Œ c}S t        | |j                  «       «      j                  |«      j                  S c c}w # t
        $ rJ | D �cg c]5  }t        ||j                  «       «      j                  |«      j                  ‘Œ7 nc c}w c}cY S w xY w©Nr   )Úhasattrr!   r   r*   r+   ÚAttributeErrorr   Ú	get_units)ÚvalueÚunitÚaxisÚvs       r   Úconvertz#quantity_converter.<locals>.convert3   sÊ   € Ü�5˜'Ô"Ø—8‘8˜D“>×+Ñ+Ð+Ü�[‰[˜Ôð(Ø6;Ö<°˜Ÿ™˜T›
×,Ó,Ò<Ð<ô
 ˜E 4§>¡>Ó#3Ó4×7Ñ7¸Ó=×GÑGÐGùò =øÜ!ò (à!&ö(Øô !  D§N¡NÓ$4Ó5×8Ñ8¸Ó>×HÓHñ (ùô (ò (ð(ús/   ¾B Á"BÁ$B ÂB ÂC2Â,:C'Ã&	C2Ã1C2c                 ó¢   — t        | d«      r| j                  S t        j                  | «      r"| D ]  }t        |d«      sŒ|j                  c S  y y r7   )r8   r   r*   r+   )r;   r=   r>   s      r   Údefault_unitsz)quantity_converter.<locals>.default_units?   sN   € Ü�5˜'Ô"Ø—;‘;ÐÜ�[‰[˜ÔØò #�Ü˜1˜gÕ&ØŸ7™7’Nð#ð ð	  r   )Úside_effectc                 ó0   — t        j                  | d¬«      S )N©r   éd   )ÚlabelÚdefault_limits)ÚmunitsÚAxisInfo)ÚuÚas     r   ú<lambda>z$quantity_converter.<locals>.<lambda>I   s   € Ü"ŸO™O°!ÀHÔMð r   )rH   ÚConversionInterfacer   r?   ÚaxisinforA   )Úqcr?   rA   s      r   Úquantity_converterrP   -   sP   € ô 
×	#Ñ	#Ó	%€Bò
Hòô  wÔ/€B„JÜñ )Nô O€B„Kä ¨]Ô;€BÔØ€Ir   zplot_pint.pngÚmpl20Úx86_64g{®Gáz„?)ÚstyleÚtolc                 óÀ  — dt         j                  d<   | t        j                  t        <   t	        t        j                  dd«      d«      }t	        t        j                  dd«      d«      }t        j                  «       \  }}|j                  d¬	«       |j                  ||d
«       |j                  t	        dd«      d¬«       |j                  t	        dd«      d¬«       |j                  j                  d«       |j                  j                  d«       | j                  j                   sJ ‚| j"                  j                   sJ ‚| j$                  j                   sJ ‚y )N)iùÿÿÿé   zaxes.formatter.limitsr   é   r   é   r   g333333Ã?©Úleftztab:bluei g  r   ztab:red)Úcoloréx   r   z	tab:greenr   r   )ÚpltÚrcParamsrH   Úregistryr   r*   ÚlinspaceÚsubplotsÚsubplots_adjustÚplotÚaxhlineÚaxvlineÚyaxisÚ	set_unitsÚxaxisr?   ÚcalledrN   rA   )rP   ÚyÚxÚfigÚaxs        r   Útest_numpy_facadern   Q   s  € ð -2„C‡L�LÐ(Ñ)ð !3„F‡O�O”HÑô 	”—‘˜Q Ó# WÓ-€AÜ”—‘˜Q Ó" GÓ,€Aä�l‰l‹n�G€CˆØ×Ñ˜TÐÔ"Ø‡G�GˆAˆq�*ÔØ‡J�JŒx˜˜vÓ&¨i€JÔ8Ø‡J�JŒx˜˜YÓ'¨{€JÔ;Ø‡H�H×Ñ�xÔ Ø‡H�H×Ñ�yÔ!à×%Ñ%×,Ò,Ð,Ð,Ø×&Ñ&×-Ò-Ð-Ð-Ø×+Ñ+×2Ò2Ð2Ñ2r   zplot_masked_units.pngT)Úremove_textrS   rT   c                  óì   — t        j                  dd«      } t         j                  j                  | | dkD  | dk  z  ¬«      }t	        |d«      }t        j                  «       \  }}|j                  |«       y )NéûÿÿÿrX   éþÿÿÿé   )ÚmaskÚmeters)r*   r`   ÚmaÚarrayr   r]   ra   rc   )r   Údata_maskedÚdata_masked_unitsrl   rm   s        r   Útest_plot_masked_unitsrz   l   s`   € ô �;‰;�r˜1Ó€DÜ—%‘%—+‘+˜d¨$°©)¸¸q¹Ñ)A�+ÓB€KÜ  ¨hÓ7Ðä�l‰l‹n�G€CˆØ‡G�GÐÕr   c                 óø   — | t         j                  t        <   t        j                  «       \  }}|j                  t        dd«      t        dd«      «       |j                  t        dd«      t        dd«      «       y )Néÿÿÿÿru   é   r   é   )rH   r_   r   r]   ra   Úset_xlimÚset_ylim)rP   rl   rm   s      r   Ú test_empty_set_limits_with_unitsr�   w   sW   € à 2„F‡O�O”HÑä�l‰l‹n�G€CˆØ‡K�K”˜˜XÓ&¬°°HÓ(=Ô>Ø‡K�K”˜˜WÓ%¤x°°GÓ'<Õ=r   zjpl_bar_units.pngÚdpir\   )Úsavefig_kwargrS   c                  óª  — dd l mc m}  | j                  «        | j	                  dd«      }d| j
                  z  d| j
                  z  d| j
                  z  g}d|z  d|z  d|z  g}| j                  dt        ddd	«      ¬
«      }t        j                  «       \  }}|j                  |||¬«       |j                  |d|z  z
  ||d   z   d|z  z   g«       y )Nr   ÚETç     õ@é   rs   é   éÙ  é   é   ©Údt)Úbottomr|   çj¼t“ð?)Úmatplotlib.testing.jpl_unitsÚtestingÚ	jpl_unitsÚregisterÚDurationÚkmÚEpochr   r]   ra   Úbarr€   ©r   Údayrk   ÚwÚbrl   rm   s          r   Útest_jpl_bar_unitsrœ   €   sÇ   € ÷ 1Ð0Ø	‡N�NÔà
�.‰.˜Ð1Ó
2€CØ	
ˆU�X‰X‰�q˜5Ÿ8™8‘| Q¨¯©¡\Ð2€AØ	
ˆS‰�!�c‘'˜1˜s™7Ð#€AØ�‰�DœX d¨A¨rÓ2ˆÓ3€AÜ�l‰l‹n�G€CˆØ‡F�Fˆ1ˆa˜€FÔØ‡K�K��Q˜‘W‘˜a ! B¡%™i¨5°C©-Ñ7Ð8Õ9r   zjpl_barh_units.pngc                  óª  — dd l mc m}  | j                  «        | j	                  dd«      }d| j
                  z  d| j
                  z  d| j
                  z  g}d|z  d|z  d|z  g}| j                  dt        ddd	«      ¬
«      }t        j                  «       \  }}|j                  |||¬«       |j                  |d|z  z
  ||d   z   d|z  z   g«       y )Nr   r…   r†   r‡   rs   rˆ   r‰   rŠ   r‹   rŒ   rY   r|   r�   )r�   r‘   r’   r“   r”   r•   r–   r   r]   ra   Úbarhr   r˜   s          r   Útest_jpl_barh_unitsrŸ   �   sÇ   € ÷ 1Ð0Ø	‡N�NÔà
�.‰.˜Ð1Ó
2€CØ	
ˆU�X‰X‰�q˜5Ÿ8™8‘| Q¨¯©¡\Ð2€AØ	
ˆS‰�!�c‘'˜1˜s™7Ð#€AØ�‰�DœX d¨A¨rÓ2ˆÓ3€Aä�l‰l‹n�G€CˆØ‡G�GˆAˆq�q€GÔØ‡K�K��Q˜‘W‘˜a ! B¡%™i¨5°C©-Ñ7Ð8Õ9r   c                  ó€   — t        j                  t        j                  g d¬«      t        j                  g «      «       y )Nzdatetime64[ns]©Údtype)r]   Úscatterr*   rw   r4   r   r   Útest_empty_arraysr¤   Ÿ   s$   € ä‡K�K”—‘˜Ð#3Ô4´b·h±h¸r³lÕCr   c                  ó(  — t        j                  ddd¬«      } t        j                  t        | «      t        ¬«      }t         j                  |d<   t        j                  «       \  }}|j                  | |«       |j                  j                  «        y )Nz2005-02z2005-03zdatetime64[D]r¡   r   )
r*   ÚarangeÚlenÚfloatÚnanr]   ra   r£   ÚcanvasÚdraw)Útimesrj   rl   rm   s       r   Útest_scatter_element0_maskedr­   ¤   s`   € Ü�I‰I�i °/ÔB€EÜ
�	‰	”#�e“*¤EÔ*€AÜ�6‰6€A€a�DÜ�l‰l‹n�G€CˆØ‡J�Jˆu�aÔØ‡J�J‡O�OÕr   c            	      ó  — t        j                  d«      } | D �cg c]  }t        dd|dz  dz   «      ‘Œ }}t        j                  «       \  }}|j                  | |t        d¬«      «       |j                  j                  «        y c c}w )Né
   éä  rX   rs   r‡   g      à?)Údays)	r*   r¦   r   r]   ra   Úerrorbarr   rª   r«   )rk   Úirj   rl   rm   s        r   Útest_errorbar_mixed_unitsr´   ­   sj   € Ü
�	‰	�"‹€AØ/0Ö1¨!Œ�$˜˜1˜q™5 1™9Õ	%Ð1€AÐ1Ü�l‰l‹n�G€CˆØ‡K�K��1”i SÔ)Ô*Ø‡J�J‡O�OÕùò 	2s   šBÚpng)Ú
extensionsc                 óÌ   —  G d„ dt         «      }| j                  «       j                   |ddd«      dd«       |j                  «       j                  t        ddd«      dd«       y )Nc                   ó   — e Zd Zy)útest_subclass.<locals>.subdateN)r1   r2   r3   r4   r   r   Úsubdater¹   ·   s   „ Ør   rº   iÐ  r‡   r   Úo)r   ra   rc   )Úfig_testÚfig_refrº   s      r   Útest_subclassr¾   µ   sX   € ô”(ô ð ×ÑÓ×Ñ™W T¨1¨aÓ0°!°SÔ9Ø×ÑÓ×ÑœH T¨1¨aÓ0°!°SÕ9r   c                 óê  — | t         j                  t        <   t        t        j                  ddd«      d«      }t        t        j                  ddd«      d«      }t        t        j                  ddd«      d«      }t        j                  ddd	d	¬
«      \  }\  }}|j                  ||«       |j                  ||«       |j                  j                  «       |j                  j                  «       cxk(  rdk(  sJ ‚ J ‚|j                  j                  «       |j                  j                  «       cxk(  rdk(  sJ ‚ J ‚|j                  j                  d«       |j                  j                  d«       |j                  j                  «       |j                  j                  «       cxk(  rdk(  sJ ‚ J ‚|j                  j                  «       |j                  j                  «       cxk(  rdk(  sJ ‚ J ‚y )Nr   r‡   r¯   r   rs   r   rˆ   rŠ   Úall©ÚsharexÚshareyr   r   )rH   r_   r   r*   r`   r]   ra   rc   rh   r:   rf   rg   )rP   rk   Úy1Úy2rl   Úax1Úax2s          r   Útest_shared_axis_quantityrÈ   ¾   s�  € Ø 2„F‡O�O”HÑÜ”—‘˜Q  2Ó&¨Ó0€AÜ	”"—+‘+˜a  BÓ'¨Ó	0€BÜ	”"—+‘+˜a  BÓ'¨Ó	0€BÜ—l‘l 1 a°¸eÔD�O€C‰ˆ#ˆsØ‡H�HˆQ�„OØ‡H�HˆQ�„OØ�9‰9×ÑÓ  C§I¡I×$7Ñ$7Ó$9ÔD¸WÒDÐDÑDÐDÐDØ�9‰9×ÑÓ  C§I¡I×$7Ñ$7Ó$9ÔC¸VÒCÐCÑCÐCÐCØ‡I�I×Ñ˜	Ô"Ø‡I�I×Ñ˜Ô!Ø�9‰9×ÑÓ  C§I¡I×$7Ñ$7Ó$9ÔF¸YÒFÐFÑFÐFÐFØ�9‰9×ÑÓ  C§I¡I×$7Ñ$7Ó$9ÔE¸XÒEÐEÑEÐEÑEr   c            	      ó   — t        dd«      D � cg c]  } t        d| dt        j                  ¬«      ‘Œ! }} t        dd«      D � cg c]  } t        d| dt        j                  ¬«      ‘Œ! }} t	        j
                  ddd¬«      \  }\  }}|j                  |«       |j                  |«       |j                  j                  t        t        d	¬
«      «      «       |j                  j                  t        t        d	¬
«      «      k(  sJ ‚y c c} w c c} w )Nr‡   é   r°   )Útzinfoiå  rs   T)rÃ   rX   )r   )Úranger   r   Úutcr]   ra   rc   rf   rg   r   r   )r³   rÄ   rÅ   rl   rÆ   rÇ   s         r   Útest_shared_axis_datetimerÎ   Î   sÇ   € ä=BÀ1Àb»\Ö	J¸Œ(�4˜˜A¤h§l¡lÖ
3Ð	J€BÐ	JÜ=BÀ1Àb»\Ö	J¸Œ(�4˜˜A¤h§l¡lÖ
3Ð	J€BÐ	JÜ—l‘l 1 a°Ô5�O€C‰ˆ#ˆsØ‡H�HˆR„LØ‡H�HˆR„LØ‡I�I×Ñœ¤°Ô!3Ó4Ô5Ø�9‰9�?‰?œh¤y°qÔ'9Ó:Ò:Ð:Ñ:ùò 
KùÚ	Js   �$DÁ$Dc                  óÆ  — dddœ} dddœ}t        j                  dddd¬«      \  }\  }}|j                  | j                  «       | j	                  «       «       |j                  |j                  «       |j	                  «       «       |j
                  j                  t        dd	g«      «       d|j
                  j                  «       j                  j                  «       v sJ ‚y )
Nr‡   rs   )rK   r›   rˆ   rŠ   TrÁ   ÚcÚd)
r]   ra   rc   ÚkeysÚvaluesrh   rg   r	   r:   Ú_mapping)Úd1Úd2rl   rÆ   rÇ   s        r   Útest_shared_axis_categoricalr×   Ù   s«   € à�qÑ	€BØ�qÑ	€BÜ—l‘l 1 a°¸TÔB�O€C‰ˆ#ˆsØ‡H�HˆR�W‰W‹Y˜Ÿ	™	›Ô$Ø‡H�HˆR�W‰W‹Y˜Ÿ	™	›Ô$Ø‡I�I×Ñœ # s Ó,Ô-Ø�#—)‘)×%Ñ%Ó'×0Ñ0×5Ñ5Ó7Ñ7Ð7Ñ7r   c           
      óp  — | t         j                  t        <   t        j                  «       \  }}|j
                  j                  t        dgd«      «       |j                  «        |j                  «       dk(  sJ ‚|j                  j                  t        dgd«      «       |j                  «        |j                  «       dk(  sJ ‚t        j                  «       \  }}|j                  d«       |j                  t        t        j                  dd«      d«      t        t        j                  ddd«      d	«      «       |j                  «        |j                  «       d
k(  sJ ‚|j                  «       dk(  sJ ‚t        j                  «       \  }}|j                  d«       |j                  t        t        j                  dd«      d«      t        t        j                  ddd«      d	«      «       |j                  «        |j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  «       \  }}|j
                  j                  t        dgd«      «       |j                  d«       |j                  «        |j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  «       \  }}|j                  j                  t        dgd«      «       |j                  d«       |j                  «        |j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚y )Nr¯   r   rD   rW   r   rˆ   r}   rs   r   )r   rs   )r   rW   )r   rŠ   )g     €<@g     €?@)rH   r_   r   r]   ra   rh   Úupdate_unitsÚdraw_without_renderingÚget_xlimrf   Úget_ylimrd   rc   r*   r¦   re   )rP   rl   rÆ   rm   s       r   Útest_empty_default_limitsrÝ   ä   so  € Ø 2„F‡O�O”HÑÜ�|‰|‹~�H€CˆØ‡I�I×Ñœ8 R D¨'Ó2Ô3Ø×ÑÔ Ø�<‰<‹>˜XÒ%Ð%Ð%Ø‡I�I×Ñœ8 R D¨'Ó2Ô3Ø×ÑÔ Ø�<‰<‹>˜XÒ%Ð%Ð%ä�l‰l‹n�G€CˆØ‡J�Jˆr„NØ‡G�GŒH”R—Y‘Y˜q !“_ gÓ.Ü”R—Y‘Y˜q ! QÓ'¨Ó0ô2à×ÑÔ Ø�;‰;‹=˜FÒ"Ð"Ð"Ø�;‰;‹=˜GÒ#Ð#Ð#ä�l‰l‹n�G€CˆØ‡J�Jˆr„NØ‡G�GŒH”R—Y‘Y˜q !“_ gÓ.Ü”R—Y‘Y˜q ! QÓ'¨Ó0ô2à×ÑÔ Ø�;‰;‹=˜GÒ#Ð#Ð#Ø�;‰;‹=˜FÒ"Ð"Ð"ä�l‰l‹n�G€CˆØ‡H�H×Ñœ( B 4¨Ó1Ô2Ø‡J�Jˆr„NØ×ÑÔ Ø�;‰;‹=˜HÒ$Ð$Ð$Ø�;‰;‹=˜LÒ(Ð(Ð(ä�l‰l‹n�G€CˆØ‡H�H×Ñœ( B 4¨Ó1Ô2Ø‡J�Jˆr„NØ×ÑÔ Ø�;‰;‹=˜HÒ$Ð$Ð$Ø�;‰;‹=˜LÒ(Ð(Ñ(r   c                   ó(   — e Zd Zd„ Zd„ Zed„ «       Zy)ÚKernelc                 ó8   — t        j                  |«      | _        y r   )r*   Ú
asanyarrayÚ_array)r   rw   s     r   r   zKernel.__init__  s   € Ü—m‘m EÓ*ˆ�r   c                 ó   — | j                   S r   )râ   r#   s    r   r0   zKernel.__array__  s   € Ø�{‰{Ðr   c                 ó.   — | j                   j                  S r   )râ   Úshaper#   s    r   rå   zKernel.shape  s   € à�{‰{× Ñ Ð r   N)r1   r2   r3   r   r0   Úpropertyrå   r4   r   r   rß   rß     s    „ ò+òð ñ!ó ñ!r   rß   c                  óH   — t        g d¢«      } t        j                  | «       y )N)r‡   rs   rˆ   rŠ   rX   )rß   r]   rc   )Úkernels    r   Útest_plot_kernelré     s   € ä’OÓ$€FÜ‡H�HˆVÕr   )'r   r   r   ÚplatformÚunittest.mockr   Úmatplotlib.pyplotÚpyplotr]   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.unitsr   rH   Úmatplotlib.categoryr	   Únumpyr*   Úpytestr   ÚfixturerP   Úmachinern   rz   r�   rœ   rŸ   r¤   r­   r´   r¾   rÈ   rÎ   r×   rÝ   rß   ré   r4   r   r   ú<module>rõ      s`  ðß 2Ñ 2Û Ý #å ß OÝ !Ý (Û Û ÷*ñ *ð> ‡�ñó ðñF �?Ð#¨7Ø+˜8×+Ñ+Ó-°Ò9‘a¸tôEñ3óEð3ñ2 Ð*Ð+¸ÀWØ+˜8×+Ñ+Ó-°Ò9‘a¸tôEñóEðò>ñ Ð&Ð'Ø!&¨ °Gô=ñ
:ó=ð
:ñ Ð'Ð(Ø!&¨ °Gô=ñ:ó=ð:òDò
òñ   Ô(ñ:ó )ð:òFò ;ò8ò&)÷T	!ñ 	!ór   