
    h-                        S SK J r JrJr  S SKrS SKJr  S SKJr  S SK	J
r
Jr  S SKJr  S SKJr  S SKJrJr  S SKJr  S SKrS SKr " S S5      r\R6                  S	 5       r\" S
/S\R:                  " 5       S:X  a  S OSS9S 5       r\" S/SS\R:                  " 5       S:X  a  S OSS9S 5       rS r \" S/SS0SS9S 5       r!\" S/SS0SS9S 5       r"S r#S r$S r%S  r&\
" S!/S"9S# 5       r'S$ r(S% r)S& r*S' r+S( r, " S) S*5      r-S+ r.S, r/g)-    )datetimetimezone	timedeltaN)	MagicMock)check_figures_equalimage_comparison)StrCategoryConverterUnitData)DateConverterc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
Quantity   c                     Xl         X l        g N	magnitudeunits)selfdatar   s      M/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_units.py__init__Quantity.__init__   s    
    c                     SSSSSSS.nU R                   U:w  a(  X R                   U4   n[        X0R                  -  U5      $ [        U R                  U R                   5      $ )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   toQuantity.to   sa    )-V+-)')	K ::"::y01DD>>19==DNNDJJ77r   c                 B    [        U R                  U R                  5      $ r   )r   r   r   r   s    r   __copy__Quantity.__copy__   s    

33r   c                 .    [        U R                  U5      $ r   )getattrr   )r   attrs     r   __getattr__Quantity.__getattr__"   s    t~~t,,r   c                     [         R                  " U R                  5      (       a#  [        U R                  U   U R                  5      $ [        U R                  U R                  5      $ r   )npiterabler   r   r   )r   items     r   __getitem__Quantity.__getitem__%   sD    ;;t~~&&DNN40$**==DNNDJJ77r   c                 B    [         R                  " U R                  5      $ r   )r2   asarrayr   r)   s    r   	__array__Quantity.__array__+   s    zz$..))r   r   N)__name__
__module____qualname____firstlineno__r   r&   r*   r/   r5   r9   __static_attributes__ r   r   r   r      s     84-8*r   r   c                      [         R                  " 5       n S nS n[        US9U l        [        S S9U l        [        US9U l        U $ )Nc           	         [        U S5      (       a  U R                  U5      R                  $ [        R                  " U 5      (       a,   U  Vs/ s H  o3R                  U5      R                  PM     sn$ [        XR                  5       5      R                  U5      R                  $ s  snf ! [
         aL    U  Vs/ s H5  n[        X2R                  5       5      R                  U5      R                  PM7     Os  snf sns $ f = fNr   )hasattrr&   r   r2   r3   AttributeErrorr   	get_units)valueunitaxisvs       r   convert#quantity_converter.<locals>.convert5   s    5'""88D>+++[[(6;<eT
,,e<<
 E>>#3477=GGG =! (!&(!&A !NN$4588>HH!&( ((s0   	B+ $B&1B+ &B+ +D9<C65	D Dc                     [        U S5      (       a  U R                  $ [        R                  " U 5      (       a)  U  H"  n[        US5      (       d  M  UR                  s  $    g g rC   )rD   r   r2   r3   )rG   rI   rJ   s      r   default_units)quantity_converter.<locals>.default_unitsA   sR    5'"";;[[1g&&77N  	  r   )side_effectc                 ,    [         R                  " U SS9$ )Nr   d   )labeldefault_limits)munitsAxisInfo)uas     r   <lambda>$quantity_converter.<locals>.<lambda>K   s    "OO!HMr   )rV   ConversionInterfacer   rK   axisinforN   )qcrK   rN   s      r   quantity_converterr_   /   sP     
	#	#	%B
H w/BJ )N OBK ];BIr   zplot_pint.pngmpl20x86_64gQ?)styletolc                    S[         R                  S'   U [        R                  [        '   [	        [
        R                  " SS5      S5      n[	        [
        R                  " SS5      S5      n[         R                  " 5       u  p4UR                  SS	9  UR                  X!S
5        UR                  [	        SS5      SS9  UR                  [	        SS5      SS9  UR                  R                  S5        UR                  R                  S5        U R                  R                   (       d   eU R"                  R                   (       d   eU R$                  R                   (       d   eg )N)i   zaxes.formatter.limitsr      r!      r   g333333?leftztab:bluei g  r    ztab:red)colorx   r   z	tab:greenr"   r   )pltrcParamsrV   registryr   r2   linspacesubplotssubplots_adjustplotaxhlineaxvlineyaxis	set_unitsxaxisrK   calledr]   rN   )r_   yxfigaxs        r   test_numpy_facader}   S   s    -2CLL() !3FOOH 	Q#W-AQ"G,AllnGCT"GGA*JJxv&iJ8JJxY'{J;HHx HHy!%%,,,,&&----++2222r   zplot_masked_units.pngTg{Gz?)remove_textrb   rc   c                      [         R                  " SS5      n [         R                  R                  X S:  U S:  -  S9n[	        US5      n[
        R                  " 5       u  p4UR                  U5        g )Nrg      )maskmeters)r2   ro   maarrayr   rl   rp   rr   )r   data_maskeddata_masked_unitsr{   r|   s        r   test_plot_masked_unitsr   n   s\     ;;r1D%%++d)q)A+BK h7llnGCGGr   c                     U [         R                  [        '   [        R                  " 5       u  pUR                  [        SS5      [        SS5      5        UR                  [        SS5      [        SS5      5        g )Nr      r   r   )rV   rn   r   rl   rp   set_xlimset_ylim)r_   r{   r|   s      r    test_empty_set_limits_with_unitsr   y   sU     2FOOHllnGCKKX&H(=>KKW%xG'<=r   zjpl_bar_units.pngdpirk   )savefig_kwargrb   c                     SS K Js  Jn   U R                  5         U R	                  SS5      nSU R
                  -  SU R
                  -  SU R
                  -  /nSU-  SU-  SU-  /nU R                  S[        SSS	5      S
9n[        R                  " 5       u  pVUR                  X#US9  UR                  USU-  -
  XCS   -   SU-  -   /5        g )Nr   ET     @   r              dt)bottomr   jt?)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterDurationkmEpochr   rl   rp   barr   r   dayrz   wbr{   r|   s          r   test_jpl_bar_unitsr      s     10	NN
..1
2C	
UXXq588|Q\2A	
S!c'1s7#ADXdAr23AllnGCFF1FKKQWaB%i5C-789r   zjpl_barh_units.pngc                     SS K Js  Jn   U R                  5         U R	                  SS5      nSU R
                  -  SU R
                  -  SU R
                  -  /nSU-  SU-  SU-  /nU R                  S[        SSS	5      S
9n[        R                  " 5       u  pVUR                  X#US9  UR                  USU-  -
  XCS   -   SU-  -   /5        g )Nr   r   r   r   r   r   r   r   r   r   rh   r   r   )r   r   r   r   r   r   r   r   rl   rp   barhr   r   s          r   test_jpl_barh_unitsr      s     10	NN
..1
2C	
UXXq588|Q\2A	
S!c'1s7#ADXdAr23AllnGCGGAqGKKQWaB%i5C-789r   c                  >   SS K Js  Jn   U R                  5         [	        SSS5      nU R                  SUS9n[        R                  R                  U5      R                  US S 5      n[        R                  R                  U5      R                  US S 5      nX4:X  d   eg )Nr   r   r   r   r   r   )
r   r   r   r   r   r   rV   rn   get_converterrK   )r   r   jpldt_convjpl_convs        r   "test_jpl_datetime_units_consistentr      s    00	NN	$2	B
++dr+
"Coo++B/77D$GG,,S199#tTJHr   c                      [         R                  " [        R                  " / SS9[        R                  " / 5      5        g )Nzdatetime64[ns]dtype)rl   scatterr2   r   r@   r   r   test_empty_arraysr      s$    KK#34bhhrlCr   c                     [         R                  " SSSS9n [         R                  " [        U 5      [        S9n[         R                  US'   [
        R                  " 5       u  p#UR                  X5        UR                  R                  5         g )Nz2005-02z2005-03zdatetime64[D]r   r   )
r2   arangelenfloatnanrl   rp   r   canvasdraw)timesry   r{   r|   s       r   test_scatter_element0_maskedr      s\    IIi/BE
		#e*E*A66AaDllnGCJJuJJOOr   c            	         [         R                  " S5      n U  Vs/ s H  n[        SSUS-  S-   5      PM     nn[        R                  " 5       u  p4UR                  X[        SS95        UR                  R                  5         g s  snf )N
     rg   r   r   g      ?)days)	r2   r   r   rl   rp   errorbarr   r   r   )rz   iry   r{   r|   s        r   test_errorbar_mixed_unitsr      sg    
		"A/01q!$1q519	%qA1llnGCKKiS)*JJOO 	2s   Bpng)
extensionsc                      " S S[         5      nU R                  5       R                  U" SSS5      SS5        UR                  5       R                  [        SSS5      SS5        g )Nc                       \ rS rSrSrg)test_subclass.<locals>.subdate   r@   N)r;   r<   r=   r>   r?   r@   r   r   subdater      s    r   r   i  r   r   o)r   rp   rr   )fig_testfig_refr   s      r   test_subclassr      sX    (  WT1a0!S9HT1a0!S9r   c                    U [         R                  [        '   [        [        R                  " SSS5      S5      n[        [        R                  " SSS5      S5      n[        [        R                  " SSS5      S5      n[
        R                  " SSS	S	S
9u  nu  pVUR                  X5        UR                  X5        UR                  R                  5       UR                  R                  5       s=:X  a  S:X  d   e   eUR                  R                  5       UR                  R                  5       s=:X  a  S:X  d   e   eUR                  R                  S5        UR                  R                  S5        UR                  R                  5       UR                  R                  5       s=:X  a  S:X  d   e   eUR                  R                  5       UR                  R                  5       s=:X  a  S:X  d   e   eg )Nr   r   r   r   r   r    r   r   allsharexshareyr   r"   )rV   rn   r   r2   ro   rl   rp   rr   rw   rF   ru   rv   )r_   rz   y1y2r{   ax1ax2s          r   test_shared_axis_quantityr      s{    2FOOHQ2&0A	"++aB'	0B	"++aB'	0Bll1aeDOC#HHQOHHQO99 CII$7$7$9DWDDDDD99 CII$7$7$9CVCCCCCII	"II!99 CII$7$7$9FYFFFFF99 CII$7$7$9EXEEEEEr   c            
         [        SS5       V s/ s H  n [        SU S[        R                  S9PM     nn [        SS5       V s/ s H  n [        SU S[        R                  S9PM     nn [        R
                  " SSSS9u  nu  pEUR                  U5        UR                  U5        UR                  R                  [        [        S	S
95      5        UR                  R                  [        [        S	S
95      :X  d   eg s  sn f s  sn f )Nr      r   )tzinfoi  r   T)r   rg   )r   )ranger   r   utcrl   rp   rr   ru   rv   r   r   )r   r   r   r{   r   r   s         r   test_shared_axis_datetimer      s    =B1b\	J\(4Ahll
3\B	J=B1b\	J\(4Ahll
3\B	Jll1a5OC#HHRLHHRLII!34599??hyq'9:::: 
K	Js   $C>$Dc                     SSS.n SSS.n[         R                  " SSSSS9u  nu  p4UR                  U R                  5       U R	                  5       5        UR                  UR                  5       UR	                  5       5        UR
                  R                  [        SS	/5      5        SUR
                  R                  5       R                  R                  5       ;   d   eg )
Nr   r   rY   r   r   r   Tr   cd)
rl   rp   rr   keysvaluesrw   rv   r
   rF   _mapping)d1d2r{   r   r   s        r   test_shared_axis_categoricalr      s    q	Bq	Bll1aTBOC#HHRWWY		$HHRWWY		$II#s,-#))%%'00557777r   c                  <   SSS.n [        5       n[        5       n[        5       n[        R                  " 5       u  pEUR                  R                  U5        UR                  R                  5       U:X  d   eUR                  U R                  5       U R                  5       5        UR                  R                  5       U:X  d   eUR                  R                  U5        [        R                  " [        5         UR                  R                  U5        S S S 5        [        R                  " 5       u  pgUR                  U R                  5       U R                  5       5        UR                  R                  U5        [        R                  " 5       u  pU	R                  U R                  5       U R                  5       5        [        R                  " 5          U	R                  R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   )r	   r   rl   rp   rw   set_converterr   rr   r   r   pytestraisesRuntimeErrorwarns)
r   str_cat_converterstr_cat_converter_2date_converterfig1r   fig2r   fig3ax3s
             r   test_explicit_converterr      sj   q	B,..0"_N IDII-.99""$(9999HHRWWY		$99""$(9999II-.	|	$		 34 
% IDHHRWWY		$ II-.IDHHRWWY		$ 
		/ 
 
%	$ 
s   9G<H<
H

Hc           
         U [         R                  [        '   [        R                  " 5       u  pUR
                  R                  [        S/S5      5        UR                  5         UR                  5       S:X  d   eUR                  R                  [        S/S5      5        UR                  5         UR                  5       S:X  d   e[        R                  " 5       u  pUR                  S5        UR                  [        [        R                  " SS5      S5      [        [        R                  " SSS5      S	5      5        UR                  5         UR                  5       S
:X  d   eUR                  5       S:X  d   e[        R                  " 5       u  pUR                  S5        UR                  [        [        R                  " SS5      S5      [        [        R                  " SSS5      S	5      5        UR                  5         UR                  5       S:X  d   eUR                  5       S:X  d   e[        R                  " 5       u  pUR
                  R                  [        S/S5      5        UR                  S5        UR                  5         UR                  5       S:X  d   eUR                  5       S:X  d   e[        R                  " 5       u  pUR                  R                  [        S/S5      5        UR                  S5        UR                  5         UR                  5       S:X  d   eUR                  5       S:X  d   eg )Nr   r!   rR   rf   r   r   r   r   r    )r   r   )r   rf   )r   r   )g     <@g     ?@)rV   rn   r   rl   rp   rw   update_unitsdraw_without_renderingget_xlimru   get_ylimrs   rr   r2   r   rt   )r_   r{   r   r|   s       r   test_empty_default_limitsr    se    2FOOH||~HCII8RD'23 <<>X%%%II8RD'23 <<>X%%%llnGCJJrNGGHRYYq!_g.RYYq!Q'02 ;;=F""";;=G###llnGCJJrNGGHRYYq!_g.RYYq!Q'02 ;;=G###;;=F"""llnGCHH(B412JJrN ;;=H$$$;;=L(((llnGCHH(B412JJrN ;;=H$$$;;=L(((r   c                   4    \ rS rSrS rSS jr\S 5       rSrg)Kerneli<  c                 :    [         R                  " U5      U l        g r   )r2   
asanyarray_array)r   r   s     r   r   Kernel.__init__=  s    mmE*r   Nc                    UbI  XR                   R                  :w  a0  Ub-  U(       d&  [        SU R                   R                   SU S35      e[        R                  " U R                   US9nU(       d  U$ [        R
                  " U5      $ )NzConverting array from z to z requires a copyr   )r  r   
ValueErrorr2   r8   copy)r   r   r
  arrs       r   r9   Kernel.__array__@  sx    ++*;*;!; ,T[[->->,?tg-/ 
 jjE22RWWS\2r   c                 .    U R                   R                  $ r   )r  shaper)   s    r   r  Kernel.shapeK  s    {{   r   )r  )NN)	r;   r<   r=   r>   r   r9   propertyr  r?   r@   r   r   r  r  <  s     +	3 ! !r   r  c                  J    [        / SQ5      n [        R                  " U 5        g )N)r   r   r   r   rg   )r  rl   rr   )kernels    r   test_plot_kernelr  P  s    O$FHHVr   c           	         [         R                  " SSS9u  nu  p#U R                  S5      nUR                  U5        SnUR	                  U5        [
        R                  " US4SU4SSX#S9nUR                  U5        UR                  5         g )	Nr   )r   rg   )nrowsfigsizez2017-01-01T12z	test testr   r   )coordsAcoordsBaxesAaxesB)	rl   rp   	Timestamprt   rs   mpatchesConnectionPatch
add_artistr   )pdr{   r   r   rz   ry   r  s          r   test_connection_patch_unitsr   V  s    llG<OC#
_%AKKNAKKN

"
"Aq6Aq6+16),9C NN3 r   )0r   r   r   platformunittest.mockr   matplotlib.pyplotpyplotrl   matplotlib.testing.decoratorsr   r   matplotlib.patchespatchesr  matplotlib.unitsr   rV   matplotlib.categoryr	   r
   matplotlib.datesr   numpyr2   r   r   fixturer_   machiner}   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r@   r   r   <module>r.     sr   2 2  #  O % ! > *  * *>  F ?#7#++-9atE3E32 *+W#++-9atEE> &'!&G=
:=
: '(!&G=:=:D
 (: ):F ;80B&)T! !(!r   