
    hI                        S SK J r   S SKrS SKrS SKrS SKJr  S SKJr	  S SK
r
S SKrS SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S SKJr   S S
K!J"r"J#r#  S SK$J%r%  S SK&J'r'J(r(J)r)  \	" \
RT                  5      r+\#" S/5      S 5       r,\#" S/5      S 5       r-\#" S/SS9S 5       r.\#" S/SS9S 5       r/S r0\#" S/5      S 5       r1S r2\Rf                  Ri                  S\5\6S4\5S S /S4\7SS4\7S S!4\7S"S#4\7S$S%445      S& 5       r8\#" S'/5      S( 5       r9\#" S)/SS9S* 5       r:\#" S+/5      S, 5       r;S- r<S. r=\Rf                  Ri                  S/S0S1/S2S3/S49S5 5       r>S6 r?S7 r@S8 rAS9 rBS: rCS; rD\Rf                  Ri                  S</ S=Q5      \Rf                  Ri                  S>/ S?Q5      S@ 5       5       rE\#" SA/5      SB 5       rF\#" SC/5      SD 5       rG\#" SE/5      SF 5       rHSG rI\#" SH/5      SI 5       rJSJ rK\#" SK/5      SL 5       rL\Rf                  Ri                  SM/ SNQ5      SO 5       rMSP rNSQ rOSR rP\%SS 5       rQ\%ST 5       rR\Rf                  Ri                  SU/ SVQ5      SW 5       rS\#" SX/5      SY 5       rT\#" SZ/5      S[ 5       rUS\ rVS] rW\"" S^/S_9S` 5       rX\#" Sa/SS9Sb 5       rY\Rf                  Ri                  Sc/ SdQ5      Se 5       rZSf r[Sg r\Sh r]Si r^\"" S^/S_9Sj 5       r_Sk r`Sl raSm rb\Rf                  Ri                  SnSoSp//5      Sq 5       rcSr rd\#" Ss/SS9St 5       reSu rf\Rf                  R                  \+R                  Sv:H  SwSx9Sy 5       ri\Rf                  R                  \+R                  Sv:H  SwSx9Sz 5       rj\#" S{/SS9S| 5       rk\#" S}/SS9S~ 5       rl\%S 5       rmS rnS roS rp\"" S^/S_9S 5       rq\"" 5       S 5       rr\"" 5       S 5       rsS rtS ruS rvS rw\#" S/S^/S9S 5       rx\#" S/S^/S9S 5       ryg)    )datetimeN)assert_almost_equal)parse)
MouseEvent)RendererAgg)Figure)FontProperties)GridSpec)check_figures_equalimage_comparison)needs_usetex)Text
Annotation
OffsetFromfont_stylesc            	        ^	^
 U	U
4S jn SSK Jm	Jm
  [        R                  " SS[
        SS9  [        R                  " 5       u  pU " SS	S	S
S9nUR                  SSSUS9nUR                  5       S:X  d   eUR                  5       S	:X  d   eUR                  5       S	:X  d   eUR                  5       S	:X  d   eUR                  5       S	:X  d   eU " SS	S	SSS
S9nUR                  SSSUS9  U " SSS	SSS
S9nUR                  SSSUS9  U " SS	S	SSS
S9nUR                  SSSUS9  U " SS	S	SSS
S9nUR                  S S!SUS9  UR                  / 5        UR                  / 5        g )"Nc                  T   > T" S0 U D6nT" U[         R                  " 5       S9nT" US9$ )N)	directory)fname )mplget_data_path)kwproppathr	   findfonts      L/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_text.pyfind_matplotlib_font.test_font_styles.<locals>.find_matplotlib_font   s0    ##(9(9(;<D))    r   )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)皙?r)   axes fraction)xycoordsfontpropertieszDejaVu SansFooboldi  )r%   r&   r'   weightstretchr(   z	Bold Font)r)   皙?
sans serifitalici  zBold Italic Font)r)   333333?   z
Light Font)r)   皙?d   zCondensed Font)r)         ?)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_stylesrO      s   *
 AI(	* llnGC&	K
 	 "	 	 	$A
 >>},,,??((((***<<>X%%%==?h&&&$I KK  	  " , KK '	  ) &J KK !	  # *N KK %	  ' MM"MM"r    	multilinec            	         [         R                  " 5         [         R                  " SSS5      n U R                  S5        [         R                  " SSSSSSS	9  [         R                  " SSS
SSSS	9  [         R                  " SSSSSSS	9  [         R
                  " SS5        [         R                  " SS5        U R                  / 5        U R                  / 5        g )N   zmultiline
text alignmentr1   r8   zTpTpTp
$M$
TpTpTp   centertop)r(   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpg?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r=   figuresubplot	set_titletextxlimylimrE   rF   rH   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            
        ^ S[         R                  S'   [         R                  " 5       u  pUR                  SS/5        UR	                  SS/5        UR                  SSSS	9  / S
QnU R                  R                  5       mU4S jnSn[        U5       H%  u  pVUR                  SU-  S-   SXdSS9nU" X5        M'     UR                  SSSSS9  UR                  SSSS	9  [        U5       H%  u  pVUR                  SU-  S-   SXdSS9nU" X5        M'     UR                  SSSSS9  UR                  SSSS	9  [        U5       H%  u  pVUR                  SU-  S-   SXdSS9nU" X5        M'     UR                  SSSSS9  UR                  SSSS	9  [        U5       H&  u  pVUR                  SU-  S-   SXdSSS9nU" X5        M(     UR                  SSSSS9  g )N   text.kerning_factorr   gffffff?   r8   C2r4   )color	linewidth)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 $c                   > [         R                  " SSSSU R                  S9nUR                  UR	                  T5      R                  U R                  R                  5       5      R                  5        U R                  U5        g )Nr   r   rR   F)clip_on	transform)	mpatches	Rectangle	transAxes
set_boundsget_window_extenttransformedinvertedbounds	add_patch)rH   ttrrenderers      r   draw_box!test_multiline2.<locals>.draw_box   se    vq!U)+7	  *[..01V	 	Qr    leftr1   r)   bottom)horizontalalignmentverticalalignmentg333333?zBottom alignrg   g?rU   z	Top aligng?baselinezBaseline alignrS   )r~   r   rotationzBot align, rot20)
r=   rcParamsr>   set_xlimset_ylimaxhlinecanvasget_renderer	enumerater[   )	rG   rH   stsrz   horalnnstrw   ry   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            	      >   S[         R                  S'   [        R                  " SS9n U R	                  SSSSSS	S
9  U R	                  SSSSSS	S
9  S	[         R                  S'   U R	                  SSSSSSS
9  U R	                  SSSSSSS
9  S[         R                  S'   g )NFtext.antialiased)g      @      ?figsizer4   r   antialiasedrT   T)r~   r   r         ?z
$\sqrt{x}$ffffff?znot antialiased)r   r   r=   rX   r[   rG   s    r   test_antialiasingr      s    ',CLL#$
**\
*CHHS$8'T  ;HHS$8'T  ; (,CLL#$HHS$)x'U  <HHS$8'U  < (-CLL#$r    c                      [         R                  R                  SSS9n [        U S5       n[         R                  R                  U5      nS S S 5        WR                  S5      S:X  d   eg ! , (       d  f       N&= f)N	Helveticaafm)fontextrbVAVAVAVAVAVA)g     @i  )r   font_managerr   open_afmAFMstring_width_height)fnfhr   s      r   test_afm_kerningr      s`    				"	";	"	>B	b$2hhll2 
"">2mCCC 
s    A++
A9ztext_contains.pngc            	         [         R                  " 5       n [         R                  " 5       n[        SU R                  SSSS 5      n[
        R                  " SSS5      n[
        R                  " SSS5      n[
        R                  " X45      u  p4[         R                  " SSSS	SSS
9nU R                  R                  5         [        UR                  UR                  5       H  u  pg[         R                  " 5       R                  R                  Xg/5      u  Ul        Ul        UR#                  U5      u  pU(       a  SOSn
UR$                  R'                  5       nUR)                  XgSU
S9  UR$                  R+                  U5        M     g )Nbutton_press_eventr8   rR   r   r      r6   zhello worldrT   )rV   fontsizer   yellowredor   )r=   rX   axesr   r   nplinspacemeshgridr[   drawzipflatgcarp   rm   xycontainsviewLimfrozenplotset)rG   rH   meventxsystxtr   r   r   _rg   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                      [         R                  " 5       u  pUR                  SSSSS0S9nU R                  R	                  5         [        SU R                  /UR                  R                  S5      Q76 nUR                  U5      S	0 4:X  d   eg )
Nhello)r6   r6   )333333?r   
arrowstylez->)xyxytext
arrowpropsr   )r8   r   F)	r=   r>   r?   r   r   r   	transDatarm   r   )rG   rH   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                     [         R                  " 5       u  p4[        R                  " XS9   UR	                  SSSUS9  UR
                  R                  5         S S S 5        g ! , (       d  f       g = f)Nmatchr   rk   r8   r8   )r   r+   )r=   r>   pytestraisesr?   r   r   )errr+   r   rG   rH   s        r   test_annotate_errorsr     sK     llnGC	s	(
D&hG

 
)	(	(s   -A""
A0titlesc                      [         R                  " 5         [         R                  " SSS5      n U R                  SSS9  U R                  SSS9  U R	                  / 5        U R                  / 5        g )NrR   z
left titler|   loczright titleright)r=   rX   rY   rZ   rE   rF   r^   s    r   test_titlesr     sW     JJL	Q1	BLL6L*LLGL,MM"MM"r    text_alignmentc                     [         R                  " 5         [         R                  " SSS5      n SnS HB  nS H9  nU R                  USUS-   X2[	        SSSS	9S
9  U R                  USSX2S9  US-  nM;     MD     U R                  SS/SS/5        U R                  SS/SS/5        U R                  SS5        U R                  SS5        U R                  / 5        U R                  / 5        g )NrR   r)   )r   r   )rU   r}   r   rT   r8   z Tjroundwheat)boxstyle	facecoloralpha)rW   r   bboxg      ?z$\sum_{i=0}^{j}$)rW   r   r   g      ?)
r=   rX   rY   r[   dictr   r   r   rE   rF   )rH   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                      [         R                  " 5         [         R                  " SSS5      n U R                  SSSSS9  U R                  SSSSS9  U R                  S	S	SSS9  g )
NrR   rT   rS   i  )r   r   
fontweightr|      i  r   )r=   rX   rY   rZ   r^   s    r   test_axes_titlesr   7  s[     JJL	Q1	BLLx"LELLVbSLALLgsLCr    c                  z   [         R                  " 5       u  pUR                  SSSSS9nU R                  R	                  5         UR                  U R                  R                  5      nSnUR                  XD45        U R                  R	                  5         UR                  U R                  R                  5      n[        UR                  UR                  5       H  u  pgXd-   U:X  a  M   e   UR                  SSSSS9nU R                  R	                  5         UR                  U R                  R                  5      nSnXD4Ul
        U R                  R	                  5         UR                  U R                  R                  5      n[        UR                  UR                  5       H  u  pgXd-   U:X  a  M   e   g )Ntestrk   figure pixels)r   
textcoords   )r=   r>   r?   r   r   rr   ry   set_positionr   minxyann)rG   rH   r   init_pos	shift_valpost_posrJ   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                  n   [         R                  " 5       n U R                  SSS5      nUR                  S5        UR	                  5       nUR
                  UR                  -
  nUR                  S5        UR	                  5       nUR
                  UR                  -
  nUR                  S5        UR	                  5       nUR                  nUR                  XS-
  5      S:X  d   eUR                  U5      S:X  d   eUR                  USU-  -   5      S:X  d   eUR                  US	U-  -   5      S
:X  d   eUR                  XSS-  -   5      S:X  d   eUR                  XSS-  -   US-  -   5      S:X  d   eUR                  XSS-  -   US-  -   5      S:X  d   eUR                  XSS-  -   US-  -   5      S:X  d   eg )Nr)   ? imiiiimmmmr   gV-?gx&1?rR               
   )r=   rX   r[   set_textrr   x1x0_char_index_at)rG   r[   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    r[   r   Oemptyz	non-empty)idsc                    [         R                  " 5       u  pUR                  SSU SSS9nUR                  R	                  5         UR
                  nUR                  5       nUR                  US-  S9n[        R                  R                  UR                  5       UR                  5       S-  SS9  UR
                  U:X  d   eg )	Nr8   r|   r}   )rV   rW   r  dpi皙?rtol)r=   r>   r[   r   r   r  rr   r   testingassert_allclose
get_points)r[   rG   rH   t1r  bbox1bbox2s          r   test_non_default_dpir  {  s    llnGC	c4Fx	8BJJOO
''C  "E  S2X .EJJu//153C3C3E3J$(  * 77c>>r    c                  x    [        SS9R                  5       S:X  d   e[        SS9R                  5       S:X  d   eg )N
horizontalr           verticalg     V@r   get_rotationr   r    r   test_get_rotation_stringr$    s:    &335;;;$113s:::r    c                  P    S H   n [        U S9R                  5       U :X  a  M    e   g )N)g      .@g333330@gYS@r  r"  r   s    r   test_get_rotation_floatr'    s(    Q,,.!333  r    c                  b    S H)  n [        U S9R                  5       [        U 5      :X  a  M)   e   g )N)C      )   r  )r   r#  floatr&  s    r   test_get_rotation_intr-    s,    Q,,.%(::: r    c                  ~    [         R                  " [        5         [        SS9  S S S 5        g ! , (       d  f       g = f)N
hozirontalr  r   r   
ValueErrorr   r   r    r   test_get_rotation_raisesr2    s"    	z	"l# 
#	"	"s   
.
<c                  >    [        S S9R                  5       S:X  d   eg )Nr  r   r"  r   r    r   test_get_rotation_noner4    s    ++-444r    c                  x    [        / SQ/ SQ5       H&  u  p[        [        U S9R                  5       U5        M(     g )N)g     v@g     w@g	@)r   g      1@gfffff&f@r  )r   r   r   r#  )r   js     r   test_get_rotation_mod360r7    s/    +-=>D!,99;Q? ?r    rV   )rT   r   r|   rW   )rT   rU   r}   r   center_baselinec                    [         R                  " 5       u  p#[        SXS9nUR                  " SSS0UD6nUR                  " SSS0UD6nUR                  R                  5         [        UR                  UR                  R                  5      R                  5       UR                  UR                  R                  5      R                  5       5        g )Nr   )r   rW   rV   )r8   r8   r   rotation_modeanchordefault)
r=   r>   r   r[   r   r   r   rr   ry   r  )rV   rW   rG   rH   r   t0r  s          r   %test_null_rotation_with_rotation_moder>    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                      [         R                  " SSSSSS9  [         R                  " SSSSS	9n U R                  S
S05        g )Nr   r1   zIs bbox clipped?rx   T)backgroundcolorrl   r8   zIs fancy bbox clipped?rl   r   zround, pad=0.1)r=   r[   set_bbox)ts    r   test_bbox_clippingrE    s>    HHS#)3Mc3TBAJJ
,-.r    z!annotation_negative_ax_coords.pngc            
      X   [         R                  " 5       u  pUR                  SSS/SSS/SSS9  UR                  SSS/SSS/SSS	S
9  UR                  SSS/SSS/SSS9  UR                  SSS/SSS/SSS	S
9  UR                  SSS/SSS/SSS9  UR                  SSS/SSS/SSS	S
9  g )N+ ptsr   rS   zaxes points    r   r   r   r+   r   - ptsirU   r   r   r   r+   r   rW   + fracr   r  r*   - frac皙+ pixels      zaxes pixels- pixelsir=   r>   r?   rG   rH   s     r   "test_annotation_negative_ax_coordsrU    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            
      X   [         R                  " 5       u  pUR                  SSS/SSS/SSS9  UR                  SSS	/SSS	/SSS
S9  UR                  SSS/SSS/SSS9  UR                  SSS/SSS/SSS
S9  UR                  SSS/SSS/SSS9  UR                  SSS/SSS/SSS
S9  g )NrG  r  x   zfigure pointsrH  rI  rJ     rU   rK  rL  r  g?zfigure fractionrM  rN  r8   rO  2   r   rR  ir7   rS  rT  s     r   #test_annotation_negative_fig_coordsr[    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                     [         R                  " SS5      u  n u  p[         R                  " 5         UR                  (       a   eUR                  (       a   eU R                  (       a   eUR	                  SSS5      nUR                  (       d   eUR                  (       d   eU R                  (       d   eUR                  SSS/S9nUR                  (       d   eUR                  (       d   eU R                  (       d   e[         R                  " 5         UR                  (       a   eUR                  (       a   eU R                  (       a   eg )NrR   re   r8   aardvarkr   )r=   r>   draw_allstaler[   r?   )rG   ax1ax2txt1ann1s        r   test_text_stalere    s    ll1a(OC#LLNyy=yy=yy=88BJ'D999:::999<<
Bx<0D999:::999LLNyy=yy=yy=yr    zagg_text_clip.pngc                     [         R                  R                  S5        [        R                  " S5      u  n u  p[         R                  R                  SS5       H(  u  p4UR                  X4SSS9  UR                  X4S5        M*     g )NrR   re   r  r   TrB  )r   randomseedr=   r>   randr[   )rG   ra  rb  r   r   s        r   test_agg_text_cliprj    s`    IINN1ll1oOC#		r1%ud+u &r    c                      S[         R                  S'   [         R                  R                  SS9n U R	                  5       nS[         R                  S'   XR	                  5       :X  d   eg )Nr  z	font.sizelarger(   r7   )r   r   r   r	   get_size_in_points)fpsz1s     r   test_text_size_bindingrq    sZ     "CLL				(	(g	(	6B



!C #CLL''))))r    zfont_scaling.pdfc                     S[         R                  S'   [        R                  " SS9u  pUR                  R                  [        R                  " 5       5        UR                  R                  [        R                  " 5       5        UR                  SS5        [        [        SSS	5      5       H  u  p#UR                  S
US-  U S3US9  M     g )N*   pdf.fonttype)g@g(@r   rX  iX  r  +   re   r)   r   z pt font size)r   )r   r   r=   r>   xaxisset_major_locatorNullLocatoryaxisr   r   ranger[   )rG   rH   r   fss       r   test_font_scalingr|    s    #%CLL ll;/GCHHs01HHs01KKS5B?+
QrTbT/"= ,r    zspacing1, spacing2))r6   re   )re   r6   )re   re   c                    Sn[         R                  " 5       nUR                  R                  5       nUR	                  SSX S9nUR	                  SSX!S9nUR                  R                  5         UR                  US9nUR                  US9nUR                  UR                  :X  d   eX:X  a  UR                  UR                  :X  d   eg UR                  UR                  :w  d   eg )Nzline1
line2r   r8   linespacingry   )	r=   rX   r   r   r[   r   rr   widthheight)	spacing1spacing2text_stringrG   ry   text1text2box1box2s	            r   test_two_2line_textsr  )  s     K
**,Czz&&(HHHT3HBEHHT3HBEJJOO""H"5D""H"5D ::###{{dkk))){{dkk)))r    c                      [         R                  " [        5         [        R                  " SSSSS9  S S S 5        g ! , (       d  f       g = f)Nr   r8   r   abcr~  )r   r   	TypeErrorr=   r[   r   r    r   test_validate_linespacingr  >  s,    	y	!b%U3 
"	!	!	   <
A
c                      [         R                  " 5       u  pUR                  S[        R                  S5        UR                  [        R
                  SS5        U R                  R                  5         g )Nr   naninf)r=   r>   r[   r   r  r  r   r   rT  s     r   test_nonfinite_posr  C  sE    llnGCGGArvvuGGBFFAuJJOOr    c                     S[         R                  S'   [         R                  " 5       n U R                  SSS5      nU R	                  [
        R                  " 5       SS9  UR                  5       R                  nU R	                  [
        R                  " 5       SS9  [        R                  R                  UR                  5       R                  USS	9  g )
NrR   ztext.hinting_factorr8   z	some textsvgformatpngr)   r  )r=   r   rX   r[   savefigioBytesIOrr   	intervalxr   r  r  )rG   rD  expecteds      r   test_hinting_factor_backendsr  J  s    *+CLL&'
**,Cc;'AKK

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

UK+JJq224>>$'  )r    c                     [         R                  " 5       n S[         R                  S'   U R                  S5      nS[         R                  S'   U R                  S5      nU R                  R                  5         US4US44 HB  u  p4UR                  R                   H#  nUR                  R                  5       U:X  a  M#   e   MD     g )NFtext.usetexy   Tz   )
r=   rX   r   add_subplotr   r   rv  
majorTickslabel1
get_usetex)rG   ra  rb  rH   usetexrD  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                      [         R                  " 5       n U R                  SSSSS9  U R                  R	                  5         g )Nr8   z	$\frac12$Tr  )r=   rX   r[   r   r   r   s    r   test_single_artist_usetexr  g  s1    
 **,CHHR\$H/JJOOr    fmt)r  pdfr  c                     S[         R                  S'   [         R                  " 5       nUR                  SSSSS9  UR	                  [
        R                  " 5       U S9  g )NTr  r8   2_2_2Fr  r  )r=   r   rX   r[   r  r  r  )r  rG   s     r   test_single_artist_usenotexr  q  sG     #'CLL
**,CHHRWUH+KK

SK)r    ztext_as_path_opacity.svgc                      [         R                  " 5         [         R                  " 5       R                  5         [         R                  " SSSSS9  [         R                  " SSSSS9  [         R                  " SSS	SS
S9  g )Nr   cr   r   r   r8   r   r8   rJ   r   r   r   r   r   r   rR   r   rg   )r=   rX   r   set_axis_offr[   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                  &   S[         R                  S'   [        R                  " 5         [        R                  " 5       R                  5         [        R                  " SSSSS9  [        R                  " SSSSS	9  [        R                  " SS
SSSS9  g )Nnonezsvg.fonttyper   z50% using `color`r  r   r8   z50% using `alpha`r  r   z"50% using `alpha` and 100% `color`r  r  )r   r   r=   rX   r   r  r[   r   r    r   test_text_as_text_opacityr    si    #)CLL JJLGGIHHT4,NCHHT3+37HHT4=S!r    c                  ~    [         R                  " SS/SS/5        [        [         R                  " S/SS5      5        g )NABrR   re   r8   Boo)r=   r   reprr[   r   r    r   test_text_reprr    s/    HHc3Z!Q 3%e	$%r    c                     [         R                  " SS5      u  pUR                  SSS9nUR                  U R                  R                  5       5      nU R                  5         UR                  U R                  R                  5       5      n[        R                  " UR                  5       UR                  5       SS9(       a   eg )NrR   
annotationr   r^  gư>r  )
r=   r>   r?   rr   r   r   tight_layoutr   allcloser  )rG   rH   anextent1extent2s        r   test_annotation_updater    s    ll1a GC	\j	1B""3::#:#:#<=G""3::#:#:#<=G{{7--/1C1C1E $& & & &r    r  )
extensionsc                 x   U R                  5       nUR                  [        R                  " 5       SS5        UR	                  S[        R                  " 5       S4SSSS9  UR                  5       nUR                  [        R                  " 5       SS5        UR	                  S[        R                  " 5       S4SS	9  g )
NrR   r   r   r8   )datar*   rk   offset points)r+   r   r   )r+   )r  r   r   nowr?   fig_testfig_refrH   s      r   test_annotation_unitsr    s    				BGGHLLNAs#KKhllnc*5N/  ; 
			BGGHLLNAs#KKhllnc*5NKOr    zlarge_subscript_title.pngc                  \   S[         R                  S'   S [         R                  S'   [         R                  " SSSSS9u  pUS	   nUR                  S
5        UR                  SSS9  UR	                  / 5        US   nUR                  S
SS9  UR                  SSS9  UR	                  / 5        g )Nrc   rd   zaxes.titleyrR   re   )	   g      @T)r   constrained_layoutr   z$\sum_{i} x_i$zNew wayr|   r   g)\(?)r   zOld Way)r=   r   r>   rZ   set_xticklabels)rG   axsrH   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, halign))r   r   r|   )r8   _   r|   )r4   r   r   )r4      r|   c           	          [         R                  " SS9n[        SSUS9nUR                  US   5      nSnUR	                  U SUSXS	9nUR
                  R                  5         UR                  5       S
:X  d   eg )N)   r  r   r   )nrowsncolsrX   rR   rR   z?This is a very long text that should be wrapped multiple times.r   T)wrapr   rV   z?This is a very long
text that should be
wrapped multiple
times.)r=   rX   r
   add_subfigurer[   r   r   _get_wrapped_text)r   r   halignrG   gssubfigsr[   s           r   	test_wrapr    s     **X
&C	3	/Br$x(F 	JA;;q#qth;JDJJOO!!# )1 2 2 2r    c                      [         R                  " SS9n SnU R                  SSUSSS9nU R                  R	                  5         UR                  5       S	:X  d   eg )
Nrc   r  r   z;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r   r8   (   T)r(   r  z;This is a very $\overline{\mathrm{long}}$
line of Mathtext.r=   rX   r[   r   r   r  )rG   r  r[   s      r   test_mathwrapr    s[    
**V
$CFA88AsABT82DJJOO!!# )< = = =r    c                  n   [         R                  " SS9n U R                  SSS9  U R                  R	                  5       n[         R                  " SS9nUR                  S5        UR                  R	                  5       nUR
                  UR
                  :X  d   eUR                  UR                  :X  d   eg )N)r   r   r   z.suptitle that is clearly too long in this caseTr  z.suptitle that is clearly
too long in this case)r=   rX   suptitle	_suptitlerr   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                      [         R                  " SS9n U R                  SSSSS9nU R                  R	                  5         UR                  5       S:X  d   eg )Nr  r   g      #@r  AlonglineoftexttowrapTr  r  rG   r[   s     r   test_long_word_wrapr    sM    
**V
$C88C3$8?DJJOO!!#'>>>>r    c                      [         R                  " SS9n U R                  SSSSS9nU R                  R	                  5         UR                  5       S:X  d   eg )Nr  r   r   znon wrapped textTr  r  r  s     r   test_wrap_no_wrapr    sM    
**V
$C88Aq,488DJJOO!!#'9999r    c                 @   U R                  5       nUR                  SS/5        UR                  SS/5        UR                  R                  S   R
                  R                  S5        UR                  5       nUR                  SS/5        UR                  SS/5        g )Nr   rR   u   €rJ   wr   )r  rF   set_yticklabelsry  r  r  	set_colorr  s      r   test_buffer_sizer    s    
 
			BMM1a&s|$HH!!++C0				BMM1a&r{#r    c                      [         R                  " 5         [         R                  " SSSS9n [         R                  " SSSS9nU R	                  5       S:X  d   eUR	                  5       S:X  d   eg)z>Test that kwargs take precedence over fontproperties defaults.valuezTimes New Romang      D@)r,   r(   counts)r(   r,   N)r=   rX   xlabelylabelget_size)r  r  s     r   $test_fontproperties_kwarg_precedencer	  
  s[    JJLJJw/@tLEJJxd;LME>>t###>>t###r    c                      [         R                  " 5       n [        R                  " 5       R	                  S5      nU R                  SSSUSS9nUR                  5       n[        US5        g )Nr   r   r   T)rm   transform_rotates_text)r=   r   mtransformsAffine2D
rotate_degr[   r#  r   )rH   rm   r[   results       r   test_transform_rotates_textr    s\    	B$$&11"5I771a9*.  0D F#r    c                      [        [        SS9S S9n [        U 5      n[        5       nUR                  U 5        U S   US   :X  d   eU S   US   :X  d   eg )Nr.   )r/   )r,   r   r,   r   )r   r	   r   update)inpcacherD  s      r   test_update_mutate_inputr    sa    
nF;CIEAHHSM E*:$;;;;v;%-'''r    r   zinvalid stringZ   c                     [         R                  " [        SS9   [        SSSU S9  S S S 5        g ! , (       d  f       g = f)Nz5rotation must be 'vertical', 'horizontal' or a numberr   r   r   r  r0  r  s    r   test_invalid_rotation_valuesr  &  s8    	J
M 	Q58,
M 
M 
Ms   0
>c                      [         R                  " [        5         [        R                  " SSSSS9  S S S 5        g ! , (       d  f       g = f)Nr8   r   foobar)r  )r   r   r1  r=   figtextr   r    r   test_invalid_colorr  .  s,    	z	"BEX. 
#	"	"r  ztext_pdf_kerning.pdfc                  \    [         R                  " 5         [         R                  " SSSSS9  g )Nr)   r8   ATATATATATATATATATAr   rm  )r=   rX   r  r   r    r   test_pdf_kerningr  3  s    JJLKKS/b9r    c                 J   [         R                  " 5       nUR                  SSS5      nUR                  R	                  5         [        S U  5       5      (       d   eU  Vs/ s H  o3R                  R                  PM     snSUR                  5        S3-   4S/:X  d   eg s  snf )Nr8   u   ০c              3   V   #    U  H  n[        UR                  [        5      v   M!     g 7fN)
isinstancemessager<   ).0warns     r   	<genexpr>*test_unsupported_script.<locals>.<genexpr>=  s     Iz$,,44s   ')z9Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from font(s) .)z7Matplotlib currently does not support Bengali natively.)	r=   rX   r[   r   r   allr$  argsr@   )recwarnrG   rD  r&  s       r   test_unsupported_scriptr-  9  s    
**,CR12AJJOOIIIIII'./wt		w/
F!"!$% 
'	F	H	HI	H/s    B )r   rR   r   z1Error messages are incorrect with pyparsing 3.1.0)reasonc                  H   [         R                  " 5       u  pUR                  SSSSS9  U R                  R	                  5         UR                  SSSSS9  [
        R                  " [        SS9   U R                  R	                  5         S S S 5        g ! , (       d  f       g = f)Nr   $ \wrong{math} $F)
parse_mathTUnknown symbolr   )r=   r>   r[   r   r   r   r   r1  rT  s     r   test_parse_mathr3  F  sr     llnGCGGAq%%G8JJOOGGAq%$G7	z)9	:

 
;	:	:s   /B
B!c                     [         R                  " 5       u  pUR                  SSS5        [        R                  " [
        SS9   U R                  R                  5         S S S 5        [        R                  " SS05         [         R                  " 5       u  pUR                  SSS5        U R                  R                  5         S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = f)Nr   r0  r2  r   ztext.parse_mathF)
r=   r>   r[   r   r   r1  r   r   r   
rc_contextrT  s     r   test_parse_math_rcparamsr6  S  s     llnGCGGAq%&	z)9	:

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

 
4	3	 
;	: 
4	3s   C?AC
C
C,ztext_pdf_font42_kerning.pdfc                      S[         R                  S'   [         R                  " 5         [         R                  " SSSSS9  g )Nrs  rt  r)   r8   ATAVATAVATAVATAVATAr   rm  r=   r   rX   r  r   r    r   test_pdf_font42_kerningr:  c  s,    #%CLL JJLKKS/b9r    ztext_pdf_chars_beyond_bmp.pdfc                      S[         R                  S'   S[         R                  S'   [         R                  " 5         [         R                  " SSSSS	9  g )
Nrs  rt  stixsanszmathtext.fontsetr)   r8   u   Mass $m$ 𐌈r   rm  r9  r   r    r   test_pdf_chars_beyond_bmpr=  j  s;    #%CLL '1CLL#$JJLKKS/b9r    c                    ^ [         R                  R                  R                  5         [        R
                  " 5       n U R                  SSS5        U R                  SSSSS9  U R                  SSSSS9  U R                  R                  5         U R                  5       n0 mU4S jnX!l	        U R                  R                  5         / TQSS/:X  d   e[        TS   5      [        TS   5      s=:X  a  S	:X  d   e   e[         R                  R                  R                  5       nUR                  UR                  :  d   eg )
Nr4   r8   foo
barTr  c                  b   > U tp#pEnTR                  U[        5       5      R                  U5        g r"  )
setdefaultr   add)r+  kwargsry   r   r   r  r   r   s          r   call test_metrics_cache.<locals>.call~  s*     $QA
a##A&r    r   barrR   )r   r[   !_get_text_metrics_with_cache_implcache_clearr=   rX   r   r   _get_rendererdraw_texlen
cache_infohitsmisses)rG   ry   rD  infor   s       @r   test_metrics_cacherP  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                  ,   [         R                  " 5       u  pSS/nSS/n[        S5       Vs/ s H  nUR                  SSX4   SS	X$   S
9PM     nnS U 5       u  pgU R                  R                  5         [        U5      [        U5      :X  d   eg s  snf )Nr  zoffset fontsize)r  r  r  re   r   r   10r  )r   r   r   r+   r   c              3   @   #    U  H  oR                  5       v   M     g 7fr"  )rr   )r%  r   s     r   r'  0test_annotate_offset_fontsize.<locals>.<genexpr>  s     %N#&;&;&=&=s   )r=   r>   rz  r?   r   r   str)rG   rH   text_coordsxy_textr   annspoints_coordsfontsize_coordss           r   test_annotate_offset_fontsizer[    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                     [        SSS5      n U R                  [        R                  S   :X  d   eU R	                  5       [        R                  S   :X  d   eU R                  S5        U R                  SL d   eU R	                  5       U R                  :X  d   eU R                  S5        U R                  SL d   eU R	                  5       U R                  :X  d   eg )Nr8   r?  r   TF)r   _antialiasedr   r   get_antialiasedset_antialiased)r   s    r   test_get_set_antialiasedr`    s    
r2z
"Cs||,>???? CLL1C$DDDDt### C$4$4444u$$$ C$4$4444r    c                     [        SSSS9n U R                  SL d   eU R                  5       U R                  :X  d   e[        SSSS9nUR                  SL d   eUR                  5       UR                  :X  d   e[        SSSS9nUR                  S5        UR                  5       SL d   eUR                  SL d   e[        SS5      nUR                  [        R
                  S   :X  d   eg )Nr?  r   Tr   Fr   )r   r]  r^  r_  r   r   )annotannot2annot3annot4s       r   test_annotation_antialiasedrg    s    z8>E%%%  "e&8&8888
H%@F%'''!!#v':'::::
H%@F
4 !!#t+++$&&&
H-F#,,/A"BBBBr    c                 r   U R                  5       nUR                  SS/SS/5      u  n[        R                  " SS/5      nUR	                  S[        X45      SSS9  SUS S & UR                  5       nUR                  SS/SS/5      u  n[        R                  " SS/5      nUR	                  SXSSS	S
9  SUS S & g )Nr   re   r8   r   )r  r   rk   )r   r   r   rR   r  )r   r+   r   r   )r  r   r   arrayr?   r   )r  r  rH   lof_xyan_xys         r   'test_annotate_and_offsetfrom_copy_inputrm    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                 t    U R                  SSSSS9  S[        R                  S'   UR                  SSS5        g )Nr8   6 inches x 2 inchesFrb  r   r[   r   r   r  r  s     r   +test_text_antialiased_off_default_vs_manualrr    s?    MM#s1).  0 (-CLL#$LLc01r    c                 t    U R                  SSSSS9  S[        R                  S'   UR                  SSS5        g )Nr8   ro  Trb  r   rp  rq  s     r   *test_text_antialiased_on_default_vs_manualrt    s7    MM#s1tMD'+CLL#$LLc01r    c                     [        SS9n [        SSS5      n[        SSSS9nUR                  U 5        [	        SSSS	9nUR                  U 5        UR                  US
9nUR                  US
9nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  SUR                  SS9u    pgUR                  SUR                  SS9u    ph[        Xx5      n	UR                  5       n
U
S   S:X  d   eU
S   UR                  :X  d   eU
S   U	* :X  d   eU
S   UR                  U	-
  :X  d   eg )Nr7   r  r5   r   rk   r   )r   r+   r   )r[   r   r   r  r[   F)ismathlpr   rR   r   r   rR   r  )r   r   r   
set_figurer   rr   r  r  get_text_width_height_descent_fontpropertiesmaxr  )rX   ry   r  r[   r   	text_bboxr   dlp_d
below_linepointss              r   &test_text_annotation_get_window_extentr    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                     Sn [         R                  " SS9u  pUR                  SSSS9nUR                  SSSS	S
SU SS.S9n[         R                  " 5         UR
                  R                  nUR                  US9nUR                  US9nUR                  R                  U5      n[        R                  " U5      n	UR                  UR                  S-   :X  d   eU	R                  UR                  :X  d   eU	R                  UR                  :X  d   e[        R                  R                  X/5      n
[        UR                  U
R                  5        g )N   r7   r  r   r   )r  r   r   r         I@r  r  r   blackre   r   r   r  	headwidthshrinkr   r   r+   r   r  r  )r=   r>   r[   r?   r   r   ry   rr   arrow_patchr   r  r  r  Bboxunionr   )r  rG   rH   r   r   ry   r~  r   
arrow_bboxann_txt_bboxexpected_bboxs              r   1test_text_with_arrow_annotation_get_window_extentr    s:   Ills#GC
''Fa1'
%C
++o 1"c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                     Sn U S-  n[        U S9nUR                  S5        UR                  S5        [        SSS5      n[	        SSSS	S
SSSS.S9nUR                  U5        UR                  U5        UR                  5       nUR                  5       nUR                  S:X  d   e[        UR                  SU-  5        US   S:X  d   eUS   SSU-  -
  :X  d   eg )Nr7   H   r         @r5   r   r  r  r   r  r  r  r   r  r  r  g      $@rk   ry     )r   set_figwidthset_figheightr   r   rz  r   rr   r  r  r   r  )r  dots_per_pointrX   ry   r  r   r  s          r   'test_arrow_annotation_get_window_extentr  $  s    
C2XN_F

3S)H 
{</ 12NOJ &!OOH'')D__F::TN%:;$<3$<4!n"44444r    c                  h   [        SS9n U R                  S5        U R                  S5        [        SSS5      n[	        SSSSS9nUR                  U 5        UR                  U5        UR                  5       nUR                  5       nUS	   S
:X  d   eUS   S
:X  d   eUS   S:X  d   eUS   S:X  d   eg )Nr7   r  r  r5   r   r  r   )r   r   r+   rk   r   rx  r  r  ry  )	r   r  r  r   r   rz  r   rr   r  )rX   ry   r  r   r  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                     [         R                  " 5       n [         R                  " / SQ5        Sn[         R                  " SSUSSSS9  [         R                  " S	S
USSSS9  [         R                  " S
S
USSSS9  [         R                  " S
SUSSSSSS9  [         R                  " SSUSSSSS9  [         R                  " SSUSSSS9  g )Nr   r  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!r  rR   r|   r   T)rV   r   r  rc   r  r   r  r  obliquerT   rU   )r   r&   rV   rW   r  r   serifr3   )r%   r&   rV   r  r   r=   rX   axisr[   rG   rD  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                  h   [         R                  " 5       n [         R                  " / SQ5        Sn[         R                  " SSUSSSSS	S
9  [         R                  " SSUSSSS	S9  [         R                  " SSUSSSS	S9  [         R                  " SSUSSS	S9  [         R                  " SSUSSSSS	S9  g )Nr  r  r  r  r  r  r|   r   T)r   r%   rV   r   r  rc   r  r2   )r%   rV   r   r  r  heavyrT   rU   )r/   rV   rW   r  r   	monospacer   )r%   rV   r  r   r$   r3   r  )r   r&   rV   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    )zr   r  r:   numpyr   numpy.testingr   packaging.versionr   parse_version	pyparsingr   
matplotlibr   matplotlib.backend_basesr   matplotlib.backends.backend_aggr   matplotlib.figurer   r9   r	   matplotlib.patchespatchesrn   matplotlib.pyplotpyplotr=   matplotlib.gridspecr
   matplotlib.transforms
transformsr  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.textr   r   r   __version__pyparsing_versionrO   r_   r   r   r   r   r   markparametrizer  printr1  r   r   r   r   r   r  r  r$  r'  r-  r2  r4  r7  r>  rE  rU  r[  re  rj  rq  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  r  r-  xfailreleaser3  r6  r:  r=  rP  r[  r`  rg  rm  rr  rt  r  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    