
    h                      ^   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\" 5       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_allclosec                 >   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         M/var/www/html/env/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_nanr9      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-   r3   r   
set_xscalegridget_tightbboxcanvasget_rendererisfinitex0y0)figaxr7   ybboxs        r!   test_logit_scalesrM   :   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)r?   r@   r-   r.   scatterioBytesIOsavefig)rI   rJ   r7   rK   bufs        r!   test_log_scatterrX   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)r?   r@   
set_yscaler-   r3   rD   drawrI   rJ   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-   linspacer?   r@   r   exprD   r\   r   )xsrI   rJ   s      r!   test_logscale_maskrd   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)r?   r@   pytestraises	TypeErrorr[   rI   rJ   scales      r!   test_extra_kwargs_raisern   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)
r?   r@   r[   	transAxes	transDatar,   r   
isinstancer   rp   )rI   rJ   tforminverted_transforms       r!   test_logscale_invert_transformrv   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)r?   r@   r[   reprrr   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   rg   ry   r   r<   r=   r(   r'   r+   )yerr)r-   randomseednormalintr?   r@   histr[   r.   rb   cosfill_betweenlogspaceerrorbarrA   )rc   rI   ax1ax2ax3ax4xdataydataedatar7   rK   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)r?   r@   rS   r   rA   r   ri   warnsUserWarningset_xlimr[   r   set_ylim)rI   rJ   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&    r7   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)r?   r@   r-   r.   r   rA   r   )r   r   rI   rJ   r7   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   )	r?   r@   mscaleLogScalerA   r[   xaxis	get_scaleyaxisrl   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 )Nr7   r%   r   rp   )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@ir`   d   )r-   ra   r   r,   r/   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(   )	r?   r@   r   r   _base_subsr   rs   r   )r   rI   rJ   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   rp   rZ   )r?   r@   r   r   r   )r   rI   rJ   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_formattersrs   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      @)r?   r@   ri   rj   
ValueErrorr   )r   rI   rJ   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pyplotr?   matplotlib.scaler   r   r   r   r   rm   r   matplotlib.tickerr   r	   matplotlib.testing.decoratorsr
   r   numpyr-   numpy.testingr   rT   ri   r"   r9   rM   rX   r^   rd   rn   rv   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#   