rL i ddlmZddlZddlZddlZddlZddlmZddlZddl m Z m Z ddl Z ddl ZddlmZddlmZddlmZddlmZddlmZddlmZmZm Z m!Z!ddlm"Z"ddl#m$Z$m%Z%e jLdd g d Z'd Z(e%d gdZ)e%dgdZ*e%dgdZ+e%dgdZ,e%dgdZ-e%dgdZ.e%dgdZ/e%dgdZ0e%dgdZ1e%dgd Z2e%gd!d"Z3e%d#gd$Z4d%Z5d&Z6d'Z7d(Z8d)Z9ejtjwd*e$d+g,d-Ze%d0gd1ej~d2k(rdnd34d5Z@d6ZAe%d7gd1d*8d9ZBe%d:gd1;d<ZCe%d=gd1;d>ZDd?ZEd@ZFdAZGdBZHdCZIdDZJe%dEgd1;dFZKdGZLejtjwdHdIZMdJZNejtjwdHdKZOejtjwdHdLZPe%dMgdNZQe%dOgd1dH8dPZRdQZSdRZTdSZUdTZVe$d+g,e jjdUidVdWigdXZYe jjdYdZd[d\ddd]gd^zd_fd`dadbgdddcfgddZZdeZ[dfZ\dgZ]e jjdhdidjgdkZ^dlZ_dmZ`dnZadoZbdpZcdqZddrZedsZfejtjwdHdtZgduZhdvZidwZjdxZkdyZldzZme%d{gd+gd1d*|d}Zne$d+g,d~ZodZpe jjddddgge$d+g,dZqe$gd,dZry))datetimeN)SimpleNamespace)assert_array_equalassert_array_almost_equal) CollectionLineCollectionEventCollectionPolyCollection)FillBetweenPolyCollection)check_figures_equalimage_comparison pcolormeshpcolor)paramsc|jSN)param)requests g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_collections.pypcfuncrs ==c tjgd}tjgd}d}d}d}d}gd}d}d }t|||||||| } tj\} } | j | | j d |||||||||d } | jd d| jdd| | | fS)z,Generate the initial collection and plot it.)?@@g@g @g*@g5@)gA@gK@g@V@ horizontal?rrrrsolidT) orientation lineoffset linelength linewidthcolor linestyle antialiasedzEventCollection: default) positionsextra_positionsr#r$r%r&r'r(r)r) nparrayr pltsubplotsadd_collection set_titleset_xlimset_ylim) r*r+r#r$r%r&r'r(r)collfigaxpropss rgenerate_EventCollection_plotr:s;rr?r=r3r4spltr6r9 new_positionss r$test__EventCollection__set_positionsrP_s57D$IIu[159J3KLMM}%JJ!!-1C1C1EF4&&') NN34MM"brz'EventCollection_plot__add_positions.pngct\}}}tj|d|ddg}|j|j |dd|jtj j ||jt|||d|d|d|jd|jdd y) Nr*r+rr%r$r#zEventCollection: add_positionsr,#) r:r.rKswitch_orientation add_positionsr>rr?r=r3r4rMs r$test__EventCollection__add_positionsrUms57D$IIu[1$%67:<=Mu./23JJ!!-1C1C1EF4 &&' )  NN34MM"brz*EventCollection_plot__append_positions.pngc`t\}}}tj|d|ddg}|j|ddtjj ||j t|||d|d|d|jd|jdd y) Nr*r+r r%r$r#z!EventCollection: append_positionsr,rJ) r:r.rKappend_positionsr>rr?r=r3r4rMs r'test__EventCollection__append_positionsrXs57D$IIu[1$%67:<=M% 12156JJ!!-1C1C1EF4 &&' )  NN67MM"brz*EventCollection_plot__extend_positions.pngc`t\}}}tj|d|dddg}|j|dddtjj ||j t|||d|d|d|jd|jdd y) Nr*r+rr%r$r#z!EventCollection: extend_positionsr,rJ) r:r.rKextend_positionsr>rr?r=r3r4rMs r'test__EventCollection__extend_positionsr[s57D$IIu[1$%67;=>M% 121267JJ!!-1C1C1EF4 &&' )  NN67MM"brz,EventCollection_plot__switch_orientation.pngcFt\}}}d}|j||jk(sJ|jrJ|j }t |||d|d||j d|jdd|jddy) Nverticalr%r$z#EventCollection: switch_orientationr,r-rr ) r:rSr@rAr?r=r3r5r4)rNr6r9new_orientationrOs r)test__EventCollection__switch_orientationr_s57D$ O d224 44 4!!## #&&(M4 &&9 NN89MM"bMM!Qrz0EventCollection_plot__switch_orientation__2x.pngclt\}}}|j|j|j}|d|jk(sJ|j sJt j j|d|t|||d|d|d|jdy)zc Check that calling switch_orientation twice sets the orientation back to the default. r#r*r%r$z&EventCollection: switch_orientation 2xN) r:rSr?r@rAr.r>rr=r3rMs r,test__EventCollection__switch_orientation_2xras 67D$&&(M  4#7#7#9 99 9     JJ!!% "4mD4 &&' )  NN;rr3)rNr6rG new_colorr's r test__EventCollection__set_colorrsp13MD$&INN9.."7T__%678 %%eY78NN/0rcn|j}|jdk(s|jdk(s|d}d}n#|jdk(rd}d}n tdt|D]G\}} | d|f||dz zk(sJ| d|f||dz z k(sJ| d|f||k(sJ| d|f||k(rGJy) zp Test helper checking that all values in the segment are correct, given a particular set of inputs. rnoneNrrr]z.orientation must be 'horizontal' or 'vertical'r ) get_segmentslower ValueError enumerate) r6r*r%r$r#segmentspos1pos2isegments rr=r=s   "H|+  "f, 0C     *IJJ )0 7q$w: Q#>>>>q$w: Q#>>>>q$w9Q<///q$w9Q</// 0rcFtjdjd}tj|tjd}|j ddk(sJ|j tjddz|j ddk(sJy)N)r r)r/r gUUUUUU?rt)r.arangereshape mcollectionsrnorm set_array)linesr6s rtest_collection_norm_autoscaler)sy IIbM ! !) ,E  & &uBIIaL AD 99Q<5  NN299Qg`8F>gq[;u>gy7/>g9̗>gW !>g-I>g\p5>gdjD>gyK'?g~+=?gFEAL ?g|0j?gGKe?gލ=B?) r皙?gK?gsh|??gS?g?rgQ @g(\@g333333(@g6@gC@g33333Q@logro)markerls) r.meshgridflattenr1 set_xscale set_yscalemarginsrplot)fig_testfig_refx_valsy_valsxyax_testax_refs rtest_collection_log_datalimrPsJFF ;;vv &DAq A A!G u uGO OOAq    F e e KK1SRK(rcLtj}tjdtjd}}tjdddj ddx}}tj ||||}|j|jjdk(sJtjtj}tjddd}tjdd d}tj||\}}tjjd d |jz}tj ||tj|tj || |j"jd k(sJy)N rP)rrg@g"@rgr  transform)g4@g>@g.@rs)r0rr.rlinspacerquiverr transDatarrrrAffine2D translatesincosr)r8rruvqtranss rtest_quiver_limitsrjs- B 99Q<2qA KK2r " * *2q 11A 1aAA == & - -1A AA AJJL B BBA B2A ;;q! DAq  " , ,R 4r|| CEJJq!RVVAYq U; ::   7 77 7rctj}tjddd}tjddd}tj||\}}t j jdd|jz}tj||tj|tj||t|jjd d y) Nrrrgrrrrr)rgrfrdecimal)r0rr.rrrrrrbarbsrrrrr)r8rrrs rtest_barb_limitsr{s B BBA B2A ;;q! DAq  " , ,R 4r|| CEIIaBFF1IrvvayE:bjj//&')rz EllipseCollection_test_image.pngTx86_64g/$?) remove_texttolc tj\}}tjd}tjd}tj||\}}tj |j |j fj}||dz }||dz }tj|dz} tj||| d||jd} |j| |jy)Nrrr,rgrr)unitsoffsetsoffset_transform facecolors)r0r1r.rrvstackravelT ones_likerEllipseCollectionrr2autoscale_view) r7r8rrXYXYwwhhaaecs rtest_EllipseCollectionrsllnGC ! A ! A ;;q! DAq AGGIqwwy) * , ,B QrUB QrUB b B B  ' ' B#rBLL Bbrctjjd}d}d}d}|jddz}tj\}}t j ||||d|j}t|jtj|jd zt|jtj|jd zt|jtj|jt|j|t|j!|t|j#||j%||j'd d |j)d d |jdd z}|jdd z} |jddz} |j+|| | t|j|jt|j!| jt|j#| jy)Nr)r )r)-)rr rr)widthsheightsanglesrrrrr r r)rrr)r.random default_rngr0r1rrrr_widthsr/r_heights_anglesdeg2rad get_widths get_heights get_anglesr2r4r5rv) rngrrrrr7r8r new_widths new_heights new_angless r$test_EllipseCollection_setter_getterrs ))   "C FG Fjj!B&GllnGC  ' '  Bbjj"((6*:*@*@*BS*HIbkk288G+<+B+B+Ds+JKbjj"**V*<*B*B*DEbmmov6bnn.8bmmov6bKKBKKBG$q(J**W%)KG$s*JFF*k*FEbmmoz/?/?/ABbnn. 0A0A0CDbmmoz/?/?/ABrzpolycollection_close.png)rstylecddlm}dtjd<ddgddgddgddggddgddgddgddggddgddgd dgddggddgddgd dgd dggg}tj}|j ||}gd }t td }tj|t|zd }|jdg}g}t||D]A\} } |j| gt|z|j| gt|zC|j||j||d|j!dd|j#dd|j%ddy)Nr)Axes3DTzaxes3d.automarginrrrr@)rgbrkrt?r&gffffff?r)zszdirrr)mpl_toolkits.mplot3drr0rcParamsradd_axeslistrangerr len set_alphazipextendr}add_collection3d set_xlim3d set_zlim3d set_ylim3d) r vertsQuadr7r8colorszpospolyrcszcs rtest_polycollection_closer/s+(,CLL$% bB8b"XBx0 bB8b"XBx0 bB8b"XBx0 bB8b"XBx0 2I **,C fSk "B &F a>D  & &CI /DNN3 B BD&!(1 1#I&' 1#I&'( NN2#.MM!QMM!QMM!Qrz regularpolycollection_rotate.png)rctjddddf\}}tj|j|jg}tjddtj zt |}tj\}}t||D]=\}}tjdd||g|j}|j|d?|jy) Nrrr r)d)sizesrotationrrTautolim)r.mgrid transposerrpir r0r1r"rRegularPolyCollectionrr2r) xxyy xy_points rotationsr7r8xyalphars r!test_regularpolycollection_rotater@s XXcrc3B3h FB bjjlBJJL9:I AqwI7IllnGCI.- E00 VeD2<<9 #t, - rzregularpolycollection_scale.pngcGddtj}tj\}}dg}tj dz g}||||j }|j|d|jgdy) Nc$eZdZfdZdZxZS):test_regularpolycollection_scale..SquareCollectioncJt|ddtjdz i|y)Nr3r)r)super__init__r.r8)selfkwargs __class__s rrFzCtest_regularpolycollection_scale..SquareCollection.__init__s G  <r .SquareCollection.get_transformsB 4 8 < <>1BJJ4E4EEG'')//A Ar)__name__ __module__ __qualname__rFrV __classcell__)rIs@rSquareCollectionrCs = Brr[rr )r2rrTr4)r,rr,r) rr9r0r1r.r8rr2axis)r[r7r8r> circle_areassquaress r test_regularpolycollection_scaler_sr B<== BllnGC BEEAI;LBGGgt,GGNrc*tj\}}|jdgdgdgd}|jt j |j tdd}|j|\}}|sJt|d dgy) NriT)picker)rMiE)rrind) r0r1rsavefigioBytesIOrMrcontainsr)r7r8r mouse_eventfoundindicess r test_pickingrks|llnGC **aS1#vd* 3CKK #''K*!C3/K\\+.NE7 L5wu~s+rcDtjd}|dddf|dddfz}tj\}}|j |}|j d\}}|j j||f\}}t||||}|j|\} } | sJt| ddgd\}}|j j||f\}}t||||}|j|\} } | sJt| ddgy)Nrrrxdataydatarrrcr?rrrt) r.rr0r1rdraw_without_renderingrVrrrgr) rrr7r8meshrorprrhrirjs rtest_quadmesh_containsru%s ! A !T' QtQwZAllnGC == D LE5     ) )5%. 9DAq!Ua1EK]];/NE7 L5wu~s+LE5     ) )5%. 9DAq!Ua1EK]];/NE7 L5wu~s+rcXddgddgg}ddgddgg}tj\}}|j||dgg}|jgd}|D]U}|\}}} |j j ||f\}}t ||||} |j| \} } | | urUJy)Nrr,r))rT)rrF)rrT)rgпTrn)r0r1rrsrVrrrg) rrr7r8rtpointspointrorprzrhrirjs rtest_quadmesh_contains_concaverz;s R1a&A Q!RAllnGC ==Au %D F !!&uh!!#--uen=1%E!qI {3w   !rctjd}|dddf|dddfz}tj\}}|j |}d|_|j d\}}|jj||f\}}t||||}|j|J|jtj|jt|j|dgy)Nrrmrnr)r.rr0r1r_ArsrVrrget_cursor_dataronesshaper) rrr7r8rtrorprrhs rtest_quadmesh_cursor_datarPs ! A !T' QtQwZAllnGC == DDG LE5     ) )5%. 9DAq!Ua1EK    , 44 4 NN277177#$t++K81#>rcrgd}tj\}}|j||tjd}|j d\}}|j j||f\}}t||||}t|j|tjdy)N)rr rr rrrqrn ) r0r1rr.r~rsrVrrrr})rr7r8rtrorprrhs r)test_quadmesh_cursor_data_multiple_pointsrdsAllnGC ==Arwwv /D LE5     ) )5%. 9DAq!Ua1EKt++K8"''!*Ercltjgdgddddgftjy)Nrrr rr)r()r0rdrawrurrtest_linestyle_single_dashesrps#KK 9b"X?HHJrzsize_in_xy.pngctj\}}d\}}}d}ddg}tj|||d||j}|j ||j dd|jddy)N)rrrrr)rfrfr>)rrrrr)r0r1rrrr2r4r5)r7r8rrrcoordses rtest_size_in_xyruszllnGC-FGV F !F&&t 7AaKK2KK2rc0gd}|jgd|x}}|jgd|}|jgd|}|jgd|}t|t|t| t| t| y) N) r )redbluegreen)indexrr r)r"rrdashdot)TFT) edgecolors)r) linewidths) linestyles) antialiaseds)Seriesr)pdrrfclwrrs rtest_pandas_indexingrs Eii0i>>B 9E *B 1 ?B &e 4B""""Brdefaultctjg}|jddg|jgd|j dgdzk(sJ|j gddzk(sJ|jgd|j dgdzk(sJ|j gdk(j sJy)N-rr<rr )rrrr)rrset_linestylesset_linewidthsget_linestylesget_linewidthsallrs rtest_lslw_bcastrs  % %b )CSz"y!    I;? 22 2    9q= 00 0'    I;? 22 2    I - 2 2 44 4rct}tjtd5|j ddddy#1swYyxYw)Nz"Do not know how to convert 'fuzzy'matchfuzzy)rpytestraisesr set_linestyler.s rtest_set_wrong_linestylers9 A z)M N!  !!!s AA ctjg}|jJtjgd}|jdk(sJ|jd|jdk(sJy)Nround)capstylebutt)rr get_capstyle set_capstylers r test_capstylersu  % %b )C     %% %  % %b7 ;C     (( (V     '' 'rctjg}|jJtjgd}|jdk(sJ|jd|jdk(sJy)Nr) joinstylemiter)rr get_joinstyle set_joinstylers rtest_joinstylersu  % %b )C     && &  % %bG z6test_pathcollection_legend_elements..s54t~~3&5c3BK|]}|jdk(yw)rN)get_markerfacecolorrs rrz6test_pathcollection_legend_elements..sAtt'')U2Arz{x:.2f}c d|zS)Nr ru)rs rz5test_pathcollection_legend_elements..s QqSr)rxrrfuncrr)rr rrrtrrr)nbins min_n_tickssteps)r,rg33333K@i)rrxr)r.rseedrandrandintr0r1rlegend_elementsr r/rErrrlegendrget_markersizesqrtfloatrmplticker MaxNLocator add_artistcanvasr)rrr.rr7r8rhlrr)colors2l1h2lab2l2l3actsizes labeledsizesl4rh5lab5levelsh6lab6s r#test_pathcollection_legend_elementsr s IINN8 99>>!R DAq rA !QR(A "c+AllnGC AqAsq IB  '  *DAq q6Q;; ) )) ) XXA6Dt~~'6 7Fggbiil1n%Gvw' 1aQ B!!a!(HB r7a<< 2t #B  7#U  CDAq 515 55 5 AqA AA A 1aQ B  7y#0  2DAq234$##%4H477288Au-12Lh 5 1aQ B ** qc'B ! DC!!c!*HB r7c"g   F!!f7!HHB" #E!H #vabz 11 1"b"  aJJOOC7 5 $sM$M>Mctjgd}t|}tjj |tjgdy)N)rr rr)r.r/r r>r)arrr6s rtest_EventCollection_nosortr)s7 ((= !C 3 DJJ!!#rxx '>?rctjdtjjddd}t |}t t |}t |jt |jk(sJt|j|jD]]\}}tj|j|jsJtj|j|jr]Jtjdt}|Dcgc]}td|Dc}|ddt |}t |jt |jk(sJt|j|jD]]\}}tj|j|jsJtj|j|jr]Jycc}w)Nrdtyperrr c32K|]}t|ywr)tuple)rrs rrz2test_collection_set_verts_array..:s0E!H0s)r.rdoublerr rr _pathsr" array_equal _vertices_codesemptyobjectr) vertscol_arrcol_listaplp verts_tupler col_arr_tupleatps rtest_collection_set_verts_arrayr$0sv IIb * 2 22q! ?# M"#DG <<akkm , 0 0 22 2 ##s BB!cdtj\}}|jgdgdtjj |j j|j jfd|j j|j j}}gd}|Dcgc]}tj|dg|dgg}}tj|j|j}|j!t#||tjj |j j|j jfdtjj |j j|j jf||fycc}w) N)r rr)皙?333333?r)r rrr rrrtrrr)rrt)r0r1rr.r>assert_allcloserxminxmaxyminymaxr/rblended_transform_factoryr transAxesr2r)fr8 data_ymin data_ymaxrxivertical_linesrs rtest_blended_collection_autolimrNos$ LLNEArGGI'JJ A6J::??BJJOOyI A=>?rbhhQ"a12?N?  1 1",, MEn^uEFJJ A6JJJ A )957@s,"F-ctj\}}|jddtjj |j ddgtjj |jddgy)NrgQgQ?)r0r1rr.r>rBget_ylimget_xlim)r7r8s rtest_singleton_autolimrRs[llnGCJJq!JJr{{}udm<JJr{{}udmrBrPrQ)rrzr7r8s rtest_autolim_with_zerosrUsnllnGCJJq!wr95J6JJq!JJr{{}h7JJr{{}h7rctjd}tjd}tjjd}tj\}}t |||||}t jttjd5|j|jdddddtjdjd }t jttjd 5|j|dddt jttjd 5|j|jdddtjd }t jttjd 5|j|dddtjd}t jttjd5|j|dddtjd}t jttjd5|j|dddtjd}tjd}tjjd}tj\}}|j|||d}y#1swYYxYw#1swYxYw#1swYxYw#1swYaxYw#1swYxYw#1swYxYw)Nrr)rzuFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (10, 7)rrrW6)rrztFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (6, 9)zsFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (54,))rrrzwFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (9, 6, 3))rrrzwFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (9, 6, 4))rWrr zxFor X (11) and Y (8) with flat shading, A should have shape (7, 10, 3) or (7, 10, 4) or (7, 10) or (70,), not (7, 10, 2)gouraudshading)r.rrr0r1rTrrrreescaperrrr~r)rrrr-r7r8r6s r"test_quadmesh_set_array_validationr^s " A ! A !AllnGC 72v q!Q 'D z H*I J) qyyQ'() " f%A z G*H I q z F*G H" qwwy!"  A z J*K L q  A z J*K L q  A z K*L M q " A ! A !AllnGC ==Aq)= 4DM)) ""  sH#"LL)' L6M/M ML&)L36MM MM&ctjgdgd\}}||zddddf}tj|||}|j |j ddddf}tj j|dk(|dk(z|}tj|||}|j t|jdk(sJt||j tj j|dk(|dk(z|}tj|||}|j t|jdk(sJt||j tj j|ddddfdk(|ddddfdk(z|}tj|}|j t|jdk(sJt||j tjdjd}|j||j t|jdk(sJtj j|d }|j||j t|jd k(sJy) Nr)rrr rr,rrrtr)rr r r)r.rr0rupdate_scalarmappable get_facecolorma masked_whererr  get_pathsrrrr masked_less)r:r;zzquadmesh quadmesh_fcpolymeshs r'test_polyquadmesh_masked_vertices_arrayrjst [[L 1FB R%"crc B~~b"b)H ""$((*12q51K   R1Wq12 6Bzz"b"%H ""$ x!!# $ )) ){H$:$:$<=   R1Wq12 6Bzz"b"%H ""$ x!!# $ )) ){H$:$:$<=   RSbS\Q.2crc3B3h<13DEr JBzz"~H ""$ x!!# $ )) ){H$:$:$<= 1  f %B r ""$ x!!# $ )) )   2q !B r ""$ x!!# $ )) )rc@gd}gd}tjd}tj||\}}tt||||}tj |j |j gj }t|j|y)Nr)r rr)r r )r) r.r~rrTr0stackrrget_coordinates)rrrr-r:r;r6rs rtest_quadmesh_get_coordinatesrnszAA fA [[A FB 73 B *DXXrttRTTl # % %Ft++-v6rc(tjd}tjd}tjdjd}tj\}}|j ||tj |j}|j||jjtj|j|sJ|jtj d|jjtj|jtj dsJtjdjd}tj\}}|j ||tj |jd}|j||jjtj|j|sJ|jtj d|jjtj|jtj dsJy)Nrrrr()rrrYrZ) r.rrr0r1rr~rrrrrr:)rrr-r7r8r6s rtest_quadmesh_set_arrayrps ! A ! A ! V$AllnGC ==Arwwqww/ 0DNN1JJOO >>$..*A .. . NN2771:JJOO >>$..*BGGAJ 77 7 " f%AllnGC ==Arwwqww/= CDNN1JJOO >>$..*A .. . NN2772;JJOO >>$..*BGGBK 88 8rc2tj\}}tjd}tjj dd}t ||dgg||}|jjtj|jdddf||dsJd\|_ |_ |jjtj|jdddf||dsJy)Nplasmarr)vminvmax)rr)rr )r0r1r colormapsr) NormalizerTrrr.rrrsrt)rr7r8rrr6s rtest_quadmesh_vmin_vmaxrw%sllnGC == "D ::  QQ  /D 72v u4d ;DJJOO >>$--/15tDG} EE E DItyJJOO >>$--/15tDG} EE Erctjd}tjd}tjdjd}||jz }|j }t j d\}\}}t||||||} t|||||} | j|t jt| jdddf|t| jdddf|t j d\}\}}t||||||} t|||||} | j|t jt| jdddf|t| jdddf|y)Nrrrr )r?r,) r.rrmaxrr0r1rTr!rrr) rrrr-r? alpha_flatr7rrcoll1coll2s rtest_quadmesh_alpha_arrayr}5sr ! A ! A ! V$A KEJll1oOC#s GC Aq 6E GC Aq )E OOEHHJu++-ae4jAu++-ae4jAll1oOC#s GC Aq 6E GC Aq )E OOEHHJu++-ae4jAu++-ae4jArc@tj\}}t||tjdj d}t jtd5|jddg|jdddy#1swYyxYw)Nr)rrz^Data array shaperrr@) r0r1rTr.rrrrrr!r`)rr7r8pcs rtest_alpha_validationrMswllnGC V RYYr]226: ;B z)< =# c3Z    "###s '$BBc.tjjdtjjd}tjjd}dtjjdz }d|z }gd}tj\}}|j |||}|j d|d \}} |D cgc]} | j} } | D cgc] } d| d zz  } } t| |d y cc} wcc} w) z| Ensure legend markers scale appropriately when label and size are inversely related. Here label = 5 / size r2rrt)r)r?r@g?rr2c d|z S)Nrtrurs rrz=test_legend_inverse_size_label_relationship..gs QUr)rxrrr rN) r.rrr0r1rrrr) rrCS legend_sizesr7r8rhandleslabelsr handle_sizess r+test_legend_inverse_size_label_relationshiprVsIINN8 A A BII  R  A AA'LllnGC AqA B((  ?)OGV 1881A$$&8L8&23A1H3L3lL!D93s D -Dc tt|}tjdj dd}||dd}|j t j|j}|j|j|j}t j|jdsJ||}|jd|jd|j t j|j!dsJt j|jgdgsJ|j#d|j t j|jgd gsJ|j#d|j t j|jgdgsJ|jd|j tj$|j|sJ|jd|j tj$|j!|sJt j|jdsJ|j'd|j t j|jdsJt j|j!|sJ|j'||j tj$|j!|sJt j|jdsJ||d d }|j tj$|j!|sJt j|jgdgsJ||d tj(d }|j tj$|j!|sJt j|jgdgsJ|j'd|j t j|j!tj(d sJt j|jgdgsJ||d tj(d }|j tj$|j!|sJt j|jgdgsJ|j'd|j t j|j!tj(d sJt j|jgdgsJy)Nrrrrr)rrr!r)rrrr)rrr)rrr)rr)rr)rTr0r.rrr`mcolors to_rgba_array_get_default_facecolorget_cmaprr same_color get_edgecolor set_facecolor set_edgecolorrar!rrr~)rr-r face_defaultmappeds rtest_color_logicrqs S& !F " a#A e 7B(()B)B)DEL R[[]2771779- .F   b..0% 88 8 BVU   b..0& 99 9   b..0<. AA ALL   b..0>2B CC CLL   b..0<. AA AT >>"**,f 55 5T >>"**,f 55 5   b..0& 99 9LL   b..0& 99 9   b..0, ?? ?LLO >>"**,f 55 5   b..0& 99 9 iI >B >>"**,f 55 5   b..0<. AA A iBGGG4D EB >>"**,f 55 5   b..0<. AA ALL   b..0"'''2B CC C   b..0<. AA A iBGGG4D EB >>"**,f 55 5   b..0<. AA ALL   b..0"'''2B CC C   b..0<. AA Arctddddgd}|jddk(sJtj|j dsJ|j dk(sJtj|j gdgsJtdd}tj|j dsJy) Ng@rr)rrrr)r& edgecolorzorderrr) facecolorr)r get_linewidthrrr get_zorderra)lcs rtest_LineCollection_argsrs s \ ;B   a C '' '   b..0# 66 6 ==?a     b..0<. AA A  -B   b..0& 99 9rctjdjdd}tt||}|j |j |j|j ||jtjdtjjddd}|j ||jy)Nrrr$r) r.rrrTr0rrr`uint8)rr-rs rtest_array_dimensionsrs " a#A f a BLLLLO "BHH%--aA6ALLOrctjtjddddj}t |g}|j \}tj ||k(sJy)Nrr)r r)r.tilerrrrr)rrreadbacks rtest_get_segmentsrsVwwr{{1a-v688H  #B!IH 66(h& '' 'rctj}dg}tj|}tj|d}tj|}|j d|j |j }|j |j }|j |j }||k7sJ||k(sJy)Nr )r2r)r2r)rrrCircleCollection set_offsetsrr)identityr2rinitlate null_bounds init_bounds late_boundss rtest_set_offsets_laters,,.H CE  ( (u 5D  ( (uh GD  ( (u 5DX""8,33K""8,33K""8,33K + %% % + %% %rctjjdd}tj|}tj}|j |||j cxk(r|j k(sJJy)Nr )r)rrskewrrset_offset_transformget_offset_transform)rrrs rtest_set_offset_transformrst    ! & &q! ,D  " "D 9D  " " $Dd# 4,,. M$2K2K2M MM MM Mrctjddd}tj|}|tjddztjdz}t j ||}|j}|jtt||tjj||jt j\}}|j ||}|j}|jtt||tjj||jy)Nrrrtrrz 2021-11-29)r.rr timedelta64 datetime64r0r get_offsetsrrr"r>rBr1)rrdroff0r7r8s rtest_set_offset_unitsrs Ar1A q A BNN2s ##bmmL&AAA Q B >> DNN4Aq ?#JJtR^^%56llnGC Aq B >> DNN4Aq ?#JJtR^^%56rtest_check_masked_offsets)baseline_imagesrrrc :tddddddtddddddtddddddtdddddd tdddddd g}tjjgd gd  }t j \}}|j ||y)Nirrfr145rX78rA)rrrrrmask)rr.rbr/r0r1r) unmasked_xmasked_yr7r8s rrrs r2q"b)r2q"b)r2q"b)r2q"b)r2q"b) Juu{{?{AHllnGCJJz8$rctjjgdgd}tjdd}|j }|j ||}|j tjj||g|jg|jg|j }|j gdgd|jg|jgy)NrArrrrrrrr)rr rt) r.rbr/r add_subplotrr column_stack set_xticks set_yticks)rrrrrscatrs rtest_masked_set_offsetsr$s  O/ :A !QA""$G ??1a DRUU''A/0 r r  "F NN9i( b brctjjgdgd}tjdd}t j \}}|j ||}tjj||g}|j|t|jt|sJtj||g}|j|t|jt|sJy)NrArrrr) r.rbr/rr0r1rrr isinstancertype)rrr7r8rmasked_offsetsunmasked_offsetss rtest_check_offsets_dtyper5s  O/ :A !QAllnGC ::a DUU''A/N^$ d&&($~*> ?? ?1v.%& d&&($/?*@ AA Argapcolororangerrc |jd}|jd}||fD]&}|jdd|jdd(tdd}gd}|j |ddd||dt |t r|g}t|tj|tj|D]\}}} |j|ddd| |d y) Norrr):rz--rgr)r&r(rr?) rr4r5rvlinesrstrr" itertoolscycleaxvline) rrrrrr8rrgcolrs rtest_striped_linesrEs""3'G   %F Aq Aq a A!J NN1abJ(C :1iooh7$??:68V 4q!Q"TQTUVr)rpdfsvgepsc|j}|j}d}gdgdg}t|d}|j|tjd|i5t|d}ddd|j ||j |j |j cxk(r|k(sJJy#1swYXxYw)Nr))rr)rr?)r?r?)r?r))r@r@)r@?)rr)rr@r)hatchzhatch.linewidth)rr set_hatch_linewidthr rc_contextr2get_hatch_linewidth)rrrrrpolygonsreftests rtest_hatch_linewidthr]s""$G  "F B 98H  -CB *B/ 03hc23 # 4  # # %)@)@)B Hb HH HH H 33s CC)srrerplatformr\typesrnumpyr. numpy.testingrrr matplotlibrmatplotlib.pyplotpyplotr0matplotlib.collections collectionsrmatplotlib.colorsr)rmatplotlib.pathpathrmatplotlib.transforms transformsrrrr r r matplotlib.testing.decoratorsr r fixturerr:rHrPrUrXr[r_rardrjror{rr=rrrrrcontextrrrmachinerrr/r@r_rkrurzrrrrrrrrrrrrr rr$mark parametrizer/r5r=rNrRrUr^rjrnrprwr}rrrrrrrrrrrrrrrurrrs  !G -#+EE<O h/01%P678=9=2<=> ? <=>?"?@A B ?@A B ABC D  EFG=H=(>?@ A  =>? @ =>? @  7  789:1;104!=='7()))08" )56D+8++-9auFF&(CV-.DP"Q"J56DI J 454HI8,,,!*?( F #$$7 8   "9 5 5! 9((9***+,G-G&+,")55 ;:.b@5$(B#89:)GG;$ugk#VW1a&$VW J G  G 3 7*=.1 8  8-5`-*` 79< F B0#E69BBBBJ :  (&*N7(#>"?#W$gG%G%"( )  B hc %;<(V)=V, <=I>Ir