U
    \	a_                     @   s  d dl mZ d dlmZ d dl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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 )/    )OrderedDict)contextmanagerN)Path)TemporaryDirectory)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 5 Q R X W 5 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   ?/tmp/pip-unpacked-wheel-wjyw_3jo/matplotlib/tests/test_style.py	<genexpr>   s     ztemp_style.<locals>.<genexpr>N)DUMMY_SETTINGSr	   r   Zreload_libraryr   r   
write_textjoinitemsr   append)Z
style_namesettings	temp_filetmpdirr   r   r   
temp_style   s    

r   c              	   C   sJ   ddi}d}t || W 5 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 5 Q R X d S )NZ_test_)r   r   r   	availabler!   r   r   r   r   test_available1   s    r$   c                
   C   sL   dt jt< tdt. td t jt tks4tW 5 Q R X W 5 Q R X d S Ngraytest	mplrcParamsPARAMr   r   r   contextVALUEr!   r   r   r   r   test_use6   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 5 Q R X W 5 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    


r8   c              	   C   sp   dt jt< dt }t| |}|t dt  t| t jt tksPt	W 5 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   r6   r   r   r   test_single_pathH   s    


r9   c                
   C   s^   dt jt< tdt. td t jt tks4tW 5 Q R X W 5 Q R X t jt dksZtd S r%   r(   r   r   r   r   test_contextR   s
    
&r:   c               	   C   sT   d} d}| t jt< tt|i t jt |ks4tW 5 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_dict[   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 5 Q R X W 5 Q R X t jt | ksjtd S Nr&   r;   r'   )r)   r*   r+   r   r   r   r,   r!   r<   r   r   r   'test_context_with_dict_after_namedstyled   s    
&rA   c               
   C   sn   d} d}| t jt< tdt6 tt|idg t jt tksDtW 5 Q R X W 5 Q R X t jt | ksjtd S r@   r(   r<   r   r   r   (test_context_with_dict_before_namedstyleo   s    
&rB   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 5 Q R X W 5 Q R X t jt | kstt j| | kstd S )Nr&   ztext.usetexTr'   r(   )r=   Zother_paramr>   dr   r   r   .test_context_with_union_of_dict_and_namedstylez   s    
&rD   c                  C   s   d} d}t t| fdg}tt|i\ tjt |ks:tt|g}tt	 | W 5 Q R X W 5 Q R X tjt |ks~tW 5 Q R X d S )Nr&   r;   )ZbadparamN)
r   r+   r   r,   r)   r*   r!   pytestZraisesKeyError)r=   r>   rC   xr   r   r   test_context_with_badparam   s    rH   equiv_styles)mpl20default)mpl15ZclassicrJ   rL   )idsc              
   C   sp   g }| D ]*}t | |tj  W 5 Q R X q|d }t| dd  |dd  D ]\}}||ksVtqVd S )Nr   r   )r   r,   r   r)   r*   copyzipr!   )rI   Zrc_dictsZstyZrc_basenmrcr   r   r   
test_alias   s    "rR   c                   C   sJ   t jd d kstt  t jd dks,tt  t jd dksFtd S Nzpath.sketch)r   d      )r)   r*   r!   pltxkcdgcZcollectr   r   r   r   test_xkcd_no_cm   s
    rY   c                	   C   sN   t jd d kstt  t jd dks.tW 5 Q R X t jd d ksJtd S rS   )r)   r*   r!   rV   rW   r   r   r   r   test_xkcd_cm   s    
rZ   )N)'collectionsr   
contextlibr   rX   pathlibr   tempfiler   r2   rE   Z
matplotlibr)   r   rV   r   Zmatplotlib.style.corer   r	   r+   r-   r   r   r"   r$   r.   r8   r9   r:   r?   rA   rB   rD   rH   markZparametrizerR   rY   rZ   r   r   r   r   <module>   sD   

		
