rL iQvv ddlZddlZddlZddlmZddlZddlZddlm Z m Z ddl Z ddl m ZmZmZddlmZmZddlmZddlmZmZddlZdZdZej:j=d ej>d ej>d ej@d fd fej>d ej>d ej@d fdfej@dej>d ej@d fdfej>d ej@dej@d fdfej@dej@d ej@d fdfej@d ej@dej@d fdfej@dej@dej@d fdfej@dej@dej@dfdfdggfdfdgdgdggfdfg dZ!dZ"dZ#edgdZ$edgd d!d"#d$Z%d%Z&ed&gd d!dg'd(Z'ed)gd ejPd*k(rdnd+,d-Z)ed.gd d!dg'd/Z*ej:j=d0gd1d2Z+ed3gd!d45d6Z,ed7gd!8d9Z-ed:gd d!d;#d<Z.d=Z/ed>d?gd d@,dAZ0dBZ1dCZ2dDZ3ej:j=dEgdFdGZ4dHZ5edIgd d!dJ#dKZ6edLgd d!ejPd*k(rdMndN#dOZ7edPgdgd d!QdRZ8ej:j=dSgdTdUZ9ej:judVdWZ;edXgdgd YdZZed`gdgd YdaZ?dbZ@dcZAe jjdddeZDdfZEdgZFej:j=dhdiejfdjejfdkejfdlejfdmgdnZKej:j=dogdpdqZLedrgdgd ds^dtZMduZNej:j=dvgdwdxZOej:j=dvgdwdyZPdzZQd{ZRd|ZSd}ZTd~ZUdZVy)N)mock)assert_array_almost_equalassert_array_almost_equal_nulp)pyplot rc_contextticker)LogNorm same_color)check_figures_equalimage_comparisonctjd}tjd}tjjd}tj\}}|j |||yN rr)nparangerandompltsubplotscontour)xyzfigaxs c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_contour.pytest_contour_shape_1d_validrsO " A ! A !AllnGCJJq!Qctjd}tjd}tj||\}}tjjd}t j \}}|j |||yr)rrmeshgridrrrr)rrxgygrrrs rtest_contour_shape_2d_validr$sc " A ! A [[A FB !AllnGCJJr2qrz args, messagerrz6Length of x (9) must match number of columns in z (10)rz3Length of y (10) must match number of rows in z (9))rrz4Number of dimensions of x (2) and y (1) do not matchz4Number of dimensions of x (1) and y (2) do not matchrrz-Shapes of x (9, 9) and z (9, 10) do not matchz-Shapes of y (9, 9) and z (9, 10) do not match)r&r&z'Inputs x and y must be 1D or 2D, not 3DzInput z must be 2D, not 3DzDInput z must be at least a (2, 2) shaped array, but has shape (1, 1)ctj\}}tjtt j |5|j|dddy#1swYyxYw)Nmatch)rrpytestraises TypeErrorreescaper)argsmessagerrs rtest_contour_shape_errorr1&sM.llnGC y '(: ; Ds AA(crtj\}}|jtjj ddg|jtj djddg}|j|ddi|jtjdy)NrlevelsQr%dz%1.2f)fmt) rrrrrrandrreshapeclabelones)rrcss rtest_contour_no_valid_levelsr=BsllnGCJJryy~~a#BJ/ BIIbM))&13% @BIIbsGnI%JJrwwvrcJtjdjd}tj\}}|j |d}t |jdkDsJ|j |d}|j|jk(jsJy)N r&r3) rrr9rrrlenr4all)rrrcs1cs2s rtest_contour_NlevelsrHNs " f%AllnGC **Q C szz?Q   **Qq* !C JJ#** $ ) ) ++ +rpng) extensionsc|jjddgddgg}|jjddgddgg}|j|jy)NrrC)rr set_paths get_paths)fig_testfig_refcs_testcs_refs rtest_contour_set_pathsrSYse!))Aq6Aq6*:;G     ' '!Q!Q(8 9F f&&()rcontour_manual_labelsTmpl20gp= ף?) remove_textstyletolctjtjddtjdd\}}tjtjt |t |gd}t jddt j|||}tjgd}t j||tjgd }t j||d d y) NrrrL)rL)figsizedpi))?@)r^皙@)r^@manual))@r_)rdr`)rdrasmall)rg)rcfontsizecolors) rr!rmaxdstackabsrfigurerarrayr:)rrrr<ptss rtest_contour_manual_labelsrpas ;;ryyB'1b)9 :DAq ryy#a&#a&)*A.AJJv3' Q1 B ((7 8CJJr# ((7 8CJJr# CrcJtjdd}tjdd}tj||\}}|dzdz|dzz dz }tj|||ddg}d}tj ||g }|dj d k(sJy) NirrLrCrr6r3)g?rCrb0)rlinspacer!rrr:get_text)rrXYZcontourspointclabelss rtest_contour_manual_movetor{os CA CA ;;q! DAq 1q1a4!A{{1aAs84H Ejj5'2G 1:   C '' 'rcontour_disconnected_segments)rVrWrJcdtjddddddf\}}dtjd|dzdzz|dzzz }|dtjd|dz dzz|dzzz z }tjtj |||dg}|j d g y) NrCy5@{Gz?333333?rLr3)皙?皙?rb)rmgridsqrtrrmrr:)rrrr<s r-test_contour_label_with_disconnected_segmentsrs 88BqHb3h& 'DAq BGGDAG>)AF2 33ARWWTQWN*Q!V3 4 44AJJL Q1aS )BIIj\I"rz$contour_manual_colors_and_levels.pngx86_64g;On?)rVrXcdtjd<tjdd\}}tjdj dd}gd}gd}t |jD]q\}}|dzd k(}gd |dz}|r)|d vrd nd} |d vrdnd} |j||| | ||} n|j||dd||} tj| |sy)NFpcolormesh.snaprLrAr?r&)redyellowpinkblueblack)rLrAr)neitherminrjboth)rjrrC)rrr~)rir4extendr) rrcParamsrrrr9 enumerateflatcontourfrcolorbar) _axsdatarir4irfilledr first_color last_colorcs r$test_given_colors_levels_and_extendsrs',CLL"# \\!Q FAs 99R= A &D 7F F388$2Q"216:  &);;!K%);;J D J)G#)&:A 4s "(9A Q2!rcontourf_hatch_colorsctj\}}|jddgddgggdd}|jgdy)NrrCrL)-/\z//gray)hatchescmap)rgreyrr)rrrset_edgecolors)rrcfs rtest_hatch_colorsrsDllnGC q!fq!f%/EF SB78rz color, extend))darkredr)rr))rf?r))rrrrrcddgddgg}tj\}}gd}|j||||}|jD]}t ||rJy)NrrCrL)r?rCg??r4rir)rrrget_edgecolorsr )colorrrrrr4r<rs rtest_single_color_and_extendrsh Q!QA LLNEAr &F AfU6 BB    $!U###$rzcontour_log_locator.svgF)rWrVc tj\}}d}tjdd|}tjdd|}tj||\}}tj |dz |dzz }tj |dzdz |dzdzz }|d|zz} |j | tj } t| jtjd tjd d |j| | } t| jj| jy)Nr6r_rdrLr2locator$@ir&r)rrrrsr!exprr LogLocatorrr4powerrrr get_yticks) rrNrrrurvZ1Z2rrcbs rtest_log_locator_levelsrs llnGC A D#q!A D#q!A ;;q! DAq A1 B !b&1 B{* +B R1 !Qtu=>rctjd\}}tjtj dz tjdz dx}}tj ||\}}dtj d|zdzztjd|zz}dtjd|zztj d|zdzdzz}||z}|j|||}tjj|d |j 5}|jd dddjD cgc] } | d d } } d | vsJy#1swY/xYwcc} w)Nr6)r]rLrrrrAr"_split_path_and_get_label_rotation)wrapsr)rhrrC)rrrrsrr!sincosrrpatchobjectrr:call_args_list) rrlatslonswavemeanrr<mocked_splittercargsidxss rtest_label_contour_startrsO LLS !EAr++ruufqj"%%!)R88D4T4(JD$ 266!d(#q( )BFF1t8,< >!Q : -D  AD !A$1   QK01rcddgddgg}tjtjt5tj |ddgdddy#1swYyxYw)Nrrrffffff?r^r)rrmr*r+ ValueErrorr)rs rtest_contourf_decreasing_levelsr:sP sc3Z AJJL z "$ Qc #$$$s AA!ctjdjd}tjdd}tj ||}t |jtjdddy) Nr?r@rAT)nbins symmetricrirB) rrr9r MaxNLocatorrrr4rs)rrr<s rtest_contourf_symmetric_locatorrBsU " f%AooA6G a )BbiiS"a)@Arc6tjtjdddtjddd\}}tj||}t j t j |||}t j|y)NrrLrA)rr!rshypotrrmrr:)rrrfr<s rtest_circular_contour_warningrJse ;;r{{2q!,bkk"a.C DDAq AAJJL Q1 BJJrNrz-use_clabeltext, contour_zorder, clabel_zorder))T{)Frr )TrN)FrNc\tjtjddtjdd\}}tjtjt |t |gd}t jd\}\}}|j||||} |j||||} | j||} | j||} |d|z} n|} | D]}|j| k(rJ| D]}|j| k(rJy)NrrrL)ncols)zorder)r#use_clabeltext) rr!rrjrkrlrrrrr: get_zorder)r$contour_zorder clabel_zorderrrrrax1ax2r< cs_filledclabels1clabels2expected_clabel_zorderr:s rtest_clabel_zorderr.Ss) ;;ryyB'1b)9 :DAq ryy#a&#a&)*A.All+OC#s Q1^ 4B Q1^ !1!.=  "&<<<<==  "&<<<<=rc(tjdddx}}tj||\}}tj|dz |dzz }t j \}}|j |||gd}|j|dy) NrgGz@皙?rL)rrrg?r3r6)inline_spacing)rrr!rrrrr:)rrrurvrwrr contoursets rtest_clabel_with_large_spacingr3ls IIdD$ ''A ;;q! DAq 1uq!t|AllnGCAq!,?@JIIjI-rzcontour_log_extension.pnggv?c dtjd<tjddd\}\}}}|jdd t j d d d }t j d |jdd}t jdd}t j d|}|j|t|j|j}|j||t|j|jd} |j||t|j|jd} tj||} | jjdk(sJtj| |} t!| jjt j"dtj| |} y)NFrrCr&)rrBr\r0r)leftrgg#@irr(gg@r)vminvmax)normr)r4r:rrr)g:0yE>g _B)-C6?g.A)rrrrrrsrr9rrr rrjrrget_ylimrrn) rr(r)ax3data_expr levels_expr4c1c2c3rs rtest_contourf_log_extensionrCs ',CLL"#<<1g>C#sCT.{{4d+H 88B ! ) )"b 1D3#J XXc: &F d" D  FB d6" 6::<H&  (B d6" 6::<H#  %B bS !B 55>> | ++ + bS !B"255>>#3RXXk5JK bS !Brzcontour_addlines.pnggQ?rcdtjd<tj\}}tjj dtjj dddz}|j|}|j|dz}|j|}|j|t|jjddgd y) NFri,N,ri'igd]Kȓ\@g6>W'z@r&)rrrrrr r8 pcolormeshrr add_linesrrr<)rrrupcmcontrs rtest_contour_addlinesrIs ',CLL"#llnGCIINN8 r2u$A -- C ::af D c BLLbeenn.:0FJrcontour_uneven)baseline_imagesrJrVrWc^dtjd<tjdj dd}tj dd\}}|d}|j |gd  }|j||d |d}|j |gd  }|j||d y)NFrrArZrCrLr)rLrArZrrr3 proportional)rspacinguniform)rrrrr9rrr)rrrrr<s rtest_contour_unevenrQs',CLL"# " a#A||Aq!HC QB Q0 1BLLNL3 QB Q0 1BLLIL.rzCrc_lines_linewidth, rc_contour_linewidth, call_linewidths, expected))Gz?NNrR)rR(\@NrS)rRrSGz@rTct||d5tj\}}tjdj dd}|j ||}|jd|k(sJ dddy#1swYyxYw)N)zlines.linewidthzcontour.linewidth)rcr?rAr&) linewidthsr)rrrrrr9rget_linewidths)rc_lines_linewidthrc_contour_linewidthcall_linewidthsexpectedrrrur<s rtest_contour_linewidthr]s +=-AC D2,,.R IIcN " "1a ( ZZoZ 6  "1%111 222s A(BB pdfc`tjtjddgddggy)NrCrLr&rA)rr:rrrtest_label_nonaggras&JJs{{QFQF+,-rcontour_closed_line_loop)rKrJrVcgdgdgdgdg}tjd\}}|j|dgdgd |jd d |j d d y) N)rrr)rrLr)rLrCrL)rLrLr5rrr)rWalphagg@g@)rrrset_xlimset_ylim)rrrs rtest_contour_closed_line_looprgsX Iy)4All6*GCJJq3%RDJ4KKcKKcrcRtjddgddg\}}||z}tj\}}|j |||}|j |||}|j |j k7sJ|j ||}|j |j k(sJy)Nrr^)rr!rrrr_contour_generator)rrrrrqcs1qcs2qcs3s rtest_quadcontourset_reuserms ;;SzC: .DAq AAllnGC ;;q!Q D ::aA D  " "d&=&= == = ::dA D  " "d&=&= == =rcontour_manualg{Gz?)rKrJrVrXc ddlm}tjd\}}d}ddgddgddggg}ddgddggddgdd ggg}ddgdd gddgddgddggg}ddgddgddgddgddggdd gdd gddggg}||gd ||gd | ||ddg||gdd dgd dgddgddgd dgd dgddgddgddgddgddgg g}gdg} ||ddg|g| gd | ||dg|g| gddy)Nr) ContourSetrArAr5viridisrLrCr&rArrCrLT)rrrfk)rWrirrBrZ) rCrLrLrLOrCrLrLrLru)rirW)matplotlib.contourrprr) rprrrlines0lines1filled01filled12segskindss rtest_contour_manualr}s}.ll6*GC D1v1v1v& 'F1v1v!Q!Q 0 1FQ!Q!Q!Q!Q89HQ!Q!Q!Q!Q8Q!Q!Q(*Hr9x24dKrAq6FF+3*MVaVaVaVaVVaVaVaVaV 5 6D - .ErAq6D6E74dCrA3Br!contour_line_start_on_corner_edgectjd\}}tjgdgd\}}d|dz dzz |dz dzz}tj|t }d x|d <|d <tj j|| }|j|||d }|j|}|j|||d d}|j|y)N)rZrBr5)rrCrLr&rArsg333333?rLrCdtypeT)rCrC)rCr&r r rt)r ri) rrrr! zeros_likeboolrrnrrrrF) rrrrrr rcbarliness r&test_contour_line_start_on_corner_edgersll6*GC ;; 2DAq q1uqjAEA:%A ==$ 'D""DJd  AD !A [[Aqd[ 3F << D JJq!QDJ =ENN5rctjd}tjtj tj|dz dzddz z}t j |d}|jddd }d }t|||jd dd }d }t|||jddd }d }t|||jdddd}d}t||y)NrrBrLr9@rrCFpixel)rCr!YİØt?rgb?r)rCrrBg`3@gDlpf?gݓ?)r&rgͰQo&?ghW!@g|o^}?rBrindicesr)rBrgA*Ŏ@g@gA?) rrrrsumrrfind_nearest_contourr)xyimgr<nearest_contourexpected_nearests rtest_find_nearest_contourr!s H B &&"%%26626A+q1%78 9C S" B--a%-@O?o/?@--a%-@O>o/?@--a%-@O?o/?@--aF%-PO:o/?@rc~tjd}tjtj tj|dz dzddz z}t j |d}tjtd5|jd d d dddtjtd5|jd dd d dddtjtd5|jdddd dddy#1swY|xYw#1swYOxYw#1swYyxYw)NrrBrLrrrz'Method does not support filled contoursr(rCFrrr)rLrT) rrrrrrrr*r+rr)rrr<s r#test_find_nearest_contour_no_filledr7s H B &&"%%26626A+q1%78 9C c2 B z)R S3 1E23 z)R SD 2vUCD z)R SB 1fDABB 33DDBBs$ DD'<D3D$'D03D<defaultcNtjj}tjt j dddj ddgd}|j||jDchc]}|jc}hdk(sJycc}w)Ngư>r;r6r)gh㈵>gh㈵>gh㈵?r3>0.251.004.00) rrm add_subplotrr geomspacer9r:textsrt)rr<texts r)test_contour_autolabel_beyond_powerlimitsrFsu  ! ! #B R\\$c2::2rB0 2BIIbM(* 1DMMO 15M MM M 1sB"cddlmtjdd}|j dd}||z}t j |gdgdd }|jjd |jjd |j|j\}}|gd k(sJd }tfd|DsJtdt||DsJy)Nr) RectanglerCrr~rrr)#FFFF00#FF00FFz#00FFFFrrrr)z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z $x > 1e+250s$)rrrrc36K|]}t|ywN) isinstance).0ars r z0test_contourf_legend_elements..bs9Az!Y'9sc3VK|]!\}}t|j|#ywr)r get_facecolorrrrs rrz0test_contourf_legend_elements..cs*:1a!//+Q/:'))matplotlib.patchesrrrr9rrrset_over set_underchangedlegend_elementsrEzip)rrhr<artistslabelsexpected_colorsrs @rtest_contourf_legend_elementsrPs, !RA "aA AA a ># %BGGUGGfJJL((*OGV ' '' '.rs!@1z!SYY--.@s.0c3VK|]!\}}t|j|#ywr)r get_colorrs rrz/test_contour_legend_elements..ss)11a!++-+1r)rrr9rrrrEr)rrrrir<rrs rtest_contour_legend_elementsrgs !RA "aA AA 'F Q|"" $B((*OGV ? ?? ? @@ @@ @ 1w/1 11 1rzalgorithm, klassmpl2005mpl2014serialthreaded)invalidNc(tjddgddgg}|0tj||}t |j |sJyt jt5tj||dddy#1swYyxYw)Nr^rdr_@ algorithm) rrnrrrrir*r+r)rklassrr<s rtest_algorithm_namerwsz 3*sCj)*A  \\!y 1"//777 ]]: & 1 LLi 0 1 1 1s 'BBrrrrrc2tjddgddgg}tj||d|dk7rtj||dyt j t 5tj||ddddy#1swYyxYw) Nr^rdr_rF)rr rT)rrnrrr*r+r)rrs r#test_algorithm_supports_corner_maskrs 3*sCj)*ALLiU;I Q)> ]]: & C LLiT B C C Cs +B  Bcontour_all_algorithmsgQ?cgd}tjjd}tjtjdddtjddd\}}tj d|ztj d|zz|jdd z}tj|t }d |d <tjj||}tjdd\}}t|j|D]A\}} |j!|||| |j#|||| d|j%| Cy)Nri rr^rrZrr)rZr)scalesizerT)r&rr rLrrt)rri)rr default_rngr!rsrrnormalrrrrnrrrravelrr set_title) algorithmsrngrrrr rrrrs rtest_all_algorithmsrs>J ))   %C ;;r{{3R0"++c32J KDAq r!t RVVBqD\!CJJSwJ$GGA ==$ 'DDJ  AD !A \\!Q FAsSYY[*5 I Aq!y 1 1ai < Y rcd}tjdd|}tjdd|}tj||\}}tj|dz |dzz }tj|dz dz |dz dzz }||z dz}t j }|j dd} | D]J} | j} | j|||} | j| d d | jd Ly) Nrrr_rrdrLrC)nrowsr"Tr)rrhzSimplest default with labels) rrr!rrrm subfiguresrrr:r) rrrrurvrrrwrfigsfrrs rtest_subfigure_clabelrs E $U#A $U#A ;;q! DAq !Q$!Q$ B 1q5Q,1q5Q,. /B bA A **,C >>> +D 5 ZZ\ ZZ1a  "TB / 34 5rrW)soliddasheddashdotdottedc d}tjdd|}tjdd|}tj||\}}tj|dz |dzz }tj|dz dz |dz dzz }||z dz}t j \} } | j |||dd } | j| d d | jd| jJt j \} } | j |||dd |}| j|d d | jd||j|k(sJt j \}}|j |||dd |d}|j|d d |jd||j|k(sJy)Nrrr_rrdrLrCrZrtrirTrhrz0Single color - positive contours solid (default))ri linestylesz!Single color - positive contours rrirnegative_linestyles) rrr!rrrrr:rr)rWrrrrurvrrrwfig1r(CS1fig2r)CS2fig3r=CS3s rtest_linestylesrs E $U#A $U#A ;;q! DAq A1 B !a%! q1uqj( )B bA A ID# ++aAq+ -CJJsQtJ,MMDE >> !! ! ID# ++aAq+ ?CJJsQtJ,MM5eW=> >>U "" " ID# ++aAq*3  5CJJsQtJ,MM5eW=> >>U "" "rc d}tjdd|}tjdd|}tj||\}}tj|dz |dzz }tj|dz dz |dz dzz }||z dz}t j \} } | j |||dd } | j| d d | jd| jdk(sJ|tjd<t j \} } | j |||dd }| j|d d | jd|d|j|k(sJt j \}}|j |||dd |}|j|d d |jd||j|k(sJt j \}}|j |||dd d|}|j|d d |jd||j|k(sJy)Nrrr_rrdrLrCrZrtrrTrz1Single color - negative contours dashed (default)rzcontour.negative_linestylez!Single color - negative contours z(using rcParams))rirrr) rrr!rrrrr:rrr)rWrrrrurvrrrwrr(rrr)rrr=rfig4ax4CS4s rtest_negative_linestylesrs6 E $U#A $U#A ;;q! DAq A1 B !a%! q1uqj( )B bA A ID# ++aAq+ -CJJsQtJ,MMEF  " "h .. .27CLL-. ID# ++aAq+ -CJJsQtJ,MM5eW%&'  " "e ++ + ID# ++aAq%+ HCJJsQtJ,MM5eW=>  " "e ++ + ID# ++aAq*/  1CJJsQtJ,MM5eW=>  " "e ++ +rcbtjj}|j}|j t j djd}|j|j|k7sJ|j|j|k(sJy)Nrrq) rrmr get_childrenrrrr9r:remove)r orig_childrenr<s rtest_contour_remover s  ! ! #BOO%M BIIbM))&1 2BIIK ??  -- -IIK ??  -- -rctj\}}ddgddgg}tjtd5|j |dddy#1swYyxYw)NrrCzcontour\(\) takes from 1 to 4r()rw)rrr*r+r,r)rrrs rtest_contour_no_argsrsUllnGC FQF D y(H I T s AA ctj\}}ddgddgg}tjddgd|j}|j ||}|j Jy)NrrCr)r) clip_path)rrmpatchesCircle transAxesr get_clip_path)rrrcircler<s rtest_contour_clip_pathr sdllnGC FQF D __c3Z EF DF +B    )) )rctjjdd\}}tjddzj dj t }gdgdgdg}tj|jjjdgk(sJtj|jjdgk(sJtjtjj||jjdgk(sJtj|jjjgdk(sJtj|jjgdk(sJtjtjj||jjgdk(sJ|j}tj|||jjjdgk(sJtj|||jjdgk(sJtj |||jjjgdk(sJtj |||jjgdk(sJy) NrLr)r&r&)FFF)FTFrr )rrrC)rrr8rr9astyperrrtolistr4rrnrr tricontour tricontourf)rrrms rtest_bool_autolevelr%s) 99>>!Q DAq 1 ""6*11$7A  46KLA ;;qxxz " ) ) 0 0 2rd :: : ;;q> ' ' )bT 11 1 ;;ruu{{11{- . 5 5 < < >2$ FF F << # * * 1 1 3z AA A <<? ! ! ( ( *j 88 8 << AA . / 6 6 = = ?: MM M  A >>!Q + 2 2 9 9 ;t CC C >>!Q " ) ) 0 0 2rd :: : ??1a , 3 3 : : < JJ J ??1a # * * 1 1 3z AA Arctjtjtjgtjtjgg}tt j |j gdy)N) gvIh%r.s S881%O biilIBIIaL("((7"34=?biimYRYYr]HBHHW$56:<bhhx)"))B-'):;;=biimXRXXh''):;;=bhhv)8288G+<=46bhhw&)8288G+<=46bhhy8288I.0AB.0bhhy8288I.0CD!# seXKMcA3!KM'+,-,  ,(*)**+WRVW DX D(&23"'ugG#G#9:+8++-9auFF<*+"'ugG9G9 +NO$ O$,-W%P<Q<(./w?#@#067"'s<><>8224RS". 1. 1$BHAB=B=, .&./"'""B)*G.h..0H