o
    jtj                     @   s  d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dlm	Z
 d dlZd dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* dd	 Z+d
d Z,dd Z-dd Z.dd Z/dd Z0dddie1dfdddde1dfdddde1dfdddie1dfdddde1dfdddde1dfgZ2g dZ3ej4j5de2e3ddd  Z6d!d" Z7d#d$ Z8d%d& Z9d'd( Z:d)d* Z;d+d, Z<ej45d-e<d.d/d0 Z=ej45d1e<d2d3d4 Z>ej45d5d6d7e?fd8d9e@d:d:fd;d<e?fd:ge?fgd=d> ZAej45d?d@dAe?fd8d9e@d:d:fd;d<e?fd:ge?fgdBdC ZBdDdE ZCdFdG ZDdHdI ZEej4jFejGdJkdKdLdMdN ZHej4jFejGdJkdKdLdOdP ZIej4jFejGdJkozeJ  dQdLdRdS ZKdTdU ZLej45dVg dWdXdY ZMej45dVg dZd[d\ ZNej45dVg d]d^d_ ZOej45dVg d`dadb ZPej45dVdcddgdedf ZQdS )g    N)mock)cyclerCycler)parse)_api_c_internal_utils)validate_boolvalidate_colorvalidate_colorlist_validate_color_or_linecolorvalidate_cyclervalidate_floatvalidate_fontstretchvalidate_fontweightvalidate_hatchvalidate_hist_binsvalidate_intvalidate_markeveryvalidate_stringlistvalidate_sketch_validate_linestyle_listify_validator)subprocess_run_for_testingc                 C   s  t jddd t jddd t jd }t jd }| d	 }|jd
dd t jd| id t jd | ks7J W d    n1 sAw   Y  t jd |ksOJ t j|d t jd dks_J W d    n1 siw   Y  t jd |kswJ t j|ddid t jd dksJ W d    n1 sw   Y  t jd |ksJ t ddidd }|  |  t | t jd dksJ d S )NtextF)usetexlines   )	linewidthtext.usetexlines.linewidthtest_rcparams.rczlines.linewidth: 33utf-8encodingrcfname!   ,   )r'   r%   c                   S   s   t jd dks	J d S )Nr   r)   mplrcParams r-   r-   _/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_rcparams.pyfunc>   s   ztest_rcparams.<locals>.func)r+   r%   r,   
write_text
rc_contextZrc_file)tmp_pathr   r   rcpathr/   r-   r-   r.   test_rcparams$   s0   



r4   c                  C   s~   t g ddddd} d }|t| ksJ d }|t| ks$J dd	gt| d
ks1J dgt| dks=J d S )N)zApple ChanceryZTextilezZapf ChanceryZcursivez
sans-serifnormal   )font.cursivefont.familyzfont.weight	font.sizea  
RcParams({'font.cursive': ['Apple Chancery',
                           'Textile',
                           'Zapf Chancery',
                           'cursive'],
          'font.family': ['sans-serif'],
          'font.size': 12.0,
          'font.weight': 'normal'})z
font.cursive: ['Apple Chancery', 'Textile', 'Zapf Chancery', 'cursive']
font.family: ['sans-serif']
font.size: 12.0
font.weight: normalr7   r9   zi[vz]r8   family)r+   RcParamslstripreprstrsortedZfind_alllist)r%   Zexpected_reprZexpected_strr-   r-   r.   test_RcParams_classJ   s   
	rA   c                  C   sP   t ddi} ddi}tt | | W d    d S 1 s!w   Y  d S )Nfigure.figsize)      @*   rC   rD      )r+   r;   pytestraises
ValueErrorupdate)r%   Zbad_dictr-   r-   r.   test_rcparams_updatek   s
   "rK   c                   C   s>   t t tddi W d    d S 1 sw   Y  d S )NrB   rE   )rG   rH   rI   r+   r;   r-   r-   r-   r.   test_rcparams_inits   s   "rL   c                  C   sV   ddl m}  tjtdd | | tdddd W d    d S 1 s$w   Y  d S )	Nr   )r   z3 were givenmatchrgb)color      )matplotlib.rcsetupr   rG   rH   	TypeErrorr@   )Zcclr-   r-   r.   test_nargs_cyclerx   s   "rU   c               	   C   sJ  t  G t  tj } | D ]	}| | tj|< qW d    n1 s%w   Y  t  ttj W d    n1 s?w   Y  W d    n1 sNw   Y  tt	 t
d  W d    n1 sgw   Y  tt	* t  dtjd< W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )NTzsvg.fonttype)r   Z'suppress_matplotlib_deprecation_warningr+   r1   r,   copydeepcopyrG   rH   rI   r   )Z_copykeyr-   r-   r.   test_Bug_2543   s,   





"rY   ZfacerP   rinherit)rP   zaxes.facecolorgedge)rP   axes.edgecolor)zsame facecolorzinherited facecolordifferent facecolorzsame edgecolorzinherited edgecolorr_   zcolor_type, param_dict, target)Zidsc                 C   s   | d|d|  d< d|  d}t|' t \}}|jtddd | }t|j	| |ks5J W d    d S 1 s@w   Y  d S )NrP   zlegend.get_rR   test)label)
popr+   r1   pltsubplotsZplotrangeZlegendgetattrZlegendPatch)
color_typeZ
param_dicttargetZget_func_axlegr-   r-   r.   test_legend_colors   s   "rm   c                  C   4   dt jd< t jddgddg} |  dksJ d S )NrZ   zlines.markerfacecolorrF   rQ   )r+   r,   r   Line2DZget_markerfacecolorlnr-   r-   r.   test_mfc_rcparams      
rr   c                  C   rn   )NrZ   zlines.markeredgecolorrF   rQ   )r+   r,   r   ro   Zget_markeredgecolorrp   r-   r-   r.   test_mec_rcparams   rs   rt   c                  C   s4   dt jd< t \} }|d}| dksJ d S )NrZ   zaxes.titlecolorZTitle)r+   r,   rd   re   	set_title	get_color)rj   rk   titler-   r-   r.   test_axes_titlecolor_rcparams   s   

rx   c                 C   sh   | d }|j ddd tjddd t|dd	}W d    n1 s$w   Y  |d
dks2J d S )Nr    ztimezone: UTCr!   r"   zlocale.getpreferredencodingz	UTF-32-BE)return_valueTFtimezoneUTC)r0   r   patchr+   Zrc_params_from_fileget)r2   r3   r%   r-   r-   r.   test_Issue_1713   s   r~   c                  C   s   dD ]} | t jd< qd S )N)
ZpngZjpegZtiffrawZrgbappmZsgiZbmpZpbmsvgzanimation.frame_formatr*   )fmtr-   r-   r.   test_animation_frame_formats   s   r   c              !   c   s   t g dd dD dd dD R dd ddd	g fD d
tdg fdddgfddgfddgfddgfddgddgfdddgftddgddgftddgddgff	t tfdtffd
ttdddd dddgddgdtdfD dd dD d
tt	dddd dddgddgdtdfD dd dD d
t
d td!d"ftd#d$d%gtd#d$d%gfd&td!d"td'g d( fd)td!d"td*g d+ fd,td!d"td#d$d%g ftd-d$d%gtd#d$d%gftdd.gd/td'dd.gfd0dtd!d" fd1dtd!d" fd2td!d"td*g d+ fd3td!d"d fd4td!td5fd6td!td"fd7td!td8ffd9tfd:tfd;tfd<tfd=tfd>tfd?tfd@tfdAtfdBtfdCtfdDtfdEtfdFtfdGtfdHtfdItftdJg dKtftd!g dLtffd
tdMdNtfdOtfdPtffd
tdQg dRfg dRg dRfdSdTgfg dUdVdWgftg dXtg dYgtg dXg dYgftg dXg dYgtg dXg dYgffdZtffd
td[d\tfd]tfd^tfd_tfd`tffd
tdadbtfdctffd
tdddedfdgg d+fg d+g d+ftdhtdhffdtffd
tdidjdkdldmg d+g d+ftdtd dd ftdddntdddnffd+tfg dotfg dptfg dqtfdrtfdstfdttfdutfdvtfdwtfdxtfdytfdztfd{tfdwtfdtft tffd
td|d}d~dddddddddddddgdddgffg ddg dffdddgfdddgffd	ddgfd	ddgfffdtfdtfddtfg d+tfdtfdddgftfd ddgftfdg d+ftfddgdftff	d
f}|D ],}|d }| r|d D ]\}}|||fV  qq|d D ]\}}|||fV  qqd S )Nc                 s       | ]}|d fV  qdS )TNr-   .0rj   r-   r-   r.   	<genexpr>       z/generate_validator_testcases.<locals>.<genexpr>)tyyesontrue1rF   Tc                 s   r   )FNr-   r   r-   r-   r.   r      r   )fnnoofffalse0r   Fc                 s       | ]}|t fV  qd S NrI   r   r-   r-   r.   r          aardvarkrQ   )	validatorsuccessfail za,babz
aardvark, zaardvark, ,)r   r   rF   )r   c                 s       | ]	}|d dgfV  qdS )rF   rQ   Nr-   r   r-   r-   r.   r          z1, 2      ?      @)rF   rQ   c                 s   r   r   r   r   r-   r-   r.   r      r   )r   r   rF   rF   rQ   rR   c                 s   r   )r   r   Nr-   r   r-   r-   r.   r      r   z1.5, 2.5)r   r   c                 s   r   r   r   r   r-   r-   r.   r      r   )r   r   r   r   Nzcycler("color", "rgb")rP   rO   Z	linestyle---zW(cycler("color", ["r", "g", "b"]) +
                          cycler("mew", [2, 3, 5]))Zmarkeredgewidth)rQ   rR      zcycler(c='rgb', lw=[1, 2, 3])r   r   z5cycler('c', 'rgb') * cycler('linestyle', ['-', '--'])Zlsr   )Zmewz2 * cycler('color', 'rgb')z2 * cycler('color', 'r' + 'gb')z"cycler(c='r' + 'gb', lw=[1, 2, 3])zcycler('color', 'rgb') * 2z6concat(cycler('color', 'rgb'), cycler('color', 'cmk'))Zrgbcmkzcycler('color', 'rgbcmk')[:3]zcycler('color', 'rgb')[::-1]Zbgr   zcycler("bleh, [])z1cycler('color', 'rgb') * * cycler('color', 'rgb')zCycler("linewidth", [1, 2, 3])z1cycler('c', [j.__class__(j) for j in ['r', 'b']])z2cycler('c', [j. __class__(j) for j in ['r', 'b']])z2cycler('c', [j.	__class__(j) for j in ['r', 'b']])z2cycler('c', [j.__class__(j) for j in ['r', 'b']])z9cycler('c', [j.__class__(j).lower() for j in ['r', 'b']])z-cycler('color', [x for x in ['r', 'g', 'b']])z1 + 2zos.system("echo Gotcha")z	import osz9def badjuju(a): return a; badjuju(cycler("color", "rgb"))zcycler("waka", [1, 2, 3])zcycler(c=[1, 2, 3])zcycler(lw=['a', 'b', 'c'])Zwaka)rF   rR   r   )ZC1rZ   r\   ))--|r   )\oOr   )/+*/.xr   r   r   z--_   Xzr,g,b)rZ   r\   r   zr, ,rZ   )r   r\   bluer\   r   )rF   r   r   r   rF   r   fish)
Nonenoner   r   )ZAABBCCz#AABBCC)ZAABBCC00z	#AABBCC00)tab:bluer   )C12r   )z	(0, 1, 0))              ?r   )r   r   )z(0, 1, 0, 1))r   r   r   r   )r   rF   r   rF   r   ztab:verybluez(0, 1)z(0, 1, 0, 1, 0)z(0, 1, none)z(0, 1, "0.5")))	linecolorr   )markerfacecolorr   )Zmfcr   )markeredgecolorr   )Zmecr   linemarker)autor   )fdr   )10
   1, 2, 3   )NNrF   rF   皙?r   )r   r   )r   r   rR   )rF   rQ   333333?)r   rQ   rR   )rF   rQ   r   )r   皙?r   )r   rQ   rR   )rF   r   r   )rF   r   )r   rF   abc)rF   r   )r   r   r   )r   r   )r   r   )solidr   )r   r   )dashedr   )-.r   )dashdotr   ):r   )dottedr   r   ) r   r   r   )ZDoTtEdr   )z1, 3)r   )rF   rR   gGz?i  r   g     |@)rF   rQ   rR   r   )r   g       @g      @g      @s   dottedr   zutf-16r   r   r   )r   r   iternparraysetrI   r   r   r   r   r   r@   r   r
   r	   r   r   Zaranger   slicerT   objectr   encode)validZvalidation_testsZvalidator_dictr   argri   Z
error_typer-   r-   r.   generate_validator_testcases   s  






	
@
	
	



  ^r   zvalidator, arg, targetTc                 C   sX   | |}t |tjrtj|| d S t |ts ||ksJ d S t|t|ks*J d S r   )
isinstancer   ZndarrayZtestingZassert_equalr   r@   )r   r   ri   resr-   r-   r.   test_validator_valid  s   
r   zvalidator, arg, exception_typeFc                 C   s8   t | | | W d    d S 1 sw   Y  d S r   )rG   rH   )r   r   Zexception_typer-   r-   r.   test_validator_invalid  s   
"r   zweight, parsed_weight)boldr   ZBOLD)d   r   )100r   r   )g4@   z20.6c                 C   T   |t u r tt  t|  W d    d S 1 sw   Y  d S t| |ks(J d S r   )rI   rG   rH   r   )weightZparsed_weightr-   r-   r.   test_validate_fontweight  
   
"r   zstretch, parsed_stretch)expandedr   ZEXPANDEDc                 C   r   r   )rI   rG   rH   r   )ZstretchZparsed_stretchr-   r-   r.   test_validate_fontstretch  r   r   c                  C   s2   dd t jD } | D ]}tt j| tsJ q
d S )Nc                 S   s   g | ]}d |v r|qS )Zkeymapr-   )r   kr-   r-   r.   
<listcomp>  s    z test_keymaps.<locals>.<listcomp>)r+   r,   r   r@   )Zkey_listr   r-   r-   r.   test_keymaps  s   r   c                   C   sZ   t jd dks	J t   dt jd< W d    n1 sw   Y  t jd dks+J d S )Nbackendzmodule://aardvark)r+   r,   r1   r-   r-   r-   r.   test_no_backend_reset_rccontext  s
   
r   c                
   C   s   t jddidI t jd du sJ tt! t jdddd W d    n1 s,w   Y  W d    n1 s;w   Y  t jd du sIJ W d    d S 1 sTw   Y  d S )Nr   Fr$   T)r   z	test.blah)r+   r1   r,   rG   rH   KeyErrorr-   r-   r-   r.   test_rcparams_reset_after_fail	  s   "r   linuxz
Linux only)reasonc                 C   sh   i t jdddt| d}ttj ttj	ddg|dtj
d W d    d S 1 s-w   Y  d S )Nr   ZDISPLAYZWAYLAND_DISPLAY
MPLBACKENDMPLCONFIGDIR-cz^import matplotlib;matplotlib.use('tkagg');import matplotlib.pyplot;matplotlib.pyplot.plot(42);T)envcheckstderr)osenvironr>   rG   rH   
subprocessCalledProcessErrorr   sys
executableDEVNULL)r2   r   r-   r-   r.   .test_backend_fallback_headless_invalid_backend  s   "r  c                 C   sb   i t jdddt| d}| d }|d ttjddg|dddd	j}| 	 d
ks/J d S )Nr   ZTkAggr   matplotlibrczbackend_fallback: truer   zTimport matplotlib.pyplot;matplotlib.pyplot.plot(42);print(matplotlib.get_backend());Tr   r   r   capture_outputagg)
r   r   r>   r0   r   r  r  stdoutstriplower)r2   r   rc_pathr   r-   r-   r.   +test_backend_fallback_headless_auto_backend&  s   
r  Zheadlessc                 C   s~   t tjt dkrttd}ni }tjdi | i tjdt| d}t	t
jddg|dddd	j}|  d
ks=J d S )Nz8.2.0)exc_typetkinterr   )r   r   r   a)  import matplotlib as mpl; sentinel = mpl.rcsetup._auto_backend_sentinel; assert mpl.RcParams({'backend': sentinel})['backend'] == sentinel; assert mpl.rcParams._get('backend') == sentinel; assert mpl.get_backend(auto_select=False) is None; import matplotlib.pyplot; print(matplotlib.get_backend())Tr  r  )r  )parse_versionrG   __version__dictImportErrorZimportorskipr   r   r>   r   r  r  r	  r
  r  )r2   Zpytest_kwargsr   r   r-   r-   r.   test_backend_fallback_headful<  s   	
r  c              	   C   s  |  tjddddd dd f ttj tjd tjd d ks%J W d    n1 s/w   Y  ttj dtjd< W d    n1 sJw   Y  tjd dksXJ |  tjd	d
 ttj tjd	 tjd kssJ W d    n1 s}w   Y  ttj dtjd	< W d    n1 sw   Y  tjd dksJ |  tjdd ttj tjd d u sJ W d    n1 sw   Y  |  tjdd ttj dtjd< W d    n1 sw   Y  tjd dksJ d tjd< tj	tj
  d S )Nzpatch.linewidth0.0zaxes.linewidthc                 S   s   d|  S NrQ   r-   )oldr-   r-   r.   <lambda>Z      z"test_deprecation.<locals>.<lambda>c                 S   s   | d S r  r-   )newr-   r-   r.   r  Z  r  rQ   rF   zpatch.edgecolor)r  r^   r^   z#abcdzpatch.force_edgecolor)r  Nzsvg.hashsalt)r  Zfoobar)setitemr+   Z_deprecated_maprG   ZwarnsZMatplotlibDeprecationWarningr,   Z_deprecated_ignore_mapZ_deprecated_remain_as_nonerJ   rV   )Zmonkeypatchr-   r-   r.   test_deprecationW  sV   


r  value)bestrF   r   g?ffffff?gr   z	(0.9, .7)c                 C   s   | t jd< d S )N
legend.locr*   r  r-   r-   r.   test_rcparams_legend_loc  s   r$  )r  rF   r  r!  c                 C   s\   | d }| d|  tj|d tjd |ksJ W d    d S 1 s'w   Y  d S )Nr  zlegend.loc: r&   r"  r0   r+   r1   r,   r2   r  r  r-   r-   r.   "test_rcparams_legend_loc_from_file  s
   
"r'  )r   r   z	(1, 2, 3)c                 C   s0   | t jd< t jd dksJ t| dksJ d S )Npath.sketchr   )r+   r,   r   r#  r-   r-   r.   test_validate_sketch  s   
r)  )rF   r   z1 2 3c                 C   st   t jtdd t|  W d    n1 sw   Y  t jtdd | tjd< W d    d S 1 s3w   Y  d S )Nzscale, length, randomnessrM   r(  )rG   rH   rI   r   r+   r,   r#  r-   r-   r.   test_validate_sketch_error  s   
"r*  r   z(1,2,3)c                 C   s\   | d }| d|  tj|d tjd dksJ W d    d S 1 s'w   Y  d S )Nr  zpath.sketch: r&   r(  r   r%  r&  r-   r-   r.   #test_rcparams_path_sketch_from_file  s
   "r+  )RrV   r   r   r  Zunittestr   r   r   Zpackaging.versionr   r  rG   Z
matplotlibr+   r   r   Zmatplotlib.pyplotZpyplotrd   Zmatplotlib.colorscolorsZmcolorsnumpyr   rS   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Zmatplotlib.testingr   r4   rA   rK   rL   rU   rY   Zto_rgbaZlegend_color_testsZlegend_color_test_idsmarkZparametrizerm   rr   rt   rx   r~   r   r   r   r   rI   r   r   r   r   r   r   Zskipifplatformr  r  Zxdisplay_is_validr  r  r$  r'  r)  r*  r+  r-   r-   r-   r.   <module>   s    H&!





	 i






)



