rL iI hddlmZddlZddlZddlZddlmZddlmZ ddl Z ddl Z ddl Z ddlmZddlmZddlmZddlmZddlmZddlmZdd lmZddlmZ dd l!m"Z"m#Z#dd l$m%Z%dd l&m'Z'm(Z(m)Z)e e jTZ+e#d gdZ,e#dgdZ-e#dgddZ.e#dgddZ/dZ0e#dgdZ1dZ2e jfjide5e6dfe5ddgdfe7ddfe7d d!fe7d"d#fe7d$d%ffd&Z8e#d'gd(Z9e#d)gdd*Z:e#d+gd,Z;d-Zd6Z?d7Z@d8ZAd9ZBd:ZCd;ZDe jfjidgd?d@ZEe#dAgdBZFe#dCgdDZGe#dEgdFZHdGZIe#dHgdIZJdJZKe#dKgdLZLe jfjidMgdNdOZMdPZNdQZOdRZPe%dSZQe%dTZRe jfjidUgdVdWZSe#dXgdYZTe#dZgd[ZUd\ZVd]ZWe"d^g_d`ZXe#dagddbZYe jfjidcgdddeZZdfZ[dgZ\dhZ]diZ^e"d^g_djZ_dkZ`dlZadmZbe jfjidndodpggdqZcdrZde#dsgddtZeduZfe jfje+jdvk(dwxdyZie jfje+jdvk(dwxdzZje#d{gdd|Zke#d}gdd~Zle%dZmdZndZodZpe"d^g_dZqe"dZre"dZsdZtdZudZvdZwe#dgd^gdZxe#dgd^gdZyy))datetimeN)assert_almost_equal)parse) MouseEvent) RendererAgg)Figure)FontProperties)GridSpec)check_figures_equalimage_comparison) needs_usetex)Text Annotation OffsetFrom font_stylesc fd}ddlm m tjddt dt j\}}|dd d d }|jd d d|}|jdk(sJ|jd k(sJ|jd k(sJ|jd k(sJ|jd k(sJ|dd d ddd }|jddd||ddd ddd }|jddd||dd d ddd }|jddd||dd d ddd }|jd d!d||jg|jgy)"Nc^di|}|tj}|S)N) directory)fname)mpl get_data_path)kwproppathr findfonts `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_text.pyfind_matplotlib_fontz.test_font_styles..find_matplotlib_fonts0##(9(9(;<D))r)r rignorez>findfont: Font family \[u?'Foo'\] not found. Falling back to .zmatplotlib.font_manager)modulez sans-serifnormal)familystylevariantsizez Normal Font)皙?r( axes fraction)xycoordsfontpropertiesz DejaVu SansFooboldi)r$r%r&weightstretchr'z Bold Font)r(皙? sans serifitalicizBold Italic Font)r(333333?z Light Font)r(皙?dzCondensed Font)r(?)matplotlib.font_managerr rwarningsfilterwarnings UserWarningpltsubplotsannotate get_fontname get_fontstyleget_fontvariant get_weight get_stretch set_xticks set_yticks) rfigax normal_fonta bold_fontbold_italic_font light_fontcondensed_fontr rs @@rtest_font_stylesrNs* A I( * llnGC&  K  "  $A >> } ,, , ??  (( (   ( ** * <<>X %% % ==?h && &$  IKK  " ,  KK ' ) &  JKK ! # *  NKK % ' MM"MM"r multilinectjtjddd}|jdtjdddddd tjddd ddd tjd dd ddd tj d dtj d d |jg|jgy)Nzmultiline text alignmentr0r7zTpTpTp $M$ TpTpTpcentertop)r'havazTpTpTp $M^{M^{M^{M}}}$ TpTpTpg?zTpTpTp $M_{q_{q_{q}}}$ TpTpTpr) r<figuresubplot set_titletextxlimylimrDrErGs rtest_multiliner^tsJJL Q1 BLL,-HH S'bX%IHH S3" HH S3" HHQNHHQMM"MM"r multiline2mpl20)r%c dtjd<tj\}}|jddg|j ddg|j ddd gd }|j jfd }d }t|D]*\}}|jd |zdzd||d}|||,|jdddd|j ddd t|D]*\}}|jd |zdzd||d}|||,|jdddd|j ddd t|D]*\}}|jd |zdzd||d}|||,|jdddd|j ddd t|D]+\}}|jd |zdzd||dd}|||-|jddddy)Ntext.kerning_factorrgffffff?r7C2r3)color linewidth)Linez 2 Lineg 2 Lgz $\sum_i x $zhi $\sum_i x $ testztest $\sum_i x $z$\sum_i x $ $\sum_i x $ctjdddd|j}|j|j j |jj j|j|y)NrrrQF)clip_on transform) mpatches Rectangle transAxes set_boundsget_window_extent transformedinvertedbounds add_patch)rGttrrenderers rdraw_boxz!test_multiline2..draw_boxse   vq!U)+ 7   * [..0 1 V  Qrleftr0r(bottom)horizontalalignmentverticalalignmentg333333?z Bottom alignrfg?rTz Top aligng?baselinezBaseline alignrR)r|r}rotationzBot align, rot20) r<rcParamsr=set_xlimset_ylimaxhlinecanvas get_renderer enumeraterZ) rFrGstsryhoralnnstrvrxs @rtest_multiline2rs)+,CLL&'llnGCKKCKKAJJs$#J. ACzz&&(H EC.B WWS2X^S"%'/1RGGCnDG1JJs$#J.C.B WWS2X^S"%',.RGGCkG.JJs$#J.C.B WWS2X^S"%'13RGGC&dG3JJs$#J.C.B WWS2X^S"%'/">RGGC(G5rzantialiased.pngcZdtjd<tjd}|j dddddd |j dd d ddd d tjd<|j d ddddd |j d d d ddd dtjd<y)NFtext.antialiased)g@?figsizer3r antialiasedrST)r|r}r?z $\sqrt{x}$ffffff?znot antialiased)rrr<rWrZrFs rtest_antialiasingrs',CLL#$ **\ *CHHS$ 8'T ;HHS$ 8'T ;(,CLL#$HHS$)x'U <HHS$ 8'U <(-CLL#$rctjjdd}t|d5}tjj |}dddj ddk(sJy#1swY xYw)N Helveticaafm)fontextrb VAVAVAVAVAVA)g@i)r font_managerropen_afmAFMstring_width_height)fnfhrs rtest_afm_kerningrsh   " "; " >B b$2hhll2  " "> 2m CC Cs A--A6ztext_contains.pngctj}tj}td|jdddd}t j ddd}t j ddd}t j||\}}tjdddd dd }|jjt|j|jD]\}}tjjj||g\|_|_|j#|\}} |rd nd } |j$j'} |j)||d | |j$j+| y)Nbutton_press_eventr7rQrrr5z hello worldrS)rUfontsizeryellowredor~)r<rWaxesrrnplinspacemeshgridrZdrawzipflatgcarorlxycontainsviewLimfrozenplotset) rFrGmeventxsystxtrrr_rfvls r test_containsrs3 **,C B ,cjj#sAt LF T4 $B T4 $B [[R FB (( S-HrB HCJJOOBGGRWW%1 WWY00::Aq6B&(ll6* !$%ZZ    1c' rrc$tj\}}|jdddddi}|jj t d|jg|j jd}|j|d ifk(sJy) Nhello)r5r5)333333?r arrowstylez->)xyxytext arrowpropsr)r7rF) r<r=r>rrr transDatarlr)rFrGannevents rtest_annotation_containsrsllnGC ++HX<:N  PCJJOO cjj M+-<<+A+A(+K ME << 5"+ -- -rzerr, xycoords, matchzrr)errr*rrFrGs rtest_annotate_errorsrsXllnGC s% ( D&h G s 0A((A1titlesctjtjddd}|jdd|jdd|j g|j gy)NrQz left titlerzlocz right titleright)r<rWrXrYrDrEr]s r test_titlesrsWJJL Q1 BLL6L*LLGL,MM"MM"rtext_alignmentctjtjddd}d}dD]J}dD]C}|j|d|dz||t ddd  |j|d d || |dz }EL|j ddgddg|j ddgd d g|j dd|jdd|jg|jgy)NrQr()rr)rTr{rrSr7z Tjroundwheat)boxstyle facecoloralpha)rVrbboxg?z$\sum_{i=0}^{j}$)rVrrg?) r<rWrXrZdictrrrrDrE)rGrr alignments rtest_alignmentrsJJL Q1 B A@ I GG3 E)i(7gSI  K GG3+ H  N HA  GGQFS#JGGQFS#JKK1KK3MM"MM"rzaxes_titles.pngctjtjddd}|jdddd|jdddd|jd d ddy) NrQrSrRi)rr fontweightrz ir)r<rWrXrYr]s rtest_axes_titlesr7s[JJL Q1 BLLx"LELLVbSLALLgsLCrctj\}}|jdddd}|jj |j |jj }d}|j||f|jj |j |jj }t|j|jD]\}}||z|k(rJ|jdddd}|jj |j |jj }d}||f|_ |jj |j |jj }t|j|jD]\}}||z|k(rJy)Ntestrj figure pixels)r textcoords) r<r=r>rrrqrx set_positionrminxyann)rFrGrinit_pos shift_valpost_posrIbs rtest_set_positionrAsllnGC ++v/  CCJJOO$$SZZ%8%89HIi+,JJOO$$SZZ%8%89HHLL(,,/"19}!!!" ++v/  CCJJOO$$SZZ%8%89HII&CIJJOO$$SZZ%8%89HHLL(,,/"19}!!!"rcftj}|jddd}|jd|j }|j |j z }|jd|j }|j |j z }|jd|j }|j }|j||z dk(sJ|j|dk(sJ|j|d|zzdk(sJ|j|d |zzd k(sJ|j||d zzd k(sJ|j||d zz|d zzd k(sJ|j||d zz|d zzdk(sJ|j||d zz|dzzdk(sJy)Nr(?imiiiimmmmrgV-?gx&1?rQ )r<rWrZset_textrqx1x0_char_index_at)rFrZrsize_isize_morigins rtest_char_index_atr as **,C 88Cb !DMM#  ! ! #D WWtww FMM#  ! ! #D WWtww FMM*  ! ! #D WWF   v /1 44 4   v &! ++ +   vf 4 5 :: :   vf 4 5 :: :   vq0 1Q 66 6   vq06!8; < AA A   vq06!8; < AA A   vq06"9< = BB BrrZrOemptyz non-empty)idsctj\}}|jdd|dd}|jj |j }|j }|j |dz}tjj|j|jdzd|j |k(sJy) Nr7rzr{)rUrVrdpi皙?rtol) r<r=rZrrrrqrtestingassert_allclose get_points)rZrFrGt1rbbox1bbox2s rtest_non_default_dpir{sllnGC c4Fx 8BJJOO ''C  "E  S2X .EJJu//153C3C3E3J$(* 77c>>rctdjdk(sJtdjdk(sJy)N horizontalrverticalgV@r get_rotationrrrtest_get_rotation_stringr"s:  & 3 3 5 ;; ;  $ 1 1 3s :: :rcPdD]!}t|j|k(r!Jy)N)g.@g333330@gYS@rr rs rtest_get_rotation_floatr%s- 4Q,,.!3334rcbdD]*}t|jt|k(r*Jy)N)C)r)rr!floatr$s rtest_get_rotation_intr+s1 ;Q,,.%(:::;rcxtjt5tddddy#1swYyxYw)N hozirontalrrr ValueErrorrrrrtest_get_rotation_raisesr0s+ z "$ l#$$$s 09cBtdjdk(sJy)Nrrr rrrtest_get_rotation_noner2s   + + - 44 4rc|tgdgdD])\}}tt|j|+y)N)gv@gw@g @)rg1@gfffff&f@r)rrrr!)rjs rtest_get_rotation_mod360r5s8+-=>@1D!,99;Q?@rrU)rSrrzrV)rSrTr{rcenter_baselinectj\}}td||}|jdddi|}|jdddi|}|jj t |j|jjj|j|jjjy)Nr)rrVrU)r7r7r rotation_modeanchordefault) r<r=rrZrrrrqrxr)rUrVrFrGrt0rs r%test_null_rotation_with_rotation_moder<sllnGC qRB 'B  >x >2 >B  ?y ?B ?BJJOO,,SZZ-@-@ALLN,,SZZ-@-@ALLNPr text_bboxclipctjdddddtjdddd }|jd d iy) Nrr0zIs bbox clipped?rwT)backgroundcolorrkr7zIs fancy bbox clipped?rkrzround, pad=0.1)r<rZset_bbox)ts rtest_bbox_clippingrCs>HHS#)3M c3TBAJJ ,-.rz!annotation_negative_ax_coords.pngc |tj\}}|jdddgdddgdd|jdddgdddgddd |jd d d gdd d gdd|jdd dgdd dgddd |jdddgdddgdd|jdddgdddgddd y)N+ ptsrrRz axes points rrrr*r- ptsirTrrrr*rrV+ fracrrr)- frac皙+ pixelsz axes pixels- pixelsir<r=r>rFrGs r"test_annotation_negative_ax_coordsrSsllnGCKKBxM8mbBKKCy]9}rKKd|$)rFax1ax2txt1ann1s rtest_text_stalercsll1a(OC#sLLNyy=yy=yy= 88BJ 'D 999 ::: 999 << Bx< 0D 999 ::: 999LLNyy=yy=yy=yrzagg_text_clip.pngctjjdtjd\}\}}tjj ddD]-\}}|j ||dd|j ||d/y)NrQrdrrTr@)rrandomseedr<r=randrZ)rFr_r`rrs rtest_agg_text_cliprh smIINN1ll1oOC#s r1%1 Aud+ Aurcdtjd<tjjd}|j }dtjd<||j k(sJy)Nrz font.sizelarger'r6)rrrr get_size_in_points)fpsz1s rtest_text_size_bindingros\ "CLL   ( (g ( 6B   !C #CLL "'') )) )rzfont_scaling.pdfcdtjd<tjd\}}|jj tj |jj tj |jddttddd D] \}}|jd |d z|d | "y)N* pdf.fonttype)g@g(@rrViXr+rdr(rz pt font size)r) rrr<r=xaxisset_major_locator NullLocatoryaxisrrrangerZ)rFrGrfss rtest_font_scalingrzs#%CLL ll;/GCHHs01HHs01KKS5B?+>2 QrTbT/"=>rzspacing1, spacing2))r5rd)rdr5)rdrdcd}tj}|jj}|j dd||}|j dd||}|jj |j |}|j |}|j|jk(sJ||k(r|j|jk(sJy|j|jk7sJy)Nz line1 line2rr7 linespacingrx) r<rWrrrZrrqwidthheight) spacing1spacing2 text_stringrFrxtext1text2box1box2s rtest_two_2line_textsr)s K **,Czz&&(H HHT3 H BE HHT3 H BEJJOO  " "H " 5D  " "H " 5D :: ## #8{{dkk))){{dkk)))rctjt5tjdddddddy#1swYyxYw)Nrr7rabcr|)rr TypeErrorr<rZrrrtest_validate_linespacingr>s5 y !4 b%U3444 =Actj\}}|jdtjd|jtj dd|j jy)Nrnaninf)r<r=rZrrrrrrRs rtest_nonfinite_posrCsGllnGCGGArvvuGGBFFAuJJOOrcdtjd<tj}|jddd}|j t j d|jj}|j t j dtjj|jj|d y) NrQztext.hinting_factorr7z some textsvgformatpngr(r) r<rrWrZsavefigioBytesIOrq intervalxrrr)rFrBexpecteds rtest_hinting_factor_backendsrJs*+CLL&' **,C c;'AKK UK+""$..HKK UK+JJq224>>$')rctj}dtjd<|jd}dtjd<|jd}|jj |df|dffD]?\}}|j jD]!}|jj|k(r!JAy)NF text.usetexyTz) r<rWr add_subplotrrrt majorTickslabel1 get_usetex)rFr_r`rGusetexrBs rtest_usetex_is_copiedrXs **,C"'CLL //# C"&CLL //# CJJOOU|c4[13 F$$ 3A88&&(F2 22 33rctj}|jdddd|jj y)Nr7z $\frac12$Tr)r<rWrZrrrs rtest_single_artist_usetexrgs1 **,CHHR\$H/JJOOrfmt)rpdfrcdtjd<tj}|jdddd|j t j |y)NTrr72_2_2Frr)r<rrWrZrrr)rrFs rtest_single_artist_usenotexrqsG #'CLL **,CHHRWUH+KK SK)rztext_as_path_opacity.svgctjtjjtjddddtjddddtjddd dd y) Nrcrrrr7r~r7rIrrrrrrrQrrf)r<rWr set_axis_offrZrrrtest_text_as_path_opacityr}sUJJLGGIHHT4N3HHT33'HHT4C|r) r<r=r>rqrr tight_layoutrallcloser)rFrGanextent1extent2s rtest_annotation_updatersll1a GC \j 1B""3::#:#:#<=G""3::#:#:#<=G{{7--/1C1C1E $&& &&rr) extensionsc||j}|jtjdd|j dtjdfddd|j}|jtjdd|j dtjdfd y) NrQrrr7)datar)rj offset points)r*rr)r*)rrrnowr>fig_testfig_refrGs rtest_annotation_unitsrs    BGGHLLNAs#KKhllnc*5N/;    BGGHLLNAs#KKhllnc*5NKOrzlarge_subscript_title.pngctdtjd<dtjd<tjdddd\}}|d }|jd |jd d |j g|d}|jd d|jdd |j gy)Nrbrcz axes.titleyrQrd) g@T)rconstrained_layoutrz$\sum_{i} x_i$zNew wayrzrg)\(?)rzOld Way)r<rr=rYset_xticklabels)rFaxsrGs rtest_large_subscript_titlers+,CLL&'"&CLL||Aq(tLHC QBLL"#LLL'r QBLL"dL+LLL'rrzx, rotation, halign))rrrz)r7_rz)r3rr)r3rzctjd}tdd|}|j|d}d}|j |d|d|| }|j j |jd k(sJy) N)rrr)nrowsncolsrWrQrQz?This is a very long text that should be wrapped multiple times.rT)wraprrUz?This is a very long text that should be wrapped multiple times.)r<rWr add_subfigurerZrr_get_wrapped_text)rrhalignrFgssubfigsrZs r test_wraprs **X &C 3 /B   r$x (F JA ;;q#qth6; JDJJOO  ! ! #)1 22 2rctjd}d}|jdd|dd}|jj |j d k(sJy) Nrbrrz;This is a very $\overline{\mathrm{long}}$ line of Mathtext.rr7(T)r'rz;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r<rWrZrrr)rFrrZs r test_mathwraprs[ **V $CFA 88AsABT8 2DJJOO  ! ! #)< == =rcxtjd}|jdd|jj }tjd}|jd|jj }|j |j k(sJ|j |j k(sJy)N)rrrz.suptitle that is clearly too long in this caseTrz.suptitle that is clearly too long in this case)r<rWsuptitle _suptitlerqy0y1)fig1window_extent_testfig2window_extent_refs rtest_get_window_extent_wrappedrs ::f %DMMBMN99; ::f %DMMCD88:  $5$8$8 88 8  $5$8$8 88 8rctjd}|jdddd}|jj |j dk(sJy)Nrrg#@rAlonglineoftexttowrapTrrrFrZs rtest_long_word_wraprsM **V $C 88C3$8 ?DJJOO  ! ! #'> >> >rctjd}|jdddd}|jj |j dk(sJy)Nrrrznon wrapped textTrrrs rtest_wrap_no_wraprsM **V $C 88Aq,48 8DJJOO  ! ! #'9 99 9rc@|j}|jddg|jddg|jjdj j d|j}|jddg|jddgy)NrrQu€rIwr)rrEset_yticklabelsrwrr set_colorrs rtest_buffer_sizers    BMM1a&s|$HH!!++C0    BMM1a&r{#rctjtjddd}tjddd}|j dk(sJ|j dk(sJy)z>Test that kwargs take precedence over fontproperties defaults.valuezTimes New RomangD@)r+r'counts)r'r+N)r<rWxlabelylabelget_size)rrs r$test_fontproperties_kwarg_precedencer s[JJL JJw/@t LE JJxd;L ME >> t ## # >> t ## #rctj}tjj d}|j ddd|d}|j }t|dy)NrrrT)rltransform_rotates_text)r<r mtransformsAffine2D rotate_degrZr!r)rGrlrZresults rtest_transform_rotates_textrs\ B$$&11"5I 771a9*.  0D    F#rcttdd}t|}t}|j||d|dk(sJ|d|dk(sJy)Nr-)r.)r+rr+r)rr rupdate)inpcacherBs rtest_update_mutate_inputrsa nF; C IE AHHSM  E*:$; ;; ; v;%- '' 'rrzinvalid stringZctjtd5tddd|dddy#1swYyxYw)Nz5rotation must be 'vertical', 'horizontal' or a numberrrrrr.rs rtest_invalid_rotation_valuesr&s:  J M- Q58,---s5>ctjt5tjdddddddy#1swYyxYw)Nr7rfoobar)r)rrr/r<figtextrrrtest_invalid_colorr.s5 z "/ BEX.///rztext_pdf_kerning.pdfc^tjtjddddy)Nr(r7ATATATATATATATATATArrk)r<rWrrrrtest_pdf_kerningr3sJJLKKS/b9rc8tj}|jddd}|jj t d|DsJ|Dcgc]}|j jc}d|jdzfdgk(sJycc}w)Nr7u০c3PK|]}t|jt ywN) isinstancemessager;).0warns r z*test_unsupported_script..=sIz$,, 4Is$&z9Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from font(s) .)z7Matplotlib currently does not support Bengali natively.) r<rWrZrrallr"argsr?)recwarnrFrBr$s rtest_unsupported_scriptr*9s **,C R12AJJOO II II I'./t  / F!"!$ % ' F H HI H/sB)rrQrz1Error messages are incorrect with pyparsing 3.1.0)reasoncNtj\}}|jdddd|jj |jddddt j td5|jj dddy#1swYyxYw)Nr$ \wrong{math} $F) parse_mathTUnknown symbolr)r<r=rZrrrrr/rRs rtest_parse_mathr0Fs}llnGCGGAq%%G8JJOOGGAq%$G7 z)9 : s 7BB$ctj\}}|jdddtjt d5|j jdddtjddi5tj\}}|jddd|j jdddy#1swYnxYw#1swYyxYw)Nrr-r/rztext.parse_mathF) r<r=rZrrr/rrr rc_contextrRs rtest_parse_math_rcparamsr3SsllnGCGGAq%& z)9 :  *E2 3,,.R 1)*  sCACCC#ztext_pdf_font42_kerning.pdfcdtjd<tjtjddddy)Nrqrrr(r7ATAVATAVATAVATAVATArrkr<rrWrrrrtest_pdf_font42_kerningr7cs,#%CLL JJLKKS/b9rztext_pdf_chars_beyond_bmp.pdfcdtjd<dtjd<tjtjdddd y) Nrqrrstixsanszmathtext.fontsetr(r7u Mass $m$ 𐌈rrkr6rrrtest_pdf_chars_beyond_bmpr:js;#%CLL '1CLL#$JJLKKS/b9rctjjjt j }|jddd|jdddd|jdddd|j j|j}ifd}||_ |j jgddgk(sJtdtdcxk(rd k(sJJtjjj}|j|jkDsJy) Nr3r7foo barTrcf|^}}}}}j|tj|yr ) setdefaultradd)r(kwargsrxrrrrrs rcallz test_metrics_cache..call~s. $!QA a##A&rrbarrQ)rrZ!_get_text_metrics_with_cache_impl cache_clearr<rWrr _get_rendererdraw_texlen cache_infohitsmisses)rFrxrAinfors @rtest_metrics_cacherLrs HH..::< **,CHHRZ HHRZH-HHRZH-JJOO  "H B'HJJOO R5UEN "" " r%y>SE^ 0q 00 00 0 88 5 5 @ @ BD 99t{{ "" "rc 0tj\}}ddg}ddg}tdDcgc]}|jdd||dd || !}}d |D\}}|jj t |t |k(sJycc}w) Nrzoffset fontsize)rrrrdrr10r)rrrr*rc3<K|]}|jywr )rq)r#rs rr%z0test_annotate_offset_fontsize..s%N#c&;&;&=%Ns)r<r=rxr>rrstr)rFrG text_coordsxy_textranns points_coordsfontsize_coordss rtest_annotate_offset_fontsizerVsllnGC"$56K G =B!H  F89 KK:&qz!%!'#.q>  3 FD F &O%N"M?JJOO } _!5 55 5 Fs$Bctddd}|jtjdk(sJ|j tjdk(sJ|j d|jdusJ|j |jk(sJ|j d|jdusJ|j |jk(sJy)Nr7r<rTF)r _antialiasedrrget_antialiasedset_antialiased)rs rtest_get_set_antialiasedr[s r2z "C   s||,>? ?? ?    CLL1C$D DD D   t ## #    C$4$4 44 4   u $$ $    C$4$4 44 4rctddd}|jdusJ|j|jk(sJtddd}|jdusJ|j|jk(sJtddd}|jd|jdusJ|jdusJtdd}|jtj dk(sJy)Nr<rTrFr)rrXrYrZrr)annotannot2annot3annot4s rtest_annotation_antialiasedrbs z8 >E    %% %  "e&8&8 88 8  H% @F   % '' '  ! ! #v':': :: :  H% @F 4  ! ! #t ++ +   $ && &  H -F   #,,/A"B BB Brc~|j}|jddgddg\}tjddg}|j dt ||ddd|dd|j}|jddgddg\}tjddg}|j d||dd d|ddy) Nrrdr7r)rrrj)rrrrQr)rr*rr)rrrarrayr>r)rrrGlof_xyan_xys r'test_annotate_and_offsetfrom_copy_inputrhs    B !Q!Q BA HHb"X EKK*Q"6wE!H    B !Q!Q BA HHb"X EKK%!GKXE!Hrcz|jdddddtjd<|jdddy)Nr76 inches x 2 inchesFr]rrZrrrrs r+test_text_antialiased_off_default_vs_manualrms? MM#s1).0(-CLL#$ LLc01rcz|jdddddtjd<|jdddy)Nr7rjTr]rrkrls r*test_text_antialiased_on_default_vs_manualros7 MM#s1tMD'+CLL#$ LLc01rctd}tddd}tddd}|j|t ddd }|j||j | }|j | }|j |j k(sJ|j|jk(sJ|jd |jd \}}}|jd|jd \}}}t||} |j} | ddk(sJ| d|j k(sJ| d| k(sJ| d|j| z k(sJy)Nr6rr4rrjr)rr*r)rZrrr~rZF)ismathlprrQrrrQr) rrr set_figurerrqrrget_text_width_height_descent_fontpropertiesmaxr) rWrxrrZr text_bboxrdlp_d below_linepointss r&test_text_annotation_get_window_extentr~sg _F3S)HFvHJ&! VqA &DOOF  ' ' ' :D&&&9I :: (( ( ;;)** ** *44 **55:GAq!77 j((88JAq$QJ__ F $<3   $<9?? ** * $rrrxrq arrow_patchrrrr Bboxunionr) rrFrGrrrxryr arrow_bbox ann_txt_bbox expected_bboxs r1test_text_with_arrow_annotation_get_window_extentrs>Ills#GC ''Fa1' %C ++ o 1"c3  4CHHJzz""H%%x%8I  ( 3D228rsC -4 /7$2%(+O488!)"7"78=/"U#Up;- !.<.006106f$%W5-6-$D&'()< ./UVAGH9:ABHI=> 28*#$G45.$%&D'D"@C4"c+0FG H ; 4 ; $ 5@ :; ?@P@<P?#$/%/ 67896789:6.&'()*%&'>(>-/KL*M*(4  ) 3 3 56*7*-./=0=-./!0!& &(P)P./w?@" 2  2= 9 ?:( $) $$$(&6%=>-?-/ )*'::;: I$,, 9MOO$,, 9MO O 01A:B: 237C:D:##< 6 5C$( ) 22229> ;F52 *#3"4#W& ;& ;?"3#W& & r