rL iYddlZddlmZddlmZddlZddlZddlZddl Z ddl Z ddl mZddlmZddlmZddlmZddlmZmZddlmZdd l mZdd lmZmZd Z ed gd dZ!edgd dZ"dZ#edgdZ$edgdZ%eddZ&edgdZ'edddgd Z(d!Z)e jTjWd"ed#Z,d$Z-d%Z.d&Z/d'Z0d(Z1d)Z2d*Z3d+Z4d,Z5d-Z6ed.gd/d0Z7ed1gd2Z8ejrjud3d4d5ie;d6fd4d5gie;d7fd8d5ie;d9fd8d5gie;d:fd;d5ie;dd5ie;d?fd@d5ie;dAfdBdCieejrjudGgdHejrjudId dJgdKZ?dLZ@dMZAy)NN)BytesIO)Path)Figure)Circle)Text)check_figures_equalimage_comparison) needs_usetex) font_manager) OffsetImageAnnotationBboxc.tj\}}tjddtjzd}tj |}tj |}|j|||d\}}}|D]}|jdt5} |j| d| j} dddtjjj} | j! y#1swYCxYw) Nr2ko)yerrfmtFsvgformat)pltsubplotsnplinspacepisin ones_likeerrorbar set_visiblersavefiggetvaluexmlparsersexpat ParserCreateParse) figaxxyrabcartistfdbufparsers g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_backend_svg.pytest_visibilityr3sllnGC Aq255y"%A q A <<?Dkk!QTtk4GAq!"5!" b Bu %kkm[[   + + -F LL s %$D  Dzfill_black_with_alpha.svgT) remove_textcftj\}}|jgdgddddy)N)r皙?)rrrkr6i')r)r*r-alphas)rrscatterr'r(s r2test_fill_black_with_alphar=)s'llnGCJJ SuJEnoscalectjtjdddtjddd\}}tj|dz}t j \}}|j |ddy)Nr7graynone)cmap interpolation)rmeshgridarangerrrimshow)XYZr'r(s r2 test_noscalerN/sb ;;ryyQ*BIIb!Q,? @DAq qAvAllnGCIIafFI3r>ctj}d}|jd|t5}|j |d|j j }dddd|d}|vsJy#1swYxYw)Nz$http://test_text_urls.matplotlib.orgtest_text_urls)urlrrz)rfiguresuptitlerr r!decode)r'test_urlr/r0expecteds r2rPrP8s **,C5HLL!xL0 %b Bu %kkm""$%! "-H s?? %%s 2A;;Bzbold_font_output.svgctj\}}|jtjdtjd|j d|j dd|jddy)N nonbold-xlabel bold-ylabelbold fontweight bold-title)rrplotrrI set_xlabel set_ylabel set_titler<s r2test_bold_font_outputrcFs\llnGCGGBIIbM299R=)MM"#MM-FM3LL&L1r>z'bold_font_output_with_none_fonttype.svgc6dtjd<tj\}}|jt j dt j d|j d|jdd|jddy) NrE svg.fonttyperXrYrZr[r\r^) rrcParamsrr_rrIr`rarbr<s r2(test_bold_font_output_with_none_fonttypergOsj#)CLL llnGCGGBIIbM299R=)MM"#MM-FM3LL&L1r>)tolctjdddz}tj|}tj|}|j }|j ||ddd|j |dz|dd d|j }|j ||dddd |j |dz|dd dd y) Nrdffffff@-rrX)r-lwr7r,Tr-ro rasterized)rrIcosrrr_fig_testfig_reftr)r*ax_refax_tests r2test_rasterizedryYs !SS!A q A q A    F KK1cSRK( KK!QsrK*!G LLAscbTL: LL1atLr) extensionsc tjdddz}tj|}tj|}|j }|j dd|j dd|j||ddd d |j|d z|dd d d |j|dz|ddd d |j|dz|ddd d |j }|j dd|j dd|j||ddd d d|j|dz|ddd d d|j|dz|ddd d d|j|d z|dd d ddy)Nrrkrlgg?rmrnrXTrpr7r,FrCgm)r-rorqzorderg?gffffff?g333333?)rrIrrrrset_xlimset_ylimr_rss r2test_rasterized_orderingrhsi !SS!A q A q A    F OOAq OOD# KK1cSRDK9 KK!QsreK< KK!QsrdK; KK!QsrdK;!G Q T3 LLAscbT#LF LL1atCLH LL1atCLH LL1auSLIr>rBpdf)rirzcddg}|j}|j|dg|dgdddtjj d}tjj ||d }|j ||j}|j|dg|dgdddd tjj d}tjj ||d }|j |y) Ng?rr7r)blackrC)markerr-rrKg@)rT)rr-rrq)rr_mpl offsetboxTextArear add_artist)rtrulocrwr,aboxrxs r2test_prevent_rasterizationrs ,C    F KKQ3q6(3'!KD s#A == ' '3s ' ;D d!G LL#a&CF8C71 " s#A == ' '3s ' ;D tr>cvd}tj}|jddd}|jt dD]}|j ddgd|gdd||d dk(sJ||d d k(sJtj}|jddd}|jt dD]}|j ddgd|gdd ||d dk(sJ||d dk(sJtj}|jddd}|jt dD]4}|j ddg|dgdd|j ddgd|gdd 6||d dk(sJ||d d k(sJtj}|jddd} | j| j d t dD]4}| j ddg|dgdd| j ddgd|gdd 6||d dk(sJ||d dk(sJtj} d | _| jddd} | jt dD]}| j ddgd|gdd || d dk(sJ|| d dk(sJy) Nct5}|j|d|jj}dddj d|S#1swYxYw)Nrr<)rr r!rTcount)r'tagr/r0s r2 count_tagz%test_count_bitmaps..count_tagsY Y )" KK5K )++-&&(C )yy1SE## ) )s 2AA"r7rBrrhzb-F)rqimagepathT)rrR add_subplot set_axis_offranger_set_rasterizedsuppressComposite) rfig1ax1nfig2ax2fig3ax3fig4ax4fig5ax5s r2test_count_bitmapsrs$ ::defaultc t}|jddddt5}|j|d|j }dddt j jj}d}d}t|jd |d |d d k(sJd ||jd |djjvsJy#1swYxYw)N?z\textwonT)usetexrrhttp://www.w3.org/2000/svgz SFSS3583-8e.//{z}path[@d][@id=""]r7#z}use)rtextrr r!r"etree ElementTree fromstringlenfindallfindattribvalues)r'r/r0treenswon_ids r2test_unicode_wonrs (CHHR[H. b Bu %kkm 99 + +C 0D %B F t||eB4'7xrBC D II I vh<499uRD%67>>EEG GG Gs $CC'c0tjjdddd}tj\}}|j t j dd||jt j dt j d|jd d t5}|j|d |jd |jj}ddd|vrd|vsJy#1swYxYw) NrE condensed)rez font.stretchzUnlikely to appear by chancez 2019-06-30r7z 2019-01-01z 2019-12-31rrCrr)rrfupdaterrr datetime64rrrr seekreadrT)rVr'r(r/r0s r2"test_svgnone_with_data_coordinatesrsLLMN-HllnGCGGBMM, 'H5KK l+R]]<-HIKK1 !b Bu %  ggi ! s?{c11 11 !!s 6AD  Dc  ddlm ddlm t j }|j d}|jddgddggd |jgd gd d |jgd d |j|j}|jgd gd |j dd}|jgdgd |j dd}|jddgddgddg|jji}t|j!dD]H\}}|j#sd|j$j&d|}|||<|j)|Jt+5} |j-| d| j/j1} ddd fd} |j3D]\}}| ||s| vrJy#1swY8xYw)z+Test that object gid appears in output svg.r) OffsetBox)Tickg?g@g@auto)aspectr7rCr| myscatter)label)rCr|r7myplotpolar) projection)rg?r|3dr7rCT) include_selftest123_rrNct|ryt|tr!|jdk(ry|jyt|tj rK|j \}}t|t|cxk(rdk(ryt|dr |jyt|rC|j}|dk(ry|j}|t|ks|t|kDryy)NFr7axesrT) isinstancerget_textrrLine2Dget_datarhasattrget_locget_view_intervalminmax)gidobjxdataydatarvirrs r2includeztest_gid..includes c9 % c4 ||~#! c3:: &<<>LE55zSZ,1,-S&)SXX-= c4 ++-Cax&&(BSW}c"g r>)matplotlib.offsetboxrmatplotlib.axisrrrRrrJr;r_legendtwinxbarcanvasdraw enumeratefindobj get_visible __class____name__set_gidrr r!rTitems)r'rax1arrgdicidxrrr/r0rrrs @@r2test_gidrs.$ **,C //# CJJR2r(#FJ3KK 9KK8HHYhH'JJL 99;DHHY " //#'/ 2CHH[)$ //#$/ /CHHaVaVaV$JJOO Dckktk<=S ?? CMM2231SE:CDI KK   %b Bu %kkm""$%0JJLS 3 #: :9%%s 2G::Hcttdd}}tdD]6}|j}|j |gg}|j |8tdd}|j}|j dgg}|j |t 5}|j|d|j}dddtjjj}d } t} |jd | d D](} | jd } | | vsJ| j!| *t#| d k(sJy#1swYxYw)N)rrrX)radiusrBr7rrrrrz}clipPath[@id]idrC)rrrrrJ set_clip_pathrr r!r"rrrsetrraddr) r'circleir(aimg inner_circler/r0rr clip_path_idsnodenode_ids r2test_clip_path_ids_reuser/sL(F6"5C 1X# __ yy1# 6"# &+L  B 99qcU D|$ b Bu %kkm 99 + +C 0D %BEM uRD89#++d#m+++'"# }  "" "s '$EE"cDtjtddy)Nsvgztight)r bbox_inches)rr rr>r2test_savefig_tightr JsKK &g>r>ctj\}}|jgdgd}|jgdtjgdgd\}|j dtjgdgddd \}|j d t }|j|d |j}d D] }d|z|vr Jy)NrrrBr)zhttps://example.com/foozhttps://example.com/barN)rCr|rzhttps://example.com/baz)r|rrBrEr)) linestylerzhttps://example.com/quuxrr)sfoosbarsbazsquuxshttps://example.com/) rrr;set_urlsr_set_urlrr r!)r'r(r:pr,vs r2rUrUPsllnGC 9i(AJJKL )Y 'BAII'( )Y& EBAII() AKK%K  A .0&*a///0r>c||jddtj\}}|jgdgdt |j j D]\}}|jd|tj\}}|jgdgdt |j j D]A\}}|jjd||jjd|Ct}|j|d|j}t}|j|d|j}tt|j j D]}d|jd|vrJ||k(sJy) NSOURCE_DATE_EPOCH19680801rrzhttps://example.com/rrascii)setenvrrr;ryaxisget_major_ticksrlabel1label2rr r!rrencode) monkeypatchrr(rtickrb1b2s r2 test_url_tickr#hsz*J7||~HD"JJy)$RXX557814 +A3/01||~HD"JJy)$RXX557884 21#67 21#678 BLLEL" B BLLEL" B 3rxx//12 3@%aS)009R???@ 8O8r>c :|jddtj\}}t5}|j |d|j j }dddtjvsJd|vsJd|vsJd|vsJt5}|j |dddddd |j j }dddtj|vsJd|vsJd|vsJd|vsJy#1swYxYw#1swY0N  Okkm""$% ??# %% % s "" " # %% % s "" "5%%%%s2D8DDDc |jddtjdddd}d}d}d }d }tj\}}|D]}t 5} |j | d |jdi | jj} dddtjjj } | jd |d|d|d\} |D]Z} | jd || }| |k(r|rJ#|\}tjjj|d}|| |vrZJy#1swYxYw)Nrrr%r&r')creatordatertype{http://www.w3.org/2000/svg}-{http://www.w3.org/1999/02/22-rdf-syntax-ns#} {http://creativecommons.org/ns#}"{http://purl.org/dc/elements/1.1/}rr-./ metadata/zRDF/Workunicode)encoding)rrr/rrrr titler!rTr"rrrrtostring)rmetadata_containsSVGNSRDFNSCCNSDCNSr'r(namer/r0rootworkkeydataxmlstrs r2test_svg_clear_default_metadatarKs`*J7$'OO\#2LJ +E ;E -D /DllnGC!4 Y )" KK5DJJL$3GK H++-&&(C )yy$$//4 r% %TF$GH$ 4C<<"TF3% 01Dd{xEDYY**33D93MF$S)V3 33 44 ) )s AE  E c btj\}}t5}|j|dddddd|j j }dddd}t jjj}|jd|drJy#1swYLxYw)Nrr(r-r5r9r.) rrrr r!rTr"rrrr)r'r(r/r0rArFs r2test_svg_clear_all_metadatarMsllnGC %b Bu:>0N  Okkm""$% +E 99 + +C 0D||bx011 11%%s 8B%%B.c gd}gd}tjdddtjddddddgdd |Dcic]}||d  c}|Dcic] }||d |d gc}}tj}t 5}|j |d ||j j}dddd}d}d} d} tjjj} | jd|d|d\} | jd|dD cgc]} | j}} ||dgk(sJ| jd| d| dD cgc]} | j|d}} ||dgk(sJdg|D]Q}|dk(r | jd| d| |jD cgc]} | j}} |||gk(rQJ|D]W}|dk(r | jd| d| |jd| d| d D cgc]} | j}} |||k(rWJ| jd| d| d D cgc]} | j}} |d!gk(sJ| jd| d| d"|d#|d$ D cgc]} | j}} ||dk(sJycc}wcc}w#1swYxYwcc} wcc} wcc} wcc} wcc} wcc} w)%N)Coverage IdentifierLanguageRelationSourceTitler,) Contributorr*Keywords PublisherRightsir7rCr|zdescription text)r) Descriptionz fooz barz bazrr-r5r6r7r8r9r:RDFr>rTzWork/r4resourcer,rZrV/zAgent/r3z1968-08-01/1968-08-02T01:02:03zsubject/zBag/li)datetimer3rrRrr r!rTr"rrrrrrlower) single_value multi_valuer8r.r'r/r0rArBrCrDrFrdfrtitlestypesrdatess r2test_svg_metadatargs%LOKtQ*""4Aq!Q79*#/ /Q14j= /  1< <11!DzaS:& & < H **,C %b Bux 8kkm""$% +E ;E -D /D 99 + +C 0D <<"UG9UG37 8DC%)LL2eWE1B$C DDdii DF D hw'( (( (r$uTF$%?@ B[[E7(+ , BE B Xf%& && & +l +' ; !kkBtfE$ {*KLN))NN(1+&&& '% ?  TF%vaggi[$vdV5IKL IILL!$$$%$';;D6tfD/I#J K4TYY KE K 56 66 6kkBtfE$xwd5'LMODdiiOFO Xj) )) )] 0 <%%E B NL LOs< J1J63J;%KK <KKKK!;Kzmulti_font_aspath.svgg?cbtjdg}ttj|jdk7rt j dtjdddgdtjd d tj}|jd d dy)NWenQuanYi Zen Heifamilywqy-zenhei.ttcFont may be missingfont DejaVu Sansrksizerrfonttype333333?ffffff?"There are 几个汉字 in between!) fmFontPropertiesrfindfontrEpytestskiprrcrRrfpr's r2test_multi_font_type3rs  #6"7 8B BKKO!!%55 )*FF6=*=>RHFF56" **,CHHT5>?r>zmulti_font_astext.svgcbtjdg}ttj|jdk7rt j dtj}tjddtjdd dgd |jd d dy)NrirjrlrmrrErsrnrorprqrurvrw) rxryrrzrEr{r|rrRr}rr~s r2test_multi_font_type42rs  #6"7 8B BKKO!!%55 )* **,CFF56"FF6=*=>RHHHT5>?r>zmetadata,error,messager)r7z,Invalid type for Date metadata. Expected strz1Invalid type for Date metadata. Expected iterablerVz0Invalid type for Keywords metadata. Expected strz5Invalid type for Keywords metadata. Expected iterabler*z/Invalid type for Creator metadata. Expected strz4Invalid type for Creator metadata. Expected iterablerTz-Invalid type for Title metadata. Expected strr+z.Invalid type for Format metadata. Expected strFooBarzUnknown metadata keyctj||5t5}tj}|j |d|ddddddy#1swYxYw#1swYyxYw)N)matchrr-)r{raisesrrrRr )r.errormessager/r's r2test_svg_incorrect_metadatar)s_& uG ,9gi92jjl Bux 8999999s" A))A A)A& "A))A2ctj}|jddddt5}|j |d|j j }d|vsJ dddy#1swYyxYw)Nrz<'"&>)rrrz<'"&>")rrRrrr r!rT)r'r/r0s r2test_svg_escaperAso **,CHHS#yiH0 3b Bu %kkm""$+s222333s 8A66A?font_str)z7'DejaVu Sans', 'WenQuanYi Zen Hei', 'Arial', sans-serifz='DejaVu Serif', 'WenQuanYi Zen Hei', 'Times New Roman', serifz%'Arial', 'WenQuanYi Zen Hei', cursivez&'Impact', 'WenQuanYi Zen Hei', fantasyzA'DejaVu Sans Mono', 'WenQuanYi Zen Hei', 'Courier New', monospaceinclude_genericFcbtjdg}ttj|jdk7rt j dtd|jd^}}}t|}|r||gz}|tjd|<|tjd<d tjd <tj\}}|d k(rgd } n|g} | D]5} |jd d d|| gd|jd dd|g|| d7|jdt5} |j!| d| j#} dddt$j&j(j+ } d}d}| j-d|dD]Y}|dz }t/dt/|j1djdD}|d|dk(sJ|d|k(rYJ|t|j2k(sJy#1swYxYw) Nrirjrlrmc$|jdS)N'stripr)s r2z&test_svg_font_string..]s!''#,r>z, zfont.z font.sizerEre sans-serif)sansrz sans serifrrwcenter)rkhar6offrrrrrz}textr7c3pK|].}td|jjd0yw)c"|jS)Nrrs r2rz0test_svg_font_string...s !'')r>:N)maprsplit).0rs r2 z'test_svg_font_string..~s/  #QWWY__S%9 : s46style;z font-sizepxz font-family)rxryrrzrEr{r|rrrrrfrraxisrr r!r"rrrrdictrtexts)rrrexplicitrestgenericrrr'r(generic_options generic_namer/r0rr text_count text_element font_styles r2test_svg_font_stringrJs=  #6"7 8B BKKO!!%55 )*"t 4 HtW w")'E  S> ,/H  > S> 64668  E EGGEN b Bu %kkm 99 + +C 0D %BJ uRD%785 a  ,,,./8>>sC  +&TF"+555-(H4445 RXX && &!s $H%%H.c tj}|j}tjd}d}t |d}||j _t||ddddtd d  }|jd |j|t5}|j|d|jjd}dddd}|vsJy#1swYxYw)N) r)g333333?g?r6)zoom)g^@gTrIz offset pointsrz->zangle,angleA=0,angleB=90,rad=3) arrowstyleconnectionstyle)xyboxxycoords boxcoordspad arrowpropsza test for issue 20044rrzutf-8z)rrRrronesr rrr rrrrr r!rT) r'r(arr_imgxyimageboxabr/r0rVs r2test_annotationbbox_gidrs **,C  BgghG B7-HHNN "*!'"1#''+,L$N  BJJ'(MM" ,b Bu %kkm""7+,1H s?? ,,s #3C''C0cXtj\}}|jgdgd|jj t 5}|j |d|jj}dddtjjj}tjdJ|jdrJd}tjd| t 5}|j |d|jj}dddtjjj|}tjd|k(sJ|jd |d sJy#1swYxYw#1swYoxYw) z=Test that `svg.id` rcparam appears in output svg if not None.r)r|rCr7rrNzsvg.idz.[@id]za test for issue 28535)rz.[@id="r)rrr_rrrr r!rTr"rrrrfrr})r'r(r/r0rsvg_ids r2 test_svgidrsWllnGCGGIy!JJOO %b Bu %kkm""$% 99 + +C 0D << ! )) )||H%% %&FFF5V %b Bu %kkm""$% 99 + +C 0D << !V ++ + <<'&, -- -)%%%%s2F2F F F))Br_iorpathlibrxml.etree.ElementTreer"xml.parsers.expatr{numpyr matplotlibrmatplotlib.figurermatplotlib.patchesrmatplotlib.textrmatplotlib.pyplotpyplotrmatplotlib.testing.decoratorsrr matplotlib.testing._markersr r rxrr r r3r=rNrPrcrgryrrrrcontextrrrrr rUr#r0rKrMrgrrmark parametrize TypeError ValueErrorrrrrrr r>r2rs $% O4)>&./TBFCF 9+40414 )*+2,2<=>2?2 = =(J)J,u~67(6(t9  H H2"<~#6? 006#D4B 2 6*r*+5 @6 @*+, @- @1 a[)KL qc]I8:!_i791# <>^Y68!y;= q\946]I57 U^Z!78!4$9%$9 3 & *T5M:.'; .'b>.r>