
    (?e}                        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
j$                  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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j-        .                    d,d-d.gd/d0g1          d2             Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=d8 Z>ej-        .                    d9g d:          e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j-        .                    dJg dK          dL             ZGdM ZHdN ZIdO ZJedP             ZKedQ             ZLe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j-        .                    d`g da          db             ZTdc ZUdd ZVde ZWdf ZX ed[g\          dg             ZYdh ZZdi Z[dj Z\ej-        .                    dkdldmgg          dn             Z]do Z^ edpgd          dq             Z_dr Z`ej-        a                    e%jb        dsk    dtu          dv             Zcej-        a                    e%jb        dsk    dtu          dw             Zd edxgd          dy             Ze edzgd          d{             Zfed|             Zgd} Zhd~ Zid Zj ed[g\          d             ZkdS )    )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
          }|                    ddd|          }|	                                dk    sJ |
                                d	k    sJ |                                d	k    sJ |                                d	k    sJ |                                d	k    sJ  | dd	d	ddd
          }|                    ddd|            | ddd	ddd
          }|                    ddd|            | dd	d	ddd
          }|                    ddd|            | dd	d	ddd
          }|                    d d!d|           |                    g            |                    g            d S )"Nc                  h     di | } |t          j                              } |          S )N)	directory)fname )mplget_data_path)kwproppathr   findfonts      :lib/python3.11/site-packages/matplotlib/tests/test_text.pyfind_matplotlib_fontz.test_font_styles.<locals>.find_matplotlib_font   sH    ~####x(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(	* * * * lnnGC&&	  K
 	 "	 	 	$ 	$A
 >>},,,,??(((((****<<>>X%%%%==??h&&&&$$  I KK  	  " " " ,+   KK '	  ) ) ) &%  J KK !	  # # # *)  N KK %	  ' ' ' MM"MM"r   	multilinec                     t          j                     t          j        ddd          } |                     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           |                     g            |                     g            d S )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    JLLL	Q1		BLL,---HS'bX%I I I I HS3"    HS3"    HQNNNHQMM"MM"r   
multiline2mpl20)r"   c            	         dt           j        d<   t          j                    \  } }|                    ddg           |                    ddg           |                    ddd	           g d
}| j                                        fd}d}t          |          D ]1\  }}|	                    d|z  dz   d||d          } |||           2|	                    dddd           |                    ddd	           t          |          D ]1\  }}|	                    d|z  dz   d||d          } |||           2|	                    dddd           |                    ddd	           t          |          D ]1\  }}|	                    d|z  dz   d||d          } |||           2|	                    dddd           |                    ddd	           t          |          D ]2\  }}|	                    d|z  dz   d||dd          } |||           3|	                    dddd           d S )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                   |                     |           d S )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   s    vq!U)+7 7 7	  **[..0011	 	 	 	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    +,CL&'lnnGCKKCKKAJJs$#J...A A ACz&&((H     EC..  BWWS2X^S"%'/  1 1RGGCnDG111JJs$#J...C..  BWWS2X^S"%',  . .RGGCkG...JJs$#J...C..  BWWS2X^S"%'1  3 3RGGC&dG333JJs$#J...C..  BWWS2X^S"%'/"  > >RGGC(G55555r   zantialiased.pngc                  b   dt           j        d<   t          j        d          } |                     dddddd	
           |                     dddddd	
           d	t           j        d<   |                     dddddd
           |                     dddddd
           dt           j        d<   d S )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    ',CL#$
*\
*
*
*CHHS$8'T  ; ; ;HHS$8'T  ; ; ; (,CL#$HHS$)x'U  < < <HHS$8'U  < < < (-CL#$$$r   c                     t           j                            dd          } t          | d          5 }t           j                            |          }d d d            n# 1 swxY w Y   |                    d          dk    sJ d S )N	Helveticaafm)fontextrbVAVAVAVAVAVA)g     @i  )r   font_managerr   open_afmAFMstring_width_height)fnfhr   s      r   test_afm_kerningr      s    			"	";	"	>	>B	b$ 2hll2              "">22mCCCCCCs    AA"%A"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        	                                 t          |j        |j                  D ]\  }}t          j                    j                            ||g          \  |_        |_        |                    |          \  }}	|rdnd}
|j                                        }|                    ||d|
           |j                            |           d S )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      sd   
*,,C	B,cj#sAtLLF	T4	$	$B	T4	$	$B[R  FB
(S-HrBH H HC JOOBGRW%%  1 WYY0::Aq6BB&(ll6**!$/% Z  
1c'''

r r   c                  *   t          j                    \  } }|                    dddddi          }| j                                         t          d| j        g|j                            d          R  }|                    |          d	i fk    sJ d S )
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     lnnGC
++HX<:N  P PCJOOcjM+-<+A+A(+K+KM M 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  |                    ddd|           |j                                         d d d            d S # 1 swxY w Y   d S )Nmatchr   rf   r3   r3   )r   r'   )r8   r9   pytestraisesr:   r   r   )errr'   r   rB   rC   s        r   test_annotate_errorsr     s     lnnGC	s%	(	(	(  
D&hGGG
                 s   3A--A14A1titlesc                     t          j                     t          j        ddd          } |                     dd           |                     dd           |                     g            |                     g            d S )NrM   z
left titlerv   loczright titleright)r8   rS   rT   rU   r@   rA   rY   s    r   test_titlesr     sx     JLLL	Q1		BLL6L***LLGL,,,MM"MM"r   text_alignmentc                     t          j                     t          j        ddd          } d}dD ]T}dD ]O}|                     |d|dz   ||t	          ddd	          
           |                     |dd||           |dz  }PU|                     ddgddg           |                     ddgddg           |                     dd           |                     dd           |                     g            | 	                    g            d S )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     sK   JLLL	Q1		BA  @ 	 	IGG3	E)i(7gSIII  K K K GG3+	H  N N NHAA	 GGQFS#JGGQFS#JKK1KK3MM"MM"r   zaxes_titles.pngc                      t          j                     t          j        ddd          } |                     dddd           |                     dddd           |                     d	d	dd           d S )
NrM   rO   rN   i  )r   r   
fontweightrv      i  r   )r8   rS   rT   rU   rY   s    r   test_axes_titlesr   4  sv     JLLL	Q1		BLLx"LEEELLVbSLAAALLgsLCCCCCr   c                  J   t          j                    \  } }|                    dddd          }| j                                         |                    | j        j                  }d}|                    ||f           | j                                         |                    | j        j                  }t          |j	        |j	                  D ]\  }}||z   |k    sJ |                    dddd          }| j                                         |                    | j        j                  }d}||f|_
        | j                                         |                    | j        j                  }t          |j	        |j	                  D ]\  }}||z   |k    sJ d S )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   lnnGC ++v/  C CCJOO$$SZ%899HIi+,,,JOO$$SZ%899HHL(,// " "19}!!!!! ++v/  C CCJOO$$SZ%899HII&CIJOO$$SZ%899HHL(,// " "19}!!!!!" "r   c                     t          j                    } |                     ddd          }|                    d           |                                }|j        |j        z
  }|                    d           |                                }|j        |j        z
  }|                    d           |                                }|j        }|                    ||z
            dk    sJ |                    |          dk    sJ |                    |d|z  z             dk    sJ |                    |d	|z  z             d
k    sJ |                    ||dz  z             dk    sJ |                    ||dz  z   |dz  z             dk    sJ |                    ||dz  z   |dz  z             dk    sJ |                    ||dz  z   |dz  z             dk    sJ d S )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WtwFMM#!!##DWtwFMM*!!##DWFv//14444v&&!++++vf455::::vf455::::vq011Q6666vq06!8;<<AAAAvq06!8;<<AAAAvq06"9<==BBBBBBr   rV   r   Oemptyz	non-empty)idsc                    t          j                    \  }}|                    dd| dd          }|j                                         |j        }|                                }|                    |dz            }t          j        	                    |
                                |
                                dz  d           |j        |k    sJ d S )	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    lnnGC	c4Fx	8	8BJOO
'C  ""E  S2X ..EJu//1153C3C3E3E3J$(  * * * 7c>>>>>>r   c                      t          d                                          dk    sJ t          d                                          dk    sJ d S )N
horizontalr|           verticalg     V@r   get_rotationr   r   r   test_get_rotation_stringr    sX    &&&3355;;;;$$$1133s::::::r   c                  `    dD ]*} t          |                                           | k    sJ +d S )N)g      .@g333330@gYS@r  r  r   s    r   test_get_rotation_floatr     sF     4 4Q,,..!333334 4r   c                  z    dD ]7} t          |                                           t          |           k    sJ 8d S )N)C      )   r  )r   r  floatr  s    r   test_get_rotation_intr&    sL     ; ;Q,,..%((:::::; ;r   c                      t          j        t                    5  t          d           d d d            d S # 1 swxY w Y   d S )N
hozirontalr  r   r   
ValueErrorr   r   r   r   test_get_rotation_raisesr+    s    	z	"	" $ $l####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   8<<c                  V    t          d                                           dk    sJ d S )Nr  r  r  r   r   r   test_get_rotation_noner-    s0    ++--444444r   c                      t          g dg d          D ]5\  } }t          t          |                                           |           6d S )N)g     v@g     w@g	@)r  g      1@gfffff&f@r  )r   r   r   r  )r   js     r   test_get_rotation_mod360r0    se    +++-=-=-=>> @ @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                                         t          |                    |j        j                  	                                |                    |j        j                  	                                           d S )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     lnnGC	qRB	'	'	'B		>	>x	>2	>	>B		?	?y	?B	?	?BJOO,,SZ-@AALLNN,,SZ-@AALLNNP P P P Pr   text_bboxclipc                      t          j        ddddd           t          j        dddd	          } |                     d
di           d S )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>    sU    HS#)3MMMMc3TBBBAJJ
,-.....r   z!annotation_negative_ax_coords.pngc            	         t          j                    \  } }|                    dddgdddgdd           |                    dddgdddgddd	
           |                    dddgdddgdd           |                    dddgdddgddd	
           |                    dddgdddgdd           |                    dddgdddgddd	
           d S )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]   lnnGCKKBxM8mb  B B B KKCy]9}r     KKd|$</B  H H H KKe}%=?R    
 KK
Ry]9}r  C C C KK
Szm:      r   z"annotation_negative_fig_coords.pngc            	         t          j                    \  } }|                    dddgdddgdd           |                    ddd	gddd	gddd
           |                    dddgdddgdd           |                    dddgdddgddd
           |                    dddgdddgdd           |                    dddgdddgddd
           d S )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    sa   lnnGCKKCy_9  E E E KKSzo:"     KKd|0A$<*;b  J J J KKs|0A3<*;b    
 KK
BxO8o  D D D KK
Szo:"      r   c                     t          j        dd          \  } \  }}t          j                     |j        rJ |j        rJ | j        rJ |                    ddd          }|j        sJ |j        sJ | j        s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 d S )NrM   r`   r3   aardvarkr   )r8   r9   draw_allstalerV   r:   )rB   ax1ax2txt1ann1s        r   test_text_staler^    s   l1a((OC#sLNNNyyy88BJ''D9:9<<
Bx<00D9:9LNNNyyyr   zagg_text_clip.pngc                  $   t           j                            d           t          j        d          \  } \  }}t           j                            dd          D ]5\  }}|                    ||dd           |                    ||d           6d S )NrM   r`   r   r   Tr;  )r   randomseedr8   r9   randrV   )rB   rZ  r[  r   r   s        r   test_agg_text_cliprc    s    INN1l1ooOC#s	r1%%  1Aud+++Au r   c                      dt           j        d<   t           j                            d          } |                                 }dt           j        d<   ||                                 k    sJ d S )Nr   z	font.sizelarger$   r2   )r   r}   r   r   get_size_in_points)fpsz1s     r   test_text_size_bindingrj    sg     "CL			(	(g	(	6	6B



!
!C #CL"''))))))))r   zfont_scaling.pdfc                     dt           j        d<   t          j        d          \  } }|j                            t          j                               |j                            t          j                               |                    dd           t          t          ddd	                    D ]$\  }}|                    d
|dz  | d|           %d S )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    #%CL l;///GCHs00111Hs00111KKS5B??++ > >2
QrTb///"====> >r   zspacing1, spacing2))r1   r`   )r`   r1   )r`   r`   c                    d}t          j                    }|j                                        }|                    dd||           }|                    dd||          }|j                                         |                    |          }|                    |          }|j        |j        k    sJ | |k    r|j        |j        k    sJ d S |j        |j        k    sJ d S )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z&&((HHHT3HBBEHHT3HBBEJOO""H"55D""H"55D :####8{dk)))))){dk))))))r   c                      t          j        t                    5  t          j        dddd           d d d            d S # 1 swxY w Y   d S )Nr   r3   r   abcrw  )r   r   	TypeErrorr8   rV   r   r   r   test_validate_linespacingr  ;  s    	y	!	! 4 4b%U33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4   A  AAc                      t          j                    \  } }|                    dt          j        d           |                    t          j        dd           | j                                         d S )Nr   naninf)r8   r9   rV   r   r  r  r   r   rM  s     r   test_nonfinite_posr  @  sY    lnnGCGGArvuGGBFAuJOOr   c                     dt           j        d<   t          j                    } |                     ddd          }|                     t          j                    d           |                                j        }|                     t          j                    d           t          j
                            |                                j        |d	           d S )
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    *+CL&'
*,,Cc;''AKK
UK+++""$$.HKK
UK+++Jq2244>$'  ) ) ) ) )r   c                  f   t          j                    } dt           j        d<   |                     d          }dt           j        d<   |                     d          }| j                                         |df|dffD ]3\  }}|j        j        D ]!}|j        	                                |k    sJ "4d S )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"'CL
//#

C"&CL
//#

CJOOU|c4[1 3 3
F$ 	3 	3A8&&((F22222	33 3r   c                      t          j                    } |                     dddd           | j                                         d S )Nr3   z	$\frac12$Tr  )r8   rS   rV   r   r   r   s    r   test_single_artist_usetexr  d  sA    
 *,,CHHR\$H///JOOr   fmt)r  pdfr  c                     dt           j        d<   t          j                    }|                    dddd           |                    t          j                    |            d S )NTr  r3   2_2_2Fr  r  )r8   r}   rS   rV   r  r  r  )r  rB   s     r   test_single_artist_usenotexr  n  sW     #'CL
*,,CHHRWUH+++KK
SK)))))r   ztext_as_path_opacity.svgc                     t          j                     t          j                                                     t          j        dddd           t          j        dddd           t          j        ddd	dd
           d S )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  sx    JLLLGIIHT4N3333HT33''''HT4C|<<<<<<r   ztext_as_text_opacity.svgc                  &   dt           j        d<   t          j                     t          j                                                     t          j        dddd           t          j        dddd	           t          j        dd
ddd           d S )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    s    #)CL JLLLGIIHT4,NCCCCHT3+37777HT4=S! ! ! ! ! !r   c                      t          j        ddgddg           t          t          j        dgdd                     d S )NABrM   r`   r3   Boo)r8   r   reprrV   r   r   r   test_text_reprr    s@    Hc3Z!Q   3%e	$	$%%%%%r   c                     t          j        dd          \  } }|                    dd          }|                    | j                                                  }|                                  |                    | j                                                  }t          j        |	                                |	                                d          rJ d S )NrM   
annotationr   rW  gư>r  )
r8   r9   r:   rm   r   r   tight_layoutr   allcloser  )rB   rC   anextent1extent2s        r   test_annotation_updater    s    l1a  GC	\j	1	1B""3:#:#:#<#<==G""3:#:#:#<#<==G{7--//1C1C1E1E $& & & & & & & &r   r  )
extensionsc                    |                                  }|                    t          j                    dd           |                    dt          j                    dfddd           |                                 }|                    t          j                    dd           |                    dt          j                    dfd	           d S )
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GGHLNNAs###KKhlnnc*5N/  ; ; ; 
				BGGHLNNAs###KKhlnnc*5NKOOOOOr   zlarge_subscript_title.pngc                     dt           j        d<   d t           j        d<   t          j        dddd          \  } }|d	         }|                    d
           |                    dd           |                    g            |d         }|                    d
d           |                    dd           |                    g            d S )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     +,CL&'"&CL|Aq(tLL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}|                    | d|d||          }|j                                         |                                dk    sJ d S )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GGDJOO!!## )1 2 2 2 2 2 2r   c                      t          j        d          } d}|                     dd|dd          }| j                                         |                                d	k    sJ d S )
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    sx    
*V
$
$
$CFA88AsABT822DJOO!!## )< = = = = = =r   c                  ^   t          j        d          } |                     dd           | j                                        }t          j        d          }|                    d           |j                                        }|j        |j        k    sJ |j        |j        k    sJ d S )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NN99;;:f%%%DMMCDDD88:: $5$88888 $5$8888888r   c                      t          j        d          } |                     dddd          }| j                                         |                                dk    sJ d S )Nr  r   g      #@r   AlonglineoftexttowrapTr  r  rB   rV   s     r   test_long_word_wrapr    sd    
*V
$
$
$C88C3$8??DJOO!!##'>>>>>>>r   c                      t          j        d          } |                     dddd          }| j                                         |                                dk    sJ d S )Nr  r   r   znon wrapped textTr  r  r  s     r   test_wrap_no_wrapr    sd    
*V
$
$
$C88Aq,4888DJOO!!##'9999999r   c                 b   |                                  }|                    ddg           |                    ddg           |j        j        d         j                            d           |                                 }|                    ddg           |                    ddg           d S )Nr   rM   u   €rE   wr   )r  rA   set_yticklabelsrr  r  r  	set_colorr  s      r   test_buffer_sizer    s    
 
				BMM1a&s|$$$H!++C000					BMM1a&r{#####r   c                      t          j                     t          j        ddd          } t          j        ddd          }|                                 dk    sJ |                                dk    sJ dS )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    sw    JLLLJw/@tLLLEJxd;LMMME>>t####>>t######r   c                      t          j                    } t          j                                        d          }|                     ddd|d          }|                                }t          |d           d S )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    ss    	B$&&11"55I771a9*.  0 0D  F#####r   c                      t          t          d          d           } t          |           }t                      }|                    |            | d         |d         k    sJ | d         |d         k    sJ d S )Nr*   )r+   )r(   r   r(   r   )r   r   r   update)inpcacher=  s      r   test_update_mutate_inputr    s    
nF;;;  CIIEAHHSMMM E*:$;;;;;v;%-''''''r   r|   zinvalid stringZ   c                     t          j        t          d          5  t          ddd|            d d d            d S # 1 swxY w Y   d S )Nz5rotation must be 'vertical', 'horizontal' or a numberr   r   r   r  r)  r  s    r   test_invalid_rotation_valuesr	    s    	J
M 
M 
M - - 	Q58,,,,- - - - - - - - - - - - - - - - - -s   =AAc                      t          j        t                    5  t          j        dddd           d d d            d S # 1 swxY w Y   d S )Nr3   r   foobar)r  )r   r   r*  r8   figtextr   r   r   test_invalid_colorr  '  s    	z	"	" / /BEX..../ / / / / / / / / / / / / / / / / /r  ztext_pdf_kerning.pdfc                  \    t          j                     t          j        dddd           d S )Nr%   r3   ATATATATATATATATATAr   rf  )r8   rS   r  r   r   r   test_pdf_kerningr  ,  s-    JLLLKS/b999999r   c                     t          j                    }|                    ddd           |j                                         t          d | D                       sJ d | D             ddgk    sJ d S )Nr3   u   ০c              3   J   K   | ]}t          |j        t                    V  d S N)
isinstancemessager7   .0warns     r   	<genexpr>z*test_unsupported_script.<locals>.<genexpr>6  s.      IIz$,44IIIIIIr   c                 &    g | ]}|j         j        S r   )r  argsr  s     r   
<listcomp>z+test_unsupported_script.<locals>.<listcomp>8  s    ///t	///r   )z>Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from current font.)z7Matplotlib currently does not support Bengali natively.)r8   rS   rV   r   r   all)recwarnrB   s     r   test_unsupported_scriptr  2  s    
*,,CHHR-...JOOIIIIIIIIII//w///	M	F	H	H 	H 	H 	H 	H 	Hr   )r   rM   r   z1Error messages are incorrect with pyparsing 3.1.0)reasonc                  b   t          j                    \  } }|                    dddd           | j                                         |                    dddd           t          j        t          d          5  | j                                         d d d            d S # 1 swxY w Y   d S )Nr   $ \wrong{math} $F)
parse_mathTUnknown symbolr   )r8   r9   rV   r   r   r   r   r*  rM  s     r   test_parse_mathr%  >  s     lnnGCGGAq%%G888JOOGGAq%$G777	z)9	:	:	:  
                 s   =B$$B(+B(c                     t          j                    \  } }|                    ddd           t          j        t
          d          5  | j                                         d d d            n# 1 swxY w Y   t          j	        ddi          5  t          j                    \  } }|                    ddd           | j                                         d d d            d S # 1 swxY w Y   d S )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[    lnnGCGGAq%&&&	z)9	:	:	:  
               
*E2	3	3  ,..R
1)***
                 s%   	A//A36A3AC$$C(+C(ztext_pdf_font42_kerning.pdfc                  z    dt           j        d<   t          j                     t          j        dddd           d S )Nrl  rm  r%   r3   ATAVATAVATAVATAVATAr   rf  r8   r}   rS   r  r   r   r   test_pdf_font42_kerningr,  [  s9    #%CL JLLLKS/b999999r   ztext_pdf_chars_beyond_bmp.pdfc                      dt           j        d<   dt           j        d<   t          j                     t          j        dddd	           d S )
Nrl  rm  stixsanszmathtext.fontsetr%   r3   u   Mass $m$ 𐌈r   rf  r+  r   r   r   test_pdf_chars_beyond_bmpr/  b  sF    #%CL '1CL#$JLLLKS/b999999r   c                     t           j        j                                         t	          j                    } |                     ddd           |                     dddd           |                     dddd           | j                                         |                                 }i fd}||_	        | j                                         g ddgk    sJ t          d                   t          d                   cxk    rd	k    sn J t           j        j                                        }|j        |j        k    sJ d S )
Nr/   r3   foo
barTr  c                      | ^}}}}}                     |t                                                    |           d S 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   r6  infor   s       @r   test_metrics_cacherA  j  sS   H.::<<<
*,,CHHRZ   HHRZH---HHRZH---JOO  ""H	B' ' ' ' ' HJOOR5UEN""""
 r%y>>SE^^0000q00000085@@BBD 9t{""""""r   c                     t          j                    \  } ddgddgfdt          d          D             }d |D             \  }}| j                                         t          |          t          |          k    sJ d S )Nr  zoffset fontsize)r   r   )rM   rM   c                 ^    g | ])}                     d d|         dd|                   *S )r   r   10r  )r   r   r   r'   r   )r:   )r  r   rC   text_coordsxy_texts     r   r  z1test_annotate_offset_fontsize.<locals>.<listcomp>  s\     F F F 89	 KK:&qz!%!'#.q>	  3 3 F F Fr   r`   c                 6    g | ]}|                                 S r   )rm   )r  r   s     r   r  z1test_annotate_offset_fontsize.<locals>.<listcomp>  s$    %N%N%N#c&;&;&=&=%N%N%Nr   )r8   r9   rs  r   r   str)rB   annspoints_coordsfontsize_coordsrC   rE  rF  s       @@@r   test_annotate_offset_fontsizerL    s    lnnGC"$56K GF F F F F F =B!HH	F F FD
 &O%N%N%N%N"M?JOO}_!5!5555555r   c                     t          ddd          } | j        t          j        d         k    sJ |                                 t          j        d         k    sJ |                     d           | j        du sJ |                                 | j        k    sJ |                     d           | j        du sJ |                                 | j        k    sJ d S )Nr3   r1  r   TF)r   _antialiasedr   r}   get_antialiasedset_antialiased)r   s    r   test_get_set_antialiasedrQ    s    
r2z
"
"Cs|,>?????  CL1C$DDDDDt####  C$44444u$$$$  C$4444444r   c                     t          ddd          } | j        du sJ |                                 | j        k    sJ t          ddd          }|j        du sJ |                                |j        k    sJ t          ddd          }|                    d           |                                du sJ |j        du sJ t          dd          }|j        t          j        d         k    sJ d S )Nr1  r   T)r   Fr   )r   rN  rO  rP  r   r}   )annotannot2annot3annot4s       r   test_annotation_antialiasedrW    s   z8>>>E%%%%  ""e&88888
H%@@@F%''''!!##v':::::
H%@@@F
4   !!##t++++$&&&&
H--F#,/A"BBBBBBBr   c                    |                                  }|                    ddgddg          \  }t          j        ddg          }|                    dt          ||          dd           d|d d <   |                                 }|                    ddgddg          \  }t          j        ddg          }|                    d||dd	
           d|d d <   d S )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_inputr]    s     
				B	!Q!Q	 	 BAHb"XEKK*Q"6"6w    E!!!H					B	!Q!Q	 	 BAHb"XEKK%!GKXXXE!!!HHHr   )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/  rA  rL  rQ  rW  r]  r   r   r   <module>ru     s	         				      - - - - - - 4 4 4 4 4 4          / / / / / / 2 2 2 2 2 2 % % % % % %       + + + + + + O O O O O O O O 4 4 4 4 4 4 8 8 8 8 8 8 8 8 8 8!M)"788  =/""U U #"Up ;-    ! . <.00006 06 1006f $%W555- - 65-$D D D &'((  )(<	. 	. 	. /UVAGH9:ABHI=>2     8*   #$G444  54. $%&&D D '&D" " "@C C C4 "c+0FGG  HG; ; ;
4 4 4
; ; ;
$ $ $
5 5 5@ @ @
 :::;;  ?  ?  ? @ @P P@ @ <;P ?#$$/ / %$/ 6788  986 7899  :96  . &'((  )(* * * %&''> > ('> -/K/K/KLL* * ML*(4 4 4
  ) ) ) 3 3 3     5 5 566* * 76* -.//= = 0/= -.//! ! 0/!& & && & & (((P P )(P ./w???  @?"    2 2 2= = =9 9 9 ? ? ?: : : (((
$ 
$ )(
$$ $ $$ $ $( ( ( &6%=>>- - ?>-/ / /
 )*':::: : ;::
I I I $,	9M  O O O O $,	9M  O O O O 01AAA: : BA: 237CCC: : DC: # # #<6 6 6 5 5 5C C C$ (((  )(  r   