
    EVf}                        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mZ	 d dl
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!m"Z"m#Z#  e	e
jH                        Z% ed
g      d        Z& edg      d        Z' edgd      d        Z( edgd      d        Z)d Z* edg      d        Z+d Z,ejZ                  j]                  de/e0dfe/d d gdfe1ddfe1ddfe1dd fe1d!d"ff      d#        Z2 ed$g      d%        Z3 ed&gd      d'        Z4 ed(g      d)        Z5d* Z6d+ Z7ejZ                  j]                  d,d-d.gd/d0g1      d2        Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=d8 Z>ejZ                  j]                  d9g d:      ejZ                  j]                  d;g d<      d=               Z? ed>g      d?        Z@ ed@g      dA        ZA edBg      dC        ZBdD ZC edEg      dF        ZDdG ZE edHg      dI        ZFejZ                  j]                  dJg dK      dL        ZGdM ZHdN ZIdO ZJedP        ZKedQ        ZLejZ                  j]                  dRg dS      dT        ZM edUg      dV        ZN edWg      dX        ZOdY ZPdZ ZQ ed[g\      d]        ZR ed^gd      d_        ZSejZ                  j]                  d`g da      db        ZTdc ZUdd ZVde ZWdf ZX ed[g\      dg        ZYdh ZZdi Z[dj Z\ejZ                  j]                  dkdldmgg      dn        Z]do Z^ edpgd      dq        Z_dr Z`ejZ                  j                  e%j                  dsk(  dtu      dv        ZcejZ                  j                  e%j                  dsk(  dtu      dw        Zd edxgd      dy        Ze edzgd      d{        Zfed|        Zgd} Zhd~ Zid Zj ed[g\      d        Zky)    )datetimeN)assert_almost_equal)parse)
MouseEvent)FontProperties)check_figures_equalimage_comparison)needs_usetex)Text
Annotation
OffsetFrom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      c/var/www/html/software/conda/envs/catlas/lib/python3.12/site-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_stylesrJ      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-   r3   zTpTpTp
$M$
TpTpTp   centertop)r$   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpg?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r8   figuresubplot	set_titletextxlimylimr@   rA   rC   s    r   test_multilinerZ   q   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?   r3   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   rM   F)clip_on	transform)	mpatches	Rectangle	transAxes
set_boundsget_window_extenttransformedinvertedbounds	add_patch)rC   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rb   g?rP   z	Top aligng?baselinezBaseline alignrN   )rx   ry   rotationzBot align, rot20)
r8   rcParamsr9   set_xlimset_ylimaxhlinecanvasget_renderer	enumeraterV   )	rB   rC   stsru   horalnnstrr   rt   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                  Z   dt         j                  d<   t        j                  d      } | j	                  dddddd	
       | j	                  dddddd	
       d	t         j                  d<   | j	                  dddddd
       | j	                  dddddd
       dt         j                  d<   y )NFtext.antialiased)g      @      ?figsizer/   r   antialiasedrO   T)rx   ry   r         ?z
$\sqrt{x}$ffffff?znot antialiased)r   r}   r8   rS   rV   rB   s    r   test_antialiasingr      s    ',CLL#$
**\
*CHHS$8'T  ;HHS$8'T  ; (,CLL#$HHS$)x'U  <HHS$8'U  < (-CLL#$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_eventr3   rM   r   r      r1   zhello worldrO   )rQ   fontsizer|   yellowredorz   )r8   rS   axesr   r   nplinspacemeshgridrV   drawzipflatgcark   rh   xycontainsviewLimfrozenplotset)rB   rC   meventxsystxtr   r   r   _rb   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)r1   r1   )333333?r   
arrowstylez->)xyxytext
arrowpropsr   )r3   r   F)	r8   r9   r:   r   r   r   	transDatarh   r   )rB   rC   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                     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   rf   r3   r3   )r   r'   )r8   r9   pytestraisesr:   r   r   )errr'   r   rB   rC   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 )NrM   z
left titlerv   loczright titleright)r8   rS   rT   rU   r@   rA   rY   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       | j                  dd       | j                  g        | j                  g        y )NrM   r%   )r   r   )rP   rw   r{   rO   r3   z Tjroundwheat)boxstyle	facecoloralpha)rR   r|   bboxg      ?z$\sum_{i=0}^{j}$)rR   r|   r   g      ?)
r8   rS   rT   rV   dictr   r~   r   r@   rA   )rC   r   r|   	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1KK3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 )
NrM   rO   rN   i  )r   r   
fontweightrv      i  r   )r8   rS   rT   rU   rY   s    r   test_axes_titlesr   4  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testrf   figure pixels)r   
textcoords   )r8   r9   r:   r   r   rm   rt   set_positionr   minxyann)rB   rC   r   init_pos	shift_valpost_posrE   bs           r   test_set_positionr   >  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   c                  f   t        j                         } | j                  ddd      }|j                  d       |j	                         }|j
                  |j                  z
  }|j                  d       |j	                         }|j
                  |j                  z
  }|j                  d       |j	                         }|j                  }|j                  ||z
        dk(  sJ |j                  |      dk(  sJ |j                  |d|z  z         dk(  sJ |j                  |d	|z  z         d
k(  sJ |j                  ||dz  z         dk(  sJ |j                  ||dz  z   |dz  z         dk(  sJ |j                  ||dz  z   |dz  z         dk(  sJ |j                  ||dz  z   |dz  z         dk(  sJ y )Nr%   ? imiiiimmmmr   gV-?gx&1?rM               
   )r8   rS   rV   set_textrm   x1x0_char_index_at)rB   rV   r   size_isize_morigins         r   test_char_index_atr  ^  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:::vq01Q666vq06!8;<AAAvq06!8;<AAAvq06"9<=BBBr   rV   r   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 )	Nr3   rv   rw   )rQ   rR   r   )dpi皙?rtol)r8   r9   rV   r   r   r  rm   r   testingassert_allclose
get_points)rV   rB   rC   t1r  bbox1bbox2s          r   test_non_default_dpir  x  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r|           verticalg     V@r   get_rotationr   r   r   test_get_rotation_stringr    s:    &335;;;$113s:::r   c                  P    dD ]!  } t        |       j                         | k(  r!J  y )N)g      .@g333330@gYS@r  r  r   s    r   test_get_rotation_floatr     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&    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+    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-    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_mod360r0    s8    +-=> @1D!,99;Q?@r   rQ   )rO   r   rv   rR   )rO   rP   rw   r{   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   )r|   rR   rQ   )r3   r3   r   rotation_modeanchordefault)
r8   r9   r   rV   r   r   r   rm   rt   r  )rQ   rR   rB   rC   r   t0r  s          r   %test_null_rotation_with_rotation_moder7    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 )Nr   r-   zIs bbox clipped?rs   T)backgroundcolorrg   r3   zIs fancy bbox clipped?rg   r   zround, pad=0.1)r8   rV   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   rN   zaxes points    r   r   r   r'   r   - ptsirP   r   r   r   r'   r   rR   + fracr   r  r&   - frac皙+ pixels      zaxes pixels- pixelsir8   r9   r:   rB   rC   s     r   "test_annotation_negative_ax_coordsrN    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 pointsrA  rB  rC     rP   rD  rE  r  g?zfigure fractionrF  rG  r3   rH  2   r   rK  ir2   rL  rM  s     r   #test_annotation_negative_fig_coordsrT    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 )NrM   r`   r3   aardvarkr   )r8   r9   draw_allstalerV   r:   )rB   ax1ax2txt1ann1s        r   test_text_staler^    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 )NrM   r`   r   r   Tr;  )r   randomseedr8   r9   randrV   )rB   rZ  r[  r   r   s        r   test_agg_text_cliprc    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$   r2   )r   r}   r   r   get_size_in_points)fpsz1s     r   test_text_size_bindingrj    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|       " y )N*   pdf.fonttype)g@g(@r   rQ  iX  r   +   r`   r%   r   z pt font size)r   )r   r}   r8   r9   xaxisset_major_locatorNullLocatoryaxisr   r   rangerV   )rB   rC   r   fss       r   test_font_scalingru    s    #%CLL ll;/GCHHs01HHs01KKS5B?+ >2
QrTbT/"=>r   zspacing1, spacing2))r1   r`   )r`   r1   )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   r3   linespacing)rt   )	r8   rS   r   r   rV   r   rm   widthheight)	spacing1spacing2text_stringrB   rt   text1text2box1box2s	            r   test_two_2line_textsr  &  s     K
**,Czz&&(HHHT3HBEHHT3HBEJJOO""H"5D""H"5D ::###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   r3   r   abcrw  )r   r   	TypeErrorr8   rV   r   r   r   test_validate_linespacingr  ;  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)r8   r9   rV   r   r  r  r   r   rM  s     r   test_nonfinite_posr  @  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 )
NrM   ztext.hinting_factorr3   z	some textsvgformatpngr%   r  )r8   r}   rS   rV   savefigioBytesIOrm   	intervalxr   r  r  )rB   r=  expecteds      r   test_hinting_factor_backendsr  G  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   )
r8   rS   r}   add_subplotr   r   ro  
majorTickslabel1
get_usetex)rB   rZ  r[  rC   usetexr=  s         r   test_usetex_is_copiedr  U  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 )Nr3   z	$\frac12$Tr  )r8   rS   rV   r   r   r   s    r   test_single_artist_usetexr  d  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  r3   2_2_2Fr  r  )r8   r}   rS   rV   r  r  r  )r  rB   s     r   test_single_artist_usenotexr  n  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   r3   rz   r3   rE   r   r   r   r   r   r   rM   r   rb   )r8   rS   r   set_axis_offrV   r   r   r   test_text_as_path_opacityr  z  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  rz   r3   z50% using `alpha`r  r   z"50% using `alpha` and 100% `color`r  r  )r   r}   r8   rS   r   r  rV   r   r   r   test_text_as_text_opacityr    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BrM   r`   r3   Boo)r8   r   reprrV   r   r   r   test_text_reprr    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 )NrM   
annotationr   rW  gư>r  )
r8   r9   r:   rm   r   r   tight_layoutr   allcloser  )rB   rC   anextent1extent2s        r   test_annotation_updater    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 )
NrM   r   r   r3   )datar&   rf   offset points)r'   r   r   )r'   )r  r   r   nowr:   fig_testfig_refrC   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.titleyrM   r`   )	   g      @T)r   constrained_layoutr   z$\sum_{i} x_i$zNew wayrv   r   g)\(?)r   zOld Way)r8   r}   r9   rU   set_xticklabels)rB   axsrC   s      r   test_large_subscript_titler    s     +,CLL&'"&CLL||Aq(tLHC	QBLL"#LLL'r	QBLL"dL+LLL'rr   zx, rotation, halign))r   r   rv   )r3   _   rv   )r/   r   r   )r/      rv   c                     t        j                  d      }d}|j                  | d|d||      }|j                  j	                          |j                         dk(  sJ y )N)r^   r^   r   z?This is a very long text that should be wrapped multiple times.r   T)wrapr|   rQ   z?This is a very long
text that should be
wrapped multiple
times.r8   rS   rV   r   r   _get_wrapped_text)r   r|   halignrB   srV   s         r   	test_wrapr    s_     **V
$CIA88AsAD88GDJJOO!!# )1 2 2 2r   c                      t        j                  d      } d}| j                  dd|dd      }| j                  j	                          |j                         d	k(  sJ y )
Nr^   r   r   z;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r   r3   (   T)r$   r  z;This is a very $\overline{\mathrm{long}}$
line of Mathtext.r  )rB   r  rV   s      r   test_mathwrapr    s[    
**V
$CFA88AsABT82DJJOO!!# )< = = =r   c                  x   t        j                  d      } | j                  dd       | j                  j	                         }t        j                  d      }|j                  d       |j                  j	                         }|j
                  |j
                  k(  sJ |j                  |j                  k(  sJ y )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)r8   rS   suptitle	_suptitlerm   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                      t        j                  d      } | j                  dddd      }| j                  j	                          |j                         dk(  sJ y )Nr  r   g      #@r   AlonglineoftexttowrapTr  r  rB   rV   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   rM   u   €rE   wr   )r  rA   set_yticklabelsrr  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)r8   rS   xlabelylabelget_size)r~  r  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)rh   transform_rotates_text)r8   r   mtransformsAffine2D
rotate_degrV   r  r   )rC   rh   rV   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   r|   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)Nr3   r   foobar)r  )r   r   r*  r8   figtextr   r   r   test_invalid_colorr  '  s5    	z	" /BEX./ / /r  ztext_pdf_kerning.pdfc                  ^    t        j                          t        j                  dddd       y )Nr%   r3   ATATATATATATATATATAr   rf  )r8   rS   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 )Nr3   u   ০c              3   P   K   | ]  }t        |j                  t                 y wN)
isinstancemessager7   ).0warns     r   	<genexpr>z*test_unsupported_script.<locals>.<genexpr>6  s     Iz$,,4Is   $&)z>Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from current font.)z7Matplotlib currently does not support Bengali natively.)r8   rS   rV   r   r   allr  args)recwarnrB   r  s      r   test_unsupported_scriptr  2  sy    
**,CHHR-.JJOOIIIII'./t		/	M	F	H	HI	H/s   B)r   rM   r   z1Error messages are incorrect with pyparsing 3.1.0)reasonc                  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   )r8   r9   rV   r   r   r   r   r*  rM  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)
r8   r9   rV   r   r   r*  r   r   r   
rc_contextrM  s     r   test_parse_math_rcparamsr%  K  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 )Nrl  rm  r%   r3   ATAVATAVATAVATAVATAr   rf  r8   r}   rS   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 )
Nrl  rm  stixsanszmathtext.fontsetr%   r3   u   Mass $m$ 𐌈r   rf  r(  r   r   r   test_pdf_chars_beyond_bmpr,  b  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/   r3   foo
barTr  c                  f    | ^}}}}}j                  |t                     j                  |       y r  )
setdefaultr   add)r  kwargsrt   r   r   r  r   r   s          r   callz test_metrics_cache.<locals>.callv  s.     $!QA
a##A&r   r   barrM   )r   rV   !_get_text_metrics_with_cache_implcache_clearr8   rS   r   r   _get_rendererdraw_texlen
cache_infohitsmisses)rB   rt   r3  infor   s       @r   test_metrics_cacher>  j  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   c                  d   t        j                         \  } }ddg}ddg}t        d      D cg c]  }|j                  dd||   dd	||   
      ! }}|D cg c]  }|j	                          c}\  }}| j
                  j                          t        |      t        |      k(  sJ y c c}w c c}w )Nr  zoffset fontsize)r   r   )rM   rM   r`   r   r   10r  )r   r   r   r'   r   )r8   r9   rs  r:   rm   r   r   str)	rB   rC   text_coordsxy_textr   annsr   points_coordsfontsize_coordss	            r   test_annotate_offset_fontsizerG    s    llnGC"$56K G
 =B!H	F 89	 KK:&qz!%!'#.q>	  3 FD F
 JN%N#c&;&;&=%N"M?JJOO}_!5555F
 &Os   $B(B-c                     t        ddd      } | j                  t        j                  d   k(  sJ | j	                         t        j                  d   k(  sJ | j                  d       | j                  du sJ | j	                         | j                  k(  sJ | j                  d       | j                  du sJ | j	                         | j                  k(  sJ y )Nr3   r.  r   TF)r   _antialiasedr   r}   get_antialiasedset_antialiased)r   s    r   test_get_set_antialiasedrL    s    
r2z
"Cs||,>???? CLL1C$DDDDt### C$4$4444u$$$ C$4$4444r   c                     t        ddd      } | j                  du sJ | j                         | j                  k(  sJ t        ddd      }|j                  du sJ |j                         |j                  k(  sJ t        ddd      }|j                  d       |j                         du sJ |j                  du sJ t        dd      }|j                  t        j
                  d   k(  sJ y )Nr.  r   T)r   Fr   )r   rI  rJ  rK  r   r}   )annotannot2annot3annot4s       r   test_annotation_antialiasedrR    s    z8>E%%%  "e&8&8888
H%@F%'''!!#v':'::::
H%@F
4 !!#t+++$&&&
H-F#,,/A"BBBBr   c                 ~   | j                         }|j                  ddgddg      \  }t        j                  ddg      }|j	                  dt        ||      dd       d|d d  |j                         }|j                  ddgddg      \  }t        j                  ddg      }|j	                  d||dd	
       d|d d  y )Nr   r`   r3   r   )r   r   rf   )r   r   r   rM   r  )r   r'   r   r   )r  r   r   arrayr:   r   )r  r  rC   lof_xyan_xys         r   'test_annotate_and_offsetfrom_copy_inputrX    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   )lr   r  r5   numpyr   numpy.testingr   packaging.versionr   parse_version	pyparsingr   
matplotlibr   matplotlib.backend_basesr   r4   r   matplotlib.patchespatchesri   matplotlib.pyplotpyplotr8   matplotlib.transforms
transformsr  matplotlib.testing.decoratorsr   r	   matplotlib.testing._markersr
   matplotlib.textr   r   r   __version__pyparsing_versionrJ   rZ   r   r   r   r   r   markparametrizer  printr*  r   r   r   r   r   r  r  r  r   r&  r+  r-  r0  r7  r>  rN  rT  r^  rc  rj  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  xfailreleaser"  r%  r)  r,  r>  rG  rL  rR  rX  r   r   r   <module>rp     s    	   - 4    / 2 %  + O 4 8 8!)"7"78  =/"U #Up ;-  !. <.006 106f $%W5- 6-$D &'( )<	. /UVAGH9:ABHI=>2  8*  #$G4 5. $%&D 'D"@C4 "c+0FG H;
4
;
$
5@
 :;  ? @P@ <P ?#$/ %/ 678 96 789 :6. &'( )* %&'> (> -/KL* M*(4
) 3 3    56* 7* -./= 0= -./! 0!&& (P )P ./w? @" 22=9 ?: (
$ )
$$$( &6%=>- ?-/
 )*':: ;:
I $,,	9M  OO $,,	9M  OO 01A: B: 237C: D: # #<6 5C$ ( )r   