
    G8c.i                     2   d dl m Z  d dlZd dlZd dlZd dlmZ d dlZd dlZ	d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ  ed	g      d
        Z edg      d        Z edgd      d        Z  edg      d        Z!d Z" edg      d        Z#d Z$ejJ                  jM                  de'e(dfe'd d gdfe)ddfe)ddfe)ddfe)d d!ff      d"        Z* ed#g      d$        Z+ ed%gd      d&        Z, ed'g      d(        Z-d) Z.ejJ                  jM                  d*d+d,gd-d.g/      d0        Z/d1 Z0d2 Z1d3 Z2d4 Z3d5 Z4d6 Z5ejJ                  jM                  d7g d8      ejJ                  jM                  d9g d:      d;               Z6 ed<g      d=        Z7 ed>g      d?        Z8 ed@g      dA        Z9dB Z: edCg      dD        Z;dE Z< edFg      dG        Z=ejJ                  jM                  dHg dI      dJ        Z>dK Z?dL Z@dM ZAedN        ZBedO        ZCejJ                  jM                  dPg dQ      dR        ZD edSg      dT        ZE edUg      dV        ZFdW ZGdX ZH edYgZ      d[        ZI ed\gd      d]        ZJd^ ZKd_ ZLd` ZM edYgZ      da        ZNdb ZOdc ZPdd ZQejJ                  jM                  dedfdggg      dh        ZRdi ZS edjgd      dk        ZTdl ZUdm ZVdn ZW edogd      dp        ZX edqgd      dr        ZYeds        ZZy)t    )datetimeN)assert_almost_equal)
MouseEvent)FontProperties)check_figures_equalimage_comparison)needs_usetex)Textfont_stylesc                    	
 	
fd} ddl m	m
 t        j                  ddt
        d       t        j                         \  }} | dd	d	d
      }|j                  ddd|      }|j                         dk(  sJ |j                         d	k(  sJ |j                         d	k(  sJ |j                         d	k(  sJ |j                         d	k(  sJ  | dd	d	ddd
      }|j                  ddd|        | ddd	ddd
      }|j                  ddd|        | dd	d	ddd
      }|j                  ddd|        | dd	d	ddd
      }|j                  d d!d|       |j                  g        |j                  g        y )"Nc                  ^     di | } |t        j                               } |      S )N)	directory)fname )mplget_data_path)kwproppathr   findfonts      </usr/lib/python3/dist-packages/matplotlib/tests/test_text.pyfind_matplotlib_fontz.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"   皙?z
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_stylesrG      s   *
 AI(	* llnGC&	K
 	 "	 	 	$A
 >>},,,??((((***<<>X%%%==?h&&&$I KK  	  " , KK '	  ) &J KK !	  # *N KK %	  ' MM"MM"r   	multilinec                     t        j                          t        j                  ddd      } | j                  d       t        j                  dddddd	       t        j                  ddd
ddd	       t        j                  dddddd	       t        j
                  dd       t        j                  dd       | j                  g        | j                  g        y )N   zmultiline
text alignmentr*   r0   zTpTpTp
$M$
TpTpTp   centertop)r!   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpg?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r5   figuresubplot	set_titletextxlimylimr=   r>   r@   s    r   test_multilinerW   m   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            	         dt         j                  d<   t        j                         \  } }|j                  ddg       |j	                  ddg       |j                  ddd	       g d
}| j                  j                         fd}d}t        |      D ]*  \  }}|j                  d|z  dz   d||d      } |||       , |j                  dddd       |j                  ddd	       t        |      D ]*  \  }}|j                  d|z  dz   d||d      } |||       , |j                  dddd       |j                  ddd	       t        |      D ]*  \  }}|j                  d|z  dz   d||d      } |||       , |j                  dddd       |j                  ddd	       t        |      D ]+  \  }}|j                  d|z  dz   d||dd      } |||       - |j                  dddd       y )N   text.kerning_factorr   gffffff?   r0   C2r,   )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                    t        j                  dddd| j                        }|j                  |j	                        j                  | j                  j                               j                         | j                  |       y )Nr   r   rJ   F)clip_on	transform)	mpatches	Rectangle	transAxes
set_boundsget_window_extenttransformedinvertedbounds	add_patch)r@   ttrrenderers      r   draw_boxz!test_multiline2.<locals>.draw_box   se    vq!U)+7	  *[..01V	 	Qr   leftr*   r"   bottomhorizontalalignmentverticalalignmentg333333?zBottom alignr_   g?rM   z	Top aligng?baselinezBaseline alignrK   )rv   rw   rotationzBot align, rot20)
r5   rcParamsr6   set_xlimset_ylimaxhlinecanvasget_renderer	enumeraterS   )	r?   r@   stsrr   horalnnstro   rq   s	           @r   test_multiline2r      s)    +,CLL&'llnGCKKCKKAJJs$#J.ACzz&&(H EC. BWWS2X^S"%'/  1R GGCnDG1JJs$#J.C. BWWS2X^S"%',  .R GGCkG.JJs$#J.C. BWWS2X^S"%'1  3R GGC&dG3JJs$#J.C. BWWS2X^S"%'/"  >R GGC(G5r   zantialiased.pngc                      dt         j                  d<   t        j                  d      } | j	                  ddddd	       | j	                  dd
ddd	       y )NTztext.antialiased)g      @      ?figsizer0   r   antialiasedrL   ru         ?z
$\sqrt{x}$)r   r{   r5   rP   rS   r?   s    r   test_antialiasingr      sW    '+CLL#$
**\
*CHHS$8'  )HHS$8'  )r   c                      t         j                  j                  dd      } t        | d      5 }t         j                  j                  |      }d d d        j                  d      dk(  sJ y # 1 sw Y    xY w)N	Helveticaafm)fontextrbVAVAVAVAVAVA)g     @i  )r   font_managerr   open_afmAFMstring_width_height)fnfhr   s      r   test_afm_kerningr      sh    				"	";	"	>B	b$ 2hhll2"">2mCCC s    A--A6ztext_contains.pngc                     t        j                         } t        j                         }t        d| j                  dddd       }t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                  dddd	dd
      }| j                  j                          t        |j                  |j                        D ]  \  }}t        j                         j                  j                  ||g      \  |_        |_        |j#                  |      \  }}	|rdnd}
|j$                  j'                         }|j)                  ||d|
       |j$                  j+                  |        y )Nbutton_press_eventr0   rJ   r   r      r.   zhello worldrL   )rN   fontsizerz   yellowredorx   )r5   rP   axesr   r   nplinspacemeshgridrS   drawzipflatgcarh   re   xycontainsviewLimfrozenplotset)r?   r@   meventxsystxtr   r   r   _r_   vls               r   test_containsr      s3   
**,C	B,cjj#sAtLF	T4	$B	T4	$B[[R FB
((S-HrBHC JJOOBGGRWW% 1 WWY00::Aq6B&(ll6*!$% ZZ 
1c'


rr   c                  $   t        j                         \  } }|j                  dddddi      }| j                  j	                          t        d| j                  g|j                  j                  d       }|j                  |      d	i fk(  sJ y )
Nhello)r.   r.   )333333?r   
arrowstylez->)xyxytext
arrowpropsr   )r0   r   F)	r5   r6   r7   r   r   r   	transDatare   r   )r?   r@   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Unknown return typez!Unknown coordinate type: \[0, 0\]fooz$'foo' is not a recognized coordinatezfoo barz('foo bar' is not a recognized coordinatez
offset fooz'xycoords cannot be an offset coordinatezaxes fooz'foo' is not a recognized unitc                     t        j                         \  }}t        j                  | |      5  |j	                  ddd|       |j
                  j                          d d d        y # 1 sw Y   y xY w)Nmatchr   rc   r0   r0   )r   r$   )r5   r6   pytestraisesr7   r   r   )errr$   r   r?   r@   s        r   test_annotate_errorsr      sX     llnGC	s%	( 
D&hG

  s   0A((A1titlesc                      t        j                          t        j                  ddd      } | j                  dd       | j                  dd       | j	                  g        | j                  g        y )NrJ   z
left titlers   loczright titleright)r5   rP   rQ   rR   r=   r>   rV   s    r   test_titlesr   	  sW     JJL	Q1	BLL6L*LLGL,MM"MM"r   text_alignmentc                     t        j                          t        j                  ddd      } d}dD ]J  }dD ]C  }| j                  |d|dz   ||t	        ddd	      
       | j                  |dd||       |dz  }E L | j                  ddgddg       | j                  ddgddg       | j                  ddg       | j                  ddg       | j                  g        | j                  g        y )NrJ   r"   )r   r   )rM   rt   ry   rL   r0   z Tjroundwheat)boxstyle	facecoloralpha)rO   rz   bboxg      ?z$\sum_{i=0}^{j}$)rO   rz   r   g      ?)
r5   rP   rQ   rS   dictr   r|   r}   r=   r>   )r@   r   rz   	alignments       r   test_alignmentr     s    JJL	Q1	BA @ 	IGG3	E)i(7gSI  K GG3+	H  NHA	 GGQFS#JGGQFS#JKKAKKCMM"MM"r   zaxes_titles.pngc                      t        j                          t        j                  ddd      } | j                  dddd       | j                  dddd       | j                  d	d	dd       y )
NrJ   rL   rK   i  )r   r   
fontweightrs      i  r   )r5   rP   rQ   rR   rV   s    r   test_axes_titlesr   ,  s[     JJL	Q1	BLLx"LELLVbSLALLgsLCr   c                     t        j                         \  } }|j                  dddd      }| j                  j	                          |j                  | j                  j                        }d}|j                  ||f       | j                  j	                          |j                  | j                  j                        }t        |j                  |j                        D ]  \  }}||z   |k(  rJ  |j                  dddd      }| j                  j	                          |j                  | j                  j                        }d}||f|_
        | j                  j	                          |j                  | j                  j                        }t        |j                  |j                        D ]  \  }}||z   |k(  rJ  y )Ntestrc   figure pixels)r   
textcoords   )r5   r6   r7   r   r   rj   rq   set_positionr   minxyann)r?   r@   r   init_pos	shift_valpost_posrB   bs           r   test_set_positionr   6  s   llnGC ++v/  CCJJOO$$SZZ%8%89HIi+,JJOO$$SZZ%8%89HHLL(,,/ "19}!!!" ++v/  CCJJOO$$SZZ%8%89HII&CIJJOO$$SZZ%8%89HHLL(,,/ "19}!!!"r   rS    Oemptyz	non-empty)idsc                    t        j                         \  }}|j                  dd| dd      }|j                  j	                          |j
                  }|j                         }|j                  |dz        }t        j                  j                  |j                         |j                         dz  d       |j
                  |k(  sJ y )	Nr0   rs   rt   )rN   rO   
   )dpi皙?rtol)r5   r6   rS   r   r   r   rj   r   testingassert_allclose
get_points)rS   r?   r@   t1r   bbox1bbox2s          r   test_non_default_dpir   V  s    llnGC	c4Fx	8BJJOO
''C  "E  S2X .EJJu//153C3C3E3J$(  * 77c>>r   c                      t        d      j                         dk(  sJ t        d      j                         dk(  sJ y )N
horizontalrz           verticalg     V@r
   get_rotationr   r   r   test_get_rotation_stringr  f  s:    &335;;;$113s:::r   c                  P    dD ]!  } t        |       j                         | k(  r!J  y )N)g      .@g333330@gYS@r  r  is    r   test_get_rotation_floatr  k  s-     4Q,,.!3334r   c                  b    dD ]*  } t        |       j                         t        |       k(  r*J  y )N)C      )   r  )r
   r  floatr
  s    r   test_get_rotation_intr  p  s1     ;Q,,.%(:::;r   c                  x    t        j                  t              5  t        d       d d d        y # 1 sw Y   y xY w)N
hozirontalr  r   r   
ValueErrorr
   r   r   r   test_get_rotation_raisesr  u  s+    	z	" $l#$ $ $s   09c                  B    t        d       j                         dk(  sJ y )Nr  r  r  r   r   r   test_get_rotation_noner  z  s    ++-444r   c                  |    t        g dg d      D ])  \  } }t        t        |       j                         |       + y )N)g     v@g     w@g	@)r  g      1@gfffff&f@r  )r   r   r
   r  )r  js     r   test_get_rotation_mod360r  ~  s8    +-=> @1D!,99;Q?@r   rN   )rL   r   rs   rO   )rL   rM   rt   ry   center_baselinec                    t        j                         \  }}t        d||       } |j                  dddi|} |j                  dddi|}|j                  j                          t        |j                  |j                  j                        j                         |j                  |j                  j                        j                                y )Nr   )rz   rO   rN   )r0   r0   r   rotation_modeanchordefault)
r5   r6   r   rS   r   r   r   rj   rq   r   )rN   rO   r?   r@   r   t0r   s          r   %test_null_rotation_with_rotation_moder#    s     llnGC	qRB	'B		>x	>2	>B		?y	?B	?BJJOO,,SZZ-@-@ALLN,,SZZ-@-@ALLNPr   text_bboxclipc                      t        j                  ddddd       t        j                  dddd	      } | j                  d
di       y )Ng?r*   zIs bbox clipped?rp   T)backgroundcolorrd   r0   zIs fancy bbox clipped?rd   r   zround, pad=0.1)r5   rS   set_bbox)ts    r   test_bbox_clippingr*    s>    HHS#)3Mc3TBAJJ
,-.r   z!annotation_negative_ax_coords.pngc            	      |   t        j                         \  } }|j                  dddgdddgdd       |j                  dddgdddgddd	
       |j                  dddgdddgdd       |j                  dddgdddgddd	
       |j                  dddgdddgdd       |j                  dddgdddgddd	
       y )N+ ptsr   rK   zaxes points    r   r   r   r$   r   - ptsirM   r   r   r   r$   r   rO   + fracr   r   r#   - frac皙+ pixels      zaxes pixels- pixelsir5   r6   r7   r?   r@   s     r   "test_annotation_negative_ax_coordsr:    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            	      |   t        j                         \  } }|j                  dddgdddgdd       |j                  ddd	gddd	gddd
       |j                  dddgdddgdd       |j                  dddgdddgddd
       |j                  dddgdddgdd       |j                  dddgdddgddd
       y )Nr,  r   x   zfigure pointsr-  r.  r/     rM   r0  r1  r   g?zfigure fractionr2  r3  r0   r4  2   r   r7  ir/   r8  r9  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                  ,   t        j                  dd      \  } \  }}t        j                          |j                  rJ |j                  rJ | j                  rJ |j	                  ddd      }|j                  sJ |j                  sJ | j                  sJ |j                  dddg      }|j                  sJ |j                  sJ | j                  sJ t        j                          |j                  rJ |j                  rJ | j                  rJ y )NrJ   r]   r0   aardvarkr   )r5   r6   draw_allstalerS   r7   )r?   ax1ax2txt1ann1s        r   test_text_stalerJ    s    ll1a(OC#s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                     t         j                  j                  d       t        j                  d      \  } \  }}t         j                  j                  dd      D ]-  \  }}|j                  ||dd       |j                  ||d       / y )NrJ   r]   r   r   Tr'  )r   randomseedr5   r6   randrS   )r?   rF  rG  r   r   s        r   test_agg_text_cliprO    sm    IINN1ll1oOC#s		r1% 1Aud+Aur   c                      dt         j                  d<   t         j                  j                  d      } | j	                         }dt         j                  d<   || j	                         k(  sJ y )Nr   z	font.sizelarger!   r/   )r   r{   r   r   get_size_in_points)fpsz1s     r   test_text_size_bindingrV    s\     "CLL				(	(g	(	6B



!C #CLL"''))))r   zfont_scaling.pdfc                     dt         j                  d<   t        j                  d      \  } }|j                  j                  t        j                                |j                  j                  t        j                                |j                  dd       t        t        ddd	            D ]-  \  }}|j                  d
|dz  dj                  |      |       / y )N*   pdf.fonttype)g@g(@r   r=  iX     +   r]   r"   r   z{fs} pt font size)fs)r   )r   r{   r5   r6   xaxisset_major_locatorNullLocatoryaxisr}   r   rangerS   format)r?   r@   r  r\  s       r   test_font_scalingrc    s    #%CLL ll;/GCHHs01HHs01KKS5B?+ K2
QrT.555<rJKr   zspacing1, spacing2))r.   r]   )r]   r.   )r]   r]   c                    d}t        j                         }|j                  j                         }|j	                  dd||       }|j	                  dd||      }|j                  j                          |j                  |      }|j                  |      }|j                  |j                  k(  sJ | |k(  r|j                  |j                  k(  sJ y |j                  |j                  k7  sJ y )Nzline1
line2r   r0   linespacing)rq   )	r5   rP   r   r   rS   r   rj   widthheight)	spacing1spacing2text_stringr?   rq   text1text2box1box2s	            r   test_two_2line_textsrp    s     K
**,Czz&&(HHHT3HBEHHT3HBEJJOO""H"5D""H"5D ::###8{{dkk))){{dkk)))r   c                      t        j                  t              5  t        j                  dddd       d d d        y # 1 sw Y   y xY w)Nr   r0   r   abcre  )r   r   	TypeErrorr5   rS   r   r   r   test_validate_linespacingrt    s5    	y	! 4b%U34 4 4	   =Ac                      t        j                         \  } }|j                  dt        j                  d       |j                  t        j
                  dd       | j                  j                          y )Nr   naninf)r5   r6   rS   r   rw  rx  r   r   r9  s     r   test_nonfinite_posry    sG    llnGCGGArvvuGGBFFAuJJOOr   c                     dt         j                  d<   t        j                         } | j                  ddd      }| j	                  t        j                         d       |j                         j                  }| j	                  t        j                         d       t        j                  j                  |j                         j                  |d	       y )
NrJ   ztext.hinting_factorr0   z	some textsvgrb  pngr"   r   )r5   r{   rP   rS   savefigioBytesIOrj   	intervalxr   r   r   )r?   r)  expecteds      r   test_hinting_factor_backendsr  %  s    *+CLL&'
**,Cc;'AKK

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

UK+JJq224>>$'  )r   c                     t        j                         } dt         j                  d<   | j                  d      }dt         j                  d<   | j                  d      }| j                  j                          |df|dffD ]?  \  }}|j                  j                  D ]!  }|j                  j                         |k(  r!J  A y )NFtext.usetexy   Tz   )
r5   rP   r{   add_subplotr   r   r]  
majorTickslabel1
get_usetex)r?   rF  rG  r@   usetexr)  s         r   test_usetex_is_copiedr  3  s     **,C"'CLL
//#
C"&CLL
//#
CJJOOU|c4[1 3
F$$ 	3A88&&(F222	33r   c                      t        j                         } | j                  dddd       | j                  j	                          y )Nr0   z	$\frac12$Tr  )r5   rP   rS   r   r   r   s    r   test_single_artist_usetexr  B  s1    
 **,CHHR\$H/JJOOr   fmt)r}  pdfr{  c                     dt         j                  d<   t        j                         }|j                  dddd       |j	                  t        j                         |        y )NTr  r0   2_2_2Fr  r|  )r5   r{   rP   rS   r~  r  r  )r  r?   s     r   test_single_artist_usenotexr  L  sG     #'CLL
**,CHHRWUH+KK

SK)r   ztext_as_path_opacity.svgc                     t        j                          t        j                         j                          t        j                  dddd       t        j                  dddd       t        j                  ddd	dd
       y )Nr   cr   r   r   r0   rx   r0   rB   r   r   r   r   r   r   rJ   r   r_   )r5   rP   r   set_axis_offrS   r   r   r   test_text_as_path_opacityr  X  sU    JJLGGIHHT4N3HHT33'HHT4C|<r   ztext_as_text_opacity.svgc                  .   dt         j                  d<   t        j                          t        j                         j                          t        j                  dddd       t        j                  dddd	       t        j                  dd
ddd       y )Nnonezsvg.fonttyper   z50% using `color`r  rx   r0   z50% using `alpha`r  r   z"50% using `alpha` and 100% `color`r  r  )r   r{   r5   rP   r   r  rS   r   r   r   test_text_as_text_opacityr  a  si    #)CLL JJLGGIHHT4,NCHHT3+37HHT4=S!r   c                  z    t        j                  ddgddg       t        t        j                  dgdd             y )NABrJ   r]   r0   Boo)r5   r   reprrS   r   r   r   test_text_reprr  l  s/    HHc3Z!Q 3%e	$%r   c                     t        j                  dd      \  } }|j                  dd      }|j                  | j                  j                               }| j                          |j                  | j                  j                               }t        j                  |j                         |j                         d      rJ y )NrJ   
annotationr   rC  gư>r   )
r5   r6   r7   rj   r   r   tight_layoutr   allcloser   )r?   r@   anextent1extent2s        r   test_annotation_updater  r  s    ll1a GC	\j	1B""3::#:#:#<=G""3::#:#:#<=G{{7--/1C1C1E $& & & &r   r}  )
extensionsc                 |   | j                         }|j                  t        j                         dd       |j	                  dt        j                         dfddd       |j                         }|j                  t        j                         dd       |j	                  dt        j                         dfd	       y )
NrJ   r   r   r0   )datar#   rc   zoffset points)r$   r   r   )r$   )r  r   r   nowr7   fig_testfig_refr@   s      r   test_annotation_unitsr  }  s    				BGGHLLNAs#KKhllnc*5N/  ; 
			BGGHLLNAs#KKhllnc*5NKOr   zlarge_subscript_title.pngc                  t   dt         j                  d<   d t         j                  d<   t        j                  dddd      \  } }|d	   }|j                  d
       |j                  dd       |j	                  g        |d   }|j                  d
d       |j                  dd       |j	                  g        y )Nr[   r\   zaxes.titleyrJ   r]   )	   g      @T)r   constrained_layoutr   z$\sum_{i} x_i$zNew wayrs   r   g)\(?)r   zOld Way)r5   r{   r6   rR   set_xticklabels)r?   axsr@   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   c                      t        j                  d      } d}| j                  dd|d      }| j                  j	                          |j                         dk(  sJ y )	Nr[   rZ  r   z?This is a very long text that should be wrapped multiple times.gffffff?r0   Twrapz?This is a very long
text that should be
wrapped multiple
times.r5   rP   rS   r   r   _get_wrapped_text)r?   srS   s      r   	test_wrapr    sY    
**V
$CIA88Cad8+DJJOO!!# )1 2 2 2r   c                      t        j                  d      } | j                  dddd      }| j                  j	                          |j                         dk(  sJ y )Nr  r   g      #@   AlonglineoftexttowrapTr  r  r?   rS   s     r   test_long_word_wrapr    sM    
**V
$C88C3$8?DJJOO!!#'>>>>r   c                      t        j                  d      } | j                  dddd      }| j                  j	                          |j                         dk(  sJ y )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                 @   | j                         }|j                  ddg       |j                  ddg       |j                  j                  d   j
                  j                  d       |j                         }|j                  ddg       |j                  ddg       y )Nr   rJ   u   €rB   wr   )r  r>   set_yticklabelsr`  r  r  	set_colorr  s      r   test_buffer_sizer    s    
 
			BMM1a&s|$HH!!++C0				BMM1a&r{#r   c                      t        j                          t        j                  ddd      } t        j                  ddd      }| j	                         dk(  sJ |j	                         dk(  sJ y)z>Test that kwargs take precedence over fontproperties defaults.valuezTimes New Romang      D@)r%   r!   counts)r!   r%   N)r5   rP   xlabelylabelget_size)rl  rm  s     r   $test_fontproperties_kwarg_precedencer    s[    JJLJJw/@tLEJJxd;LME>>t###>>t###r   c                      t        j                         } t        j                         j	                  d      }| j                  ddd|d      }|j                         }t        |d       y )Nr   r   r   T)re   transform_rotates_text)r5   r   mtransformsAffine2D
rotate_degrS   r  r   )r@   re   rS   results       r   test_transform_rotates_textr    s\    	B$$&11"5I771a9*.  0D F#r   c                      t        t        d      d       } t        |       }t               }|j                  |        | d   |d   k(  sJ | d   |d   k(  sJ y )Nr'   )r(   )r%   r   r%   r   )r   r   r
   update)inpcacher)  s      r   test_update_mutate_inputr    sa    
nF;CIEAHHSM E*:$;;;;v;%-'''r   rz   zinvalid stringZ   c                     t        j                  t        d      5  t        ddd|        d d d        y # 1 sw Y   y xY w)Nz5rotation must be 'vertical', 'horizontal' or a numberr   r   r   r  r  r  s    r   test_invalid_rotation_valuesr    s:    	J
M - 	Q58,- - -s   5>c                      t        j                  t              5  t        j                  dddd       d d d        y # 1 sw Y   y xY w)Nr0   r   foobar)r  )r   r   r  r5   figtextr   r   r   test_invalid_colorr    s5    	z	" /BEX./ / /ru  ztext_pdf_kerning.pdfc                  ^    t        j                          t        j                  dddd       y )Nr"   r0   ATATATATATATATATATAr   rR  )r5   rP   r  r   r   r   test_pdf_kerningr    s    JJLKKS/b9r   c                    t        j                         }|j                  ddd       |j                  j	                          t        d | D              sJ | D cg c]  }|j                  j                   c}ddgk(  sJ y c c}w )Nr0   u   ০c              3   P   K   | ]  }t        |j                  t                 y wN)
isinstancemessager4   ).0warns     r   	<genexpr>z*test_unsupported_script.<locals>.<genexpr>  s     Iz$,,4Is   $&)z>Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from current font.)z7Matplotlib currently does not support Bengali natively.)r5   rP   rS   r   r   allr  args)recwarnr?   r  s      r   test_unsupported_scriptr    sy    
**,CHHR-.JJOOIIIII'./t		/	M	F	H	HI	H/s   Bc                  N   t        j                         \  } }|j                  dddd       | j                  j	                          |j                  dddd       t        j                  t        d      5  | j                  j	                          d d d        y # 1 sw Y   y xY w)Nr   $ \wrong{math} $F)
parse_mathTUnknown symbolr   )r5   r6   rS   r   r   r   r   r  r9  s     r   test_parse_mathr    s{    llnGCGGAq%%G8JJOOGGAq%$G7	z)9	: 

  s   7BB$c                     t        j                         \  } }|j                  ddd       t        j                  t
        d      5  | j                  j                          d d d        t        j                  ddi      5  t        j                         \  } }|j                  ddd       | j                  j                          d d d        y # 1 sw Y   nxY w# 1 sw Y   y xY w)Nr   r  r  r   ztext.parse_mathF)
r5   r6   rS   r   r   r  r   r   r   
rc_contextr9  s     r   test_parse_math_rcparamsr    s    llnGCGGAq%&	z)9	: 

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

 	  s   C ACCC#ztext_pdf_font42_kerning.pdfc                      dt         j                  d<   t        j                          t        j                  dddd       y )NrX  rY  r"   r0   ATAVATAVATAVATAVATAr   rR  r5   r{   rP   r  r   r   r   test_pdf_font42_kerningr    s,    #%CLL JJLKKS/b9r   ztext_pdf_chars_beyond_bmp.pdfc                      dt         j                  d<   dt         j                  d<   t        j                          t        j                  dddd	       y )
NrX  rY  stixsanszmathtext.fontsetr"   r0   u   Mass $m$ 𐌈r   rR  r  r   r   r   test_pdf_chars_beyond_bmpr    s;    #%CLL '1CLL#$JJLKKS/b9r   c                     t         j                  j                  j                          t	        j
                         } | j                  ddd       | j                  dddd       | j                  dddd       | j                  j                          | j                         }i fd}||_	        | j                  j                          g ddgk(  sJ t        d         t        d         cxk(  rd	k(  sJ  J t         j                  j                  j                         }|j                  |j                  kD  sJ y )
Nr,   r0   zfoo
barTr  c                  f    | ^}}}}}j                  |t                     j                  |       y r  )
setdefaultr   add)r  kwargsrq   r   r   r  r   r   s          r   callz test_metrics_cache.<locals>.call/  s.     $!QA
a##A&r   r   barrJ   )r   rS   !_get_text_metrics_with_cache_implcache_clearr5   rP   r   r   _get_rendererdraw_texlen
cache_infohitsmisses)r?   rq   r  infor   s       @r   test_metrics_cacher  #  s   HH..::<
**,CHHRZ HHRZH-HHRZH-JJOO  "H	B' HJJOOR5UEN"""
 r%y>SE^0q000008855@@BD 99t{{"""r   )[r   r  r2   numpyr   numpy.testingr   r   
matplotlibr   matplotlib.backend_basesr   r1   r   matplotlib.patchespatchesrf   matplotlib.pyplotpyplotr5   matplotlib.transforms
transformsr  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr	   matplotlib.textr
   rG   rW   r   r   r   r   r   markparametrizeRuntimeErrorprintr  r   r   r   r   r   r   r  r  r  r  r  r  r#  r*  r:  r@  rJ  rO  rV  rc  rp  rt  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r+     s    	   -   / 2 %  + O 4   =/"U #Up ;-  !. <.006 106f $%&) ')D &'( )<	. /5/0Aq6?@>?FGHI=>2  8*  #$G4 5. $%&D 'D"@ "c+0FG H;
4
;
$
5@
 :;  ? @P@ <P ?#$/ %/ 678 96 789 :6. &'( )* %&'K (K -/KL* M*(4
) 3 3    56* 7* -./= 0= -./! 0!&& (P )P ./w? @"2?: (
$ )
$$$( &6%=>- ?-/
 )*':: ;:
I 01A: B: 237C: D: # #r   