o
    Õj»:  ã                   @   s†  d Z ddlZddlZddlZddlmZ ddlmZ ddlZddl	m
Z
 ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZmZ d
d„ Zej j!dddd„ ƒZ"dd„ Z#dd„ Z$edgddddd„ ƒZ%dd„ Z&dd„ Z'dd„ Z(d d!„ Z)ed"gde *¡ d#kr›dnd$dd%d&„ ƒZ+ed'd(d)d*„ ƒZ,d+d,„ Z-d-d.„ Z.ed/gdd0e *¡ d#krÁdnd1d2d3d4„ ƒZ/ed5gdd6d7d8„ ƒZ0d9d:„ Z1ed;gd<d=d>d?„ ƒZ2d@dA„ Z3edBgd(dCdD„ ƒZ4ej  5dEdFdGg¡ed'd(dHdI„ ƒƒZ6dJdK„ Z7dLdM„ Z8edNgdd0dOdPdQ„ ƒZ9edBgd(dRdS„ ƒZ:dTdU„ Z;edBgd(dVdW„ ƒZ<edBgd(dXdY„ ƒZ=dZd[„ Z>d\d]„ Z?dS )^z%
Tests specific to the lines module.
é    N)ÚSimpleNamespace)Úcycler)Úassert_array_equal)Ú_path)ÚMarkerStyle)ÚPath)Úimage_comparisonÚcheck_figures_equalc                  C   sH   d\} }t  ddg¡t  ddg¡}}d}tt | ||||¡dgƒ dS )zTest a problematic case.)i)  i†  g     H@g     ÀW@g     ˜@gÃõ(\Â@r   N)ÚnpÚarrayr   ÚmlinesZsegment_hits)ZcxÚcyÚxÚyZradius© r   ú\/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_lines.pyÚtest_segment_hits   s   r   é   )Zrerunsc            
      C   sœ   d} t  dd| ¡}t jj| d}t ¡ }t ¡ }t ||¡}| 	d¡ t
tj|jjdddƒ}| |¡ t
tj|jjdddƒ}|| }d}	||	k sLJ ‚d	S )
ac  
    GitHub issue #1256 identified a bug in Line.draw method

    Despite visibility attribute set to False, the draw method was not
    returning early enough and some pre-rendering code was executed
    though not necessary.

    Consequence was an excessive draw time for invisible Line instances
    holding a large number of points (Npts> 10**6)
    i€–˜ r   é   ©ÚsizeFr   )ÚnumberÚrepeaté   N)r
   ÚlinspaceÚrandomÚnormalÚpltÚfigureZsubplotr   ÚLine2DZset_visibleÚminÚtimeitr   ÚcanvasÚdrawÚadd_line)
ÚNr   r   ÚfigÚaxÚlZ	t_no_lineZt_invisible_lineZslowdown_factorZslowdown_thresholdr   r   r   Útest_invisible_Line_rendering$   s   

r)   c                  C   ó6   t  ¡ \} }tj d¡ |jtj dd¡dgd d S ©Nr   é   é   ©r   )r   r   )Z
linestyles©r   Úsubplotsr
   r   ÚseedZcontourZrandn©r&   r'   r   r   r   Útest_set_line_coll_dashP   s   r3   c                  C   sö   t jtdd t dg ¡ W d   ƒ n1 sw   Y  t jtdd t g d¡ W d   ƒ n1 s5w   Y  t g g ¡} t jtdd |  d¡ W d   ƒ n1 sWw   Y  t jtdd |  d¡ W d   ƒ d S 1 stw   Y  d S )Nzxdata must be©Úmatchr   zydata must ber   z	x must bez	y must be)ÚpytestÚraisesÚRuntimeErrorr   r   Z	set_xdataZ	set_ydata©Úliner   r   r   Útest_invalid_line_dataX   s   ÿÿÿ"ÿr;   Zline_dashesTgú~j¼t“h?)Úremove_textÚtolc                  C   s$   t  ¡ \} }|jtdƒddd d S )Né
   r.   é   ©Ú	linestyleÚlw)r   r0   ÚplotÚranger2   r   r   r   Útest_line_dashese   s   rE   c                  C   st   t  ¡ \} }|jtdƒdd |jtdƒdd |jtdƒdd |jtdƒdd |jtdƒdd | j ¡  d S )Nr>   Únone)ÚcolorÚrz.3)r   r   r   r   )r   r   r   ©r   r0   rC   rD   r"   r#   r2   r   r   r   Útest_line_colorsn   s   rJ   c                  C   óF   t  g g ¡} t t¡ |  d¡ W d   ƒ d S 1 sw   Y  d S ©NZfoobar)r   r   r6   r7   Ú
ValueErrorZ	set_colorr9   r   r   r   Útest_valid_colorsx   ó   "ÿrN   c                  C   sP   t  ¡ \} }ddddddddd	d
dg ffD ]}|jtdƒ|d q| j ¡  d S )Nú-Zsolidú--Údashedz-.Údashdotú:Údotted)r   N)r   r   r   r>   )rA   rI   )r&   r'   Úlsr   r   r   Útest_linestyle_variants~   s   
þrW   c                  C   rK   )NZaardvark)r   r   r6   r7   rM   Zset_linestyler9   r   r   r   Útest_valid_linestylesˆ   rO   rX   zdrawstyle_variants.pngÚx86_64g¸…ëQ¸ž?c                  C   sP   t  d¡\} }g d¢}t|j|ƒD ]\}}|jtdƒ|d |jddd qd S )Né   )Údefaultz	steps-midú	steps-prez
steps-postÚstepsNéÐ  ©Z	drawstyle)r   r   )ZxlimZylim)r   r0   ÚzipÚflatrC   rD   Úset)r&   ÚaxsZdssr'   Zdsr   r   r   Útest_drawstyle_variantsŽ   s   þrd   )Úpng)Ú
extensionsc                 C   sT   |   ¡ }t d¡}| |d |¡ |  ¡ }t ¡  dd¡}|j||||j d d S )Nr^   g     @Ÿ@ç        )Ú	transform)Úadd_subplotr
   ÚarangerC   ÚmtransformsZAffine2DÚ	translateZ	transData)Úfig_refÚfig_testr'   r   Útr   r   r   Útest_no_subslice_with_transformœ   s   
rp   c                  C   rK   rL   )r   r   r6   r7   rM   Úset_drawstyler9   r   r   r   Útest_valid_drawstyles§   rO   rr   c                  C   sŒ   t  ddt j d¡} t  | ¡}t ¡ \}}| | |¡\}| d¡ t| 	¡ j
ƒdt| ƒ d ks2J ‚| d¡ t| 	¡ j
ƒt| ƒksDJ ‚d S )Nr   r   r>   r\   r   r[   )r
   r   ÚpiÚsinr   r0   rC   rq   ÚlenÚget_pathÚvertices)r   r   r&   r'   r:   r   r   r   Útest_set_drawstyle­   s   

"
rx   Zline_collection_dashesZmpl20gÍÌÌÌÌÌä?)r<   Ústyler=   c                  C   r*   r+   r/   r2   r   r   r   Útest_set_line_coll_dash_imageº   s   rz   zmarker_fill_styles.png)r<   c                  C   sÚ   t  g d¢dddddt g d¢¡g¡} d}t d	d	g¡}t d
dg¡}t ¡ \}}tdƒD ]/\}}ttjj	ƒD ]$\}}	t
| ƒ}
|j|d | || d|d   |d||	|	d|
|
dd q7q-| d
dg¡ | ddg¡ d S )N©r   r   r   Úgz#ff0000ÚcÚmr   )r   r   r   Z
lightgreenr   r   é	   zov^<>8sp*hHDdPXr>   ç      à?r   r,   r?   )	ÚmarkerZ
markersizeZmarkerfacecoloraltÚ	fillstyleÚlabelZ	linewidthrG   ZmarkeredgecolorZmarkeredgewidthg      @éûÿÿÿé›   )Ú	itertoolsÚcycler
   r   r   r0   Ú	enumerater   r   Z
fillStylesÚnextrC   Zset_ylimZset_xlim)ÚcolorsZaltcolorr   r   r&   r'   Újr   ÚiÚfsrG   r   r   r   Útest_marker_fill_stylesÂ   s0   ÿ ÷þrŽ   c                  C   sB   t jg d¢tddddd\} |  ¡ dksJ ‚|  ¡ dksJ ‚dS )z=Test that markerfacecolor does not override fillstyle='none'.©r   r   r   ÚorF   )r‚   Úred)r   ZmarkerfacecolorN)r   rC   r   Zget_fillstyleZget_markerfacecolor)r(   r   r   r   Útest_markerfacecolor_fillstyleâ   s
   ÿr’   Zscaled_linesr[   )ry   c            	      C   sŽ   t  dd¡} t ¡ \}}g d¢}ttjd ƒ}tt||ƒƒD ]&\}\}}t  ddd¡D ]}|j	| |t  
d¡ d|  f||d	œ|¤Ž q+qd S )
Nr   é    )rR   rU   rS   úaxes.prop_cycler€   r>   é2   çš™™™™™¹?r@   )r
   r   r   r0   r   Ú
matplotlibÚrcParamsrˆ   r`   rC   Zones)	Úthr&   r'   Zlins_stylesr   r‹   rV   ZstyrB   r   r   r   Útest_lw_scalingê   s   .ÿÿrš   c                  C   sœ   t  t g d¢¡¡sJ ‚t  t dtjdg¡¡sJ ‚t  ddgtjgd  ddg ¡r-J ‚t  t dd	gd
¡¡r:J ‚dtjj } t 	tjg|  t
| ƒ¡ d S )N©r   r   r   r   r   r?   éd   r   r   i   i   z>i4)r   Zis_sorted_and_has_non_nanr
   r   Únanr   r   Z_subslice_optim_min_sizer   rC   rD   )Únr   r   r   Útest_is_sorted_and_has_non_nanõ   s   &rŸ   re   c                 C   s:   |   ¡  ddgd¡ |  ¡ jg d¢g d¢dddgd d S )Nr   r   z-or{   )r   r   r   r   ©Ú	markevery)r0   ÚsteprC   ©rn   rm   r   r   r   Útest_step_markersÿ   s   &r¤   Úparentr   Úaxesc              
      s6  t j d¡ t  ddd¡}t j t|ƒ¡}d ddg d¢ddgtd	d
dƒt  t|ƒ¡|dk ddg	}g d¢}|dkrR|d d… }|d d… }‡fdd„}‡fdd„}n"|dkrttˆ 	dd¡j
ƒ‰tˆ 	dd¡j
ƒ‰ ‡fdd„}‡ fdd„}|D ]	}	||||	d qv|D ]}	t  t|	ƒ¡ t¡ t¡}
||||
d q‚d S )Né*   r   r   é   é   )r   r?   )r   r?   é   éÿÿÿÿr?   r>   r   r€   ç333333Ó?)r¬   çš™™™™™Ù?)	Z11111111111111Z10001000100010Z00100001000010Z01000100000100Z10000000000001Z00000101010000Z01110001110110Z11011011011110Z01010011011101r   éþÿÿÿc                   ó   ˆ   tj| |d|d¡ d S ©Nr   ©r   r¡   ©Ú
add_artistr   r   ©r   r   r¡   )rn   r   r   Úadd_test  ó   ÿz test_markevery.<locals>.add_testc                   r¯   r°   r²   r´   )rm   r   r   Úadd_ref  r¶   ztest_markevery.<locals>.add_refr¦   r   c                   ó   t ˆ ƒj| |d|d d S ©Nz-gDr    ©r‰   rC   r´   )Úaxs_testr   r   rµ   %  ó   c                   r¸   r¹   rº   r´   )Úaxs_refr   r   r·   (  r¼   r    )r
   r   r1   r   Zrandru   Úslicerj   Úiterr0   ra   r   ÚlistZastypeÚintÚbool)rn   rm   r¥   r   r   Z
cases_testZ	cases_refrµ   r·   ÚcaseÚmer   )r½   r»   rm   rn   r   Útest_markevery  s2   ýþrÅ   c                  C   sb   t  ¡ } |  tjddgddgddd¡ t t¡ | j 	¡  W d   ƒ d S 1 s*w   Y  d S )Nr   r   r   r€   r±   )
r   r   r³   r   r   r6   r7   rM   r"   r#   )r&   r   r   r   Ú.test_markevery_figure_line_unsupported_relsize3  s
    "ÿrÆ   c                  C   sÞ   t  ¡ \} }|jg d¢tdƒd\}| j ¡  | ¡ dksJ ‚| d¡ | j ¡  | tdƒ¡ | j ¡  t 	ddgddgdd	gg¡}|jg d
¢t|ƒdd\}|jg d¢|dd\}t
| ¡ j|jƒ t
| ¡ j|jƒ d S )N)r   r©   r   ÚD)r   Úsr   r«   r   r   r   r   é   )r   Úms)r   r   r   )r   r0   rC   r   r"   r#   Z
get_markerZ
set_markerr   Z_create_closedr   rw   )r&   r'   r:   Z	triangle1Úline2Úline3r   r   r   Útest_marker_as_markerstyle:  s   



rÍ   zstriped_line.png)r<   ry   c               	   C   sf   t j d¡} t ¡ \}}|j| jdddddddd	 |j| jddd
dddddd |jdd d S )Ni!N,é   r   ZorangeÚbluerQ   r?   ú )rG   ÚgapcolorrA   rB   rƒ   r‘   Úblack)r   )r   r?   r©   r   r€   )rG   rÑ   rA   rB   rƒ   Úalpha)Zhandlelength)r
   r   Zdefault_rngr   r0   rC   ÚuniformZlegend)ÚrngÚ_r'   r   r   r   Útest_striped_linesN  s   ÿÿr×   c                 C   s8   |   ¡ jddgg d¢d |  ¡ jddgg d¢d d S )Nr   r   r›   )Údashes)r   r   r   r   r   r   )ri   rC   r£   r   r   r   Útest_odd_dashesY  s   rÙ   c                  C   s  t  ¡ \} }t| jjd | jjd d d}|jddgddgdd\}| |¡\}}|r.J ‚|jddgddgddd	\}| |¡\}}|sGJ ‚t|d
 dgƒ |jddgddgdd\}| |¡\}}|rgJ ‚| 	d¡ | |¡\}}|swJ ‚t|d
 dgƒ d S )Nr   é   )r   r   r   r   T)Úpickerr,   )rÛ   Z
pickradiusÚind)
r   r0   r   ZbboxÚwidthÚheightrC   Úcontainsr   Zset_pickradius)r&   r'   Zmouse_eventZl0ÚfoundÚindicesÚl1Úl2r   r   r   Útest_picking_  s$   ÿ
rä   c                 C   s^   t  ddd¡}|  ¡  ||d¡\}tdƒ|d d …< | d¡ | ¡ jg d¢g d¢ddd d S )	Nr   rZ   r   z.-r   r]   )r   r   r©   r_   )r
   rj   ri   rC   rD   rq   )rn   rm   ro   r(   r   r   r   Útest_input_copyy  s
   
"rå   c                 C   sÖ   dddg d¢ddgt ddd	ƒd
ddddg}tjd }|t ddt|ƒ¡ƒ}t dd¡}d|d  }| ¡ }t|ƒD ]\}}	|j|| d|	|| d q9t	||dt
jd< |  ¡ }
t|ƒD ]\}}|
 || d¡ q\dS )z*Test that we can set markevery prop_cycle.Né   )r-   ræ   )é   é   r-   r   r«   rœ   éÈ   r   r–   r¬   g      ø?)rg   r–   )gÍÌÌÌÌÌÜ?r–   Zjetçš™™™™™É?çš™™™™™é?r   r?   r   zo-)r¡   rG   r”   )r¾   ÚmplZ	colormapsr
   r   ru   ri   rˆ   rC   r   r—   r˜   )rn   rm   ÚcasesZcmaprŠ   r   r   rc   rŒ   r¡   r'   rÖ   r   r   r   Útest_markevery_prop_cycle„  s$   þ
ÿÿrî   c                  C   sv  t  ¡ \} }|jddd}| dd¡}| d¡ | d¡ | d¡ | d¡ | ¡ dks/J ‚| ¡ dks7J ‚| ¡ dks?J ‚| ¡ dksGJ ‚t	 
tj¡ | d	d
¡ W d   ƒ n1 s^w   Y  t	 
tj¡ | dd¡ W d   ƒ n1 szw   Y  t	jtdd | d	d
¡ W d   ƒ n1 s—w   Y  t	jtdd | d¡ W d   ƒ d S 1 s´w   Y  d S )N)r–   r–   ç333333ã?©Zslope)rë   r­   )rê   r¬   g333333@)r¬   rê   )rï   rë   rê   r¬   rë   z.Cannot set an 'xy2' value while 'slope' is setr4   z-Cannot set a 'slope' value while 'xy2' is setr   )r   r0   ÚaxlineZset_xy1Z	set_slopeZset_xy2Zget_xy1Z	get_slopeZget_xy2r6   Zwarnsrì   ZMatplotlibDeprecationWarningr7   rM   )r&   r'   Úline1rË   r   r   r   Útest_axline_setters  s6   



ÿÿÿþÿ"þró   c                  C   sV   t jddd} |  ¡  d¡}|  ¡  d¡}|d |d  }|dks#J ‚|dk s)J ‚dS )	z@Test that small slopes are not coerced to zero in the transform.)r   r   g›+¡†›„=rð   )r   r   r   r   gê-™—‘=N)r   rñ   Zget_transformZtransform_point)r:   Úp1Zp2Zdyr   r   r   Útest_axline_small_slope¼  s   rõ   )@Ú__doc__r†   Úplatformr!   Útypesr   r   Únumpyr
   Znumpy.testingr   r6   r—   rì   r   Zmatplotlib.linesÚlinesr   Zmatplotlib.markersr   Zmatplotlib.pathr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.transformsZ
transformsrk   Zmatplotlib.testing.decoratorsr   r	   r   ÚmarkZflakyr)   r3   r;   rE   rJ   rN   rW   rX   Úmachinerd   rp   rr   rx   rz   rŽ   r’   rš   rŸ   r¤   ZparametrizerÅ   rÆ   rÍ   r×   rÙ   rä   rå   rî   ró   rõ   r   r   r   r   Ú<module>   s‚    

+


ÿ



ÿ






,








