
    (ph                      ^   S SK r S SKJr  S SKJrJrJrJrJ	r	  S SKJ
r  S SKJrJr  S SKJrJr  S SKrS SKJr  S SKrS SKr\" S/S9S 5       rS	 r\" S
/SS9S 5       rS rS r\" S/SS9S 5       rS rS rS r \" S/SSSS9S 5       r!S r"\" S/SSS9S 5       r#S r$S r% " S  S!5      r&g)"    N)
AsinhScaleAsinhTransformLogTransformInvertedLogTransformSymmetricalLogTransform)AsinhLocatorLogFormatterSciNotation)check_figures_equalimage_comparison)assert_allclosepng)
extensionsc                 >   U R                  SSSS9nUR                  S5        UR                  S5        UR                  5       nUR	                  5       nUR                  SSSS9nUR                  X4S9  UR                  SS/US5        UR                  USS/S5        g )Nz   logsymlog)yscalexscaleg8@)xlimylimb)add_subplotaxvlineaxhlineget_xlimget_ylimsetplot)fig_testfig_refax_testr   r   ax_refs         N/var/www/html/venv/lib/python3.13/site-packages/matplotlib/tests/test_scale.pytest_log_scalesr$      s    ""3uX"FGOODOODDD  U8 DF
JJDJ$
KKtdC(
KKtTlC(    c                  ,   [        SSS5      n U R                  5       n[        R                  " SSS5      nUR	                  U R	                  U5      5      n[        X25        [        U5      [        U5      L d   e[        R                  US'   UR	                  U R	                  U5      5      n[        X25        [        U5      [        U5      L d   e[        R                  R                  U5      nUR	                  U R	                  U5      5      n[        X25        [        U5      [        U5      L d   e[        R                  R                  US'   UR	                  U R	                  U5      5      n[        X25        [        U5      [        U5      L d   eg )	N
         g               ?      )r   invertednparangetransform_non_affiner   typenanmaarraymasked)sltsltixouts       r#   test_symlog_mask_nanr;      sB    ""a
+C<<>D
		$3A

#
#C$<$<Q$?
@CC9Q66AaD

#
#C$<$<Q$?
@CC9Q
AA

#
#C$<$<Q$?
@CC9Q55<<AaD

#
#C$<$<Q$?
@CC9Qr%   zlogit_scales.pngT)remove_textc                     [         R                  " 5       u  p[        R                  " / SQ5      nSU-  nUR	                  X#5        UR                  S5        UR                  S5        UR                  U R                  R                  5       5      n[        R                  " UR                  5      (       d   e[        R                  " UR                  5      (       d   eg )N)gMbP?g~jth?{Gz?gQ?g?皙?g333333?g?r+   g333333?gffffff?g?g?g
ףp=
?gGz?gCl?g+?g      ?logitT)pltsubplotsr/   r5   r   
set_xscalegridget_tightbboxcanvasget_rendererisfinitex0y0)figaxr9   ybboxs        r#   test_logit_scalesrO   :   s    llnGC 	 @ 	AAaAGGAMMM'GGDMCJJ3356D;;tww;;twwr%   c                     [         R                  " S5      u  p[        R                  " S5      n[        R                  " S5      S-
  nUR	                  X#5        [
        R                  " 5       nU R                  USS9  [
        R                  " 5       nU R                  USS9  [
        R                  " 5       nU R                  USS9  g)zIssue #1799r)   r'   pdf)formatepssvgN)rA   rB   r/   r0   scatterioBytesIOsavefig)rK   rL   r9   rM   bufs        r#   test_log_scatterrZ   K   s    ll1oGC
		"A
		"AJJq
**,CKKEK"
**,CKKEK"
**,CKKEK"r%   c                      [         R                  " 5       u  pUR                  S[        R                  " / SQ5      S9  U R
                  R                  5         g )Nr   )r(   r-   r,   )subs)rA   rB   
set_yscaler/   r5   rF   drawrK   rL   s     r#   test_logscale_subsr`   ^   s6    llnGCMM%bhhy1M2JJOOr%   zlogscale_mask.pngc                     [         R                  " SSS5      n [        R                  " 5       u  pUR	                  [         R
                  " U S-  * 5      5        UR                  R                  5         UR                  SS9  g )Nr   2   i  r(   r   )r   )	r/   linspacerA   rB   r   exprF   r^   r   )xsrK   rL   s      r#   test_logscale_maskrf   e   sY     
QD	!BllnGCGGBFFBE6NJJOOFF%Fr%   c                      [         R                  " 5       u  pS H6  n[        R                  " [        5         UR                  USS9  S S S 5        M8     g ! , (       d  f       MJ  = f)N)linearr   r   mask)foo)rA   rB   pytestraises	TypeErrorr]   rK   rL   scales      r#   test_extra_kwargs_raiserp   q   sD    llnGC,]]9%MM%VM, &% -%%s   A
A$	c                  >   [         R                  " 5       u  pUR                  S5        UR                  UR                  R                  5       -   R                  5       n[        SS9R                  5       n[        U[        5      (       d   eUR                  S:X  d   eg )Nr   r(   )base)
rA   rB   r]   	transAxes	transDatar.   r   
isinstancer   rr   )rK   rL   tforminverted_transforms       r#   test_logscale_invert_transformrx   y   s~    llnGCMM%\\BLL1133==?E &1-668(*>????""a'''r%   c                      [         R                  " 5       u  pUR                  S5        [        UR                  5        [        [        SSS95        g )Nr   r'   clipnonpositive)rA   rB   r]   reprrt   r   r_   s     r#   test_logscale_transform_reprr~      s6    llnGCMM%bf	-.r%   zlogscale_nonpos_values.pngg{Gz?mpl20)r<   tolstylec                     [         R                  R                  S5        [         R                  R                  [	        S5      S9n [
        R                  " SS5      u  nu  u  p#u  pEUR                  U SSS9  UR                  S5        UR                  U SSS9  UR                  SS	S
9  [         R                  " SSS5      n[         R                  " U* 5      nSSU-
  -  [         R                  " SU-  5      -  [         R                  " U* 5      -  nUR                  XgU-
  Xx-   5        UR                  S5        [         R                  " SS5      n	U	S-  n
U	S-  nUR                  XUS9  UR                  S5        UR                  S5        g )Ni!N,g     @@)sizer(   )r*   r'   )rangebinsr   ri   r{   r   r>   r?   r*   r)   r-   )yerr)r/   randomseednormalintrA   rB   histr]   r0   rd   cosfill_betweenlogspaceerrorbarrC   )re   rK   ax1ax2ax3ax4xdataydataedatar9   rM   r   s               r#   test_logscale_nonpos_valuesr      sG    IINN8			s3x		(B$'LLA$6!C	!*3jsHHRwRH(NN5HHRwRH(NN5fN-IIaT"EFFE6NEEN266!E'?*2665&>9EUEM5=9NN5
BA	QAa4DLLDL!NN5NN5r%   c                     [         R                  " 5       u  pUR                  [        SS5      [        SS5      5        UR	                  S5        UR                  5       n[        R                  " [        5         UR                  SS9  S S S 5        UR                  5       U:X  d   e[        R                  " [        5         UR                  SS9  S S S 5        UR                  5       U:X  d   eUR                  S5        UR                  5       n[        R                  " [        5         UR                  SS9  S S S 5        UR                  5       U:X  d   e[        R                  " [        5         UR                  SS9  S S S 5        UR                  5       U:X  d   eg ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NY= f)	Nr   r,   r   )leftr   )right)bottom)top)rA   rB   rU   r   rC   r   rk   warnsUserWarningset_xlimr]   r   set_ylim)rK   rL   original_xlimoriginal_ylims       r#   test_invalid_log_limsr      sG   llnGCJJuQ{E!QK(MM%KKMM	k	"
 
#;;=M)))	k	"
" 
#;;=M)))MM%KKMM	k	"
1 
#;;=M)))	k	"
 
#;;=M))) 
#	" 
#	" 
#	" 
#	"s0   9F!F3*G2G!
F03
G
G
G#zfunction_scales.png)r<   r   c                      S n S n[         R                  " 5       u  p#[        R                  " SS5      nUR	                  XD5        UR                  SX4S9  UR                  SS5        g )Nc                     U S-  $ )Nr(    r9   s    r#   inverse$test_function_scale.<locals>.inverse   s    !tr%   c                     U S-  $ )Nr+   r   r   s    r#   forward$test_function_scale.<locals>.forward   s    3xr%   r)   i  function)	functions)rA   rB   r/   r0   r   rC   r   )r   r   rK   rL   r9   s        r#   test_function_scaler      sW     llnGC
		!TAGGAMMM*(:M;KK4r%   c                  F   [         R                  " 5       u  p[        R                  " S S9nUR	                  U5        [        R                  " S S9nUR                  U5        UR                  R                  5       S:X  d   eUR                  R                  5       S:X  d   eg )Naxisr   )	rA   rB   mscaleLogScalerC   r]   xaxis	get_scaleyaxisrn   s      r#   test_pass_scaler      sy    llnGCOO&EMM%OO&EMM%885(((885(((r%   c                      [         R                  " SSS9n [        R                  " U 5      n[	        U R                  5       5      [	        UR                  5       5      :X  d   eU R                  UR                  Ld   eg )Nr9   r'   r   rr   )r   r   copydeepcopystrget_transform
_transform)scsc2s     r#   test_scale_deepcopyr      s`    	c	+B
--
Cr!"c#*;*;*=&>>>>==...r%   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestAsinhScale   c                 R   Sn[         R                  " SSS5      n[        U5      nUR                  5       nUR                  5       nUR	                  U5      nUR	                  U5      n[        Xr5        UR	                  U5      n[        X[         R                  " X!-  5      -  5        g )Ng      1@irb   d   )r/   rc   r   r.   r1   r   arcsinh)	selfa0ar   r   invinv	a_forward
a_inverteda_invinvs	            r#   test_transformsTestAsinhScale.test_transforms   s    KKR% $""$!!#003	11)<

&..q1rzz!&'9"9:r%   c                 8   [         R                  " 5       u  p[        S SS9nUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  5       n[        U[        5      (       d   eUR                  UR                  :X  d   eg )Ng      7@r   linear_width   r'   )r(   r*   )	rA   rB   r   r   _base_subsr   ru   r   )r   rK   rL   stxs        r#   	test_initTestAsinhScale.test_init   s    ,,.Dt4~~###ww"}}ww&   __"n----!..000r%   c                     [         R                  " 5       u  p[        S SS9nUR                  S:X  d   eUR                  S:X  d   e[        S SSS9nUR                  S:X  d   eUR                  S:X  d   eg )Nr-   r   )r(      )r(   r,   )r   rr   r\   )rA   rB   r   r   r   )r   rK   rL   s3s7s        r#   test_base_initTestAsinhScale.test_base_init   sm    ,,.T*xx1}}xx4T7xx1}}xx6!!!r%   c                     " S S5      nU" 5       n[        USS9nUR                  U5        [        UR                  S   [        5      (       d   e[        UR                  S   [
        5      (       d   eU" 5       n[        USS9nUR                  U5        [        UR                  S   [        5      (       d   e[        UR                  S   [        5      (       d   eg )Nc                   &    \ rS rSrS rS rS rSrg)-TestAsinhScale.test_fmtloc.<locals>.DummyAxisi
  c                     0 U l         g )Nfields)r   s    r#   __init__6TestAsinhScale.test_fmtloc.<locals>.DummyAxis.__init__  s	     r%   c                 <    U R                   R                  " S0 UD6  g )Nr   )r   update)r   kwargss     r#   r   1TestAsinhScale.test_fmtloc.<locals>.DummyAxis.set  s    "",V,r%   c                      XR                   S'   g )Nmajor_formatterr   )r   fs     r#   set_major_formatterATestAsinhScale.test_fmtloc.<locals>.DummyAxis.set_major_formatter  s    12-.r%   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r%   r#   	DummyAxisr   
  s    !-3r%   r   r   r   major_locatorr   r*   )r   #set_default_locators_and_formattersru   r   r   r   r	   )r   r   ax0s0ax5r   s         r#   test_fmtlocTestAsinhScale.test_fmtloc	  s    	3 	3 kSq)
..s3#**_5|DDDD#**%67====kSq)
..s3#**_5|DDDD#**%6713 3 	3 3r%   c                 P   [         R                  " 5       u  p[        R                  " [        5         [        S SS9  S S S 5        [        R                  " [        5         [        S SS9  S S S 5        [        S S9n[        S SS9ng ! , (       d  f       NO= f! , (       d  f       N3= f)Nr   r   r   r   g      @)rA   rB   rk   rl   
ValueErrorr   )r   rK   rL   r   s1s        r#   test_bad_scaleTestAsinhScale.test_bad_scale  sk    ,,.]]:&Dq1 ']]:&Dr2 'T$T4 '&&&s   BB
B
B%r   N)
r   r   r   r   r   r   r   r   r  r   r   r%   r#   r   r      s    ;
1	"3,5r%   r   )'r   matplotlib.pyplotpyplotrA   matplotlib.scaler   r   r   r   r   ro   r   matplotlib.tickerr   r	   matplotlib.testing.decoratorsr
   r   numpyr/   numpy.testingr   rV   rk   r$   r;   rO   rZ   r`   rf   rp   rx   r~   r   r   r   r   r   r   r   r%   r#   <module>r     s      " C O  ) 	  (	) )	) 6 %&D9  :  #& &'T: ;-	(/ /0"G==2*0 ()t7K L )/E5 E5r%   