rL iGddlZddlmZddlZddlZddlmZddl m Z m Z e dgddd Z e d gdd d dZ e dgdZdZe dgdZe dgdZe dgdZe dgddZe dgddZe dgddZe dgddZe d gdd!Ze d"gdd#Ze d$gdd%Ze d&gd'd(Ze d)gdd*Ze dgd+Ze dgd,Zd-Zd.Zd/Z d0Z!d1Z"d2Z#e dgd3Z$e dgd4Z%d5Z&d6Z'd7Z(d8Z)e dgd9Z*d:Z+d;Z,d<Z-d=Z.e d>gdd?Z/e d@Z0dAZ1ejdjgdBdCdDge dEgd d'FdGZ4y)HN)assert_allclose)pyplot)image_comparisoncheck_figures_equalzpolar_axes.pngdefaultg~jt?)styletolc tjddd}dtjz|z}tj}|j d}|j ||dd \}|j d d d d \}d}||||}}|j |g|gd|jd||fddtdddd|jddddy)N?MbP?@Tpolarz#ee8d18)colorlwrrrz#0000ffr oza polar annotation)皙?rzfigure fractionblackr facecolorshrinkleftbaseline)xyxytext textcoords arrowpropshorizontalalignmentverticalalignmentxout)axistick1Ontick2On direction) nparangepipltfigure add_subplotplotannotatedict tick_params)rthetafigaxlineindthisr thisthetas a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_polar.pytest_polar_annotationsr? s #sE"A   !E **,C t $B GGE1I!G 4ED GGFF)G :ED CvuSz9EGGYK%#&KK$u%#,'$?$*", NNT45NIzpolar_coords.pngTgy&1?)r remove_textr c tjjddddd}tj}|j d}|j ||j|j|jd tjd z d ftjd z d fddtddddd |jdd|jddy)Nr r6?)ralphaequal)aspectzthe top@$@rg4@rrrrrrT)r r!xycoordsr"r#r$r%clip_oni)mplpatchesEllipser/r0r1 add_artist set_clip_boxbboxr3r,r.r4set_xlimset_ylim)elr8r9s r>test_polar_coord_annotationsrV,s   VRs#  FB **,C  (BMM"OOBGGKK EE"Hc?a~ "'$?$*", KKRKKRr@zpolar_alignment.pngc|tjddd}gd}tj}gd}|j |dd}|j ||j |dd }|j jd td D]'}|j|j|||d d )y)NrihZ)r皙?皙?g333333?皙?r皙?r]r[r[T horizontal)rlabelverticalFrtop)angler$r%) r,r-r/r0add_axesset_thetagridspatch set_visiblerangeaxes set_rgrids)angles grid_valuesr8rectr^r`is r>test_polar_alignmentroIsYYq#r "F,K **,C Dd$lCJf%||DJ|?H NNu% 1XA   vay &%  AAr@ctj}tjddgddgtjddgddgt|jdk(sJd y) Nrrar]rYrg333333?rZz!More than one polar Axes created.)r/r0rlenri)r8s r>test_polar_twicers^sU **,CIIq!fr2hIIq!fr2h sxx=A BBB r@png) extensionsc|jd}|jtjddgddg|jtjddgddg|jd}|jtjdd gddg|jtjdd gddgy) Nr projectioniMrYr]raif)r1r2r,deg2radfig_testfig_refr9s r>test_polar_wrapres     1BGGBJJT{ #c3Z0GGBJJ2w #s,     0BGGBJJSz "S#J/GGBJJ3x 3*-r@cddlmcm}|jgd}gd}t j |j t j|Dcgc]}||jzc}||jd}|jtj|||jdycc}w)Nrg>@gF@gN@V@r rI@rrrwdeg)xlabel)matplotlib.testing.jpl_unitstesting jpl_unitsregisterr/r0numberrrr1r2r,r|set)r~runitsxsysr&r9s r>test_polar_units_1ros00 NN !B BJJxIIb)q599})2.     0BGGBJJrNBFF%F *sB<cddlmcm}|jgd}|Dcgc]}||jz}}gd}|Dcgc]}||j z}}t j|jt j||ddtt jjj|jsJ|jd} | j!t#j$||| jj't(j*j-d j.| j1dd ycc}wcc}w) Nrrrradkm) thetaunitsrunitsrrwz{:.12})rylabel)rrrrrrr/r0rr isinstancegcaxaxisget_major_formatterUnitDblFormatterr1r2r,r|set_major_formatterrMticker FuncFormatterformatr) r~rrrr&xs_degryys_kmr9s r>test_polar_units_2r~s 00 NN !B%' (a%))m (F ( B#% &aQ\ &E &JJxIIfed; cggioo99;,, .. .     0BGGBJJrNBHH  !9!9(//!JKFF%F%) &s E!E&zpolar_rmin.png)rctjddd}dtjz|z}tj}|j gdd}|j |||jd|jd y) Nrr{Gz?rar\TrrIrE r,r-r.r/r0rdr2set_rmaxset_rminr6r7r8r9s r>test_polar_rminrsi !S$A beeGAIE **,C *$ 7BGGE1KKKKr@zpolar_negative_rmin.pngctjddd}dtjz|z}tj}|j gdd}|j |||jd|jdy)Ngr rrar\Trrrs r>test_polar_negative_rminrsi $T"A beeGAIE **,C *$ 7BGGE1KKKKr@zpolar_rorigin.pngc:tjddd}dtjz|z}tj}|j gdd}|j |||jd|jd |jd y) Nrrrrar\TrrIrEr ) r,r-r.r/r0rdr2rr set_roriginrs r>test_polar_roriginrsu !S$A beeGAIE **,C *$ 7BGGE1KKKKNN3r@zpolar_invertedylim.pngcztj}|jgdd}|jddy)Nr\Trrar)r/r0rdrTr8r9s r>test_polar_invertedylimrs. **,C *$ 7BKK1r@zpolar_invertedylim_rorigin.pngctj}|jgdd}|jj d|j ddgddgd|j d|jdy) Nr\Trrranone)cr)r/r0rdyaxis set_invertedr2marginsrrs r>test_polar_invertedylim_roriginrse **,C *$ 7BHH$GGQFQFfG%JJqMNN1r@zpolar_theta_position.pngctjddd}dtjz|z}tj}|j gdd}|j |||jdd |jd y) Nrrrrar\TrNW clockwise) r,r-r.r/r0rdr2set_theta_zero_locationset_theta_directionrs r>test_polar_theta_positionrso !S$A beeGAIE **,C *$ 7BGGE1tR(;'r@zpolar_rlabel_position.pngctj}|jd}|jd|j dy)Nrrwi;auto)rotation)r/r0r1set_rlabel_positionr5rs r>test_polar_rlabel_positionrs9 **,C G ,B3NNFN#r@zpolar_title_position.pngmpl20crtj}|jd}|jdy)Nrrwfoo)r/r0r1 set_titlers r>test_polar_title_positionrs) **,C G ,BLLr@zpolar_theta_wedge.pngc Dtjddd}dtjz|z}tjddd}tjddd}d }tjt |t |d d id \}}t |D]\}}t |D]\} } ||| f} | j|||| kr#| j|| j| n3| j| | j|| jd| jd d ||t |zd| jjd d| jjj j#gdy)Nrrrrag.@gv@rgI@)r'ininoutrT)) subplot_kwfigsizerr)r)r*r+r)label2Onr)rrag@rC)steps)r,r-r.r/subplotsrr enumerater2 set_thetamin set_thetamaxrr5rset_tick_paramsrget_major_locatorbase set_params) r6r7 theta_mins theta_maxs DIRECTIONSr8axsrnstartjendr9s r>test_polar_theta_limitsrsu !S$A beeGAIE4-J4-J'J||C OS_(/$*,HCj)*5 + *FAsQTB GGE1 s{&$$&&&{3 NN4%/C O0C%D$*  , HH $ $dV $ D HH & & ( - - 8 8( 9 * **r@c|jddi}|jd|jd|jddi}|jd|jdy) NrTrrC)rbrEbottomrJrset_rlimrrr}s r>test_polar_rlimrsc   wo  6BKKBKKKrK   gt_  5BKKKKOr@c|jddi}|jddg|jddi}|jd|jdy)NrTrrErCrrJrr}s r>test_polar_rlim_bottomrsY   wo  6BKKBxK   gt_  5BKKKKOr@ctjjd}|jt j dt j ddz|j ddk(sJy)NrrwrCrr)r/r0r1r2r,r-get_ylimr9s r>test_polar_rlim_zerorsW  ! !W ! 5BGGBIIbM299R=3./ ;;= q  r@crtjdtj}|jdk(r|j dk(sJtj dtj tj}|jdk(r|j dk(sJy)Nrrwrrall)r/subplotrget_rminget_rmaxcloserrs r>test_polar_no_datar"s~KK7# B ;;=A "++-1"44 4IIeIIK B ;;=A "++-1"44 4"4r@ctjdtj}|jd|j dkDsJy)Nrrwlogr)r/rr set_rscalerrs r>test_polar_default_log_limsr-s9KK7# BMM% ;;=1  r@ctjjd}tjt 5|j ddddy#1swYyxYw)Nrrwdatalim)r/r0r1pytestraises ValueErrorset_adjustablers r>!test_polar_not_datalim_adjustabler4sJ  ! !W ! 5B z "% )$%%%s AA"ctj}|jd}|jdtj|j j d|jj|jjdjjdk(sJ|j jdjjdk(sJy)NTrrY)rFF)visibler) r/r0r1gridsetprget_ticklabelscanvasdrawr majorTicksgridline get_alphars r>test_polar_gridlinesr:s **,C t $BGG#GHHRXX $ $ &6JJOO 88  q ! * * 4 4 6" << < 88  q ! * * 4 4 6" << test_get_tightbbox_polarrFsYll|W&=>GCJJOO  #**113 4B <5Jr@c|jddjdgdgdtjzdd }|jd djdgdgd tjzdd }|jddjdgdgd tjzdd }|jd djdgdgd tjzdd }y)NyrrwrrrrF) edgecolor antialiasedzrarz)r1barr,r.)r~rp1p2p3p4s r>)test_polar_interpolation_steps_constant_rr"Ns   sw  7 3sQC255F3 F   sw  7 3sQCBEEV3 G   cg  6 3sQC255F3 F   cg  6 3sQCBEEV3 Gr@cZ|jdjdtjdz gddg\}d|j _|jdjtj dtjdz dtj dddy)Nrrwrrarde)r1r2r,r.get_path_interpolation_stepslinspace)r~rls r>)test_polar_interpolation_steps_variable_rr*\s     1 6 62557|aV LBA(+AJJL% 7+00 AruuQw$bkk!Q&<>r@ctjd}|jddtjz|jddt j td 5|jdd tjzdddt j td 5|jdd dddy#1swYAxYw#1swYyxYw) Nrrwrrari)thetaminthetamaxz+angle range must be less than a full circle)matchri)r/r set_thetalimr,r.rrrrs r>test_thetalim_valid_invalidr0ds  (BOOAq255y!OOS3O/ zJ L& 1ruu9%& zJ L4 s344&&44s($C /C CC!cztjd}|jddtt j |j |jfdk(sJ|jdtt j |j |jfdk(sJy)Nrrwrrr)rar)r/rr/tupler,radians get_thetamin get_thetamaxrs r>test_thetalim_argsr6ps  (BOOAq R__.0ABC D NN NOOF R__.0ABC D NN Nr@ctjdddi\}}|jD]"}|jdtj $|jD]o}t j |jjj}tjd|vsJtjd|vroJy)NzAAAABB.rxrrrrXr$) r/subplot_mosaicvaluesr/r,r.degreesrget_majorticklocstolistrapprox)r8rr9ticklocss r>test_default_thetalocatorr?xs!!|W57HCjjl" 255!"jjl2::bhh88:;BBD}}R H,,,}}S!1112r@ctjd}|jdtjdz }|j j dkDsJy)Nrrwrrqr)r/raxvspanr,r.r&r')r9spans r> test_axvspanrCsB  (B ::aq !D ==? / /! 33 3r@c|jdddddi}dD]}|j|j!|jdddddi}dD]}|j|j!y)NraTrxr)sharexr)rrr)shareyr)rflatremove)rr~rrns r>test_remove_shared_polarrIs    1T|W&=  ?C       1T|W&=  ?C   r@cFtjddddidd\}}|jj|djj dj sJ|djj dj sJtjdddidd\}}|jj|d jj dj sJ|d jj dj sJy) NrarxrT)rrErFrrzab cdb) r/rr r rr  get_visiblerr8)r8rs r>"test_shared_polar_keeps_ticklabelsrMs|| 1,0dLHCJJOO t9?? % %a ( 4 4 66 6 t9?? % %a ( 4 4 66 6!!lG4T$PHCJJOO s8>> $ $Q ' 3 3 55 5 s8>> $ $Q ' 3 3 55 5r@ctjd}|jdd|jd|j ddg|j dk(sJy) NrrwrrrEr]rY)rrY)r/rrAaxvliner2rrs r>(test_axvline_axvspan_do_not_modify_rlimsrPsM  (BJJq!JJrNGGRH ;;=G ## #r@ctjd}|jdddk(sJ|jdddk(sJ|jddd k(sJ|jddd k(sJ|jddd k(sJ|jddd k(sJ|jd ddk(sJ|jd ddk(sJ|jd ddk(sJy)Nrrwr{Gzt?uθ=0.0π (0°), r=0.005r]uθ=0.00π (0°), r=0.100ruθ=0.000π (0.0°), r=1.000uθ=0.3π (57°), r=0.005uθ=0.32π (57°), r=0.100uθ=0.318π (57.3°), r=1.000rauθ=0.6π (115°), r=0.005uθ=0.64π (115°), r=0.100uθ=0.637π (114.6°), r=1.000)r/r format_coordrs r>test_cursor_precisionrTs  (B ??1e $(A AA A ??1b !%? ?? ? ??1a $A AA A ??1e $(B BB B ??1b !%@ @@ @ ??1a $B BB B ??1e $(C CC C ??1b !%A AA A ??1a $C CC Cr@c(tjd}d}d|_||_|j dddk(sJ|j ddd k(sJ|j d d d k(sJ||_d|_|j d ddk(sJ|j dddk(sJ|j dddk(sJ||_||_|j dddk(sJ|j dddk(sJ|j dddk(sJy)Nrrwcd|dzzS)Nz$%1.1fMgư>)r&s r>millionsz&test_custom_fmt_data..millionssAdF##r@ gsAu,θ=3.8197186342π (687.54935416°), r=$20.0Mig>Au-θ=392.794399551π (70702.9919191°), r=$2.0Mrr$u!θ=0.95493π (171.887°), r=$0.0MgjAruθ=$0.2M, r=1.000r]uθ=$0.0M, r=0.100g.ArRuθ=$1.0M, r=0.005g ZAuθ=$2.0M, r=$6000.0MgNgmCl{ u!θ=$1000000000000.0M, r=$12891.3Ml1;Ti Buθ=$3938980.6M, r=$1107.9M)r/r fmt_xdata fmt_ydatarS)r9rXs r>test_custom_fmt_datar\s/  (B$BLBL ??2s #'U UU U ??4 %)X XX X ??1c "&I II IBLBL ??3 "&9 99 9 ??1b !%8 88 8 ??3 &*= == =BLBL ??3 (,B BB B ??4 -1T TT T ??5, /3O OO Or@z polar_log.pngc4tj}|jd}|jd|j ddd}|j t jddt jz|t jdd|y) NTrrrir$rra) r/r0r1rrr2r,r(r.logspace)r8r9ns r>test_polar_logr`sl **,C t $BMM%KK4 AGGBKK1ruu9a ("++aA*>?r@c|jdd}|jdd|jd|jt j ddd|jdd}|j d|jd d |jd |jt jddd||fD]}|jd y)Nrred)rxrrrarrrrr$r F) labelleft) r1rr set_rticksr,r(rr^r5)rr~ax_refax_testr9s r>test_polar_log_roriginrgs Gu EF OOAq r bkk!Q*+""g"GG u Q  r{{1a+,go( '(r@c4tj}|jd}|jtj tj |j jDcgc]}|j}}|gdk(sJycc}w)Nrrw)u-180°u-135°u-90°u-45°u0°u45°u90°u135°) r/r0r1r/r,r.rr get_text)r8r9r)labelss r>test_polar_neg_theta_limsrkso **,C G ,BOORUUFBEE"$&HH$;$;$= >qajjl >F > [ [[ [?s2Borderbeforeafterzpolar_errorbar.png)baseline_imagesrArc tjddtjztjdz }|tjz dz dz}tjd}|j d}|d k(r;|j d |jd |j||d d d ddy|j||d d d dd|j d |jd y)NrrarrE)rr)rrrwrmNr]rseagreen)xerryerrcapsizefmtr) r,r-r.r/r0r1rrerrorbar)rlr7r6r8r9s r>test_polar_errorbarrzs IIaRUUBEEAI .E  CA **V $C G ,B  ""3' r" E13S! S E13S! S ""3' r"r@)5numpyr, numpy.testingrr matplotlibrMrr/matplotlib.testing.decoratorsrrr?rVrorsrrrrrrrrrrrrrrrrrrrrr"r*r0r6r?rCrIrMrPrTr\r`rgrkmark parametrizerzrWr@r>rsF) $O#$I5AJBJB%&iT6()*A+A(C(.).( ) (&)&(#$I67,-Y?@&'y9 : +,I>? 34IFG-.i@(A(./yA$B$-.g>? *+9=*>*@()()! 5% =J( I) I(>)> 4O 24 ( )  6$ DP6?#95@6@((&\8W"56#7"8d! #!7 #r@