B
    Jd4                 @   s  d dl mZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
Zd dl
mZmZ d dlmZmZ dZdZeeiZed-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 e	j!j"d!d"d#gd$d%gd&d'd( Z#d)d* Z$d+d, Z%dS ).    )contextmanager)Path)TemporaryDirectoryN)pyplotstyle)USER_LIBRARY_PATHSSTYLE_EXTENSIONz
image.cmapZpinkc          	   c   sv   |st }d| tf }zRt B}t||ddd | D  t| t	
  dV  W dQ R X W dt	
  X dS )zAContext manager to create a style sheet in a temporary directory.z%s.%s
c             s   s   | ]\}}d  ||V  qdS )z{}: {}N)format).0kv r   M/var/www/html/venv/lib/python3.7/site-packages/matplotlib/tests/test_style.py	<genexpr>   s    ztemp_style.<locals>.<genexpr>N)DUMMY_SETTINGSr   r   r   
write_textjoinitemsr   appendr   Zreload_library)
style_namesettings	temp_filetmpdirr   r   r   
temp_style   s    

r   c          	   C   sJ   ddi}d}t || W d Q R X t| jdkrB|| jd  ksFtd S )NZfoobarbasename   r   )r   lenrecords
getMessageAssertionError)ZcaplogZSETTINGSr   r   r   r   )test_invalid_rc_warning_includes_filename&   s    
r"   c            	   C   s(   t dt dtjkstW d Q R X d S )NZ_test_)r   r   r   	availabler!   r   r   r   r   test_available0   s    r$   c            
   C   sL   dt jt< tdt. td t jt tks4tW d Q R X W d Q R X d S )Ngraytest)	mplrcParamsPARAMr   r   r   contextVALUEr!   r   r   r   r   test_use5   s    
r,   c          
   C   sx   t | d}|d tdtP dtjdkr0dnd |   }t	| t
jd d	ks`tW d Q R X W d Q R X d S )
Nfilezaxes.facecolor: adeader&   zfile:win32z/// zaxes.facecolorz#adeade)r   r   r   r   sysplatformresolveas_posixr   r*   r'   r(   r!   )r   pathurlr   r   r   test_use_url<   s    

"r6   c          	   C   sp   dt jt< dt }t| |}|t dt  t| t jt tksPt	W d Q R X t jt dkslt	d S )Nr%   ztext.z : )
r'   r(   r)   r   r   r   r+   r   r*   r!   )r   r   r4   r   r   r   test_single_pathG   s    


r7   c            
   C   s^   dt jt< tdt. td t jt tks4tW d Q R X W d Q R X t jt dksZtd S )Nr%   r&   )	r'   r(   r)   r   r   r   r*   r+   r!   r   r   r   r   test_contextQ   s
    
&r8   c           	   C   sT   d} d}| t jt< tt|i t jt |ks4tW d Q R X t jt | ksPtd S )Nr%   blue)r'   r(   r)   r   r*   r!   )original_valueother_valuer   r   r   test_context_with_dictZ   s    
r<   c           
   C   sn   d} d}| t jt< tdt6 tdt|ig t jt |ksDtW d Q R X W d Q R X t jt | ksjtd S )Nr%   r9   r&   )r'   r(   r)   r   r   r   r*   r!   )r:   r;   r   r   r   'test_context_with_dict_after_namedstylec   s    
&r=   c           
   C   sn   d} d}| t jt< tdt6 tt|idg t jt tksDtW d Q R X W d Q R X t jt | ksjtd S )Nr%   r9   r&   )	r'   r(   r)   r   r   r   r*   r+   r!   )r:   r;   r   r   r   (test_context_with_dict_before_namedstylen   s    
&r>   c           
   C   s   d} d}d}||i}| t jt< | t j|< tdtD td|g* t jt tksXtt j| |ksjtW d Q R X W d Q R X t jt | kstt j| | kstd S )Nr%   ztext.usetexTr&   )	r'   r(   r)   r   r   r   r*   r+   r!   )r:   Zother_paramr;   dr   r   r   .test_context_with_union_of_dict_and_namedstyley   s    
&r@   c              C   s   d} d}t t|ib tjt |ks*tt t| dd i}tt | W d Q R X W d Q R X tjt |ksttW d Q R X d S )Nr%   r9   Zbadparam)	r   r*   r)   r'   r(   r!   pytestZraisesKeyError)r:   r;   xr   r   r   test_context_with_badparam   s    rD   equiv_styles)mpl20default)mpl15ZclassicrF   rH   )Zidsc          
   C   sx   g }x2| D ]*}t | |tj  W d Q R X q
W |d }x2t| dd  |dd  D ]\}}||ks\tq\W d S )Nr   r   )r   r*   r   r'   r(   copyzipr!   )rE   Zrc_dictsZstyZrc_basenmrcr   r   r   
test_alias   s    
$rM   c               C   sL   t jd d kstt  t jd dks,ttj  t jd dksHtd S )Nzpath.sketch)r   d      )r'   r(   r!   pltxkcdnptestingZbreak_cyclesr   r   r   r   test_xkcd_no_cm   s
    
rT   c            	   C   sN   t jd d kstt  t jd dks.tW d Q R X t jd d ksJtd S )Nzpath.sketch)r   rN   rO   )r'   r(   r!   rP   rQ   r   r   r   r   test_xkcd_cm   s    
rU   )N)&
contextlibr   pathlibr   tempfiler   r0   numpyrR   rA   Z
matplotlibr'   r   rP   r   Zmatplotlib.style.corer   r   r)   r+   r   r   r"   r$   r,   r6   r7   r8   r<   r=   r>   r@   rD   markZparametrizerM   rT   rU   r   r   r   r   <module>   s<   

		