o
    Õjí   ã                   @   sL  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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%G d.d/„ d/ƒZ&dS )0é    N)Ú
AsinhScaleÚAsinhTransformÚLogTransformÚInvertedLogTransformÚSymmetricalLogTransform)ÚAsinhLocatorÚLogFormatterSciNotation)Úcheck_figures_equalÚimage_comparison)Úassert_allcloseZpng)Ú
extensionsc                 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   ú\/var/www/html/Deteccion_Ine/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|ƒu s(J ‚tj|d< | |  |¡¡}t||ƒ t|ƒt|ƒu sDJ ‚tj 	|¡}| |  |¡¡}t||ƒ t|ƒt|ƒu saJ ‚tjj
|d< | |  |¡¡}t||ƒ t|ƒt|ƒu s~J ‚d S )	Né
   é   é   g      ø¿é   ç      à?é   é   )r   ÚinvertedÚnpÚarangeÚ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¡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      ð?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_scales:   s   

r9   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)ÚformatÚepsÚsvgN)r0   r1   r#   r$   ÚscatterÚioÚBytesIOZsavefig)r6   r7   r*   r8   Úbufr   r   r   Útest_log_scatterK   s   
rA   c                  C   s2   t  ¡ \} }|jdt g d¢¡d | j ¡  d S )Nr   )r   r!   r    )Úsubs)r0   r1   Ú
set_yscaler#   r)   r4   Údraw©r6   r7   r   r   r   Útest_logscale_subs^   s   rF   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#   Úlinspacer0   r1   r   Úexpr4   rD   r   )Úxsr6   r7   r   r   r   Útest_logscale_maske   s
   
rK   c               	   C   sR   t  ¡ \} }dD ]}t t¡ |j|dd W d   ƒ n1 s!w   Y  qd S )N)Zlinearr   r   Úmask)Zfoo)r0   r1   ÚpytestÚraisesÚ	TypeErrorrC   ©r6   r7   Úscaler   r   r   Útest_extra_kwargs_raiseq   s   ÿ€ÿrR   c                  C   sX   t  ¡ \} }| d¡ |j|j ¡   ¡ }tdd ¡ }t|tƒs#J ‚|j	dks*J ‚d S )Nr   r   )Úbase)
r0   r1   rC   Z	transAxesÚ	transDatar"   r   Ú
isinstancer   rS   )r6   r7   ZtformZinverted_transformr   r   r   Útest_logscale_invert_transformy   s   
rV   c                  C   s4   t  ¡ \} }| d¡ t|jƒ ttdddƒ d S )Nr   r   Zclip©Únonpositive)r0   r1   rC   ÚreprrT   r   rE   r   r   r   Útest_logscale_transform_repr…   s   

rZ   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   rL   rW   r   r.   r/   r   éÿÿÿÿr   r!   )Úyerr)r#   ÚrandomÚseedÚnormalÚintr0   r1   ÚhistrC   r$   rI   ÚcosZfill_betweenZlogspaceZerrorbarr2   )rJ   r6   Zax1Zax2Zax3Zax4ZxdataZydataZedatar*   r8   r`   r   r   r   Útest_logscale_nonpos_valuesŒ   s$   
&

rg   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   )Úleftr_   )Úright)Úbottom)Útop)r0   r1   r=   r^   r2   r   rM   ZwarnsÚUserWarningÚset_xlimrC   r   Zset_ylim)r6   r7   Zoriginal_xlimZoriginal_ylimr   r   r   Útest_invalid_log_lims§   s,   
ÿÿ
ÿÿrn   zfunction_scales.png)r-   r[   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   ©r*   r   r   r   ÚinverseÁ   ó   z$test_function_scale.<locals>.inversec                 S   ro   )Nr   r   rp   r   r   r   ÚforwardÄ   rr   z$test_function_scale.<locals>.forwardr   iè  Úfunction)Z	functions)r0   r1   r#   r$   r   r2   rm   )rq   rs   r6   r7   r*   r   r   r   Útest_function_scale¿   s   ru   c                  C   s`   t  ¡ \} }tjd d}| |¡ tjd d}| |¡ |j ¡ dks%J ‚|j ¡ dks.J ‚d S )N©Úaxisr   )	r0   r1   ÚmscaleÚLogScaler2   rC   ZxaxisZ	get_scaleZyaxisrP   r   r   r   Útest_pass_scaleÐ   s   

rz   c                  C   sH   t jddd} t | ¡}t|  ¡ ƒt| ¡ ƒksJ ‚| j|jus"J ‚d S )Nr*   r   ©rw   rS   )rx   ry   ÚcopyÚdeepcopyÚstrÚget_transformZ
_transform)ÚscZsc2r   r   r   Útest_scale_deepcopyÛ   s   
r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestAsinhScalec           	      C   sn   d}t  ddd¡}t|ƒ}| ¡ }| ¡ }| |¡}| |¡}t||ƒ | |¡}t||t  || ¡ ƒ d S )Ng      1@iÎÿÿÿrG   éd   )r#   rH   r   r"   r%   r   Zarcsinh)	ÚselfZa0Úars   rq   ZinvinvZ	a_forwardZ
a_invertedZa_invinvr   r   r   Útest_transformsã   s   



zTestAsinhScale.test_transformsc                 C   sl   t  ¡ \}}td dd}|jdksJ ‚|jdksJ ‚|jdks!J ‚| ¡ }t|tƒs,J ‚|j|jks4J ‚d S )Ng      7@©rw   Úlinear_widthé   r   )r   r   )	r0   r1   r   rˆ   Ú_baseÚ_subsr   rU   r   )r„   r6   r7   ÚsZtxr   r   r   Ú	test_initò   s   zTestAsinhScale.test_initc                 C   sb   t  ¡ \}}td dd}|jdksJ ‚|jdksJ ‚td ddd}|jdks(J ‚|jdks/J ‚d S )Nr!   r{   )r   é   )r   r    )rw   rS   rB   )r0   r1   r   rŠ   r‹   )r„   r6   r7   Zs3Ús7r   r   r   Útest_base_initþ   s   zTestAsinhScale.test_base_initc                 C   sš   G dd„ dƒ}|ƒ }t |dd}| |¡ t|jd tƒsJ ‚t|jd tƒs)J ‚|ƒ }t |dd}| |¡ t|jd tƒsAJ ‚t|jd tƒsKJ ‚d S )Nc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z-TestAsinhScale.test_fmtloc.<locals>.DummyAxisc                 S   s
   i | _ d S )N©Úfields)r„   r   r   r   Ú__init__  s   
z6TestAsinhScale.test_fmtloc.<locals>.DummyAxis.__init__c                 [   s   | j jdi |¤Ž d S )Nr   )r’   Úupdate)r„   Úkwargsr   r   r   r     s   z1TestAsinhScale.test_fmtloc.<locals>.DummyAxis.setc                 S   s   || j d< d S )NÚmajor_formatterr‘   )r„   Úfr   r   r   Úset_major_formatter  s   zATestAsinhScale.test_fmtloc.<locals>.DummyAxis.set_major_formatterN)Ú__name__Ú
__module__Ú__qualname__r“   r   r˜   r   r   r   r   Ú	DummyAxis
  s    rœ   r   r{   Zmajor_locatorr–   r   )r   Z#set_default_locators_and_formattersrU   r’   r   r~   r   )r„   rœ   Zax0Ús0Zax5r   r   r   r   Útest_fmtloc	  s   


ÿzTestAsinhScale.test_fmtlocc                 C   s’   t  ¡ \}}t t¡ td dd W d   ƒ n1 sw   Y  t t¡ td dd W d   ƒ n1 s7w   Y  td d}td dd}d S )Nr   r‡   r_   rv   g      @)r0   r1   rM   rN   Ú
ValueErrorr   )r„   r6   r7   r   Ús1r   r   r   Útest_bad_scale  s   ÿÿ
zTestAsinhScale.test_bad_scaleN)r™   rš   r›   r†   r   r   rž   r¡   r   r   r   r   r‚   â   s    r‚   )'r|   Zmatplotlib.pyplotZpyplotr0   Zmatplotlib.scaler   r   r   r   r   rQ   rx   Zmatplotlib.tickerr   r   Zmatplotlib.testing.decoratorsr	   r
   Únumpyr#   Znumpy.testingr   r>   rM   r   r,   r9   rA   rF   rK   rR   rV   rZ   rg   rn   ru   rz   r   r‚   r   r   r   r   Ú<module>   s@    



ÿ

