+
     ]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
   	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/   r0   r1      && 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   )r7   ZConversionInterfacer   r3   axisinfor5   )Zqcr3   r5   s      r   quantity_converterr:   /   sP     
	#	#	%B
H w/BJ )N OBK ];BIr   zplot_pint.pngZmpl20Zx86_64gQ?)styletolc                 s   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       V P                  P                   '       g   Q hV P"                  P                   '       g   Q hV P$                  P                   '       g   Q h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rcParamsr7   registryr
   r    linspacesubplotsZsubplots_adjustplotaxhlineaxvlineyaxis	set_unitsxaxisr3   Zcalledr9   r5   )r:   yxfigaxs   &    r   test_numpy_facaderM   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22r   zplot_masked_units.pngTg{Gz?)Zremove_textr;   r<   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    rA   Zmaarrayr
   r?   rB   rC   )r   Zdata_maskedZdata_masked_unitsrK   rL           r   test_plot_masked_unitsrR   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# )   rO   r   N)r7   r@   r
   r?   rB   set_xlimset_ylim)r:   rK   rL   s   &  r    test_empty_set_limits_with_unitsrW   y   sU     2FOOHllnGCKKX&H(=>KKW%xG'<=r   zjpl_bar_units.pngZdpi)Zsavefig_kwargr;   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?     @rT   )matplotlib.testing.jpl_unitstesting	jpl_unitsregisterDurationkmEpochr   r?   rB   ZbarrV   r   ZdayrJ   ZwbrK   rL             r   test_jpl_bar_unitsri      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                  rX   )	r    NrY   rZ   r[   r>   r]   r^   rT   )r_   r`   ra   rb   rc   rd   re   r   r?   rB   ZbarhrU   rf   rh   r   test_jpl_barh_unitsrj      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                  sH   ^ 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W48X  g   Q hR# )r    NrZ   rY   r[   )
r_   r`   ra   rb   r   re   r7   r@   get_converterr3   )r   r\   ZjplZdt_convZjpl_convrQ   r   "test_jpl_datetime_units_consistentrl      s    00	NN	$2	B
++dr+
"Coo++B/77D$GG,,S199#tTJHr   c                  s    \         P                  ! \        P                  ! . R R7      \        P                  ! . 4      4       R# )zdatetime64[ns]dtypeN)r?   scatterr    rP    r   r   test_empty_arraysrq      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]rm   N)
r    arangeZlenZfloatZnanr?   rB   ro   canvasdraw)ZtimesrI   rK   rL   s       r   test_scatter_element0_maskedru      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    rr   r   r?   rB   Zerrorbarr   rs   rt   )rJ   irI   rK   rL   rQ   r   test_errorbar_mixed_unitsry      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>.subdaterp   N)r%   r&   r'   r(   r)   rp   r   r   subdaterz      s    r   r{   i  ZoN)r   rB   rC   )Zfig_testZfig_refr{   r4   r   test_subclassr|      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                  4       VP                  P                  4       u;8X  d	   R8X  g   Q h Q hVP                  P                  4       VP                  P                  4       u;8X  d	   R8X  g   Q h Q hVP                  P                  R4       VP                  P                  R4       VP                  P                  4       VP                  P                  4       u;8X  d	   R8X  g   Q h Q hVP                  P                  4       VP                  P                  4       u;8X  d	   R8X  g   Q h Q hR# )r    r   r   ZallZsharexshareyr   r   N)r7   r@   r
   r    rA   r?   rB   rC   rH   r.   rF   rG   )r:   rJ   y1y2rK   ax1ax2   &      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.   \        ^^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       VP                  P                  \        \        ^R7      4      8X  g   Q hR# u up i u up i )rS   rw   )Ztzinfoi  T)r~   )r   N)Zranger   r   Zutcr?   rB   rC   rF   rG   r   r   )rx   r   r   rK   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   &D&D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VP
                  P                  4       P                  P                  4       9   g   Q hR# )r8   rg   Tr}   ZcZdN)
r?   rB   rC   keysvaluesrH   rG   r   r.   Z_mapping)d1Zd2rK   r   r   rQ   r   test_shared_axis_categoricalr      s    
q#q	B
q#q	Bll1aTBOC#HHRWWY		$HHRWWY		$II#s,-#))%%'00557777r   c                  sn   R ^R^/p \        4       p\        4       p\        4       p\        P                  ! 4       w  rEVP                  P                  V4       VP                  P                  4       V8X  g   Q hVP                  V P                  4       V P                  4       4       VP                  P                  4       V8X  g   Q h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)r8   rg   N)r   r	   r?   rB   rH   Zset_converterrk   rC   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      su   
q#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   H*H#H 	#H4	c           
      s   V \         P                  \        &   \        P                  ! 4       w  rVP
                  P                  \        ^
.R4      4       VP                  4        VP                  4       R8X  g   Q hVP                  P                  \        ^
.R4      4       VP                  4        VP                  4       R8X  g   Q h\        P                  ! 4       w  rVP                  ^4       VP                  \        \        P                  ! ^ ^4      R4      \        \        P                  ! ^ ^^4      R4      4       VP                  4        VP                  4       R8X  g   Q hVP                  4       R8X  g   Q h\        P                  ! 4       w  rVP                  ^4       VP                  \        \        P                  ! ^ ^4      R4      \        \        P                  ! ^ ^^4      R4      4       VP                  4        VP                  4       R8X  g   Q hVP                  4       R8X  g   Q h\        P                  ! 4       w  rVP
                  P                  \        ^
.R4      4       VP                  ^4       VP                  4        VP                  4       R8X  g   Q hVP                  4       R8X  g   Q h\        P                  ! 4       w  rVP                  P                  \        ^
.R4      4       VP                  ^4       VP                  4        VP                  4       R8X  g   Q hVP                  4       R8X  g   Q hR# )	rv   r   r   Nr6   )r       )r    i   )r       )g     <@g     ?@)r7   r@   r
   r?   rB   rH   Zupdate_unitsdraw_without_renderingZget_xlimrF   Zget_ylimrD   rC   r    rr   rE   )r:   rK   r   rL   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                   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   rP   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 copyrm   )r   rn   Z
ValueErrorr    r#   copy)r   rn   r   arrr2   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# )rS   N)rS   r   i   r   rN   )r   r?   rC   )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)rv   rN   )	r?   rB   Z	TimestamprE   rD   mpatchesZConnectionPatchZ
add_artistr   )ZpdrK   r   r   rJ   rI   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   r7   Zmatplotlib.categoryr   r   Zmatplotlib.datesr	   Znumpyr    r   r
   Zfixturer:   ZmachinerM   rR   rW   ri   rj   rl   rq   ru   ry   r|   r   r   r   r   r   r   r   r   rp   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   