+
     ]i-  c                   s<   ^ RI H t HtHt ^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIt^ RIt ! R R4      t]P6                  R	 4       t]! R
.R]P:                  ! 4       R8X  d   ^ MRR7      R 4       t]! R.RR]P:                  ! 4       R8X  d   ^ MRR7      R 4       tR t ]! R.R^x/RR7      R 4       t!]! R.R^x/RR7      R 4       t"R t#R t$R t%R t&]
! R .R!7      R" 4       t'R# t(R$ t)R% t*R& t+R' t, ! R( R)4      t-R* t.R+ t/R# ),    )datetimetimezone	timedeltaN)	MagicMock)check_figures_equalimage_comparison)StrCategoryConverterUnitData)DateConverterc                   sD   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	Quantityc                s    Wn         W n        R # N	magnitudeunits)selfdatar   s   &&&B/usr/lib64/python3.14/site-packages/matplotlib/tests/test_units.py__init__ZQuantity.__init__   s    
    c                s    RRRRR^<RRR^R	R
/pV P                   V8w  d1   W P                   V3,          p\        W0P                  ,          V4      # \        V P                  V P                   4      # )hoursi  )r   seconds)minutesr   g?)r   r   )feetmilesg0(?)r   inches)r   r   i  )r   r
   r   )r   Z	new_unitsZfactorsZmults   &&  r   toZQuantity.to   sp    '/CV)2/@)%r+>	K ::"::y01DD>>19==DNNDJJ77r   c                sB    \        V P                  V P                  4      # r   )r
   r   r   r      &r   __copy__ZQuantity.__copy__   s    

33r   c                s.    \        V P                  V4      # r   )Zgetattrr   )r   Zattr   &&r   __getattr__ZQuantity.__getattr__"   s    t~~t,,r   c                s    \         P                  ! V P                  4      '       d(   \        V P                  V,          V P                  4      # \        V P                  V P                  4      # r   )npiterabler   r
   r   )r   Zitemr   r   __getitem__ZQuantity.__getitem__%   sD    ;;t~~&&DNN40$**==DNNDJJ77r   c                sB    \         P                  ! V P                  4      # r   )r    asarrayr   r   r   r   	__array__ZQuantity.__array__+   s    zz$..))r   r   N)__name__
__module____qualname____firstlineno__r   r   r   r   r"   r$   __static_attributes____classdictcell__Z__classdict__   @r   r
   r
      s(     84-8* *r   r
   c                  s    \         P                  ! 4       p R  pR p\        VR7      V n        \        R R7      V n        \        VR7      V n        V # )c           	      s
   \        V R 4      '       d   V P                  V4      P                  # \        P                  ! V 4      '       d,    V  Uu. uF  q3P                  V4      P                  NK  	  up# \        WP                  4       4      P                  V4      P                  # u upi   \
         dL    T  Uu. uF5  p\        Y2P                  4       4      P                  T4      P                  NK7  	  Mu upi upu # i ; i)r   )hasattrr   r   r    r!   ZAttributeErrorr
   Z	get_units)valueZunitaxisv   &&& r   convertZ#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'2B, 'B, ,D;;C76	DDc                 s    \        V R 4      '       d   V P                  # \        P                  ! V 4      '       d,   V  F#  p\        VR 4      '       g   K  VP                  u # 	  R# R# )r   N)r-   r   r    r!   )r.   r/   r0      && r   default_unitsZ)quantity_converter.<locals>.default_unitsA   sR    5'"";;[[1g&&77N  	  r   )Zside_effectc                 s2    \         P                  ! V RR7      # )r    )ZlabelZdefault_limits)r    id   )munitsZAxisInfo)Zuar   r   Z<lambda>Z$quantity_converter.<locals>.<lambda>K   s    "OO!HMr   )r5   ZConversionInterfacer   r2   Zaxisinfor4   )Zqcr2   r4   s      r   quantity_converterr7   /   sP     
	#	#	%B
H w/BJ )N OBK ];BIr   zplot_pint.pngZmpl20Zx86_64gQ?)styletolc                 s4   R\         P                  R&   V \        P                  \        &   \	        \
        P                  ! ^ ^4      R4      p\	        \
        P                  ! ^ ^4      R4      p\         P                  ! 4       w  r4VP                  RR7       VP                  W!R4       VP                  \	        RR4      R	R
7       VP                  \	        ^xR4      RR
7       VP                  P                  R4       VP                  P                  R4       R# )   zaxes.formatter.limitsr   r   g333333?Zleftztab:bluei g  r   ztab:red)Zcolorr   z	tab:greenr   r   N)ir:   )pltZrcParamsr5   registryr
   r    linspacesubplotsZsubplots_adjustplotaxhlineaxvlineyaxis	set_unitsxaxis)r7   yxfigaxs   &    r   test_numpy_facaderJ   S   s     -2CLL() !3FOOH 	Q#W-AQ"G,AllnGCT"GGA*JJxv&iJ8JJxY'{J;HHx HHy!r   zplot_masked_units.pngTg{Gz?)Zremove_textr8   r9   c                  s    \         P                  ! R^4      p \         P                  P                  W R8  V ^8  ,          R7      p\	        VR4      p\
        P                  ! 4       w  r4VP                  V4       R# )   )ZmaskmetersNii)r    r>   Zmaarrayr
   r<   r?   r@   )r   Zdata_maskedZdata_masked_unitsrH   rI           r   test_plot_masked_unitsrO   n   s\     ;;r1D%%++d)q)A+BK h7llnGCGGr   c                 s    V \         P                  \        &   \        P                  ! 4       w  rVP                  \        RR4      \        ^R4      4       VP                  \        RR4      \        ^R4      4       R# )   rL   r   N)r5   r=   r
   r<   r?   set_xlimset_ylim)r7   rH   rI   s   &  r    test_empty_set_limits_with_unitsrT   y   sU     2FOOHllnGCKKX&H(=>KKW%xG'<=r   zjpl_bar_units.pngZdpi)Zsavefig_kwargr8   c                     ^ RI Hu Hp  V P                  4        V P	                  RR4      p^ V P
                  ,          ^V P
                  ,          ^V P
                  ,          .p^V,          ^V,          ^V,          .pV P                  R\        R^^4      R7      p\        P                  ! 4       w  rVVP                  W#VR7       VP                  V^V,          ,
          WCR,          ,           RV,          ,           .4       R# )	r    NET  dt)Zbottomjt?     @rQ   )matplotlib.testing.jpl_unitstesting	jpl_unitsregisterDurationkmEpochr   r<   r?   ZbarrS   r   ZdayrG   ZwbrH   rI             r   test_jpl_bar_unitsrf      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                  rU   )	r    NrV   rW   rX   r;   rZ   r[   rQ   )r\   r]   r^   r_   r`   ra   rb   r   r<   r?   ZbarhrR   rc   re   r   test_jpl_barh_unitsrg      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                  s8   ^ RI Hu Hp  V P                  4        \	        R^^4      pV P                  RVR7      p\        P                  P                  V4      P                  VRR4      p\        P                  P                  V4      P                  VRR4      pR# )r    NrW   rV   rX   )
r\   r]   r^   r_   r   rb   r5   r=   Zget_converterr2   )r   rY   ZjplZdt_convZjpl_convrN   r   "test_jpl_datetime_units_consistentrh      sx    00	NN	$2	B
++dr+
"Coo++B/77D$GG,,S199#tTJHr   c                  s    \         P                  ! \        P                  ! . R R7      \        P                  ! . 4      4       R# )zdatetime64[ns]dtypeN)r<   scatterr    rM    r   r   test_empty_arraysrm      s$    KK#34bhhrlCr   c                  s,   \         P                  ! R RRR7      p \         P                  ! \        V 4      \        R7      p\         P                  V^ &   \
        P                  ! 4       w  r#VP                  W4       VP                  P                  4        R# )z2005-02z2005-03zdatetime64[D]ri   N)
r    arangeZlenZfloatZnanr<   r?   rk   canvasdraw)ZtimesrF   rH   rI   s       r   test_scatter_element0_maskedrq      s\    IIi/BE
		#e*E*A66AaDllnGCJJuJJOOr   c            	      s*   \         P                  ! ^
4      p V  Uu. uF  p\        R^V^,          ^,           4      NK   	  pp\        P                  ! 4       w  r4VP                  W\        RR7      4       VP                  P                  4        R# u upi )
     g      ?)ZdaysN)	r    rn   r   r<   r?   Zerrorbarr   ro   rp   )rG   irF   rH   rI   rN   r   test_errorbar_mixed_unitsru      sg    
		"A/01q!$1q519	%qA1llnGCKKiS)*JJOO 	2s   $BZpng)Z
extensionsc                 s     ! R  R\         4      pV P                  4       P                  V! R^^4      ^ R4       VP                  4       P                  \        R^^4      ^ R4       R# )c                   s    ] tR t^tRtR# )test_subclass.<locals>.subdaterl   N)r%   r&   r'   r(   r)   rl   r   r   subdaterv      s    r   rw   i  ZoN)r   r?   r@   )Zfig_testZfig_refrw   r3   r   test_subclassrx      sX    (  WT1a0!S9HT1a0!S9r   c                 s   V \         P                  \        &   \        \        P                  ! ^ ^^
4      R4      p\        \        P                  ! ^^^
4      R4      p\        \        P                  ! ^^^
4      R4      p\
        P                  ! ^^RRR7      w  pw  rVVP                  W4       VP                  W4       VP                  P                  R4       VP                  P                  R4       R# )r    r   r   ZallZsharexshareyr   r   N)r5   r=   r
   r    r>   r<   r?   r@   rE   rD   rC   )r7   rG   y1y2rH   ax1ax2   &      r   test_shared_axis_quantityr      s     2FOOHQ2&0A	"++aB'	0B	"++aB'	0Bll1aeDOC#HHQOHHQO II	"II!r   c            
      s   \        ^^4       U u. uF   p \        RV ^\        P                  R7      NK"  	  pp \        ^^4       U u. uF   p \        RV ^\        P                  R7      NK"  	  pp \        P
                  ! ^^RR7      w  pw  rEVP                  V4       VP                  V4       VP                  P                  \        \        ^R7      4      4       R# u up i u up i )rP   rs   )Ztzinfoi  T)rz   )r   N)
Zranger   r   Zutcr<   r?   r@   rC   rD   r   )rt   r{   r|   rH   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 
K	Js   &C&C"c                  s`   R ^R^/p R ^R^/p\         P                  ! ^^RRR7      w  pw  r4VP                  V P                  4       V P	                  4       4       VP                  VP                  4       VP	                  4       4       VP
                  P                  \        RR.4      4       R# )r6   rd   Try   ZcZdN)r<   r?   r@   keysvaluesrE   rD   r   )d1Zd2rH   r}   r~   rN   r   test_shared_axis_categoricalr      s    
q#q	B
q#q	Bll1aTBOC#HHRWWY		$HHRWWY		$II#s,-r   c                  s   R ^R^/p \        4       p\        4       p\        4       p\        P                  ! 4       w  rEVP                  P                  V4       VP                  V P                  4       V P                  4       4       VP                  P                  V4       \        P                  ! \        4      ;_uu_ 4        VP                  P                  V4       RRR4       \        P                  ! 4       w  rgVP                  V P                  4       V P                  4       4       VP                  P                  V4       \        P                  ! 4       w  rV	P                  V P                  4       V P                  4       4       \        P                  ! 4       ;_uu_ 4        V	P                  P                  V4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r6   rd   N)r   r	   r<   r?   rE   Zset_converterr@   r   r   pytestZraisesZRuntimeErrorZwarns)
r   Zstr_cat_converterZstr_cat_converter_2Zdate_converterZfig1r}   Zfig2r~   Zfig3Zax3s
             r   test_explicit_converterr      sA   
q#q	B,..0"_N IDII-. HHRWWY		$ II-.	|	$	$		 34 
% IDHHRWWY		$ II-.IDHHRWWY		$ 
		/ 
 
%	$ 
s   G(G!G	!G2	c           
      s   V \         P                  \        &   \        P                  ! 4       w  rVP
                  P                  \        ^
.R4      4       VP                  4        VP                  P                  \        ^
.R4      4       VP                  4        \        P                  ! 4       w  rVP                  ^4       VP                  \        \        P                  ! ^ ^4      R4      \        \        P                  ! ^ ^^4      R4      4       VP                  4        \        P                  ! 4       w  rVP                  ^4       VP                  \        \        P                  ! ^ ^4      R4      \        \        P                  ! ^ ^^4      R4      4       VP                  4        \        P                  ! 4       w  rVP
                  P                  \        ^
.R4      4       VP                  ^4       VP                  4        \        P                  ! 4       w  rVP                  P                  \        ^
.R4      4       VP                  ^4       VP                  4        R# )rr   r   r   N)r5   r=   r
   r<   r?   rE   Zupdate_unitsdraw_without_renderingrC   rA   r@   r    rn   rB   )r7   rH   r}   rI   s   &   r   test_empty_default_limitsr     s    2FOOH||~HCII8RD'23 II8RD'23  llnGCJJrNGGHRYYq!_g.RYYq!Q'02  llnGCJJrNGGHRYYq!_g.RYYq!Q'02  llnGCHH(B412JJrN  llnGCHH(B412JJrN r   c                   s@   a  ] tR tRt o R tRR lt]R 4       tRtV t	R# )Kerneli<  c                s<    \         P                  ! V4      V n        R # r   )r    Z
asanyarray_array)r   rM   r   r   r   ZKernel.__init__=  s    mmE*r   Nc                s&   VeM   WP                   P                  8w  d3   Ve/   V'       g'   \        RV P                   P                   RV R24      h\        P                  ! V P                   VR7      pV'       g   V# \        P
                  ! V4      # )NzConverting array from z to z requires a copyri   )r   rj   Z
ValueErrorr    r#   copy)r   rj   r   arrr1   r   r$   ZKernel.__array__@  sx    ++*;*;!; ,T[[->->,?tg-/ 
 jjE22RWWS\2r   c                s.    V P                   P                  # r   )r   shaper   r   r   r   ZKernel.shapeK  s    {{   r   )r   )NN)
r%   r&   r'   r(   r   r$   Zpropertyr   r)   r*   r+   r,   r   r   r   <  s#     +	3 ! !r   r   c                  sL    \        . RO4      p \        P                  ! V 4       R# )rP   N)rP      i   i   rK   )r   r<   r@   )Zkernels    r   test_plot_kernelr   P  s    O$FHHVr   c           	      s*   \         P                  ! ^RR7      w  pw  r#V P                  R4      pVP                  V4       RpVP	                  V4       \
        P                  ! V^ 3^ V3RRW#R7      pVP                  V4       VP                  4        R# )r   )ZnrowsZfigsizez2017-01-01T12z	test testr   )ZcoordsAZcoordsBZaxesAZaxesBN)rr   rK   )	r<   r?   Z	TimestamprB   rA   mpatchesZConnectionPatchZ
add_artistr   )ZpdrH   r}   r~   rG   rF   r   r   r   test_connection_patch_unitsr   V  s    llG<OC#
_%AKKNAKKN

"
"Aq6Aq6+16),9C NN3 r   )0r   r   r   ZplatformZunittest.mockr   Zmatplotlib.pyplotZpyplotr<   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.patchesZpatchesr   Zmatplotlib.unitsr   r5   Zmatplotlib.categoryr   r   Zmatplotlib.datesr	   Znumpyr    r   r
   Zfixturer7   ZmachinerJ   rO   rT   rf   rg   rh   rm   rq   ru   rx   r   r   r   r   r   r   r   r   rl   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   