o
    ¹i  ã                   @   s  d dl mZ d dlmZ d dlmZ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d„ ƒZdd	„ Zed
gdddd„ ƒZdd„ Zdd„ Zedgdddd„ ƒZdd„ Zdd„ Zdd„ Zedgddddd d!„ ƒZd"d#„ Zed$gddd%d&d'„ ƒZdS )(é    )ÚMatplotlibDeprecationWarningN)ÚLogTransformÚInvertedLogTransformÚSymmetricalLogTransform)Úcheck_figures_equalÚimage_comparison)Úassert_allclosec                 C   sz   | j dddd}| d¡ | d¡ | ¡ }| ¡ }|j dddd}|j||d | ddg|d¡ | |ddgd¡ d S )Néz   Ú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_ref© r   úV/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_scale.pyÚtest_log_scales   s   

r   c                  C   s   t dddƒ} |  ¡ }t ddd¡}| |  |¡¡}t||ƒ t|ƒt|ƒks(J ‚tj|d< | |  |¡¡}t||ƒ t|ƒt|ƒksDJ ‚tj 	|¡}| |  |¡¡}t||ƒ t|ƒt|ƒksaJ ‚tjj
|d< | |  |¡¡}t||ƒ t|ƒt|ƒks~J ‚d S )	Né
   é   é   g      ø¿é   ç      à?é   é   )r   ÚinvertedÚnpÚarangeÚtransform_non_affiner   ÚtypeÚnanÚmaÚarrayÚmasked)ÚsltÚsltiÚxÚoutr   r   r   Útest_symlog_mask_nan   s$   




r3   zlogit_scales.pngT)Úremove_textc                  C   sv   t  ¡ \} }t g d¢¡}d| }| ||¡ | d¡ | d¡ | | j 	¡ ¡}t 
|j¡s1J ‚t 
|j¡s9J ‚d S )N)gü©ñÒMbP?gú~j¼t“h?ç{®Gáz„?g¸…ëQ¸ž?gš™™™™™¹?çš™™™™™É?g333333Ó?gš™™™™™Ù?r#   g333333ã?gffffffæ?gš™™™™™é?gÍÌÌÌÌÌì?g
×£p=
ï?g®Gáz®ï?g•C‹lçï?g+‡ÙÎ÷ï?g      ð?ÚlogitT)ÚpltÚsubplotsr'   r-   r   Ú
set_xscaleÚgridÚget_tightbboxÚcanvasÚget_rendererÚisfiniteÚx0Úy0)ÚfigÚaxr1   ÚyÚbboxr   r   r   Útest_logit_scales6   s   

rF   c                  C   sx   t  d¡\} }t d¡}t d¡d }| ||¡ t ¡ }| j|dd t ¡ }| j|dd t ¡ }| j|dd dS )zIssue #1799r!   r   Úpdf)ÚformatÚepsÚsvgN)r8   r9   r'   r(   ÚscatterÚioÚBytesIOÚsavefig)rB   rC   r1   rD   Úbufr   r   r   Útest_log_scatterG   s   
rP   c                  C   s2   t  ¡ \} }|jdt g d¢¡d | j ¡  d S )Nr
   )r    r%   r$   )Úsubs)r8   r9   Ú
set_yscaler'   r-   r=   Údraw©rB   rC   r   r   r   Útest_logscale_subsZ   s   rU   zlogscale_mask.pngc                  C   sJ   t  ddd¡} t ¡ \}}| t  | d  ¡¡ |j ¡  |jdd d S )Nr   é2   ié  r    r
   )r   )	r'   Úlinspacer8   r9   r   Úexpr=   rS   r   )ÚxsrB   rC   r   r   r   Útest_logscale_maska   s
   
rZ   c                  C   sº   t  ¡ \} }t t¡ |jddd W d   ƒ n1 sw   Y  t t¡ |jddd W d   ƒ n1 s9w   Y  t t¡ |jddd W d   ƒ d S 1 sVw   Y  d S )NÚlinearÚmask)Úfoor
   r   )r8   r9   ÚpytestÚwarnsr   rR   ÚraisesÚ	TypeErrorrT   r   r   r   Útest_extra_kwargs_raise_or_warnm   s   ÿÿ"ÿrb   c                  C   sX   t  ¡ \} }| d¡ |j|j ¡   ¡ }tdd ¡ }t|tƒs#J ‚|j	dks*J ‚d S )Nr
   r    )Úbase)
r8   r9   rR   Ú	transAxesÚ	transDatar&   r   Ú
isinstancer   rc   )rB   rC   ÚtformÚinverted_transformr   r   r   Útest_logscale_invert_transformz   s   
ri   c                  C   s4   t  ¡ \} }| d¡ t|jƒ ttdddƒ d S )Nr
   r   Úclip©Únonpositive)r8   r9   rR   Úreprre   r   rT   r   r   r   Útest_logscale_transform_repr†   s   

rn   zlogscale_nonpos_values.pngg{®Gáz”?Úmpl20)r4   ÚtolÚstylec                  C   s  t j d¡ t jjtdƒd} t dd¡\}\\}}\}}|j| ddd | d¡ |j| ddd |jdd	d
 t  	ddd¡}t  
| ¡}dd|  t  d| ¡ t  
| ¡ }| ||| || ¡ | d¡ t  dd¡}	|	d }
|	d }|j|	|
|d | d¡ | d¡ d S )Ni!N,g     @@)Úsizer    )éûÿÿÿr"   r   )ÚrangeÚbinsr
   r\   rk   r   r5   r6   r"   éÿÿÿÿr!   r%   )Úyerr)r'   ÚrandomÚseedÚnormalÚintr8   r9   ÚhistrR   r(   rX   ÚcosÚfill_betweenÚlogspaceÚerrorbarr:   )rY   rB   Úax1Úax2Úax3Úax4ÚxdataÚydataÚedatar1   rD   rw   r   r   r   Útest_logscale_nonpos_values   s$   
&

rˆ   c                  C   sd  t  ¡ \} }| tddƒtddƒ¡ | d¡ | ¡ }t t¡ |j	dd W d   ƒ n1 s1w   Y  | ¡ |ks>J ‚t t¡ |j	dd W d   ƒ n1 sTw   Y  | ¡ |ksaJ ‚| 
d¡ | ¡ }t t¡ |jdd W d   ƒ n1 s€w   Y  | ¡ |ksJ ‚t t¡ |jdd W d   ƒ n1 s£w   Y  | ¡ |ks°J ‚d S )	Nr   r$   r
   )Úleftrv   )Úright)Úbottom)Útop)r8   r9   rK   rt   r:   r   r^   r_   ÚUserWarningÚset_xlimrR   r   Úset_ylim)rB   rC   Úoriginal_xlimÚoriginal_ylimr   r   r   Útest_invalid_log_lims¨   s,   
ÿÿ
ÿÿr’   zfunction_scales.png)r4   rq   c                  C   sV   dd„ } dd„ }t  ¡ \}}t dd¡}| ||¡ |jd|| fd | dd¡ d S )	Nc                 S   ó   | d S )Nr    r   ©r1   r   r   r   ÚinverseÂ   ó   z$test_function_scale.<locals>.inversec                 S   r“   )Nr#   r   r”   r   r   r   ÚforwardÅ   r–   z$test_function_scale.<locals>.forwardr!   iè  Úfunction)Ú	functions)r8   r9   r'   r(   r   r:   rŽ   )r•   r—   rB   rC   r1   r   r   r   Útest_function_scaleÀ   s   rš   )Úmatplotlib.cbookr   Úmatplotlib.pyplotÚpyplotr8   Úmatplotlib.scaler   r   r   Úmatplotlib.testing.decoratorsr   r   Únumpyr'   Únumpy.testingr   rL   r^   r   r3   rF   rP   rU   rZ   rb   ri   rn   rˆ   r’   rš   r   r   r   r   Ú<module>   s6    


ÿ
