+
    iI                     j   ^ RI H t  ^ RIt^ RIt^ RIt^ RIHt ^ RIHt	 ^ RI
t
^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ RIHt  ^ R
I!H"t"H#t# ^ RI$H%t% ^ RI&H't'H(t(H)t) ]	! ]
PT                  4      t+]#! R.4      R 4       t,]#! R.4      R 4       t-]#! R.RR7      R 4       t.]#! R.RR7      R 4       t/R t0]#! R.4      R 4       t1R t2]Pf                  Pi                  R]5]6R3]5^ ^ .R3]7RR3]7R R!3]7R"R#3]7R$R%334      R& 4       t8]#! R'.4      R( 4       t9]#! R).RR7      R* 4       t:]#! R+.4      R, 4       t;R- t<R. t=]Pf                  Pi                  R/R0R1.R2R3.R47      R5 4       t>R6 t?R7 t@R8 tAR9 tBR: tCR; tD]Pf                  Pi                  R<. RO4      ]Pf                  Pi                  R=. RO4      R> 4       4       tE]#! R?.4      R@ 4       tF]#! RA.4      RB 4       tG]#! RC.4      RD 4       tHRE tI]#! RF.4      RG 4       tJRH tK]#! RI.4      RJ 4       tL]Pf                  Pi                  RK. RO4      RL 4       tMRM tNRN tORO tP]%RP 4       tQ]%RQ 4       tR]Pf                  Pi                  RR. RO4      RT 4       tS]#! RU.4      RV 4       tT]#! RW.4      RX 4       tURY tVRZ tW]"! RS.R[7      R\ 4       tX]#! R].RR7      R^ 4       tY]Pf                  Pi                  R_. RO4      R` 4       tZRa t[Rb t\Rc t]Rd t^]"! RS.R[7      Re 4       t_Rf t`Rg taRh tb]Pf                  Pi                  RiRj^Z..4      Rk 4       tcRl td]#! Rm.RR7      Rn 4       teRo tf]Pf                  P                  ]+P                  R8H  RpRq7      Rr 4       ti]Pf                  P                  ]+P                  R8H  RpRq7      Rs 4       tj]#! Rt.RR7      Ru 4       tk]#! Rv.RR7      Rw 4       tl]%Rx 4       tmRy tnRz toR{ tp]"! RS.R[7      R| 4       tq]"! 4       R} 4       tr]"! 4       R~ 4       tsR ttR tuR tvR tw]#! R.RS.R7      R 4       tx]#! R.RS.R7      R 4       tyR# )    )datetimeN)assert_almost_equal)parse)
MouseEvent)RendererAgg)Figure)FontProperties)GridSpec)check_figures_equalimage_comparison)needs_usetex)Text
Annotation
OffsetFromfont_stylesc            	        a	a
 V	V
3R  lp ^ RI Ho	Ho
 \        P                  ! RR\
        RR7       \        P                  ! 4       w  rV ! RRR^R7      pVP                  R	RR
VR7      pVP                  4       R8X  g   Q hVP                  4       R8X  g   Q hVP                  4       R8X  g   Q hVP                  4       R8X  g   Q hVP                  4       R8X  g   Q hV ! RRRRR^R7      pVP                  RRR
VR7       V ! RRRRR^R7      pVP                  RRR
VR7       V ! RRR^R^R7      pVP                  RRR
VR7       V ! RRRR^d^R7      pVP                  RRR
VR7       VP                  . 4       VP                  . 4       R# )c                  `   < S! R/ V B pS! V\         P                  ! 4       R 7      pS! VR7      # ))	directory)fname )mplget_data_path)kwproppathr	   findfonts   ,  z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/matplotlib/tests/test_text.pyfind_matplotlib_font.test_font_styles.<locals>.find_matplotlib_font   s0    ##(9(9(;<D))    )r	   r   ignorez>findfont: Font family \[u?'Foo'\] not found. Falling back to .zmatplotlib.font_manager)modulez
sans-serifnormal)familystylevariantsizezNormal Fontaxes fraction)xycoordsfontpropertieszDejaVu SansFooboldi  )r$   r%   r&   weightstretchr'   z	Bold Font
sans serifitalici  zBold Italic Fontz
Light FontzCondensed FontN)皙?r1   )r1   皙?)r1   333333?)r1   皙?)r1         ?)matplotlib.font_managerr	   r   warningsfilterwarningsUserWarningpltsubplotsannotateget_fontnameget_fontstyleget_fontvariant
get_weightget_stretch
set_xticks
set_yticks)r   figaxnormal_fonta	bold_fontbold_italic_font
light_fontcondensed_fontr	   r   s            @@r   test_font_stylesrL      s   *
 AI(	* llnGC&	K
 	 "	 	 	$A
 >>},,,??((((***<<>X%%%==?h&&&$I KK  	  " , KK '	  ) &J KK !	  # *N KK %	  ' MM"MM"r    	multilinec            	         \         P                  ! 4        \         P                  ! ^^^4      p V P                  R4       \         P                  ! RRR^RRR7       \         P                  ! RRR^RRR7       \         P                  ! R	RR
^RRR7       \         P
                  ! ^ ^4       \         P                  ! ^ R	4       V P                  . 4       V P                  . 4       R# )   zmultiline
text alignmentr2   r5   zTpTpTp
$M$
TpTpTpcentertop)r'   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpg?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpN)	r:   figuresubplot	set_titletextxlimylimrB   rC   rE   s    r   test_multiliner[   t   s    JJL	Q1	BLL,-HHS'bX%I HHS3" HHS3" HHQNHHQMM"MM"r    
multiline2mpl20)r%   c            
      6  a ^\         P                  R&   \         P                  ! 4       w  rVP                  ^ R.4       VP	                  ^ ^.4       VP                  RRRR7       . ROpV P                  P                  4       oV3R lpRp\        V4       F0  w  rVVP                  R	V,          R
,           RWdRR7      pV! W4       K2  	  VP                  RRRRR7       VP                  RRRR7       \        V4       F0  w  rVVP                  R	V,          R
,           RWdRR7      pV! W4       K2  	  VP                  RRRRR7       VP                  RRRR7       \        V4       F0  w  rVVP                  R	V,          R
,           RWdRR7      pV! W4       K2  	  VP                  RRRRR7       VP                  R
RRR7       \        V4       F1  w  rVVP                  R	V,          R
,           R
WdR^R7      pV! W4       K3  	  VP                  RR
RRR7       R# )   text.kerning_factorgffffff?r5   C2r3   )color	linewidthc                   < \         P                  ! R^^RV P                  R7      pVP                  VP	                  S4      P                  V P                  P                  4       4      P                  4       V P                  V4       R# )r   F)clip_on	transformNr   r   )	mpatches	Rectangle	transAxes
set_boundsget_window_extenttransformedinvertedbounds	add_patch)rE   ttrrenderers   && r   draw_box!test_multiline2.<locals>.draw_box   se    vq!U)+7	  *[..01V	 	Qr    leftr2   r1   bottom)horizontalalignmentverticalalignmentg333333?zBottom alignrb   g?rQ   z	Top aligng?baselinezBaseline align)rx   ry   rotationzBot align, rot20N)Linez2 Lineg
 2 Lgz$\sum_i x $zhi $\sum_i x $
testztest
 $\sum_i x $z$\sum_i x $
 $\sum_i x $)
r:   rcParamsr;   set_xlimset_ylimaxhlinecanvasget_renderer	enumeraterW   )	rD   rE   stsrt   horalnnstrq   rs   s	           @r   test_multiline2r      s    +,CLL&'llnGCKKCKKAJJs$#J.ACzz&&(H EC.WWS2X^S"'/  1 ! GGCnDG1JJs$#J.C.WWS2X^S"',  . ! GGCkG.JJs$#J.C.WWS2X^S"'1  3 ! GGC&dG3JJs$#J.C.WWS2X^S"'/"  > ! GGC(G5r    zantialiased.pngc            	      ^   R \         P                  R&   \        P                  ! RR7      p V P	                  RRRRRRR7       V P	                  RR	R
RRRR7       R\         P                  R&   V P	                  RRRRRR R7       V P	                  RR	R
RRR R7       R \         P                  R&   R# )Ftext.antialiased      ?figsizer3   antialiasedrP   T)rx   ry   r         ?z
$\sqrt{x}$ffffff?znot antialiasedN)g      @r   )r   r~   r:   rT   rW   rD   s    r   test_antialiasingr      s    ',CLL#$
**\
*CHHS$8'T  ;HHS$8'T  ; (,CLL#$HHS$)x'U  <HHS$8'U  < (-CLL#$r    c                     \         P                  P                  R RR7      p \        V R4      ;_uu_ 4       p\         P                  P                  V4      pRRR4       XP                  R4      R8X  g   Q hR#   + '       g   i     L*; i)	Helveticaafm)fontextrbNVAVAVAVAVAVA)g     @i  )r   font_managerr   open_afmAFMstring_width_height)fnfhr   s      r   test_afm_kerningr      sb    				"	";	"	>B	b$2hhll2 
"">2mCCC 
s    A88B	ztext_contains.pngc            	      $   \         P                  ! 4       p \         P                  ! 4       p\        R V P                  RR^R4      p\
        P                  ! RR^4      p\
        P                  ! RR^4      p\
        P                  ! W44      w  r4\         P                  ! RRRR^^R7      pV P                  P                  4        \        VP                  VP                  4       F  w  rg\         P                  ! 4       P                  P                  Wg.4      w  Vn        Vn        VP#                  V4      w  rV'       d   R	MR
p
VP$                  P'                  4       pVP)                  WgRV
R7       VP$                  P+                  V4       K  	  R# )button_press_eventr5   Nr   r   r4   zhello worldrP   )rR   fontsizer|   yellowredorz   )r:   rT   axesr   r   nplinspacemeshgridrW   drawzipflatgcarj   rf   xycontainsviewLimfrozenplotset)rD   rE   meventxsystxtr   r   r   _rb   vls               r   test_containsr      s"   
**,C	B,cjj#sAtLF	T4	$B	T4	$B[[ FB
((S-HrBHC JJOOBGGRWW% WWY00::A6B&(ll6*$% ZZ 
c'


r &r    c                  ,   \         P                  ! 4       w  rVP                  R RRRR/R7      pV P                  P	                  4        \        RV P                  .VP                  P                  R	4      O5!  pVP                  V4      R/ 38X  g   Q hR# )
hello
arrowstylez->)xyxytext
arrowpropsr   FN)r4   r4   )333333?r   )r5   r   )	r:   r;   r<   r   r   r   	transDatarf   r   )rD   rE   annevents       r   test_annotation_containsr      s     llnGC
++HX<:N  PCJJOOcjjM+-<<+A+A(+KME<<5"+---r    zerr, xycoords, matchz<xycoords callable must return a BboxBase or Transform, not az,'xycoords' must be an instance of str, tuplefooz'foo' is not a valid coordinatezfoo barz#'foo bar' is not a valid coordinatez
offset fooz'xycoords cannot be an offset coordinatezaxes fooz'foo' is not a recognized unitc           	      
   \         P                  ! 4       w  r4\        P                  ! WR 7      ;_uu_ 4        VP	                  RRRVR7       VP
                  P                  4        RRR4       R#   + '       g   i     R# ; i)matchr   )r   r)   Nrg   r5   r5   )r:   r;   pytestraisesr<   r   r   )errr)   r   rD   rE   s   &&&  r   test_annotate_errorsr     sQ     llnGC	s	(	(
D&hG

 
)	(	(	(s   0A11B	titlesc                      \         P                  ! 4        \         P                  ! ^^^4      p V P                  RRR7       V P                  RRR7       V P	                  . 4       V P                  . 4       R# )rO   z
left titlerv   loczright titlerightN)r:   rT   rU   rV   rB   rC   rZ   s    r   test_titlesr     sW     JJL	Q1	BLL6L*LLGL,MM"MM"r    text_alignmentc                     \         P                  ! 4        \         P                  ! ^^^4      p RpR FS  pR FJ  pV P                  VRVR,           W2\	        RRRR7      R7       V P                  VRR	W2R
7       VR,          pKL  	  KU  	  V P                  ^ ^.RR.4       V P                  ^ ^.RR.4       V P                  ^ ^4       V P                  ^ R4       V P                  . 4       V P                  . 4       R# )rO   r1   r5   z Tjroundwheat)boxstyle	facecoloralpha)rS   r|   bboxg      ?z$\sum_{i=0}^{j}$)rS   r|   g      ?N)r      )rQ   rw   r{   rP   )
r:   rT   rU   rW   dictr   r   r   rB   rC   )rE   r   r|   	alignments       r   test_alignmentr     s    JJL	Q1	BA@IGG3	E)i7gSI  K GG3+	  NHA A  GGQFS#JGGQFS#JKK1KK3MM"MM"r    zaxes_titles.pngc                      \         P                  ! 4        \         P                  ! ^^^4      p V P                  RR^RR7       V P                  RR^RR7       V P                  RR^RR7       R# )rO   rP   i  )r   r   
fontweightrv   i  r   N)r:   rT   rU   rV   rZ   s    r   test_axes_titlesr   7  s[     JJL	Q1	BLLx"LELLVbSLALLgsLCr    c                     \         P                  ! 4       w  rVP                  R RRRR7      pV P                  P	                  4        VP                  V P                  P                  4      p^pVP                  WD34       V P                  P	                  4        VP                  V P                  P                  4      p\        VP                  VP                  4       F  w  rgWd,           V8X  d   K  Q h	  VP                  R RRRR7      pV P                  P	                  4        VP                  V P                  P                  4      p^pWD3Vn
        V P                  P	                  4        VP                  V P                  P                  4      p\        VP                  VP                  4       F  w  rgWd,           V8X  d   K  Q h	  R# )testfigure pixels)r   
textcoordsNrg   )r:   r;   r<   r   r   rl   rs   set_positionr   minxyann)rD   rE   r   init_pos	shift_valpost_posrG   bs           r   test_set_positionr   A  sh   llnGC ++v/  CCJJOO$$SZZ%8%89HIi+,JJOO$$SZZ%8%89HHLL(,,/}!!! 0 ++v/  CCJJOO$$SZZ%8%89HI&CIJJOO$$SZZ%8%89HHLL(,,/}!!! 0r    c                  (   \         P                  ! 4       p V P                  R RR4      pVP                  R4       VP	                  4       pVP
                  VP                  ,
          pVP                  R4       VP	                  4       pVP
                  VP                  ,
          pVP                  R4       VP	                  4       pVP                  pVP                  WS,
          4      ^ 8X  g   Q hVP                  V4      ^ 8X  g   Q hVP                  VRV,          ,           4      ^ 8X  g   Q hVP                  VRV,          ,           4      ^8X  g   Q hVP                  WS^,          ,           4      ^8X  g   Q hVP                  WS^,          ,           V^,          ,           4      ^8X  g   Q hVP                  WS^,          ,           V^,          ,           4      ^8X  g   Q hVP                  WS^,          ,           V^
,          ,           4      ^8X  g   Q hR# )	r1   ? imiiiimmmmgV-?gx&1?N)r:   rT   rW   set_textrl   x1x0_char_index_at)rD   rW   r   size_isize_morigins         r   test_char_index_atr   a  s   
**,C88Cb!DMM#!!#DWWtwwFMM#!!#DWWtwwFMM*!!#DWWFv/1444v&!+++vf45:::vf45:::vq01Q666vq06!8;<AAAvq06!8;<AAAvq06"9<=BBBr    rW   r   Oemptyz	non-empty)idsc                    \         P                  ! 4       w  rVP                  R R V RRR7      pVP                  P	                  4        VP
                  pVP                  4       pVP                  V^
,          R7      p\        P                  P                  VP                  4       VP                  4       ^
,          RR7       VP
                  V8X  g   Q hR# )r5   rv   rw   )rR   rS   dpi皙?rtolN)r:   r;   rW   r   r   r  rl   r   testingassert_allclose
get_points)rW   rD   rE   t1r  bbox1bbox2s   &      r   test_non_default_dpir  {  s    llnGC	c4Fx	8BJJOO
''C  "E  S2X .EJJu//153C3C3E3J$(  * 77c>>r    c                      \        R R7      P                  4       R8X  g   Q h\        RR7      P                  4       R8X  g   Q hR# )
horizontalr|           verticalg     V@Nr   get_rotationr   r    r   test_get_rotation_stringr    s:    &335;;;$113s:::r    c                  Z    R F$  p \        V R7      P                  4       V 8X  d   K$  Q h	  R# )      .@r  N)r  g333330@gYS@r  r   s    r   test_get_rotation_floatr    s(    Q,,.!333  r    c                  l    R F-  p \        V R7      P                  4       \        V 4      8X  d   K-  Q h	  R# )C   r  N)r     )   )r   r  floatr  s    r   test_get_rotation_intr"    s,    Q,,.%(::: r    c                      \         P                  ! \        4      ;_uu_ 4        \        R R7       RRR4       R#   + '       g   i     R# ; i)
hozirontalr  Nr   r   
ValueErrorr   r   r    r   test_get_rotation_raisesr'    s(    	z	"	"l# 
#	"	"	"s	   :A	c                  H    \        R R7      P                  4       R8X  g   Q hR # )Nr  r  r  r   r    r   test_get_rotation_noner)    s    ++-444r    c                      \        . RO. RO4       F)  w  r\        \        V R7      P                  4       V4       K+  	  R# )     v@r  N)r+  g     w@g	@)r  g      1@gfffff&f@)r   r   r   r  )r   js     r   test_get_rotation_mod360r-    s/    +-=>D!,99;Q? ?r    rR   rS   c                    \         P                  ! 4       w  r#\        ^ WR7      pVP                  ! RRR/VB pVP                  ! RRR/VB pVP                  P                  4        \        VP                  VP                  P                  4      P                  4       VP                  VP                  P                  4      P                  4       4       R# )r   )r|   rS   rR   rotation_modeanchordefaultN)r5   r5   r   )
r:   r;   r   rW   r   r   r   rl   rs   r  )rR   rS   rD   rE   r   t0r  s   &&     r   %test_null_rotation_with_rotation_moder3    s     llnGC	qR	'B		>x	>2	>B		?y	?B	?BJJOO,,SZZ-@-@ALLN,,SZZ-@-@ALLNPr    text_bboxclipc                      \         P                  ! R RRRRR7       \         P                  ! R RRRR7      p V P                  R	R
/4       R# )r   r2   zIs bbox clipped?rr   T)backgroundcolorre   r5   zIs fancy bbox clipped?re   r   zround, pad=0.1N)r:   rW   set_bbox)ts    r   test_bbox_clippingr:    s>    HHS#)3Mc3TBAJJ
,-.r    z!annotation_negative_ax_coords.pngc            
      ~   \         P                  ! 4       w  rVP                  R ^^.R^^.R^ R7       VP                  R^R.R^R.R^ RR7       VP                  RRR.R	RR.R	^ R7       VP                  R
RR.R	RR.R	^ RR7       VP                  R^^.R^^.R^ R7       VP                  R^R.R^R.R^ RR7       R# )+ ptszaxes pointsr   r   r   r)   r   - ptsrQ   r   r   r   r)   r   rS   + fracr   r  r(   - frac+ pixelszaxes pixels- pixelsNi皙ir:   r;   r<   rD   rE   s     r   "test_annotation_negative_ax_coordsrG    s   llnGCKKBxM8mb  B KKCy]9}r   KKd|$</B  H KKe}%=?R  
 KK
Ry]9}r  C KK
Szm:  r    z"annotation_negative_fig_coords.pngc            
      ~   \         P                  ! 4       w  rVP                  R ^
^x.R^
^x.R^ R7       VP                  RR^.RR^.R^ RR7       VP                  RRR.R	RR.R	^ R7       VP                  R
RR.R	RR.R	^ RR7       VP                  R^2^2.R^2^2.R^ R7       VP                  RR^d.RR^d.R^ RR7       R# )r<  zfigure pointsr=  r>  rQ   r?  r@  r  g?zfigure fractionrA  r5   rB  r   rC  NrD  irE  rF  s     r   #test_annotation_negative_fig_coordsrJ    s   llnGCKKCy_9  E KKSzo:"   KKd|0A$<*;b  J KKs|0A3<*;b  
 KK
BxO8o  D KK
Szo:"  r    c                     \         P                  ! ^^4      w  p w  r\         P                  ! 4        VP                  '       d   Q hVP                  '       d   Q hV P                  '       d   Q hVP	                  RRR4      pVP                  '       g   Q hVP                  '       g   Q hV P                  '       g   Q hVP                  RRR.R7      pVP                  '       g   Q hVP                  '       g   Q hV P                  '       g   Q h\         P                  ! 4        VP                  '       d   Q hVP                  '       d   Q hV P                  '       d   Q hR# )rO   r5   aardvarkr   N)r:   r;   draw_allstalerW   r<   )rD   ax1ax2txt1ann1s        r   test_text_stalerT    s    ll1a(OC#LLNyyy=yyy=yyy=88BJ'D9999::::9999<<
Bx<0D9999::::9999LLNyyy=yyy=yyy=yr    zagg_text_clip.pngc                     \         P                  P                  ^4       \        P                  ! ^4      w  p w  r\         P                  P                  ^
^4       F+  w  r4VP                  W4RRR7       VP                  W4R4       K-  	  R# )rO   r   Tr7  N)r   randomseedr:   r;   randrW   )rD   rP  rQ  r   r   s        r   test_agg_text_cliprY    s`    IINN1ll1oOC#		r1%ud+u &r    c                      ^
\         P                  R&   \         P                  P                  RR7      p V P	                  4       p^d\         P                  R&   WP	                  4       8X  g   Q hR# )
   z	font.sizelarger'   N)r   r~   r   r	   get_size_in_points)fpsz1s     r   test_text_size_bindingra    sZ     "CLL				(	(g	(	6B



!C #CLL''))))r    zfont_scaling.pdfc                     ^*\         P                  R&   \        P                  ! RR7      w  rVP                  P                  \        P                  ! 4       4       VP                  P                  \        P                  ! 4       4       VP                  R	R4       \        \        ^^+^4      4       F$  w  r#VP                  RV^,          V R2VR7       K&  	  R# )
*   pdf.fonttyper   iX  r1   z pt font size)r   N)g@g(@rI  )r   r~   r:   r;   xaxisset_major_locatorNullLocatoryaxisr   r   rangerW   )rD   rE   r   fss       r   test_font_scalingrk    s    #%CLL ll;/GCHHs01HHs01KKS5B?+
QrTbT/"= ,r    zspacing1, spacing2c                    R p\         P                  ! 4       pVP                  P                  4       pVP	                  RRW R7      pVP	                  RRW!R7      pVP                  P                  4        VP                  VR7      pVP                  VR7      pVP                  VP                  8X  g   Q hW8X  d    VP                  VP                  8X  g   Q hR# VP                  VP                  8w  g   Q hR# )zline1
line2r   r5   linespacingrs   N)	r:   rT   r   r   rW   r   rl   widthheight)	spacing1spacing2text_stringrD   rs   text1text2box1box2s	   &&       r   test_two_2line_textsry  )  s     K
**,Czz&&(HHHT3HBEHHT3HBEJJOO""H"5D""H"5D ::###{{dkk))){{dkk)))r    c            	          \         P                  ! \        4      ;_uu_ 4        \        P                  ! R RRRR7       RRR4       R#   + '       g   i     R# ; i)r   r5   r   abcrm  N)r   r   	TypeErrorr:   rW   r   r    r   test_validate_linespacingr}  >  s2    	y	!	!b%U3 
"	!	!	!   AA	c                      \         P                  ! 4       w  rVP                  ^ \        P                  R4       VP                  \        P
                  ^ R4       V P                  P                  4        R# )r   naninfN)r:   r;   rW   r   r  r  r   r   rF  s     r   test_nonfinite_posr  C  sE    llnGCGGArvvuGGBFFAuJJOOr    c                     ^\         P                  R&   \         P                  ! 4       p V P                  RRR4      pV P	                  \
        P                  ! 4       RR7       VP                  4       P                  pV P	                  \
        P                  ! 4       RR7       \        P                  P                  VP                  4       P                  VRR7       R	# )
rO   ztext.hinting_factorr5   z	some textsvgformatpngr1   r  N)r:   r~   rT   rW   savefigioBytesIOrl   	intervalxr   r
  r  )rD   r9  expecteds      r   test_hinting_factor_backendsr  J  s    *+CLL&'
**,Cc;'AKK

UK+""$..HKK

UK+JJq224>>$'  )r    c                     \         P                  ! 4       p R \         P                  R&   V P                  ^y4      pR\         P                  R&   V P                  ^z4      pV P                  P                  4        VR 3VR33 FC  w  r4VP                  P                   F$  pVP                  P                  4       V8X  d   K$  Q h	  KE  	  R# )Ftext.usetexTN)
r:   rT   r~   add_subplotr   r   re  
majorTickslabel1
get_usetex)rD   rP  rQ  rE   usetexr9  s         r   test_usetex_is_copiedr  X  s     **,C"'CLL
//#
C"&CLL
//#
CJJOOU|c4[1
$$A88&&(F222 % 2r    c                      \         P                  ! 4       p V P                  R R RRR7       V P                  P	                  4        R# )r5   z	$\frac12$Tr  N)r:   rT   rW   r   r   r   s    r   test_single_artist_usetexr  g  s1    
 **,CHHR\$H/JJOOr    fmtr  c                     R \         P                  R&   \         P                  ! 4       pVP                  RRRRR7       VP	                  \
        P                  ! 4       V R7       R# )Tr  r5   2_2_2Fr  r  N)r:   r~   rT   rW   r  r  r  )r  rD   s   & r   test_single_artist_usenotexr  q  sG     #'CLL
**,CHHRWUH+KK

SK)r    ztext_as_path_opacity.svgc                     \         P                  ! 4        \         P                  ! 4       P                  4        \         P                  ! R R RR
R7       \         P                  ! R RRRR7       \         P                  ! R RRRRR7       R	# )r   cr5   rz   rG   r   r   r   r   rb   Nr   r   r   r5   r   r   r   rO   )r:   rT   r   set_axis_offrW   r   r    r   test_text_as_path_opacityr  }  sU    JJLGGIHHT4N3HHT33'HHT4C|<r    ztext_as_text_opacity.svgc                  :   R \         P                  R&   \        P                  ! 4        \        P                  ! 4       P                  4        \        P                  ! RRRRR7       \        P                  ! RRRRR7       \        P                  ! RRR	RRR
7       R# )nonezsvg.fonttyper   z50% using `color`r5   rz   z50% using `alpha`r  r   z"50% using `alpha` and 100% `color`r  Nr  r  )r   r~   r:   rT   r   r  rW   r   r    r   test_text_as_text_opacityr    si    #)CLL JJLGGIHHT4,NCHHT3+37HHT4=S!r    c                      \         P                  ! R R.^^.4       \        \         P                  ! R .RR4      4       R# )ABr5   BooN)r:   r   reprrW   r   r    r   test_text_reprr    s/    HHc3Z!Q 3%e	$%r    c                     \         P                  ! ^^4      w  rVP                  RRR7      pVP                  V P                  P                  4       4      pV P                  4        VP                  V P                  P                  4       4      p\        P                  ! VP                  4       VP                  4       RR7      '       d   Q hR# )rO   
annotationrM  gư>r  Nr   )
r:   r;   r<   rl   r   r   tight_layoutr   allcloser  )rD   rE   anextent1extent2s        r   test_annotation_updater    s    ll1a GC	\j	1B""3::#:#:#<=G""3::#:#:#<=G{{7--/1C1C1E $& & & & &r    )
extensionsc                    V P                  4       pVP                  \        P                  ! 4       ^R4       VP	                  R\        P                  ! 4       R3RR	RR7       VP                  4       pVP                  \        P                  ! 4       ^R4       VP	                  R\        P                  ! 4       R3RR7       R# )
rO   r   r   r5   offset points)r)   r   r   )r)   N)datar(   rg   )r  r   r   nowr<   fig_testfig_refrE   s   && r   test_annotation_unitsr    s    				BGGHLLNAs#KKhllnc*5N/  ; 
			BGGHLLNAs#KKhllnc*5NKOr    zlarge_subscript_title.pngc                     ^\         P                  R&   R\         P                  R&   \         P                  ! ^^RRR7      w  rV^ ,          pVP                  R4       VP                  RRR	7       VP	                  . 4       V^,          pVP                  RR
R7       VP                  RRR	7       VP	                  . 4       R# )r_   r`   Nzaxes.titleyT)r   constrained_layoutz$\sum_{i} x_i$zNew wayrv   r   g)\(?)r   zOld Way)	   g      @)r:   r~   r;   rV   set_xticklabels)rD   axsrE   s      r   test_large_subscript_titler    s     +,CLL&'"&CLL||Aq(tLHC	QBLL"#LLL'r	QBLL"dL+LLL'rr    zx, rotation, halignc           	         \         P                  ! R	R7      p\        ^^VR7      pVP                  VR
,          4      pRpVP	                  V RVRWR7      pVP
                  P                  4        VP                  4       R8X  g   Q hR# )   r   )nrowsncolsrT   z?This is a very long text that should be wrapped multiple times.r   T)wrapr|   rR   z?This is a very long
text that should be
wrapped multiple
times.N)r  r  rO   rO   )r:   rT   r
   add_subfigurerW   r   r   _get_wrapped_text)r   r|   halignrD   gssubfigsrW   s   &&&     r   	test_wrapr    s     **X
&C	3	/Br$x(F 	JA;;q#qth;JDJJOO!!# )1 2 2 2r    c                      \         P                  ! RR7      p RpV P                  ^ RV^(RR7      pV P                  P	                  4        VP                  4       R8X  g   Q hR# )	r_   r   z;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r5   T)r'   r  z;This is a very $\overline{\mathrm{long}}$
line of Mathtext.Nr_      r:   rT   rW   r   r   r  )rD   r  rW   s      r   test_mathwrapr    s[    
**V
$CFA88AsABT82DJJOO!!# )< = = =r    c                     \         P                  ! RR7      p V P                  RRR7       V P                  P	                  4       p\         P                  ! RR7      pVP                  R4       VP                  P	                  4       pVP
                  VP
                  8X  g   Q hVP                  VP                  8X  g   Q hR# )   r   z.suptitle that is clearly too long in this caseTr  z.suptitle that is clearly
too long in this caseN)r  r  )r:   rT   suptitle	_suptitlerl   y0y1)fig1window_extent_testfig2window_extent_refs       r   test_get_window_extent_wrappedr    s     ::f%DMMBMN99;::f%DMMCD88:  $5$8$8888  $5$8$8888r    c                      \         P                  ! RR7      p V P                  R^RRR7      pV P                  P	                  4        VP                  4       R8X  g   Q hR# )r_   r   g      #@AlonglineoftexttowrapTr  Nr  r  rD   rW   s     r   test_long_word_wrapr    sM    
**V
$C88C3$8?DJJOO!!#'>>>>r    c                      \         P                  ! RR7      p V P                  ^ ^ RRR7      pV P                  P	                  4        VP                  4       R8X  g   Q hR# )r_   r   znon wrapped textTr  Nr  r  r  s     r   test_wrap_no_wrapr    sM    
**V
$C88Aq,488DJJOO!!#'9999r    c                 J   V P                  4       pVP                  ^ ^.4       VP                  RR.4       VP                  P                  ^,          P
                  P                  R4       VP                  4       pVP                  ^ ^.4       VP                  RR.4       R# )r   u   €rG   wr   N)r  rC   set_yticklabelsrh  r  r  	set_colorr  s   && r   test_buffer_sizer    s    
 
			BMM1a&s|$HH!!++C0				BMM1a&r{#r    c                     \         P                  ! 4        \         P                  ! RRRR7      p \         P                  ! RRRR7      pV P	                  4       R8X  g   Q hVP	                  4       R8X  g   Q hR# )z>Test that kwargs take precedence over fontproperties defaults.valuezTimes New Romang      D@)r*   r'   counts)r'   r*   N)r:   rT   xlabelylabelget_size)ru  rv  s     r   $test_fontproperties_kwarg_precedencer  
  s[    JJLJJw/@tLEJJxd;LME>>t###>>t###r    c                      \         P                  ! 4       p \        P                  ! 4       P	                  ^4      pV P                  ^ ^ RVRR7      pVP                  4       p\        V^4       R# )r   r   T)rf   transform_rotates_textN)r:   r   mtransformsAffine2D
rotate_degrW   r  r   )rE   rf   rW   results       r   test_transform_rotates_textr    s\    	B$$&11"5I771a9*.  0D F#r    c                      \        \        R R7      RR7      p \        V 4      p\        4       pVP                  V 4       V R,          VR,          8X  g   Q hV R,          VR,          8X  g   Q hR# )r,   )r-   N)r*   r   r*   r   )r   r	   r   update)inpcacher9  s      r   test_update_mutate_inputr     sa    
nF;CIEAHHSM E*:$;;;;v;%-'''r    r|   zinvalid stringc           	          \         P                  ! \        R R7      ;_uu_ 4        \        ^ ^ RV R7       RRR4       R#   + '       g   i     R# ; i)z5rotation must be 'vertical', 'horizontal' or a numberr   r   r  Nr%  r  s   &r   test_invalid_rotation_valuesr  &  sD    	J
M 
M 	Q58,
M 
M 
M 
Ms	   ?A	c            	          \         P                  ! \        4      ;_uu_ 4        \        P                  ! R R RRR7       RRR4       R#   + '       g   i     R# ; i)r5   r   foobar)r  N)r   r   r&  r:   figtextr   r    r   test_invalid_colorr  .  s2    	z	"	"BEX. 
#	"	"	"r~  ztext_pdf_kerning.pdfc                  d    \         P                  ! 4        \         P                  ! R RR^R7       R# )r1   r5   ATATATATATATATATATAr]  N)r:   rT   r  r   r    r   test_pdf_kerningr	  3  s    JJLKKS/b9r    c                    \         P                  ! 4       pVP                  R R R4      pVP                  P	                  4        \
        ;QJ d    R V  4       F  '       d   K   RM	  RM! R V  4       4      '       g   Q hV  Uu. uF  q3P                  P                  NK  	  upRVP                  4        R2,           3R.8X  g   Q hR# u upi )	r5   u   ০c              3   V   "   T F  p\        VP                  \        4      x  K!  	  R # 5iN)
isinstancemessager9   ).0warns   & r   	<genexpr>*test_unsupported_script.<locals>.<genexpr>=  s     Iz$,,44s   ')FTz9Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from font(s) .N)z7Matplotlib currently does not support Bengali natively.)	r:   rT   rW   r   r   allr  argsr=   )recwarnrD   r9  r  s   &   r   test_unsupported_scriptr  9  s    
**,CR12AJJOO3II333IIIIII'./wt		w/
F!"!$% 
'	F	H	HI	H/s   Cz1Error messages are incorrect with pyparsing 3.1.0)reasonc                  r   \         P                  ! 4       w  rVP                  ^ ^ RRR7       V P                  P	                  4        VP                  ^ ^ RRR7       \
        P                  ! \        RR7      ;_uu_ 4        V P                  P	                  4        RRR4       R#   + '       g   i     R# ; i)r   $ \wrong{math} $F)
parse_mathTUnknown symbolr   N)r:   r;   rW   r   r   r   r   r&  rF  s     r   test_parse_mathr  F  sx     llnGCGGAq%%G8JJOOGGAq%$G7	z)9	:	:

 
;	:	:	:s    B%%B6	c                     \         P                  ! 4       w  rVP                  ^ ^ R4       \        P                  ! \
        RR7      ;_uu_ 4        V P                  P                  4        RRR4       \        P                  ! RR/4      ;_uu_ 4        \         P                  ! 4       w  rVP                  ^ ^ R4       V P                  P                  4        RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   r  r  r   Nztext.parse_mathF)
r:   r;   rW   r   r   r&  r   r   r   
rc_contextrF  s     r   test_parse_math_rcparamsr   S  s     llnGCGGAq%&	z)9	:	:

 
; 
*E2	3	3,,.
1)*

 
4	3	 
;	: 
4	3	3s   C!AC4!C1	4D	ztext_pdf_font42_kerning.pdfc                      ^*\         P                  R&   \         P                  ! 4        \         P                  ! RRR^R7       R# )rc  rd  r1   r5   ATAVATAVATAVATAVATAr]  Nr:   r~   rT   r  r   r    r   test_pdf_font42_kerningr$  c  s,    #%CLL JJLKKS/b9r    ztext_pdf_chars_beyond_bmp.pdfc                      ^*\         P                  R&   R\         P                  R&   \         P                  ! 4        \         P                  ! RRR^R7       R# )	rc  rd  stixsanszmathtext.fontsetr1   r5   u   Mass $m$ 𐌈r]  Nr#  r   r    r   test_pdf_chars_beyond_bmpr'  j  s;    #%CLL '1CLL#$JJLKKS/b9r    c                    a \         P                  P                  P                  4        \        P
                  ! 4       p V P                  R RR4       V P                  R RRRR7       V P                  RRRRR7       V P                  P                  4        V P                  4       p/ oV3R lpW!n	        V P                  P                  4        . SORR.8X  g   Q h\        SR,          4      \        SR,          4      u;8X  d	   ^8X  g   Q h Q h\         P                  P                  P                  4       pVP                  VP                  8  g   Q hR# )	r3   r5   foo
barTr  c                  d   < V vr#rEpSP                  V\        4       4      P                  V4       R # r  )
setdefaultr   add)r  kwargsrs   r   r   r  r   r   s   *,     r   call test_metrics_cache.<locals>.call~  s*     $QA
a##A&r    r   barN)r   rW   !_get_text_metrics_with_cache_implcache_clearr:   rT   r   r   _get_rendererdraw_texlen
cache_infohitsmisses)rD   rs   r.  infor   s       @r   test_metrics_cacher:  r  s	   HH..::<
**,CHHRZ HHRZH-HHRZH-JJOO  "H	B' JJOOR5UEN"""
 r%y>SE^0q000008855@@BD 99t{{"""r    c                  D   \         P                  ! 4       w  rR R.pRR	.p\        ^4       Uu. uF&  pVP                  RR
W4,          RRW$,          R7      NK(  	  ppR V 4       w  rgV P                  P                  4        \        V4      \        V4      8X  g   Q hR# u upi )r  zoffset fontsizer   10r  )r   r   r   r)   r   c              3   @   "   T F  qP                  4       x  K  	  R # 5ir  )rl   )r  r   s   & r   r  0test_annotate_offset_fontsize.<locals>.<genexpr>  s     %N#&;&;&=&=s   N)r[  r[  r  r   )r:   r;   ri  r<   r   r   str)rD   rE   text_coordsxy_textr   annspoints_coordsfontsize_coordss           r   test_annotate_offset_fontsizerE    s    llnGC"$56K G
 =B!H	F =Eq	 KK:&z!%!'#.>	  3 =E	 	 F
 &O%N"MJJOO}_!5555Fs   ,Bc                     \        R R R4      p V P                  \        P                  R,          8X  g   Q hV P	                  4       \        P                  R,          8X  g   Q hV P                  R4       V P                  RJ g   Q hV P	                  4       V P                  8X  g   Q hV P                  R4       V P                  RJ g   Q hV P	                  4       V P                  8X  g   Q hR# )r5   r)  r   TFN)r   _antialiasedr   r~   get_antialiasedset_antialiased)r   s    r   test_get_set_antialiasedrJ    s    
r2z
"Cs||,>???? CLL1C$DDDDt### C$4$4444u$$$ C$4$4444r    c                      \        R RRR7      p V P                  RJ g   Q hV P                  4       V P                  8X  g   Q h\        R RRR7      pVP                  RJ g   Q hVP                  4       VP                  8X  g   Q h\        R RRR7      pVP                  R4       VP                  4       RJ g   Q hVP                  RJ g   Q h\        R R4      pVP                  \        P
                  R,          8X  g   Q hR# )r)  Tr   Fr   Nr   )r   rG  rH  rI  r   r~   )annotannot2annot3annot4s       r   test_annotation_antialiasedrQ    s    z8>E%%%  "e&8&8888
H%@F%'''!!#v':'::::
H%@F
4 !!#t+++$&&&
H-F#,,/A"BBBBr    c                    V P                  4       pVP                  ^ ^.^ ^.4      w  p\        P                  ! RR.4      pVP	                  R\        W44      RR	R7       ^VR&   VP                  4       pVP                  ^ ^.^ ^.4      w  p\        P                  ! RR.4      pVP	                  RWSRRR7       ^VR&   R# )
r   r5   r   )r   r   r   :NNNr  )r   r)   r   r   N)r[  r   rg   )r  r   r   arrayr<   r   )r  r  rE   lof_xyan_xys   &&    r   'test_annotate_and_offsetfrom_copy_inputrW    s     
			B	!Q!Q	 BAHHb"XEKK*Q"6w  E!H				B	!Q!Q	 BAHHb"XEKK%GKXE!Hr    c                 |    V P                  R R RRR7       R\        P                  R&   VP                  R R R4       R# )r5   6 inches x 2 inchesFrL  r   NrW   r   r~   r  r  s   &&r   +test_text_antialiased_off_default_vs_manualr\    s?    MM#s1).  0 (-CLL#$LLc01r    c                 |    V P                  R R RRR7       R\        P                  R&   VP                  R R R4       R# )r5   rY  TrL  r   NrZ  r[  s   &&r   *test_text_antialiased_on_default_vs_manualr^    s7    MM#s1tMD'+CLL#$LLc01r    c                     \        ^dR7      p \        ^^^d4      p\        RRRR7      pVP                  V 4       \	        R^ ^ R7      pVP                  V 4       VP                  VR7      pVP                  VR7      pVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  RVP                  RR	7      w   rgVP                  R
VP                  RR	7      w   rh\        Wx4      p	VP                  4       p
V
R,          R8X  g   Q hV
R,          VP                  8X  g   Q hV
R,          V	) 8X  g   Q hV
R,          VP                  V	,
          8X  g   Q hR# )d   r  r   r   )r   r)   )rW   r   r   ro  rW   F)ismathlpr  Nrg   rO   r   r   rO   r  )r   r   r   
set_figurer   rl   rp  rq  get_text_width_height_descent_fontpropertiesmaxr  )rT   rs   r  rW   r   	text_bboxr   dlp_d
below_linepointss              r   &test_text_annotation_get_window_extentrn    sa   _F3S)H FvHJ&!VqA&DOOF''':D&&&9I::(((;;)*****44
**5 5 :GAq77j(( 8 8JAqQJ __F$<3$<9??***$<J;&&&$<9++j8888r    c                     ^p \         P                  ! ^dR7      w  rVP                  R^ ^ R7      pVP                  RRRRRRR	^R
V RR/R7      p\         P                  ! 4        VP
                  P                  pVP                  VR7      pVP                  VR7      pVP                  P                  V4      p\        P                  ! V4      p	VP                  VP                  R,           8X  g   Q hV	P                  VP                  8X  g   Q hV	P                  VP                  8X  g   Q h\        P                  P                  W.4      p
\        VP                  V
P                  4       R# )   r  r   )r  r   r   r        I@r   r   blackrp  	headwidthshrinkr   r   r)   r   ro  Nr  rq  rq  rq  )r:   r;   rW   r<   r   r   rs   rl   arrow_patchr   rp  rq  r  Bboxunionr   )rs  rD   rE   r   r   rs   ri  r   
arrow_bboxann_txt_bboxexpected_bboxs              r   1test_text_with_arrow_annotation_get_window_extentr~    sB   Ills#GC
''Fa1'
%C
++o'1Hc3	  4C HHJzz""H%%x%8I  ( 3D228<J))#.L ::4//// )"2"2222000$$**L+EFM]%9%9:r    c                     ^dp V ^H,          p\        V R7      pVP                  R4       VP                  R4       \        ^^^d4      p\	        RRRRRRR	^R
^
RR/R7      pVP                  V4       VP                  V4       VP                  4       pVP                  4       pVP                  R8X  g   Q h\        VP                  RV,          4       VR,          R8X  g   Q hVR,          R^V,          ,
          8X  g   Q hR# )r`  r         @r   r  rq  r   r   rr  rp  rs  rt  ru  g      $@Nrv  rw  rg   rd  )r   set_figwidthset_figheightr   r   re  r   rl   r  rp  r   rq  )r  dots_per_pointrT   rs   r  r   rm  s          r   'test_arrow_annotation_get_window_extentr  $  s    
C2XN_F

3S)H 
{</'1k2xNOJ &!OOH'')D__F::TN%:;$<3$<4!n"44444r    c                     \        ^dR7      p V P                  R4       V P                  R4       \        ^^^d4      p\	        RR	R	RR7      pVP                  V 4       VP                  V4       VP                  4       pVP                  4       pVR
,          R8X  g   Q hVR,          R8X  g   Q hVR,          R8X  g   Q hVR,          R8X  g   Q hR# )r`  r  r  r   r  rq  r   )r   r   r)   Nrv  rg   rc  r  rd  )	r   r  r  r   r   re  r   rl   r  )rT   rs   r  r   rm  s        r   'test_empty_annotation_get_window_extentr  =  s    _F

3S)H 
{;JJ&!OOH'')D__F$<3$<3$<4$<4r    basictext_wrap)baseline_imagesr  c                     \         P                  ! 4       p \         P                  ! . RO4       Rp\         P                  ! ^^VR^RR7       \         P                  ! ^^VR^RR7       \         P                  ! ^^VRRRR7       \         P                  ! ^^
V^RRRRR	7       \         P                  ! ^^VR
RRRR7       \         P                  ! R^ VRRRR7       R# )r   This is a really long string that I'd rather have wrapped so that it doesn't go outside of the figure, but if it's long enough it will go off the top or bottom!rv   T)rR   r|   r  r   obliquerP   rQ   )r   r%   rR   rS   r  serifr0   )r$   r%   rR   r  Nr   r[  r   r[  r:   rT   axisrW   rD   r9  s     r   test_basic_wrapr  R  s     **,CHH^	*A HHQ1"48HHQ1"48HHQ13T:HHQA)D"HHQ1WHtLHHRA&3T:r    fonttext_wrapc                     \         P                  ! 4       p \         P                  ! . RO4       Rp\         P                  ! ^RV^RR^RR7       \         P                  ! ^^VRR^RR7       \         P                  ! ^^
VRR	R
RR7       \         P                  ! ^^VRRRR7       \         P                  ! R^ V^RRRRR7       R# )r   r  r  rv   T)r   r$   rR   r|   r  r/   )r$   rR   r|   r  heavyrP   rQ   )r-   rR   rS   r  	monospacer   )r$   rR   r  r0   )r   r%   rR   r|   r  Nr  r  r  r  r  s     r   test_font_wrapr  c  s     **,CHH^	*A HHQA7vHHQ1\frMHHQAg(u4HHHQ1[W4@HHRA(vr    )rP   r   rv   )rP   rQ   rw   r{   center_baseline))r4      )r  r4   )r  r  )r  pdfr  ))r   r   rv   )r5   _   rv   )r3   r   r   )r3      rv   )r  rO   r   )zr   r  r7   numpyr   numpy.testingr   packaging.versionr   parse_version	pyparsingr   
matplotlibr   matplotlib.backend_basesr   matplotlib.backends.backend_aggr   matplotlib.figurer   r6   r	   matplotlib.patchespatchesrh   matplotlib.pyplotpyplotr:   matplotlib.gridspecr
   matplotlib.transforms
transformsr  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.textr   r   r   __version__pyparsing_versionrL   r[   r   r   r   r   r   markparametrizer|  printr&  r   r   r   r   r   r   r  r  r  r"  r'  r)  r-  r3  r:  rG  rJ  rT  rY  ra  rk  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r	  r  xfailreleaser  r   r$  r'  r:  rE  rJ  rQ  rW  r\  r^  rn  r~  r  r  r  r  r   r    r   <module>r     sC    	   - 4    / 7 $ 2 %  ( + O 4 8 8!)"7"78  =/"U #Up ;-  !. <.006 106f $%W5- 6-$D &'( )<	. /UVAGH9:ABHI=>2  8*  #$G4 5. $%&D 'D"@C4 "c+0FG H;
4
;
$
5@
 :;  ? @P@ <P ?#$/ %/ 678 96 789 :6. &'( )* %&'> (> -/KL* M*(4
) 3 3    56* 7* -./= 0= -./! 0!&& (P )P ./w? @" 22=9 ?: (
$ )
$$$( &6%=>- ?-/
 )*':: ;:
	I $,,	9M  OO $,,	9M  OO 01A: B: 237C: D: # #<6 5C$ ( ) 2 2 2 29> ;F52 * #3"4#W&;&; ?"3#W&&r    