
    %Wh                      |   d dl Z d dlmZ d dlmZmZmZmZm	Z	 d dlm
Z d dlmZmZ d dlmZmZ d dlZd dlmZ d dlZd dlZ edg      d        Zd	 Z ed
gd      d        Zd Zd Z edgd      d        Zd Zd Zd Z  edgddd      d        Z!d Z" edgdd      d        Z#d Z$d Z% G d  d!      Z&y)"    N)
AsinhScaleAsinhTransformLogTransformInvertedLogTransformSymmetricalLogTransform)AsinhLocatorLogFormatterSciNotation)check_figures_equalimage_comparison)assert_allclosepng)
extensionsc                 R   | j                  ddd      }|j                  d       |j                  d       |j                         }|j	                         }|j                  ddd      }|j                  ||       |j                  ddg|d       |j                  |ddgd       y )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         U/var/www/html/jupyter_env/lib/python3.12/site-packages/matplotlib/tests/test_scale.pytest_log_scalesr$      s    ""3uX"FGOODOODDD  U8 DF
JJDtJ$
KKtdC(
KKtTlC(    c                  *   t        ddd      } | j                         }t        j                  ddd      }|j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  |d<   |j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  j                  |      }|j	                  | j	                  |            }t        ||       t        |      t        |      u sJ t        j                  j                  |d<   |j	                  | j	                  |            }t        ||       t        |      t        |      u sJ y )	N
         g               ?      )r   invertednparangetransform_non_affiner   typenanmaarraymasked)sltsltixouts       r#   test_symlog_mask_nanr;      sJ    ""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                     t        j                         \  } }t        j                  g d      }d|z  }|j	                  ||       |j                  d       |j                  d       |j                  | j                  j                               }t        j                  |j                        sJ t        j                  |j                        sJ y )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GGAqMMM'GGDMCJJ3356D;;tww;;twwr%   c                     t        j                  d      \  } }t        j                  d      }t        j                  d      dz
  }|j	                  ||       t        j                         }| j                  |d       t        j                         }| j                  |d       t        j                         }| j                  |d       y)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                      t        j                         \  } }|j                  dt        j                  g d             | j
                  j                          y )Nr   )r(   r-   r,   )subs)rA   rB   
set_yscaler/   r5   rF   drawrK   rL   s     r#   test_logscale_subsr`   ^   s8    llnGCMM%bhhy1M2JJOOr%   zlogscale_mask.pngc                     t        j                  ddd      } t        j                         \  }}|j	                  t        j
                  | dz                |j                  j                          |j                  d       y )Nr   2   i  r(   r   )r   )	r/   linspacerA   rB   r   exprF   r^   r   )xsrK   rL   s      r#   test_logscale_maskrf   e   s[     
QD	!BllnGCGGBFFBE6NJJOOFF%Fr%   c                      t        j                         \  } }dD ]7  }t        j                  t              5  |j                  |d       d d d        9 y # 1 sw Y   DxY w)N)linearr   r   mask)foo)rA   rB   pytestraises	TypeErrorr]   rK   rL   scales      r#   test_extra_kwargs_raiserp   q   sV    llnGC, -]]9% 	-MM%VM,	- 	--	- 	-s   AA	c                  8   t        j                         \  } }|j                  d       |j                  |j                  j                         z   j                         }t        d      j                         }t        |t              sJ |j                  dk(  sJ y )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                      t        j                         \  } }|j                  d       t        |j                         t        t        dd             y )Nr   r'   clipnonpositive)rA   rB   r]   reprrt   r   r_   s     r#   test_logscale_transform_reprr~      s8    llnGCMM%bf	-.r%   zlogscale_nonpos_values.pngg{Gz?mpl20)r<   tolstylec                  :   t         j                  j                  d       t         j                  j                  t	        d            } t        j                  dd      \  }\  \  }}\  }}|j                  | dd       |j                  d       |j                  | dd       |j                  dd	
       t        j                  ddd      }t        j                  |       }dd|z
  z  t        j                  d|z        z  t        j                  |       z  }|j                  |||z
  ||z          |j                  d       t        j                  dd      }	|	dz  }
|	dz  }|j                  |	|
|       |j                  d       |j                  d       y )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      sQ    IINN8			s3x		(B$'LLA$6!C	!*3jsCHHRwRH(NN5HHRwRH(NN5fN-IIaT"EFFE6NEEN266!E'?*2665&>9EUEEM55=9NN5
BA	QAa4DLLADL!NN5NN5r%   c                     t        j                         \  } }|j                  t        dd      t        dd             |j	                  d       |j                         }t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ |j                  d       |j                         }t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ t        j                  t              5  |j                  d       d d d        |j                         |k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   DxY w)	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      se   llnGCJJuQ{E!QK(MM%KKMM	k	" 
;;=M)))	k	" 
";;=M)))MM%KKMM	k	" 
1;;=M)))	k	" 
;;=M)))    s0   8F%F2+F>4G
%F/2F;>G
Gzfunction_scales.png)r<   r   c                      d } d }t        j                         \  }}t        j                  dd      }|j	                  ||       |j                  d|| f       |j                  dd       y )Nc                     | dz  S )Nr(    r9   s    r#   inversez$test_function_scale.<locals>.inverse   s    !tr%   c                     | dz  S )Nr+   r   r   s    r#   forwardz$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      s]     llnGC
		!TAGGAqMMM*'(:M;KK4r%   c                  J   t        j                         \  } }t        j                  d       }|j	                  |       t        j                  d       }|j                  |       |j                  j                         dk(  sJ |j                  j                         dk(  sJ y )Naxisr   )	rA   rB   mscaleLogScalerC   r]   xaxis	get_scaleyaxisrn   s      r#   test_pass_scaler      s{    llnGCOO&EMM%OO&EMM%885(((885(((r%   c                      t        j                  dd      } t        j                  |       }t	        | j                               t	        |j                               k(  sJ | j                  |j                  usJ y )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                   *    e Zd Zd Zd Zd Zd Zd Zy)TestAsinhScalec                 T   d}t        j                  ddd      }t        |      }|j                         }|j                         }|j	                  |      }|j	                  |      }t        ||       |j	                  |      }t        ||t        j                  ||z        z         y )Ng      1@irb   d   )r/   rc   r   r.   r1   r   arcsinh)	selfa0ar   r   invinv	a_forward
a_inverteda_invinvs	            r#   test_transformszTestAsinhScale.test_transforms   s    KKR% $""$!!#003	11)<

A&..q1"rzz!b&'9"9:r%   c                 ,   t        j                         \  }}t        d d      }|j                  dk(  sJ |j                  dk(  sJ |j
                  dk(  sJ |j                         }t        |t              sJ |j                  |j                  k(  sJ y )Ng      7@r   linear_width   r'   )r(   r*   )	rA   rB   r   r   _base_subsr   ru   r   )r   rK   rL   stxs        r#   	test_initzTestAsinhScale.test_init   s    ,,.RDt4~~###ww"}}ww&   __"n---!..000r%   c                     t        j                         \  }}t        d d      }|j                  dk(  sJ |j                  dk(  sJ t        d dd      }|j                  dk(  sJ |j                  dk(  sJ y )Nr-   r   )r(      )r(   r,   )r   rr   r\   )rA   rB   r   r   r   )r   rK   rL   s3s7s        r#   test_base_initzTestAsinhScale.test_base_init   so    ,,.RT*xx1}}xx4T7xx1}}xx6!!!r%   c                     G d d      } |       }t        |d      }|j                  |       t        |j                  d   t              sJ t        |j                  d   t
              sJ  |       }t        |d      }|j                  |       t        |j                  d   t              sJ t        |j                  d   t              sJ y )Nc                       e Zd Zd Zd Zd Zy)-TestAsinhScale.test_fmtloc.<locals>.DummyAxisc                     i | _         y )Nfields)r   s    r#   __init__z6TestAsinhScale.test_fmtloc.<locals>.DummyAxis.__init__  s	     r%   c                 <     | j                   j                  di | y )Nr   )r   update)r   kwargss     r#   r   z1TestAsinhScale.test_fmtloc.<locals>.DummyAxis.set  s    """,V,r%   c                 "    || j                   d<   y )Nmajor_formatterr   )r   fs     r#   set_major_formatterzATestAsinhScale.test_fmtloc.<locals>.DummyAxis.set_major_formatter  s    12-.r%   N)__name__
__module____qualname__r   r   r   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_fmtloczTestAsinhScale.test_fmtloc	  s    	3 	3 kSq)
..s3#**_5|DDD#**%67===kSq)
..s3#**_5|DDD#**%6713 	3 3r%   c                 P   t        j                         \  }}t        j                  t              5  t        d d       d d d        t        j                  t              5  t        d d       d d d        t        d       }t        d d      }y # 1 sw Y   RxY w# 1 sw Y   /xY w)Nr   r   r   r   g      @)rA   rB   rk   rl   
ValueErrorr   )r   rK   rL   r   s1s        r#   test_bad_scalezTestAsinhScale.test_bad_scale  s}    ,,.R]]:& 	2Dq1	2]]:& 	3Dr2	3T$T4	2 	2	3 	3s   B BBB%N)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%   