a
    ëÝEb€  ã                   @   s   d dl Z d dlmZ d dlmZmZmZ d dl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'd(„ Zd)d*„ Z dS )+é    N)Ú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)ÚyscaleZxscalegš™™™™8@)ÚxlimÚylimÚb)Zadd_subplotZaxvlineZaxhlineÚget_xlimÚget_ylimÚsetÚplot)Zfig_testZfig_refZax_testr   r   Zax_ref© r   ú[/home/ja/django-apps/lartica_env/lib/python3.9/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sPJ ‚tj|d< | |  |¡¡}t||ƒ t|ƒt|ƒksˆJ ‚tj 	|¡}| |  |¡¡}t||ƒ t|ƒt|ƒksÂJ ‚tjj
|d< | |  |¡¡}t||ƒ t|ƒt|ƒksüJ ‚d S )	Né
   é   é   g      ø¿é   ç      à?é   é   )r   ÚinvertedÚnpÚarangeZtransform_non_affiner   ÚtypeÚnanÚmaÚarrayZmasked)ZsltZsltiÚxÚoutr   r   r   Útest_symlog_mask_nan   s$    




r&   zlogit_scales.pngT)Úremove_textc                  C   sv   t  ¡ \} }t g d¢¡}d| }| ||¡ | d¡ | d¡ | | j 	¡ ¡}t 
|j¡sbJ ‚t 
|j¡srJ ‚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      ð?ZlogitT)ÚpltÚsubplotsr   r#   r   Ú
set_xscaleÚgridZget_tightbboxÚcanvasZget_rendererÚisfiniteZx0Zy0)ÚfigÚaxr$   ÚyZbboxr   r   r   Útest_logit_scales8   s    

r3   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   Zpdf)ÚformatZepsÚsvgN)r*   r+   r   r   ÚscatterÚioÚBytesIOZsavefig)r0   r1   r$   r2   Úbufr   r   r   Útest_log_scatterI   s    
r:   c                  C   s2   t  ¡ \} }|jdt g d¢¡d� | j ¡  d S )Nr	   )r   r   r   )Úsubs)r*   r+   Ú
set_yscaler   r#   r.   Údraw©r0   r1   r   r   r   Útest_logscale_subs\   s    r?   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   Zlinspacer*   r+   r   Úexpr.   r=   r   )Úxsr0   r1   r   r   r   Útest_logscale_maskc   s
    
rC   c               	   C   sR   t  ¡ \} }dD ]<}t t¡� |j|dd� W d   ƒ q1 sB0    Y  qd S )N)Zlinearr	   r
   Úmask)Zfoo)r*   r+   ÚpytestZraisesÚ	TypeErrorr<   ©r0   r1   Úscaler   r   r   Útest_extra_kwargs_raiseo   s    rI   c                  C   sX   t  ¡ \} }| d¡ |j|j ¡   ¡ }tdd� ¡ }t|tƒsFJ ‚|j	dksTJ ‚d S )Nr	   r   )Úbase)
r*   r+   r<   Z	transAxesÚ	transDatar   r   Ú
isinstancer   rJ   )r0   r1   ZtformZinverted_transformr   r   r   Útest_logscale_invert_transformw   s    
rM   c                  C   s4   t  ¡ \} }| d¡ t|jƒ ttddd�ƒ d S )Nr	   r   Zclip©Únonpositive)r*   r+   r<   ÚreprrK   r   r>   r   r   r   Útest_logscale_transform_reprƒ   s    

rQ   zlogscale_nonpos_values.pngg{®Gáz”?Zmpl20)r'   Z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   )ÚrangeZbinsr	   rD   rN   r   r(   r)   r   éÿÿÿÿr   r   )Úyerr)r   ÚrandomÚseedÚnormalÚintr*   r+   Úhistr<   r   rA   ÚcosZfill_betweenZlogspaceZerrorbarr,   )rB   r0   Zax1Zax2Zax3Zax4ZxdataZydataZedatar$   r2   rW   r   r   r   Útest_logscale_nonpos_valuesŠ   s$    
&

r^   c                  C   sl  t  ¡ \} }| tddƒtddƒ¡ | d¡ | ¡ }t t¡� |j	dd� W d   ƒ n1 sb0    Y  | ¡ |ks|J ‚t t¡� |j	dd� W d   ƒ n1 s¨0    Y  | ¡ |ksÂJ ‚| 
d¡ | ¡ }t t¡� |jdd� W d   ƒ n1 �s0    Y  | ¡ |k�sJ ‚t t¡� |jdd� W d   ƒ n1 �sL0    Y  | ¡ |k�shJ ‚d S )	Nr   r   r	   )ÚleftrV   )Úright)Úbottom)Útop)r*   r+   r6   rU   r,   r   rE   ZwarnsÚUserWarningÚset_xlimr<   r   Zset_ylim)r0   r1   Zoriginal_xlimZoriginal_ylimr   r   r   Útest_invalid_log_lims¥   s$    
**
,,re   zfunction_scales.png)r'   rR   c                  C   sV   dd„ } dd„ }t  ¡ \}}t dd¡}| ||¡ |jd|| fd� | dd¡ d S )	Nc                 S   s   | d S )Nr   r   ©r$   r   r   r   Úinverse¿   s    z$test_function_scale.<locals>.inversec                 S   s   | d S )Nr   r   rf   r   r   r   ÚforwardÂ   s    z$test_function_scale.<locals>.forwardr   iè  Úfunction)Z	functions)r*   r+   r   r   r   r,   rd   )rg   rh   r0   r1   r$   r   r   r   Útest_function_scale½   s    rj   c                  C   s`   t  ¡ \} }tjd d�}| |¡ tjd d�}| |¡ |j ¡ dksJJ ‚|j ¡ dks\J ‚d S )N)Úaxisr	   )	r*   r+   ÚmscaleÚLogScaler,   r<   ZxaxisZ	get_scaleZyaxisrG   r   r   r   Útest_pass_scaleÎ   s    

rn   c                  C   sH   t jddd�} t | ¡}t|  ¡ ƒt| ¡ ƒks4J ‚| j|jusDJ ‚d S )Nr$   r   )rk   rJ   )rl   rm   ÚcopyÚdeepcopyÚstrZget_transformZ
_transform)ÚscZsc2r   r   r   Útest_scale_deepcopyÙ   s    
rs   )!ro   Zmatplotlib.pyplotZpyplotr*   Zmatplotlib.scaler   r   r   rH   rl   Zmatplotlib.testing.decoratorsr   r   Únumpyr   Znumpy.testingr   r7   rE   r   r&   r3   r:   r?   rC   rI   rM   rQ   r^   re   rj   rn   rs   r   r   r   r   Ú<module>   s:   


ÿ

