a
    s=icÝ,  ã                   @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	Z
d dl	mZ d dlmZ dd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Z d)d*„ Z!d+d,„ Z"d-d.„ Z#d/d0„ Z$d1d2„ Z%d3d4„ Z&dS )5é    N)ÚPath)Úpyplot)ÚMatplotlibDeprecationWarningc              
   C   s´   t tjƒjd d }| ¡ s&t d¡ t tjƒ ¡ }|  	d¡}| 
|d¡ tjtjt|ƒt|ƒgdd | d¡}||kr°d 	tj| d¡| d¡d	d
ddd¡}t d| ¡ d S )Né   ztools/boilerplate.pyzboilerplate.py not foundz	pyplot.pyzutf-8T)ÚcheckÚ
zfound pyplot.pyzexpected pyplot.pyr   Ú )ÚfromfileÚtofileÚnÚlinetermzøpyplot.py is not up-to-date. Please run 'python tools/boilerplate.py' to update pyplot.py. This needs to be done from an environment where your current working copy is installed (e.g. 'pip install -e'd). Here is a diff of unexpected differences:
%s)r   ÚmplÚ__file__ÚparentsÚexistsÚpytestÚskipÚpltÚ	read_textÚjoinÚ
write_textÚ
subprocessÚrunÚsysÚ
executableÚstrÚdifflibÚunified_diffÚsplitÚfail)ZtmpdirZ
gen_scriptZorig_contentsZplt_fileZnew_contentsZdiff_msg© r    úm/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/matplotlib/tests/test_pyplot.pyÚtest_pyplot_up_to_date   s0    

ÿ
üÿüÿr"   c                 C   sÚ   t j ddd¡t j dd¡ddd„ƒƒ}t |¡ddd„ƒ}|d ƒ |d d	 |d d d
 |d d d | rnJ ‚t t¡ |d d W d   ƒ n1 s˜0    Y  t t¡ |d d ƒ W d   ƒ n1 sÌ0    Y  d S )Nz	(version)ÚoldÚnewÚkwoc                 S   s   d S ©Nr    ©r$   r%   r    r    r!   Úfunc-   s    z1test_copy_docstring_and_deprecators.<locals>.funcc                 S   s   d S r&   r    r'   r    r    r!   Úwrapper_func2   s    z9test_copy_docstring_and_deprecators.<locals>.wrapper_func)r$   )r%   r'   )r#   )N)N)	r   Z_apiZrename_parameterZmake_keyword_onlyr   Z_copy_docstring_and_deprecatorsr   Úwarnsr   )Zrecwarnr(   r)   r    r    r!   Ú#test_copy_docstring_and_deprecators,   s    
(r+   c                  C   sd   t  ¡ \} }t  d¡ | ¡ r"J ‚t  d¡ | ¡ s8J ‚t  ¡  | ¡ rLJ ‚t  ¡  | ¡ s`J ‚d S )NFT)r   ÚsubplotsÚboxZget_frame_on)ÚfigÚaxr    r    r!   Útest_pyplot_boxA   s    

r0   c                   C   s   t  g d¢g d¢¡ d S )N)é   r   é   )r   Z	stackplotr    r    r    r!   Útest_stackplot_smokeM   s    r3   c                   C   sp   t  t¡ tjdd W d   ƒ n1 s,0    Y  t  t¡ tjdd W d   ƒ n1 sb0    Y  d S )Nr1   )Znrows)Zncols)r   ÚraisesÚ	TypeErrorr   Úsubplotr    r    r    r!   Útest_nrows_errorR   s    *r7   c                   C   s¬   t  ¡  t ¡ sJ ‚t  ¡  t ¡ r*J ‚W d   ƒ n1 s>0    Y  t ¡ sTJ ‚t  ¡  t ¡ rhJ ‚t  ¡  t ¡ r~J ‚W d   ƒ n1 s’0    Y  t ¡ r¨J ‚d S r&   )r   Úionr   Úis_interactiveÚioffr    r    r    r!   Ú	test_ioffY   s    
*
*r;   c                   C   s¬   t  ¡  t ¡ rJ ‚t  ¡  t ¡ s*J ‚W d   ƒ n1 s>0    Y  t ¡ rTJ ‚t  ¡  t ¡ shJ ‚t  ¡  t ¡ s~J ‚W d   ƒ n1 s’0    Y  t ¡ s¨J ‚d S r&   )r   r:   r   r9   r8   r    r    r    r!   Útest_iong   s    
*
*r<   c                	   C   sx  t  ¡  t  ¡ \ t ¡ rJ ‚t  ¡  t ¡ s4J ‚W d   ƒ n1 sH0    Y  t ¡ r^J ‚W d   ƒ n1 sr0    Y  t ¡ sˆJ ‚t  ¡ D t  ¡  t ¡ r¨J ‚W d   ƒ n1 s¼0    Y  W d   ƒ n1 sÚ0    Y  t ¡ sðJ ‚t  ¡  t  ¡  W d   ƒ n1 s0    Y  t ¡ s0J ‚t  ¡  t  ¡ d t ¡ sPJ ‚t  ¡  t ¡ rhJ ‚W d   ƒ n1 s~0    Y  t ¡ s–J ‚W d   ƒ n1 s¬0    Y  t ¡ rÄJ ‚t  ¡ H t  ¡  t ¡ sæJ ‚W d   ƒ n1 sü0    Y  W d   ƒ n1 s0    Y  t ¡ r4J ‚t  ¡  t  ¡  W d   ƒ n1 s\0    Y  t ¡ rtJ ‚d S r&   )r   r8   r:   r   r9   r    r    r    r!   Útest_nested_ion_ioffu   s8    

**

H
(

..

N
(r=   c               
   C   sH   zt  d¡ W n4 tyB }  zt| ƒdks.J ‚W Y d } ~ n
d } ~ 0 0 d S )Ngš™™™™™ñ?zQclose() argument must be a Figure, an int, a string, or None, not <class 'float'>)r   Úcloser5   r   )Úer    r    r!   Ú
test_close¡   s    r@   c                  C   s^   t  d¡} | t  ¡ u sJ ‚t  d¡}|t  ¡ u s4J ‚t  d¡}| t  ¡ u sNJ ‚| |u sZJ ‚d S )Néy   éz   )r   r6   Úgca©Úax1Úax2Úax3r    r    r!   Útest_subplot_reuse©   s    


rH   c                  C   sÆ   t  ¡  t  ¡ } t  ¡ }| d us$J ‚|| us0J ‚t  ¡  t  ¡  t jdd} t jdd}| d usdJ ‚|| uspJ ‚t  ¡  t  ¡  t jdd} t  ¡ }| d us J ‚|jdks®J ‚|| usºJ ‚t  ¡  d S )NÚpolar©Ú
projectionÚrectilinear)r   ÚfigureÚaxesr>   Úname©r/   rE   r    r    r!   Útest_axes_kwargs³   s&    rQ   c                  C   s  t  ¡ } t  ddd¡}t  ddd¡}t  ddd¡}t t¡" t jddddd}W d   ƒ n1 sd0    Y  t jddddd}|d usŒJ ‚||u s˜J ‚||us¤J ‚||us°J ‚||u s¼J ‚|| jvsÊJ ‚|| jv sØJ ‚|| jv sæJ ‚|jdksôJ ‚|jdksJ ‚|jdksJ ‚d S )Nr1   r   rI   rJ   rL   )r   rM   r6   r   r*   r   rN   rO   )r.   r/   rE   rF   rG   Zax4r    r    r!   Útest_subplot_replace_projectionÌ   s$    0rR   c                  C   s`   t jddd} t jddd}| |u s(J ‚|  ¡  t jddd}| |usJJ ‚| t  ¡ jvs\J ‚d S )NrI   r   )rK   Ztheta_offsetr1   )r   r6   ÚremoveÚgcfrN   rD   r    r    r!   Útest_subplot_kwarg_collisionå   s    rU   c                  C   s<   t  ¡  t  ¡ } t  ¡ }| d us$J ‚|| u s0J ‚t  ¡  d S r&   )r   rM   rC   r>   rP   r    r    r!   Útest_gcaï   s    rV   c                  C   s¾   t  d¡} | t  ¡ u sJ ‚| t  d¡u s,J ‚|  ¡  t jddd}|t  ¡ u sRJ ‚| t  ¡ jvsdJ ‚|t  d¡u svJ ‚| ¡  t jddd}|t  ¡ u sœJ ‚||us¨J ‚|t  ¡ jvsºJ ‚d S )Néo   rI   rJ   rL   )r   r6   rC   rS   rT   rN   rD   r    r    r!   Útest_subplot_projection_reuseù   s    
rX   c                  C   s†   t jddd} t jddd}t jdddd}| |u s8J ‚| |u sDJ ‚tjtdd  t jddd	d}W d   ƒ n1 sx0    Y  d S )
NrW   rI   rJ   T)rI   )rI   rK   zpolar=True, yet projection='3d')ÚmatchÚ3d)r   r6   r   r4   Ú
ValueErrorrD   r    r    r!   Ú test_subplot_polar_normalization  s    ÿr\   c                  C   s~   t ƒ } t ¡ }|  |¡ d}|D ]@}| ¡  tj|d}|t ¡ u sHJ ‚|j|ksVJ ‚|  |¡ q t| ƒdt|ƒ kszJ ‚d S )N)ZaitoffÚhammerZlambertZ	mollweiderI   rL   rZ   rJ   r1   )Úsetr   r6   ÚaddrS   rO   Úlen)Zcreated_axesr/   ZprojectionsZprojr    r    r!   Útest_subplot_change_projection  s    
ra   c                  C   sX   t  ddd¡\} t| tjjƒs"J ‚t  ddd¡\}t|tjjƒsDJ ‚| j|ju sTJ ‚d S )Ng        g      ð?Úrog…ëQ¸ù?ç      à?Zbo)r   rI   Ú
isinstancer   ÚlinesZLine2DrN   )Zln1Zln2r    r    r!   Útest_polar_second_call.  s
    rf   c                  C   sz   t  g d¢¡} t jg d¢d}tj |j ¡ | j ¡ ¡ t  g d¢¡} t jg d¢g d¢d}tj |j ¡ | j ¡ ¡ d S )N)çš™™™™™É?rg   rc   rc   )Úposition)çš™™™™™¹?ri   çš™™™™™é?rj   )r   rN   ÚnpÚtestingZassert_allcloseZbboxZ
get_points)ZaxrefZaxtestr    r    r!   Útest_fallback_position8  s    ÿÿrm   c                  C   sX   t  ¡ } |  d¡}t  ¡  t  ¡ | ks*J ‚t  |d ¡}t  ¡ | ksHJ ‚|| ksTJ ‚d S )Nr   r1   )r   rM   Ú
subfiguresrT   )Zfig1ÚsubfigsÚcurrentr    r    r!   Ú%test_set_current_figure_via_subfigureF  s    
rq   c                  C   sd   t  ¡ } |  d¡}|d jddd}|d jddd t  ¡ |ksFJ ‚t  |¡ t  ¡ |ks`J ‚d S )Nr   r   r1   T)Zsqueeze)r   rM   rn   r,   rC   Zsca)r.   ro   r/   r    r    r!   Ú"test_set_current_axes_on_subfigureR  s    

rr   c                  C   s,   t  d¡} tjj| jddd d¡dd d S )NÚIPythonz--pylabz-cú;)zimport matplotlib.pyplot as pltz<assert plt._REPL_DISPLAYHOOK == plt._ReplDisplayHook.IPYTHONé<   )Útimeout)r   Zimportorskipr   rl   Zsubprocess_run_helperZstart_ipythonr   )rs   r    r    r!   Útest_pylab_integration^  s    
ørw   c                  C   sž   t tƒjd } |  ¡ s t d¡ |  ¡ }t d|tj	¡}t
dd„ | d¡ d¡D ƒƒ}t
t ¡ ƒ}| |¡}|r~td|›ƒ‚| |¡}|rštd	|›ƒ‚d
S )z6Test that pyplot_summary lists all the plot functions.z#../../../doc/api/pyplot_summary.rstz#Documentation sources not availablez:nosignatures:\n\n(.*?)\n\nc                 s   s   | ]}|  ¡ V  qd S r&   )Ústrip)Ú.0Úliner    r    r!   Ú	<genexpr>t  ó    z*test_doc_pyplot_summary.<locals>.<genexpr>r1   r   zsThe following pyplot functions are not listed in the documentation. Please add them to doc/api/pyplot_summary.rst: z•The following functions are listed in the pyplot documentation, but they do not exist in pyplot. Please remove them from doc/api/pyplot_summary.rst: N)r   r   Úparentr   r   r   r   ÚreÚsearchÚDOTALLr^   Úgroupr   r   Zget_plot_commandsÚ
differenceÚAssertionError)Zpyplot_docsre   ÚmZdoc_functionsZplot_commandsÚmissingÚextrar    r    r!   Útest_doc_pyplot_summaryl  s*    

þÿ
þÿr‡   c                  C   sÆ   t  ¡  t  t dd¡¡ t jdd\} }t |tjg tjdk¡sHJ ‚|g ksTJ ‚t j	ddgdd	gdd
 t  
¡ }|jdd} |jdd}t | t ddg¡k¡s¨J ‚dd„ |D ƒdd	gksÂJ ‚d S )Nr1   é
   T)Úminor)Zdtypeg      @g      @ÚaÚb)ZticksÚlabelsr‰   c                 S   s   g | ]}|  ¡ ‘qS r    )Zget_text)ry   Úlr    r    r!   Ú
<listcomp>  r|   z$test_minor_ticks.<locals>.<listcomp>)r   rM   Zplotrk   ZarangeZxticksÚallÚarrayÚfloat64ZyticksrC   Z
get_yticksZget_yticklabels)Ztick_posZtick_labelsr/   r    r    r!   Útest_minor_ticks„  s    r’   )'r   r~   Únumpyrk   r   r   Úpathlibr   r   Z
matplotlibr   r   r   Zmatplotlib._apir   r"   r+   r0   r3   r7   r;   r<   r=   r@   rH   rQ   rR   rU   rV   rX   r\   ra   rf   rm   rq   rr   rw   r‡   r’   r    r    r    r!   Ú<module>   sB   ,



