rL iZ pddlZddlZddlZddlmZddlZddlmZddl m Z ddl m Z ddl mZddlmZddlmZddlmZd Zd Zd Zd Zej2j5d e gddddfe gddddfe gddddfe gddddfe gddddfe gddddfgdZdZe ddgddgddgddgge j:e j<e j<e j<ge ddgddgddgge j:e j>e j>ge ddgddgge j:e j@ge ddgge j:ggZ!gdZ"ej2j5de#e!e"dZ$ej2j5de jJe jLgdZ'd Z(d!Z)ed"gdd#ejTd$k(rdnd%&d'Z+ed(gd)d*Z,ed+gd#,d-Z-d.Z.d/Z/ed0gd)d1Z0ed2gd)d3Z1ed4gd)d5Z2ed6gd7dgd8ejTd$k(rdnd9:d;Z3d<Z4d=Z5d>Z6d?Z7d@Z8ej2j5dAejrdBDcgc]}ejtgdC|zc}dDZ;ej2j5dEedKZ?dLZ@dMZAdNZBdOZCdPZDycc}w)QN)assert_array_equal)patches)Path)Polygon)image_comparison) transforms) MouseEventc*ttjdd}|jjdk(sJ|j Jt |jjtjjjy)NrTclosed) rnpzerosverticesshapecodesr get_extentsextentsrBboxnullpaths `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_path.pytest_empty_closed_pathrsn   .D ==  & (( ( ::  t'')11!++-557ctjfd}tjt5|dddy#1swYyxYw)Nc.jdz_y)N@)rrsrmodify_verticesz+test_readonly_path..modify_verticess + r)r unit_circlepytestraisesAttributeError)r rs @rtest_readonly_pathr%s?    D, ~ &s AAcRtjdjdd}tjt t jd|j5t|dddtjdjddd}tjt t jd|j5t|dddtjdjdd}tjd}t jd|jd |j}tjt |5t||dddy#1swYxYw#1swYxYw#1swYyxYw) N z has shape )matchr zYour vertices have shape z but your codes have shape ) rarangereshaper"r# ValueErrorreescaperr) bad_verts1 bad_verts2 good_verts bad_codesmsgs rtest_path_exceptionsr6$sT2&&q!,J zYYJ4D4D3E'FG I Z2&&q!Q/J zYYJ4D4D3E'FG I Z2&&q!,J ! I ))/ 0@0@/AB11:0AC DC z -$ Z#$$ $$s$! F F. FFFF&ctjgd}ddg}|j|}|jdk(sJtj j |ddgy)N)rrrr:r:r:r?r>)?r>boolTF)r_create_closedcontains_pointsdtypertesting assert_equal)rpointsrets rtest_point_in_pathrH7sW   ? @D* %F   v &C 99  JJC$/rz#other_path, inside, inverted_inside)?rJ)rJ?)rKrK)rKrJrITr F)пrMrM?rOrOrOrMrL)rLrNr=rPrQrL)rI)rJ?)rRrR)rRrJrIr8r9r;r<r8)r r )r r)r)r))r)r rTcvtgdd}|j||usJ|j||usJy)NrSTr )r contains_path) other_pathinsideinverted_insiders rtest_contains_pathr[@sC 8 FD   j )V 33 3  # #D )_ << )r]rbrbrb)rbrrbrz path, extentschtj|jj|k(sJyN)rallrr)rrs rtest_exact_extentsrfls* 66$""$,,7 88 8r ignored_codectddgddgddggtjtj|g}tj|j j dk(sJy)Nrr:r )r]r]rbrb)rMOVETOrrerr)rgrs rtest_extents_with_ignored_codesrjzsc !QQQ;; \B DD 66$""$,,0@@ AA Arctjddgddgddgddgddgg}t|}tjtjdgg}|j |}t |dk(sJ|drJyNrr:r>)rarrayrnanrBlen)boxptestcontainss rtest_point_in_path_nanrts ((QFQFQFQFQF; r=)2r>) pltsubplotssetaxvspanget_pathcontains_point transData transform get_transform)figaxpolygons rtest_nonlinear_containmentrsllnGCFF%fF%jjBG     , , w')>)>)@ BB B!00 x('*?*?*ACC C!00 x('*?*?*ACC CCrzarrow_contains_point.pngmpl20x86_64gS㥛?) remove_textstyletolcjtj\}}|jd|jdt j dddd}|j |t j ddd d}|j |t j d d d d d}|j ||||g}tjtjdddtjddd\}}tt|j|jD]\}\} } |jj| | g\} } td|j | | } t|D]1\}}|j#| \}}|s|j%| | dd3y)Nr )r>rJ)r?rKz->() arrowstylemutation_scale)r>r:)r?rRz]-[)r>r?)r?rOfancyF)rfillrrr g?button_press_eventrzr)sc)r|r}set_xlimset_ylimrFancyArrowPatch add_patchrmeshgridr, enumeratezipravelrrr canvasrsscatter)rrarrowarrow1arrow2 patches_listXYkxyxdispydispeventmpatchrYress rtest_arrow_contains_pointrsllnGCKKKK  # #K/335 7ELL  $ $X{05468FLL  $ $Z07*/468FLL66*L ;;ryyAs+yyAs+ -DAqs1779aggi89- 6Aq||--q!f5 u/UEJ!,/ -HAu../KFC 1a1 ,  --rzpath_clipping.svg)rc htjd}tgdgdgdgdgdgdgd gD]y\}}|jd d |d z}gd }|j |d|d|d z|j |d |d |dz|j t|ddd{y)N)g@g@)figsize)rr^r)rr)rrrrd)rrrrr)rrrr)rrrrr)rrrr)rrrrr(r r:)riirr)noneredT) facecolor edgecolorr)r|figurer add_subplotrrrr)rixyrbboxs rtest_path_clippingrs **Z (C < < < < < < <>? A2__Q1Q3 '! DGT!WtAw./ DGT!WtAw./ W &E$@ A Arzsemi_log_with_zero.png)rctjdd}dd|dzdzz z dz}tj\}}|j ||ddd |j d d|j d y) Niryrbr r:-or)lwmarkeredgecolorgHz>T)rr,r|r}semilogyrgridrrrrs rtest_log_transform_with_zerorsk #rA sAqDF| b AllnGCKK1dr3K7KKaGGDMrctj}|jjdk(sJtj||}|jjdk(sJ|jjdk(sJtjtdg|}|jjdk(sJ|jjdk(sJy)Nr )rr8)r:r )r:)rmake_compound_pathrrr)emptyr2r3s rtest_make_compound_path_emptyrs  # # %E >>  6 )) )  .B ;;   && & 88>>T !! ! vh 7B ;;   && & 88>>T !! !rcddg}dt||gtjtjggz}tj|}t j |j tjk(dk(sJy)Nrr))rriSTOPrrsumr)zeropaths compound_paths rtest_make_compound_path_stopsrsh q6D tT4L4;; ":;< q}}2be}Lvq}}+q}}}7$@ Hr2hR )D8b"XBx"b:K T Aq}}2b}9K=Iq}}2be}Lvq}} 6q}}}7$@rcddgddgg}tjtjg}t|d}t||d}|j}|j}||usJ|j|jusJt |j|j|j sJ|j rJ||usJ|j|jusJt |j|j|j|jusJt |j|j|j sJ|j rJy)Nrr:Treadonly)rriLINETOdeepcopyrrr"rvertsrpath1path2 path1_copy path2_copys rtest_path_deepcopyr+bs1VaV E [[$++ &E  &E  -E!J!J  "" " >>!4!4 44 4u~~z':':; >>>""" "  "" " >>!4!4 44 4u~~z':':; ;;j.. .. .u{{J$4$45 >>>""" ""rcGddt}|ddgddggd}|j}||usJ|jsJ|jrJ|j|usJGddt}|ddgddggd}|j}||usJ|jsJ|jrJ|jd|usJ|jd|usJy) NceZdZfdZxZS)/test_path_deepcopy_cycle..PathWithCyclec2t||i|||_yrdsuper__init__rselfargskwargs __class__s rr2z8test_path_deepcopy_cycle..PathWithCycle.__init__zs G d -f -DFr__name__ __module__ __qualname__r2 __classcell__r7s@r PathWithCycler.ys   rr>rr:Tr!ceZdZfdZxZS)0test_path_deepcopy_cycle..PathWithCycle2c:t||i||gdz|_y)Nr r0r3s rr2z9test_path_deepcopy_cycle..PathWithCycle2.__init__s" G d -f -VaZDFrr8r=s@rPathWithCycle2r@s   rrB)rr$r"r)r>rqp_copyrBp2p2_copys rtest_path_deepcopy_cyclerFxs 1v1v&6A ZZ\F ?? :::  88v    !Q!Q(4 8BkkmG "   ;;;  99Q<7 "" " 99Q<7 "" "rcvddgddgg}tjtjg}t|}t||}|j}|j}||usJ|j|jusJ||usJ|j|jusJ|j |j usJy)Nrr:)rrir#copyrrr%s rtest_path_shallowcopyrIsVaV E [[$++ &E KE  EJJ  "" " >>Z00 00 0  "" " >>Z00 00 0 ;;*** ** *rphi)rrr:) rrr-<KZixc gd}tjjtj|}t ddg}|j |}|j|r|j|sJt ddg}|j |}|j|r|j|sJ|j t ddg}|j t ddg}|j|r|j|sJ|j t ddg}|j t ddg}|j|r|j|sJ|j|sJ|j t dd g}|j t d d g}|j|r|j|sJ|j t ddg}|j t d d g}|j|s|j|rJ|j t ddg}|j t d dg}|j|s|j|rJ|D]h}|j t ddg}|j t d|zdfd|zdfg}|j|s|j|shJ|D]c}|j t ddg}|j t dd|zfdg}|j|s|j|scJ|D]c}|j t ddg}|j t dd|z fdg}|j|r|j|rcJ|j t ddg}|j t gd}|j|r|j|sJ|j t ddg}|j t ddg}|j|s|j|rJ|j t ddg}|j t ddg}|j|s|j|rJy)N)gh㈵>g:0yE>g|=g-q=)r r)r rr8r9)rr))r:r)rrz)rzrzr;rU)r)r)rr+)rrrr:rz)r9r rS)r:r)rr)r^r:)r])rbrT)rb@)r]rU)rAffine2Drotaterdeg2radrtransform_pathintersects_path)rJ eps_arrayrabrs rtest_path_intersect_pathr^s +I##%,,RZZ_=I gv A  #A  Q A$5$5a$88 8 ff A  #A  Q A$5$5a$88 8   vv&6!78A  vv&6!78A  Q A$5$5a$88 8   vv&6!78A  vv&6!78A  Q A$5$5a$88 8  Q     vv&6!78A  vv&6!78A  Q A$5$5a$88 8   vv&6!78A  vv&6!78A  #A,=,=a,@@ @   vv&6!78A  vv&6!78A  #A,=,=a,@@ @ E  $ $T66*:%; <  $ $TAGQ!?@A  Q A$5$5a$88 8   w&8!9:A  vx&8!9:A  #A,=,=a,@@ @   y)&A  x&:!;> * , rvvrvv 0 12 rvvrvv 02662662Bvvrvv kk4;; T^^ D F E-)))-7|q   }}Q499,,,-rc tjddgddgddgddgddgddgg}tjtjtjgdz}t||}|j d}tjgtjgdzz}tj j|j|dzy)Nrr:r r(rzr)r+) rrmrrir# interpolatedrDrr)rrrr`expected_subpath_codess rtest_interpolated_movetor}Dsxx!QQQQQQ !"H [[$++t{{ 3a 7E % D   q !F#kk]dkk]Q->>JJ!!&,,0F0JKrc tjgtjgdzztjgz}gd}t||}|j d}t j ddgddgddgddgddgddgddgg}tjgtjgdzztjgz}t jj|j|t jj|j||tjgz }|dgz }t||}|j d}t j ddgdd gg}t j||g}|tjgdzz }t jj|j|t jj|j|y) Nr )r(r)rzr(rzr)r8r(r)@ @rz)r r:r:) rrir#rvr{rrmrDrerrr concatenate)rrrr`expected_verticesexpected_codesextra_expected_verticess rtest_interpolated_closepolyrVs [[MT[[M!O +t~~.> >E/H % D   q !F1a&#&*#$a&#$c(#$a&#&(#$a& "*+kk]dkk]1_47GGNJJv0ABJJ!!&,,? dkk]E H % D   q !F hhA)*A(01(9;R'STt{{ma''NJJv0ABJJ!!&,,?rc btjgtjgdzztjgzdz}gd}t||}|j d}t j ddgddgddgddgddgddgddgg}t j||dzg}tjgtjgdzztjgzdz}t jj|j|t jj|j|y)Nr )rrrr8)rr+)ryr)ryr+r8r(r)rrrz) rrir#rvr{rrmrrDrerrr)rrrr`expected_vertices1rrs r"test_interpolated_moveto_closepolyrzs kk]dkk]1_ ,/? ?1 DEQH % D   q !FAq6$':$%q6$%s8$%q6$'8$%q6 #+,(:rs ,  &:!/7$&0) Qu& W&  9' Q' 3DA5%P 3DA5%P R S= S= : 1a&1a&1a&1a& ) KKdkk4;; ?A 1a&1a&1a& !DKKdkk#JK1a&1a& DKK561a&DKK=!  (#k;M*NO 9P 9$..$)))DEBFB C-.D+8++-9auF"-F"-J&'T:A;A&+,G<= "9:,D12$%48 #9 #%&D9::,iT9+8++-9auFF 7FA*#,#6 +0  BHH 785@0!NANAb5sB#78(9(703&-.L$!@H@,)]0sL3