rL i |ddlZddlmZddlmZmZmZmZm Z ddlm Z ddl m Z mZddlmZmZddlZddlmZddlZddlZedgdZd Zed gd d ZdZdZedgd dZdZdZdZ edgd dddZ!dZ"edgd ddZ#dZ$dZ%Gd d!Z&y)"N) AsinhScaleAsinhTransform LogTransformInvertedLogTransformSymmetricalLogTransform) AsinhLocatorLogFormatterSciNotation)check_figures_equalimage_comparison)assert_allclosepng) extensionscR|jddd}|jd|jd|j}|j }|jddd}|j |||j ddg|d|j |ddgdy)Nzlogsymlog)yscalexscaleg8@)xlimylimb) add_subplotaxvlineaxhlineget_xlimget_ylimsetplot)fig_testfig_refax_testrrax_refs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_scale.pytest_log_scalesr$s""3uX"FG OOD OOD    D    D  U8 DF JJDtJ$ KKt dC( KKtTlC(c*tddd}|j}tjddd}|j |j |}t ||t |t |usJtj|d<|j |j |}t ||t |t |usJtjj|}|j |j |}t ||t |t |usJtjj|d<|j |j |}t ||t |t |usJy) N g?) rinvertednparangetransform_non_affiner typenanmaarraymasked)sltsltixouts r#test_symlog_mask_nanr;sJ ""a +C <<>D $3A  # #C$<$ ?? ?  " "a '' 'r%ctj\}}|jdt|jtt ddy)Nrr'clip nonpositive)rArBr]reprrtrr_s r#test_logscale_transform_reprr~s8llnGCMM%bf -.r%zlogscale_nonpos_values.pngg{Gz?mpl20)r<tolstylec:tjjdtjjt d}t j dd\}\\}}\}}|j|dd|jd|j|dd|jdd tjd dd }tj| }d d|z ztjd|zztj| z}|j|||z ||z|jdtjdd} | dz} | dz} |j| | | |jd|jdy)Ni!N,g@@)sizer()r*r')rangebinsrrir{rr>r?r*r)r-)yerr)r/randomseednormalintrArBhistr]r0rdcos fill_betweenlogspaceerrorbarrC) rerKax1ax2ax3ax4xdataydataedatar9rMrs r#test_logscale_nonpos_valuesrsQIINN8   s3x  (B$'LLA$6!C !*3jsCHHRwRH(NN5HHRwRH(NN5fN- IIaT "E FFE6NE EN266!E'? *2665&> 9EUEEM55=9NN5 BA QA a4DLLADL!NN5NN5r%ctj\}}|jtddtdd|j d|j }t jt5|jdddd|j |k(sJt jt5|jdddd|j |k(sJ|jd|j}t jt5|jdddd|j|k(sJt jt5|jdddd|j|k(sJy#1swYxYw#1swYxYw#1swYxYw#1swYDxYw) Nrr,r)leftr)right)bottom)top) rArBrUrrCrrkwarns UserWarningset_xlimr]rset_ylim)rKrL original_xlim original_ylims r#test_invalid_log_limsrsellnGCJJuQ{E!QK(MM%KKMM k "   ;;=M )) ) k " "  ;;=M )) )MM%KKMM k " 1  ;;=M )) ) k "   ;;=M )) ) s08F%F2+F>4G %F/2F;>G Gzfunction_scales.png)r<rcd}d}tj\}}tjdd}|j |||j d||f|j ddy)Nc |dzS)Nr(r9s r#inversez$test_function_scale..inverses !t r%c |dzS)Nr+rrs r#forwardz$test_function_scale..forwards 3xr%r)ifunction) functions)rArBr/r0rrCr)rrrKrLr9s r#test_function_scalers]llnGC !TAGGAqMMM*'(:M;KK4r%cJtj\}}tjd}|j |tjd}|j ||j jdk(sJ|jjdk(sJy)Naxisr) rArBmscaleLogScalerCr]xaxis get_scaleyaxisrns r#test_pass_scalers{llnGC OO &EMM% OO &EMM% 88   5 (( ( 88   5 (( (r%ctjdd}tj|}t |j t |j k(sJ|j |j usJy)Nr9r'rrr)rrcopydeepcopystr get_transform _transform)scsc2s r#test_scale_deepcopyrs` c +B -- C r! "c#*;*;*=&> >> > == .. .r%c*eZdZdZdZdZdZdZy)TestAsinhScalecTd}tjddd}t|}|j}|j}|j |}|j |}t |||j |}t ||tj ||z zy)Ng1@irbd)r/rcrr.r1r arcsinh) selfa0arrinvinv a_forward a_inverteda_invinvs r#test_transformszTestAsinhScale.test_transformss  KKR % $""$!!#003 11)<  A&..q1"rzz!b&'9"9:r%c,tj\}}tdd}|jdk(sJ|jdk(sJ|j dk(sJ|j }t|tsJ|j|jk(sJy)Ng7@r linear_widthr')r(r*) rArBrr_base_subsrrur)rrKrLstxs r# test_initzTestAsinhScale.test_inits,,.R Dt 4~~###ww"}}ww&   __ "n---!..000r%ctj\}}tdd}|jdk(sJ|jdk(sJtddd}|jdk(sJ|jdk(sJy)Nr-r)r()r(r,)rrrr\)rArBrrr)rrKrLs3s7s r#test_base_initzTestAsinhScale.test_base_initso,,.R T *xx1}}xx4 T 7xx1}}xx6!!!r%cGdd}|}t|d}|j|t|jdtsJt|jdt sJ|}t|d}|j|t|jdtsJt|jdt sJy)NceZdZdZdZdZy)-TestAsinhScale.test_fmtloc..DummyAxisci|_y)Nfields)rs r#__init__z6TestAsinhScale.test_fmtloc..DummyAxis.__init__ s   r%c<|jjdi|y)Nr)rupdate)rkwargss r#rz1TestAsinhScale.test_fmtloc..DummyAxis.set s" "",V,r%c"||jd<y)Nmajor_formatterr)rfs r#set_major_formatterzATestAsinhScale.test_fmtloc..DummyAxis.set_major_formatters12 -.r%N)__name__ __module__ __qualname__rrrrr%r# DummyAxisr s ! - 3r%rrr major_locatorrr*)r#set_default_locators_and_formattersrurrrr )rrax0s0ax5rs r# test_fmtloczTestAsinhScale.test_fmtloc s 3 3k Sq ) ..s3#**_5|DDD#**%67===k Sq ) ..s3#**_5|DDD#**%6713 33r%cPtj\}}tjt5t dddddtjt5t dddddt d}t dd}y#1swYRxYw#1swY/xYw)Nrrrrg@)rArBrkrl ValueErrorr)rrKrLrs1s r#test_bad_scalezTestAsinhScale.test_bad_scales},,.R ]]: & 2 Dq 1 2 ]]: & 3 Dr 2 3 T $ T 4  2 2 3 3sB BBB%N)rrrrrrrrrr%r#rrs ; 1 "3,5r%r)'rmatplotlib.pyplotpyplotrAmatplotlib.scalerrrrrrormatplotlib.tickerrr matplotlib.testing.decoratorsr r numpyr/ numpy.testingr rVrkr$r;rOrZr`rfrprxr~rrrrrrrr%r#rs "CO) ( )) ) 6%&D9  :  #&&'T:;- (//0"G==2*0()t7K L  )/E5E5r%