U
    :b4                     @   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 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-phzdptr9/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_available0   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_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 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    


r7   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   r5   r   r   r   test_single_pathG   s    


r8   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_contextQ   s
    
&r9   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_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 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_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 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_namedstylen   s    
&rA   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_namedstyley   s    
&rC   c                  C   s   d} d}t t|ib tjt |ks*tt t| dd i}tt | W 5 Q R X W 5 Q R X tjt |ksttW 5 Q R X d S )Nr%   r:   Zbadparam)	r   r+   r*   r(   r)   r    pytestZraisesKeyError)r<   r=   xr   r   r   test_context_with_badparam   s    rG   equiv_styles)mpl20default)mpl15ZclassicrI   rK   )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    )rH   Zrc_dictsZstyZrc_basenmrcr   r   r   
test_alias   s    "rQ   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npZtestingZbreak_cyclesr   r   r   r   test_xkcd_no_cm   s
    
rX   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 rR   )r(   r)   r    rU   rV   r   r   r   r   test_xkcd_cm   s    
rY   )N)&
contextlibr   pathlibr   tempfiler   r1   ZnumpyrW   rD   Z
matplotlibr(   r   rU   r   Zmatplotlib.style.corer   r   r*   r,   r   r   r!   r#   r-   r7   r8   r9   r>   r@   rA   rC   rG   markZparametrizerQ   rX   rY   r   r   r   r   <module>   sB   

		
