rL iJ+ddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddl mZmZdZdZdZdZej(j+dd d gej(j+d gd ej(j+d d d gdZdZdZdZdZedgej6dk(rdnddZej(j+dd d gej(j+dd d gej(j+dd d gej(j+dd d gdZej(j+dddgej(j+dddgdZd Zd!Z ej(j+d"dgd#gej(j+d$dd%d&gged'g(d)Z!ej(j+d"dgd#gej(j+d$dd%d&gged'g(d*Z"ej(j+d+d,d-gd.Z#d/Z$y)0N)Axes SubplotBase)check_figures_equalimage_comparisonc 8tjt|t|ttd||gD]Y\\}}\}}\}\}} ||kr|dj|j ||| ||fk(rDJd||| ||frdnd|fzy)z x_shared and y_shared are n x n boolean matrices; entry (i, j) indicates whether the x (or y) axes of subplots i and j should be shared. xyrz,axes %i and %i incorrectly %ssharing %s axisznot N) itertoolsproduct enumeratezip _shared_axesjoined) axsx_sharedy_sharedi1ax1i2ax2i3nameshareds d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_subplots.py check_sharedr s 7@6G6G cN cN c$8 45 678@2 S9B2r>D& 8 1v""4(//S9VBF^K @ :B&R.b$>@ @ @K @ctt|||D]\}\}}}|j|jjgzD]"}|j |k(rJd|d||j |jjgzD]"}|j |k(rJd|d||s|jdk(sJ|r|jdk(rJy)z>--/7: :: ;;c9-;IHH,,. ;D>>--/7: :: ;;rc ,d}tj|ddttj|ddttjgdgdgdgdgtjgdgdgdgdgd}gd gd d gd zd gd zd gd zgd d gd d gd zgd d gd zd gd zgd d d}|d|d<|d|d <t j dd\}\\}}\}}||||g}t||d|dt j|gd} | D]u} | D]n} t j dd| | \}\\}}\}}||||g}t||| || t||d| |d| t j|pwy)N)r5r6)dtype)FTFF)TFFF)FFFT)FFTF)allnonerowcolFFTTTr5)r8r;r:r9FTTFTF)xyr9Fr8)FTr8r9r:r;rsharexshareyr>r?) nponesboolzerosarraypltsubplotsrcloser-) rdimsharer1fa1a2a3a4ropsxoyos r test_sharedrV<s D774840HHT"1XT288++++ -. 88++++ -. E 21vz vz0 2vz1 vz0 G$=E%L,E$K"ll1a0AR(2r r2r CeFmU6]3IIaL ;C B&)ll1a2&N #A#R(2rr2r"C eBir 3 #Cb)973<;K L IIaL  r remove_ticksTF layout_engine)r9tight constrained with_colorbarctj|}|jdddd}|jD]X}|j dd|r/|j t jj||j| Zt|jgd gd |rt|jgd gd yt|jgd gd y) N)layoutr6TrAfoobarxlabelylabelr))remove_inner_ticksr<r=)TTTT) rIfigurerJflatsetcolorbarmplcmScalarMappable label_outerr-r3)rWrXr[figrr)s rtest_label_outerrnrs **M *C ,,q!D, 6Chh8 eE*  LL..0RL 8 ,7 8  ,.HJ HH02L N  HH.0H Jrcxtj}|jdd}|j|dddf}|j|dddf}|j|d}|j|d}|jD]}|j t |jgdgdy) Nrr6r@)r@r6)r6r@)FTFT)TTFF)rIre add_gridspec add_subplotaxesrlr-)rmgsrOrPrQrRr)s rtest_label_outer_spanrus **,C  !Q B AqsF $B AaCF $B D "B D "Bhh  ,.HJrcntjd}|jt|gdgdgy)Nrrr@r@T)rIrsrlr-rcs rtest_label_outer_non_gridspecrxs, , BNNRD4&4&1rcdtjddd\}\}}t|gdgdg|jj t|gdgdgtjddd\}\}}t|gdgdg|j j t|gdgdgy)Nr@r6TrCFrB)rIrJr-r# tick_leftr tick_bottom)rNrOrPs rtest_shared_and_movedr~s,,q!D1KAxBRD4&5'2HHRD4&5'2,,q!D1KAxBRD5'D62HHRD5'D62rctjt5tjddddddtjt5tjddddddy#1swYDxYw#1swYyxYw)Nr6blahr{rz)pytestraises ValueErrorrIrJrrtest_exceptionsrsi z "* Q&)* z "* Q&)******sA6B6A?B zsubplots_offset_text.pngx86_64gy&1?)tolcFtjddd}tjddddz}tjdddd \}}|d j |||d j |||d j |||dj ||y)Nrg _BgeAd g@r6r;r8rA)rr)r@r)rr@)r@r@)rDarangerIrJplot)r>r?rmrs rtest_subplots_offsettextrs !T3A !S"c!A||Aqu=HCINN1aINN1aINN1aINN1artopbottomleftrightc(tj||||d5tjjdddd}dddt j D]\\}}}|j jd}|j jd} |jjd} |jjd} ||xr|dk(k(sJ| |xr|dk(k(sJ| |xr|dk(k(sJ| |xr|dk(k(rJy#1swYxYw) N)zxtick.labeltopzxtick.labelbottomzytick.labelleftzytick.labelrightrpTrAlabel2Onlabel1Onrr6) rI rc_contextrerJrD ndenumerater_major_tick_kwr#) rrrrrr(jr)xtopxbottomyleftyrights rtest_subplots_hide_ticklabelsrs$ 3V,0eM NDjjl##Aqd#CDnnS), Axx&&z2(())*5'' 3((4Q'''6,a1f---!q&)))%*AF+++,DDs (DDxlabel_positionylabel_positionctjjdddd}tj|D]\\}}}|j dd|j j||jj||jt|j|dk(xr|dk(xs |d k(xr|d k(k(sJt|j|d k(xr|d k(xs |d k(xr|dk(k(rJy) NrpTrAr^r_r`rr6rrrr) rIrerJrDrrgrset_label_positionr#rlrFr$r%)rrrr(rr)s rtest_subplots_hide_axislabelsrs  **,  1T$  ?CnnS) 6 A eE* ##O4 ##O4 BMMO$ x ' 2AF 3%'2AF4 44BMMO$ v % 0!q& 5')4a1f6 66 6rctj\}}|jj|jk(sJy)N)rIrJget_subplotspec get_gridspec)rmr)s rtest_get_gridspecrs8llnGC    , , ."//2C CC Crcxddi}dddgi}tjdd||\}}|ddik(sJ|dddgik(sJy)NrBr8 width_ratiosr@r6) subplot_kw gridspec_kw)rIrJ)rrrmr)s rtest_dont_mutate_kwargsrs_E"J!Aq6*Kll1aJ'24GC (E* ** * >Aq62 22 2rr)r@rpr6 height_ratiosr@r6png) extensionsc\|jdd|||jdd||dy)Nr6rprrr)rJ)fig_testfig_refrrs rtest_width_and_height_ratiosrs@  a-#/1 Q&3%1(34rchgdgdg}|j||||j|||dy)N)ABr)rCDrr)subplot_mosaic)rrrr mosaic_specs r#test_width_and_height_ratios_mosaicrsF #O4K K})57 ;,9+759:rz method,args)rJ)r6rp)r)zabc;defc8tjtd5tt||ddgdddgiddddtjtd5tt||gddgdiddddy#1swYKxYw#1swYyxYw) Nr)matchr@r6)rrr)r@r6rp)rr)rrrgetattrrI)methodargss rtest_ratio_overlapping_kwsrs z 9DVd1a&*9Aq6)B DD z 8FVd*8))D FFFDDFFsBBB Bc4tj}t|jtsJt|j gdtrJt jt5t|gdgddddy#1swYyxYw)Nrw)rect) rIre isinstancerrradd_axesrr TypeErrorr)rms rtest_old_subplot_compatr sl **,C coo' 55 5#,,L,9;GG G y !3 S,\2333s 2BB)%r platformnumpyrDr matplotlibrimatplotlib.axesrrmatplotlib.pyplotpyplotrImatplotlib.testing.decoratorsrrrr-r3rVmark parametrizernrurxr~rmachinerrrrrrrrrrrrrs -O @ )" ;3l$7*JK4-8J9L8J$J(2 3*-.+8++-9auFFu .D%=1$/4-0,102/,$*Xu,=>*VW,=> 6?? 6D 3$ ):;4!Q.9(4):<4$ ):;4!Q.9(:):<:%) F  F3r