rL i.ddlZddlZddlZddlZddlmZddlm Z ddlm Z dZ ejjejdk7dd Zejjejdk7dd Zd Zd Zd ZdZe dgdZe dgdZe dgddZdZe dgddZe dgddZe dgddZe dgddZe d gdd!Zd"Zd#Zd$Z e d%gdd&Z!d'Z"d(Z#d)Z$d*Z%d2d+Z&d2d,Z'ejjQd-gd.e d/g0d1Z)y)3N)pyplot)image_comparison)check_figures_equalc Ltjtjddtjzdtjddtjzd\}}tj|}tj |}|j ||fi|}|S)Nr)npmeshgridarangepicossinquiver)axkwargsXYUVQs b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_quiver.py draw_quiverr sy ;;ryyAIq1yyAIq1 3DAq q A q A !Q!&!A HCPythonzRequires CPython)reasonctj\}}t|}|j}t j |}|j ~t j ||ksJyN)pltsubplotsrrsys getrefcountremove)figrrttX orig_refcounts rtest_quiver_memory_leakr&sVllnGCBA ##COOC(MHHJ ??3 - // /rc tj\}}t|}|j|dddddddi}t j |}|j t j ||ksJy) N?q= ףp?r$2 \frac{m}{s}$Wweightboldlabelposfontproperties)rrr quiverkeyr r!r")r#rrqkr%s rtest_quiver_key_memory_leakr3%sullnGCBA adA'9"&.%7  9BOOB'MIIK ??2  .. .rc *ddg}tjtd5tj|dddtjtd5tj||||||dddy#1swYHxYw#1swYyxYw)Nrrz7takes from 2 to 5 positional arguments but 1 were givenmatchz7takes from 2 to 5 positional arguments but 6 were given)pytestraises TypeErrorrr)rs rtest_quiver_number_of_argsr:4s AA  K M 1   K M% 1aAq!$%% %%sA=B =B BcVddg}gd}tjtd5tj||||dddtjtd5tj||||dddtjtd5tj||||dddtjtd5tj|||||dddy#1swYxYw#1swYxYw#1swY_xYw#1swYyxYw) Nrr)rrz?X and Y must be the same size, but X.size is 2 and Y.size is 3.r5zMArgument U has a size 3 which does not match 2, the number of arrow positionszMArgument V has a size 3 which does not match 2, the number of arrow positionszMArgument C has a size 3 which does not match 2, the number of arrow positions)r7r8 ValueErrorrr)X2X3s rtest_quiver_arg_sizesr@@s QB B   > @# 2r2r"#   B D# 2r2r"#   B D# 2r2r"#   B D' 2r2r2&''######''s/C; DDD;DDDD(ctj\}}tjtjdtjd\}}tj |x}}tj jdddz dz}|j||||||jjy)N r(angles) rrr r r ones_likerandomrandrcanvasdrawr#rrrrrphis rtest_no_warningsrNUsllnGC ;;ryy}biim 4DAq LLOA 99>>"b !B &# -CIIaAqI%JJOOrcbtj\}}tjtjdtjd\}}tj |tj |}}|j||dd|jjy)NrCr) headlengthheadaxislength) rrr r r r rrrJrK)r#rrrrrs rtest_zero_headlengthrR^srllnGC ;;ryy}biim 4DAq 66!9bffQiqAIIaqI3JJOOrzquiver_animated_test_image.pngc tj\}}t|d}|j|ddddddd i y) NT)animatedr(r)rr*r+r,r-r.)rrrr1r#rrs rtest_quiver_animaterVhsFllnGCB&ALLCq"4x.@Brzquiver_with_key_test_image.pngc tj\}}|jdt|}|j |dddddddd d d  y) N皙?r(gffffff?rz"$2\, \mathrm{m}\, \mathrm{s}^{-1}$ifigurer+r-large)r,size)angle coordinatesr/r0)rrmarginsrr1rUs rtest_quiver_with_keyr_qsSllnGCJJsOBALLCq6%+17 C Erzquiver_single_test_image.pngT) remove_textctj\}}|jd|jdgdgdgdgy)NrXrr)rrr^rr#rs rtest_quiver_singlerc~s6llnGCJJsOIIqcA3aS!rc tj\}}ttjdgtjdg}|j dgdg|d|d}d|dd<|j ddk(sJy)N皙?g@)uvrrfrgr)rrdictr arrayrr)r#ruvq0s rtest_quiver_copyrlsrllnGC #288SE? 3B A3RWbg .BBsGAJ 447c>>rzquiver_key_pivot.pngc"tj\}}tjddtjzdddtjzdf\}}|j tj |tj|}|jdd|jdd|j|ddddd |j|dddd d |j|dddd d |j|dddd d y) Nrry$@ r(rN)r/ESr+) rrr mgridr rrr set_xlimset_ylimr1)r#rrfrgqs rtest_quiver_key_pivotrwsllnGC 88AagcM1QruuWS=0 1DAq "&&)RVVAY'AKKBKKBLLCAsSL1LLAsAsSL1LLCAsSL1LLAsAsSL1rzquiver_key_xy.pngc tjd}tjd}|tjdz z}tjd|z}|j }|j }tjd\}}t|dD]p\}} |jdd|jdd|j||||d d d dd | } td dD]\} } |j| | dd| ddry)Ny?r)rjxygɿ皙?middler{g?)pivotunitswidthscale scale_unitsrF)r}r(皙?)r-Zrrb)rrrr\labelcolor)r r zerosr exprealimagrrziprtrurr1) rrrFrjrrr#axsr angle_strrvxr\s rtest_quiver_key_xyrs ! A  A "%%!)_F V B A A||AHCS,/O I B D# IIaAq 4&  (O[9 OHAu LLa3!5#L N OOrzbarbs_test_image.pngctjddd}tj||\}}d|zd|z}}tj\}}|j ||||tj ||ddtddd d y) N TF?r}333333? emptybarbspacingheightviridis) fill_emptyroundingsizescmap)r linspacer rrbarbshypotrhrrrrrr#rs r test_barbsrs B1A ;;q! DAq a4AqAllnGCHHQ1a!QD5$C@ rzbarbs_pivot_test_image.pngctjddd}tj||\}}d|zd|z}}tj\}}|j ||||dddt ddd  |j||d d y)NrrrTF333333?rr}rr)rrrr1black)sc)r rr rrrrhscatterrs rtest_barbs_pivotrs B1A ;;q! DAq a4AqAllnGCHHQ1aD5$C@ BJJq!rWJ%rzbarbs_test_flip.pngctjddd}tj||\}}d|zd|z}}tj\}}|j ||||dddt ddd |d k y )z'Test barbs with an array for flip_barb.rrrTFrrr}rrr)rrrr flip_barbN)r rr rrrrhrs rtest_barbs_fliprs| B1A ;;q! DAq a4AqAllnGCHHQ1aD5$C@1u rctj\}}tjdg}tjdg}|j dgdg||}d|d<|j ddk(sJd|d<|j ddk(sJy)Nreg@rr)rrr rirrfrg)r#rrfrgb0s rtest_barb_copyrsllnGC #A #A 1#sAq !B AaD 447c>> AaD 447c>>rcRtjd}tjd}tjjdtjdz}tjjdtj |z}tjj |d<tjj |d<tj\}}tjt5|j||||dddy#1swYyxYw)z=Test error handling when given differing sized masked arrays.r<g.@)rzrN) r r marionesrGmaskedrrr7r8r=r)ryrfrgr#rs rtest_bad_masked_sizesrs ! A ! A  C"''$-'(A  C",,q/)*A 55<>"b !B &# -CIIaAq$I7rz quiver_xy.pngc tjtd\}}|jddddddd|j dd|j dd|j y) Nequal)aspect) subplot_kwrrr{)rFrrre)rrrhrrtrugridrbs rtest_quiver_xyrsZlld'&:;GCIIaAq4qIAKK3KK3GGIrctj\}}tjtjdtjd\}}tj |x}x}}|j |||||}|j|dddd}|jjt|jdk(sJy)NrrErLabel) rrr r r rGrr1rJrKlenverts) r#rrrrrrFrvr2s rtest_quiverkey_anglesrsllnGC ;;ryy|RYYq\ 2DAq\\!_$A$F !Q1V ,A aAq' *BJJOO rxx=A  rcFddidddddig}|D]}tjtj tjd}tj|tjzdz }tj|}tj|}t j }|jd}|j||||fi|}|j|d d d d } |jjt| jd k(rJy) NrFr{rrroaitoff) projectionrr1 units)r rr rG zeros_likerrY add_subplotrr1rJrKrr) kwargs_list kwargs_dictrrvxvyr#rrvr2s rtest_quiverkey_angles_xy_aitoffrs 4- K # " KKr * LLObee #a ' ]]1  \\!_jjl ___ 1 BIIaB 2k 2 \\!Q1i 0 288}!!! "rc dddidddddig}|D]}gd}gd}gd}gd}tj\}}|j||||fi|}|j|dd d d d |j|ddd d} |jj t | jd k(rJy)NrFr{rr)rr|r)rr|r)rr|rrrerzQuiver key, length = 1rq)rrrrr/rr)rrrr1rJrKrr) rrrrrrr#rrvr2s r+test_quiverkey_angles_scale_units_cartesianr-s 4- K # "    ,,.R BIIaAq 0K 0 Q#3c  C \\!Q1i 0 288}!!! "rc*tj\}}tjtjdtjd\}}tj |x}}|j ||||}|jddy)zBCheck that it is possible to set all arrow UVC to the same numbersrrrN)rrr r r rGrset_UVC)r#rrrrrrvs rtest_quiver_setuvc_numbersrHsjllnGC ;;ryy|RYYq\ 2DAq LLOA !Q1AIIaOrc tjddd}tjddd}tj||\}}d\}}|j}|j ||||d} |j dd|j dd|2|j| d d d d d d |j| dddd dd dy|j| d d d d d d ||j| dddd dd d| y)z/Draw Quiver and QuiverKey using zorder argumentrrrrr~rr(@Nrzdatarbluer]rrrrrr]rrr\)r]rrzorder)r]rrr\r)r r r rrrtrur1) r#rrrrrrrrrvs rdraw_quiverkey_zorder_argumentrTs !QA !QA ;;q! DAq DAq B !Q1H -AKKSKKS ~ Q1bff  . QQfB  8 Q1bffV  = QQfBv  Grc tjddd}tjddd}tj||\}}d\}}|j}|j ||||d} |j dd|j dd|j| ddd d d d } |j| dddd dd d} |#| j|| j|yy)z*Draw Quiver and QuiverKey using set_zorderrrrr~rr(rrzrrrrrrrrrrN) r r r rrrtrur1 set_zorder) r#rrrrrrrrrvqk1qk2s rdraw_quiverkey_setzorderrks !QA !QA ;;q! DAq DAq B !Q1H -AKKSKKS ,,q!Q   0C ,,q#q"& b  :C  v vrr)rrrNpng) extensionsc8t||t||y)N)r)rr)fig_testfig_refrs rtest_quiverkey_zorderrs#8F;WV4rr)*platformr numpyr r7 matplotlibrrmatplotlib.testing.decoratorsrrrmarkskipifpython_implementationr&r3r:r@rNrRrVr_rcrlrwrrrrrrrrrrrrrr parametrizerrrrs0  $:= 2H224 A-/ 0/ 02H224 A-/ // / %'*345B6B345 E6 E12E"F" )*= 2> 2&'T:O;O.)*=>/0dC&D&()t<= 8?#67 ":"6 G.(?3(5)45r