
    
3jD                     	   S SK J r   S SKrS SK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Jr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-  \" \R\                  5      r/\'" S/SS9S 5       r0\'" S/SS9S 5       r1\'" S/SS9S 5       r2\'" S/SS9S 5       r3\'" S/SS9S 5       r4S r5\Rl                  Ro                  S\8\9S4\8S S /S4\:SS4\:SS 4\:S!S"4\:S#S$445      S% 5       r;\'" S&/SS9S' 5       r<\'" S(/SS9S) 5       r=\'" S*/SS+S,9S- 5       r>\'" S./SS9S/ 5       r?S0 r@S1 rA\Rl                  Ro                  S2S3S4/S5S6/S79S8 5       rBS9 rCS: rDS; rES< rFS= rGS> rH\Rl                  Ro                  S?/ S@Q5      \Rl                  Ro                  SA/ SBQ5      SC 5       5       rI\'" SD/SS9SE 5       rJ\'" SF/SS9SG 5       rK\'" SH/SS9SI 5       rLSJ rM\'" SK/SS9SL 5       rNSM rO\'" SN/SS9SO 5       rP\Rl                  Ro                  SP/ SQQ5      SR 5       rQSS rRST rS\)SU 5       rT\)SV 5       rU\Rl                  Ro                  SW/ SXQ5      SY 5       rV\'" SZ/S[S9S\ 5       rW\'" S]/S[S9S^ 5       rXS_ rYS` rZ\&" 5       Sa 5       r[\'" Sb/SS9Sc 5       r\\Rl                  Ro                  Sd/ SeQ5      Sf 5       r]Sg r^Sh r_Si r`Sj ra\&" 5       Sk 5       rbSl rcSm rdSn re\Rl                  Ro                  SoSpSq//5      Sr 5       rfSs rg\Rl                  R                  \/R                  St:H  SuSv9Sw 5       rj\Rl                  R                  \/R                  St:H  SuSv9Sx 5       rk\)Sy 5       rlSz rmS{ rnS| roS} rp\&" 5       S~ 5       rq\&" / SXQS9S 5       rr\&" / SXQS9S 5       rsS rtS ruS rvS rw\'" S/SS9S 5       rx\'" S/SS9S 5       ryS rzS r{\'" S/SSS9S 5       r|\'" S/SSS9S 5       r}S r~S r\'" S// SQSS9S 5       rS r\'" S/SS/ SQS9S 5       r\Rl                  Ro                  S/ SQS4S/S4S/S4S/S4/5      S 5       rS r\'" S/SS/ SQS9S 5       r\'" S/SS9S 5       rg)    )datetimeN)assert_almost_equal)parse)
MouseEvent)RendererAgg)Figure)FontPropertiesfontManagerget_font)GridSpec)check_figures_equalimage_comparison)needs_usetex)Text
Annotation
OffsetFromfont_stylesmpl20)stylec            	        ^	^
 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      T/home/wildlama/miniconda3/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   )familyr   variantsizezNormal Font)皙?r,   axes fraction)xycoordsfontproperties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_stylesrS      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 alignmentr5   r<   zTpTpTp
$M$
TpTpTp   centertopr+   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTp皙?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	rA   figuresubplot	set_titletextxlimylimrI   rJ   rL   s    r!   test_multilinere   v   s    JJL	Q1	BLL,-HHS'bX%I HHS3" HHS3" HHQNHHQMM"MM"r$   
multiline2c            
        ^ [         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 )Nr   gffffff?   r<   C2r8   )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   rV   F)clip_on	transform)	mpatches	Rectangle	transAxes
set_boundsget_window_extenttransformedinvertedbounds	add_patch)rL   ttrrenderers      r!   draw_box!test_multiline2.<locals>.draw_box   se    vq!U)+7	  *[..01V	 	Qr$   leftr5   r,   bottom)horizontalalignmentverticalalignmentg333333?zBottom alignrj   g?rY   z	Top aligng?baselinezBaseline alignrW   )r   r   rotationzBot align, rot20)	rA   rB   set_xlimset_ylimaxhlinecanvasget_renderer	enumeratera   )	rK   rL   stsr}   horalnnstrz   r|   s	           @r!   test_multiline2r      s   llnGCKK3KK1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      @      ?figsizer8   r   antialiasedrX   T)r   r   r         ?z
$\sqrt{x}$ffffff?znot antialiased)r   rcParamsrA   r^   ra   rK   s    r!   test_antialiasingr      s    ',CLL#$
**\
*CHHS$8'T  ;HHS$8'T  ; (,CLL#$HHS$)x'U  <HHS$8'U  < (-CLL#$r$   ztext_contains.pngc            	         [         R                  " SS9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      r   button_press_eventr<   rV   r   r      r:   zhello worldrX   )r[   fontsizer   yellowredor   )rA   r^   axesr   r   nplinspacemeshgridra   drawzipflatgcars   rp   xycontainsviewLimfrozenplotset)rK   rL   meventxsystxtr   r   r   _rj   vls               r!   test_containsr      s%   
**V
$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)r:   r:   )333333?r   
arrowstylez->)xyxytext
arrowpropsr   )r<   r   F)	rA   rB   rC   r   r   r   	transDatarp   r   )rK   rL   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   rn   r<   r<   )r   r.   )rA   rB   pytestraisesrC   r   r   )errr.   r   rK   rL   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 )NrV   z
left titler   loczright titleright)rA   r^   r_   r`   rI   rJ   rd   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 )NrV   r,   )r   r   )rY   r   r   rX   r<   z Tjroundwheat)boxstyle	facecoloralpha)r\   r   bboxg      ?z$\sum_{i=0}^{j}$)r\   r   r         ?)
rA   r^   r_   ra   dictr   r   r   rI   rJ   )rL   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rotation_anchor.pngT)baseline_imagesr   remove_textc                      [         R                  " 5       u  pUR                  SS/SS9  UR                  SSSS9  UR	                  SSSS9  Sn[        U5       H!  nUR                  SSSS	U 3S
X2-  S-  SSS9  M#     g )Nr   rV   )lwr<   z.5)rk   rj      pPCr;   h  anchorcenter_baseline)rj   r+   r   rotation_moder   )rA   rB   r   axvliner   rangera   )rK   rL   Nr{   s       r!   test_rotation_mode_anchorr   /  s     llnGCGGQFqGJJrRtJ,JJrRtJ,	A1X
BasG#S"3 	 	5 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 )
NrV   rX   rW   i  )r   r   
fontweightr      i  r   )rA   r^   r_   r`   rd   s    r!   test_axes_titlesr   ?  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testrn   figure pixels)r   
textcoords   )rA   rB   rC   r   r   ru   r|   set_positionr   minxyann)rK   rL   r   init_pos	shift_valpost_posrN   bs           r!   test_set_positionr  I  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?rV      r      r   
   )rA   r^   ra   set_textru   x1x0_char_index_at)rK   ra   r   size_isize_morigins         r!   test_char_index_atr  i  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$   ra   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 )	Nr<   r   r   )r[   r\   r
  dpi皙?rtol)rA   rB   ra   r   r   r  ru   r   testingassert_allclose
get_points)ra   rK   rL   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_intr3    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_raisesr8    s"    	z	"l# 
#	"	"s   
.
<c                  >    [        S S9R                  5       S:X  d   eg )Nr%  r&  r(  r   r$   r!   test_get_rotation_noner:    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_mod360r=    s/    +-=>D!,99;Q? ?r$   r[   )rX   r   r   r\   )rX   rY   r   r   r   c                    [         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   r\   r[   )r<   r<   r   r   r   default)
rA   rB   r   ra   r   r   r   ru   r|   r  )r[   r\   rK   rL   r   t0r  s          r!   %test_null_rotation_with_rotation_moderA    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  r5   zIs bbox clipped?r{   T)backgroundcolorro   r<   zIs fancy bbox clipped?ro   r   zround, pad=0.1)rA   ra   set_bbox)ts    r!   test_bbox_clippingrH    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   rW   zaxes points    r   r   r   r.   r   - ptsirY   r   r   r   r.   r   r\   + fracr   r  r-   - frac皙+ pixels      zaxes pixels- pixelsirA   rB   rC   rK   rL   s     r!   "test_annotation_negative_ax_coordsrX    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 )NrJ  r
     zfigure pointsrK  rL  rM  i6  rY   rN  rO  r  r<   zfigure fractionrP  rQ  g?rR  2   r   rU  i   rV  rW  s     r!   #test_annotation_negative_fig_coordsr^    s   llnGCKKCy_9  E KKSzo:"   KKc{/@#;):R  I KKt}1B4=+<r  
 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 )NrV   rh   r<   aardvarkr   )rA   rB   draw_allstalera   rC   )rK   ax1ax2txt1ann1s        r!   test_text_stalerh    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 )NrV   rh   r
  r   TrE  )r   randomseedrA   rB   randra   )rK   rd  re  r   r   s        r!   test_agg_text_cliprm    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+   r;   )r   r   font_managerr	   get_size_in_points)fpsz1s     r!   test_text_size_bindingrt    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*   zpdf.fonttype)g@g(@r   r[  iX  r   +   rh   r,   r   z pt font sizer   )r   r   rA   rB   xaxisset_major_locatorNullLocatoryaxisr   r   r   ra   )rK   rL   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))r:   rh   )rh   r:   )rh   rh   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   r<   linespacingr|   )	rA   r^   r   r   ra   r   ru   widthheight)	spacing1spacing2text_stringrK   r|   text1text2box1box2s	            r!   test_two_2line_textsr  1  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   r<   r   abcr  )r   r   	TypeErrorrA   ra   r   r$   r!   test_validate_linespacingr  F  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)rA   rB   ra   r   r  r  r   r   rW  s     r!   test_nonfinite_posr  K  sE    llnGCGGArvvuGGBFFAuJJOO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   )
rA   r^   r   add_subplotr   r   ry  
majorTickslabel1
get_usetex)rK   rd  re  rL   usetexrG  s         r!   test_usetex_is_copiedr  R  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 )Nr<   z	$\frac12$Tr  )rA   r^   ra   r   r   r   s    r!   test_single_artist_usetexr  a  s1    
 **,CHHR\$H/JJOOr$   fmt)pngpdfsvgc                     S[         R                  S'   [         R                  " 5       nUR                  SSSSS9  UR	                  [
        R                  " 5       U S9  g )NTr  r<   2_2_2Fr  )format)rA   r   r^   ra   savefigioBytesIO)r  rK   s     r!   test_single_artist_usenotexr  k  sG     #'CLL
**,CHHRWUH+KK

SK)r$   ztext_as_path_opacity.svg_classic_testc                      [         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   r<   r   r<   rN   r   r   r   r   r   r   rV   r   rj   )rA   r^   r   set_axis_offra   r   r$   r!   test_text_as_path_opacityr  w  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   r<   z50% using `alpha`r  r   z"50% using `alpha` and 100% `color`r  r  )r   r   rA   r^   r   r  ra   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BrV   rh   r<   Boo)rA   r   reprra   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 )NrV   
annotationr   ra  gư>r  )
rA   rB   rC   ru   r   r   tight_layoutr   allcloser  )rK   rL   anextent1extent2s        r!   test_annotation_updater    s    ll1a GC	\j	1B""3::#:#:#<=G""3::#:#:#<=G{{7--/1C1C1E $& & & &r$   c                 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 )
NrV   r   r   r<   )datar-   rn   offset points)r.   r   r   )r.   )r  r   r   nowrC   fig_testfig_refrL   s      r!   test_annotation_unitsr    s    				BGGHLLNAs#KKhllnc*5N/  ; 
			BGGHLLNAs#KKhllnc*5NKOr$   zlarge_subscript_title.pngc                  6   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 )Nzaxes.titleyrV   rh   )	   g      @T)r   constrained_layoutr   z$\sum_{i} x_i$zNew wayr   r   g)\(?)r   zOld Way)rA   r   rB   r`   set_xticklabels)rK   axsrL   s      r!   test_large_subscript_titler    s    "&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   )r<   _   r   )r8   r   r   )r8      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ncolsr^   rV   rV   z?This is a very long text that should be wrapped multiple times.r   T)wrapr   r[   z?This is a very long
text that should be
wrapped multiple
times.)rA   r^   r   add_subfigurera   r   r   _get_wrapped_text)r   r   halignrK   gssubfigsra   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)   r   r   z;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r   r<   (   T)r+   r  z;This is a very $\overline{\mathrm{long}}$
line of Mathtext.rA   r^   ra   r   r   r  )rK   r  ra   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)rA   r^   suptitle	_suptitleru   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 )Nr   r   r   g      #@r   AlonglineoftexttowrapTr  r  rK   ra   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   rV   u   €rN   wr  )r  rJ   set_yticklabelsr|  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)rA   r^   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)rp   transform_rotates_text)rA   r   mtransformsAffine2D
rotate_degra   r)  r   )rL   rp   ra   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 )Nr2   )r3   )r/   r   r/   r   )r   r	   r   update)inpcacherG  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%  r6  r%  s    r!   test_invalid_rotation_valuesr    s8    	J
M 	Q58,
M 
M 
M   0
>c                      [         R                  " [        5         [        R                  " SSSSS9  S S S 5        g ! , (       d  f       g = f)Nr<   r   foobar)r  )r   r   r7  rA   figtextr   r$   r!   test_invalid_colorr  &  s,    	z	"BEX. 
#	"	"r  )r  rV   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   )rA   rB   ra   r   r   r   r   r7  rW  s     r!   test_parse_mathr!  ,  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   r  r   r   ztext.parse_mathF)
rA   rB   ra   r   r   r7  r   r   r   
rc_contextrW  s     r!   test_parse_math_rcparamsr$  9  s     llnGCGGAq%&	z)9	:

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

 
4	3	 
;	: 
4	3s   C?AC
C
C,c                    ^ [         R                  " [        R                  R                  5      R
                  S   R                  n U 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X ;   d   e0 mU4S jnX2l        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X   R                  5       nUR                   UR"                  :  d   eg )N_cacher8   r<   foo
barTr  c                  b   > U tp#pEnTR                  U[        5       5      R                  U5        g N)
setdefaultr   add)argskwargsr|   r   r   r  r   r   s          r!   call test_metrics_cache.<locals>.call\  s*     $QA
a##A&r$   r   barrV   )inspect	signaturer   ra   _get_text_metrics_function
parametersr?  clearrA   r^   r   r   _get_rendererdraw_texlen
cache_infohitsmisses)renderer_cacherK   r|   r.  infor   s        @r!   test_metrics_cacher>  I  s9    &&++j"7  
**,CHHRZ HHRZH-HHRZH-JJOO  "H%%%	B' JJOOR5UEN"""
 r%y>SE^0q00000#..0D 99t{{"""r$   c                  @  ^ [         R                  " [        R                  R                  5      R
                  S   R                  m[        R                  " 5         TR                  5         U4S jn U " 5         [        R                  " 5         [        T5      S:X  d   eg )Nr&  c                    > [         R                  " 5       u  pU R                  5         [        T5      S:X  d   eTU R                  R                  5          nUR                  5       nUR                  S:  d   eUR                  UR                  :X  d   eUR                  UR                  :  d   e[         R                  " U 5        g )NrV   r   )rA   rB   draw_without_renderingr8  r   r   r9  currsizer;  r:  close)rK   rL   funcr9  r<  s       r!   helper#test_metrics_cache2.<locals>.helperw  s    ,,.""$>"a'''cjj5578__&
""Q&&&""j&7&7777!2!2222		#r$   r   )r1  r2  r   ra   r3  r4  r?  gccollectr5  r8  )rE  r<  s    @r!   test_metrics_cache2rI  o  ss    &&++j"7  JJL HJJL~!###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  rh   r   r   10r  )r   r   r   r.   r   c              3   @   #    U  H  oR                  5       v   M     g 7fr)  )ru   ).0r   s     r!   	<genexpr>0test_annotate_offset_fontsize.<locals>.<genexpr>  s     %N#&;&;&=&=s   )rA   rB   r   rC   r   r   str)rK   rL   text_coordsxy_textr  annspoints_coordsfontsize_coordss           r!   test_annotate_offset_fontsizerV    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 )Nr<   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   rX  rY  rZ  r   r   )annotannot2annot3annot4s       r!   test_annotation_antialiasedrb    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   rh   r<   r   )r
  r   rn   )r   r   r   rV   r  )r   r.   r   r   )r  r   r   arrayrC   r   )r  r  rL   lof_xyan_xys         r!   'test_annotate_and_offsetfrom_copy_inputrh    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$   )
extensionsc                 t    U R                  SSSSS9  S[        R                  S'   UR                  SSS5        g )Nr<   6 inches x 2 inchesFr]  r   ra   r   r   r  r  s     r!   +test_text_antialiased_off_default_vs_manualrn    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 )Nr<   rk  Tr]  r   rl  rm  s     r!   *test_text_antialiased_on_default_vs_manualrp    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    pg[        [        R                  " UR                  5      5      nS Hd  u  pUR                  U	5      =nc  M  UR                  S5      S   nUR                  R                  5       nX   * U-  U-  U R                  -  S-  n  O    UR                  SUR                  SS9u    pn[!        X~5      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 )Nr;   r  r9   r   rn   r   )r   r.   r   )ra   r   r   r  ra   F)ismath))zOS/2sTypoDescender)hheadescenthead
unitsPerEmH   lpr&  rV   r   r   rV   r  )r   r   r   
set_figurer   ru   r  r  get_text_width_height_descent_fontpropertiesr   r
   _find_fonts_by_propsget_sfnt_tablerq  r  maxr  )r^   r|   r  ra   r   	text_bboxr   dfontnamekeytableunits_per_emr   lp_d
below_linepointss                    r!   &test_text_annotation_get_window_extentr    s   _F3S)H FvHJ&!VqA&DOOF''':D&&&9I::(((;;)*****44
**5 5 :GAqK44Z5O5OPQDF	((..E;..v6|DL!11DDFHJ;-86::EJD G ;;*,,U < <
1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                  5        U	R                  UR                  :X  d   e[        R                  R                  X/5      n
[        UR                  U
R                  5        g )N   r;   r  r   r   )r  r   r   r&        I@r  r  r   blackrh   r&  r   r  	headwidthshrinkr   r   r.   r   r  r  )rA   rB   ra   rC   r   r   r|   ru   arrow_patchr   r  r   r  r
  Bboxunion)r  rK   rL   r   r   r|   r  r   
arrow_bboxann_txt_bboxexpected_bboxs              r!   1test_text_with_arrow_annotation_get_window_extentr    s6   Ills#GC
''Fa1'
%C
++o 1"c3	  4C HHJzz""H%%x%8I  ( 3D228<J))#.L ::4//// ++Y-=-=>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 )Nr;   rx  r         @r9   r  r  r  r   r  r   r
  r&  r  r  r  g      $@rn   r{  r  )r   set_figwidthset_figheightr   r   r|  r   ru   r  r  r   r  )r  dots_per_pointr^   r|   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 )Nr;   r  r  r9   r  r  r   )r   r   r.   rn   r&  rz  r  r  r{  )	r   r  r  r   r   r|  r   ru   r  )r^   r|   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$   zbasictext_wrap.pngc                     [         R                  " SS9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 )Nr   r   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   rV   r   r   T)r[   r   r  r   r  r   r
  r  obliquerX   rY   )r   r   r[   r\   r  r  serifr7   )r)   r   r[   r  r   rA   r^   axisra   rK   rG  s     r!   test_basic_wrapr  S  s    
**V
$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$   zfonttext_wrap.pngc                  f   [         R                  " SS9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  r   r   T)r   r)   r[   r   r  r   r  r6   )r)   r[   r   r  r
  heavyrX   rY   )r3   r[   r\   r  r  	monospacer   )r)   r[   r  r   r(   r7   r  )r   r   r[   r   r  r  r  s     r!   test_font_wrapr  c  s    
**V
$CHH^	*A HHQA7vHHQ1\frMHHQAg(u4HHHQ1[W4@HHRA(vr$   c                      [        5       n [        R                  " SSS5      nU H  nU R                  U5      nUS;   a  M   e   g )Nr   皙v@r,   )rX   r   r   )r   r   arange_ha_for_angletext_instanceanglesangler   s       r!   test_ha_for_angler  s  sD    FMYYq%%F!//6	7777 r$   c                      [        5       n [        R                  " SSS5      nU H  nU R                  U5      nUS;   a  M   e   g )Nr   r  r,   )rX   rY   r   )r   r   r  _va_for_angler  s       r!   test_va_for_angler  {  sD    FMYYq%%F!//6	9999 r$   zxtick_rotation_mode.pngF)r   r   c                     [         R                  " SS9u  pUR                  / 5        UR                  5       nUR	                  [        S5      S/S-  SS9  UR	                  [        S5      S/S-  SS9  [        R                  " SSS5      n[        UR                  5       U5       H  u  pEUR                  U5        M     [        UR                  5       U5       H  u  pEUR                  U5        M     [         R                  " S	S
SSS9  g )N)r   rV   r   %   r   xtickr   r   r   {Gz?Gz?r   r:   r   r   rY   r   )rA   rB   rJ   twinyrI   r   r   r   r   get_xticklabelsset_rotationsubplots_adjustrK   rL   re  r  tickr  s         r!   test_xtick_rotation_moder    s    ll7+GCMM"
((*CMM%)eWr\MANN59ugl'NB[[C$F2--/8%  93..0&9%  : T2bAr$   zytick_rotation_mode.pngc                     [         R                  " SS9u  pUR                  / 5        UR                  5       nUR	                  [        S5      S/S-  SS9  UR	                  [        S5      S/S-  SS9  [        R                  " SSS5      n[        UR                  5       U5       H  u  pEUR                  U5        M     [        UR                  5       U5       H  u  pEUR                  U5        M     [         R                  " S	S
SSS9  g )N)rV   r   r   r  r   ytickr  r   r   r:   r   r  r  r  )rA   rB   rI   twinxrJ   r   r   r   r   get_yticklabelsr  r  r  s         r!   test_ytick_rotation_moder    s    ll7+GCMM"
((*CMM%)eWr\MANN59ugl'NB[[C$F2--/8%  93..0&9%  : SSAr$   c                  >   [         R                  " 5       u  pUR                  S5        UR                  SS5        UR	                  SSS5      nUR                  U R                  R                  5       5      n[        R                  " UR                  5      (       a   eg )NlogrV   r;   r   invalid)rA   rB   
set_yscaler   ra   get_tightbboxr   r   r   isfiniter  )rK   rL   invalid_textinvalid_bboxs       r!   (test_text_tightbbox_outside_scale_domainr    sx     llnGCMM%KK3771b),L--cjj.E.E.GHL{{<--.....r$   c           
      p    SnSnX!-   U-   nU R                  SSUSSSS9  U R                  SSUSSS/ S	QS
9  g )Nu   Arabic: رَقْمu   ∏∐∑∫r<   r   rK  rX   rZ   r   )cmr10zDejaVu Sans Displayr0   )r+   r[   r\   r)   )ra   )rK   ra   
math_signss      r!   _test_complex_shapingr    s\    
	1 	 WJz)DHHS$2(xH@
 HHS$2(xC  Er$   complex)r  r  r  eps)ri  r   c                  B    [         R                  " SS9n [        U 5        g )N)r   rh   r   )rA   r^   r  r   s    r!   test_complex_shapingr    s    
**V
$C#r$   c           	         U R                  SSSSSS9nUR                  5       b   eU R                  SSSSSS	/S
9nUR                  5       S:X  d   eU R                  SSSSSS9nUR                  S/5        UR                  5       S:X  d   eg )NrV   r   zDefault: fi ffi fl strK  r   )r   r   r:   zDisabled: fi ffi fl st-liga)r   r   fontfeatures)r  r,   zDiscretionary: fi ffi fl stdlig)r  )ra   get_fontfeaturesset_fontfeaturesr  s     r!   _test_text_featuresr    s    C0' 	 	;A'''C1'&i 	 	)A ;...C6' 	 	;Ax :---r$   features)r   r   ri  c                  B    [         R                  " SS9n [        U 5        g )N)r  r   r   )rA   r^   r  r   s    r!   test_text_featuresr    s     **X
&Cr$   zinput, match)rV   rh   r  zmust be list of tuple)rV   rh   )enr   rh   zstart location must be int)r  rV   r   zend location must be intc                     [         R                  " [        US9   [        SSSU S9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   )language)r   r   r  r   )inputr   s     r!   test_text_language_invalidr    s,     
y	.Q55) 
/	.	.r  c                 f   U R                  SSSSS9nUR                  5       b   eU R                  SSSSS9nUR                  5       b   eU R                  SSS	SS9nUR                  5       b   eU R                  SS
SSS9nUR                  5       b   eSnU R                  SSUSS9nUR                  5       b   eU R                  SSUSSS9nUR                  5       S:X  d   eU R                  SSUSS9nUR                  S5        UR                  5       S:X  d   eU R                  SS
US-  S/ SQS9nUR                  5       S:X  d   eSnU R                  SSUSS9nUR                  5       b   e[        R                  " SS05         U R                  SSUSS9nS S S 5        UR                  5       S:X  d   eU R                  SSUSSS9nUR                  5       S:X  d   eU R                  SS
US-  SS9nUR                  S5        UR                  5       S:X  d   eg ! , (       d  f       N= f)Nr   r]   DefaultrK  rx  g?zLang Ar8   zLang Br  Mixedu   бr:   sr)r   r  rur   ))r  r   rV   )r  rV   rh   )r  rh   r  )r  r  r   u   Ŋr   ztext.languager  smn))r  r   rV   )r  rV   rh   )r  rh   r  )r  r  r   )ra   get_languageset_languagerA   r#  )rK   rG  cyrilliclatins       r!   _test_text_languager    sc   CR0A>>###D(R0A>>###CB/A>>###D'B/A>>### Hc8b1A>>###dHrDAA>>t###c8b1ANN4>>t###dHqL2R 	 	TA>>WWWW Ec52.A>>###	$/	0HHS$H3 
1>>t###c52>A>>u$$$dEAI3ANNMN>>  B B B B 
1	0s   H""
H0r  c                  B    [         R                  " SS9n [        U 5        g )N)r  r  r   )rA   r^   r  r   s    r!   test_text_languager    s     **V
$Cr$   zdraw_text_fallback.pngc                     U R                  S5        / SQn[        R                  " S[        U5      4S9nUR	                  SSUS9n[        US   5        [        US   5        [        US	   5        g )
Nz5matplotlib.backends.backend_agg.RendererAgg.draw_text)rh   r   r  r   r   r  rV   )height_ratiosr   rh   )delattrrA   r^   sum
subfiguresr  r  r  )monkeypatchheightsrK   r  s       r!   test_draw_text_as_path_fallbackr	    sg     OPG
**aW.
/C^^Aq^8F&)$q	"q	"r$   )r   rG  r1  r  r>   numpyr   numpy.testingr   packaging.versionr   parse_version	pyparsingr   
matplotlibr   matplotlib.backend_basesr   matplotlib.backends.backend_aggr   matplotlib.figurer   r=   r	   r
   r   matplotlib.patchespatchesrq   matplotlib.pyplotpyplotrA   matplotlib.gridspecr   matplotlib.transforms
transformsr
  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.textr   r   r   __version__pyparsing_versionrS   re   r   r   r   r   markparametrizer  printr7  r   r   r   r   r   r  r  r"  r*  r-  r3  r8  r:  r=  rA  rH  rX  r^  rh  rm  rt  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>  rI  rV  r[  rb  rh  rn  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r   r$   r!   <module>r$     s\    	  	   - 4    / 7 $ I I %  ( + O 4 8 8!)"7"78  =/1U 2Up ;-w/ 0. <.0-6 1-6` $%W5- 6-$ &'w7 8<	. /UVAGH9:ABHI=>2  8*G, - #$G4 5. #8"9"$5$5 $%W5D 6D"@C4 "c+0FG H;
4
;
$
5@
 :;  ? @P@ <P ?#73/ 4/ 67wG H6 78H I6. &'w7 8* %&g6> 7> -/KL* M*(4
 3 3    56* 7* -.oF= G= -.oF! G!&& P P ./w? @ 22=9 ?: 
$ 
$$$( &6%=>- ?-/ $,,	9M  OO $,,	9M  OO "# "#J$66 5C$    562 72  562 72$9N ;F52 * '(8; 9; &'w7 88: ,-5PB QB$ ,-5PB QB"	/E$ 9+*FgV W
. :,E9;;
 	+,
*+
	9:
	78	**
%BP :,E9;;
 +,G<# =#r$   