U
    Gvf                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZ d dlZd dlZzd dlZW n ek
r   edY nX ejZdd	 ZG d
d dZdd ZdS )    )registry)data_fetcher)_clear_cache)ascentfaceelectrocardiogramdownload_all)assert_equalassert_almost_equalNzsMissing optional dependency 'pooch' required for scipy.datasets module. Please use pip or conda to install 'pooch'.c                 C   s   t j| sdS t| |kS )z1Check if the provided path has the expected hash.F)ospathexistspoochZ	file_hash)r   Zexpected_hash r   B/tmp/pip-unpacked-wheel-96ln3f52/scipy/datasets/tests/test_data.py	_has_hash   s    r   c                   @   sB   e Zd Zejddddd Zdd Zdd	 Zd
d Zdd Z	dS )TestDatasetsmoduleT)ZscopeZautousec                 c   s   t   d V  d S N)r   selfr   r   r   test_download_all   s    zTestDatasets.test_download_allc                 C   s   t ttt tkstd S r   )lenr   listdirdata_dirr   AssertionErrorr   r   r   r   test_existence_all&   s    zTestDatasets.test_existence_allc                 C   s.   t t jd ttjtdtd s*t	d S )N)   r   z
ascent.dat)
r	   r   shaper   r   r   joinr   r   r   r   r   r   r   test_ascent)   s    zTestDatasets.test_ascentc                 C   s.   t t jd ttjtdtd s*t	d S )N)i   i      zface.dat)
r	   r   r   r   r   r   r   r   r   r   r   r   r   r   	test_face0   s    zTestDatasets.test_facec                 C   sZ   t  }t|jt t|jd t| d t| d tt	j
tdtd sVtd S )N)i gGĔH"ſg-?zecg.dat)r   r	   Zdtypefloatr   r
   ZmeanZstdr   r   r   r   r   r   r   )r   Zecgr   r   r   test_electrocardiogram7   s    z#TestDatasets.test_electrocardiogramN)
__name__
__module____qualname__pytestZfixturer   r   r    r"   r$   r   r   r   r   r      s   
r   c           
   	   C   s  | d }|   i }tdD ]6}d| dg|d| < |d| d }|d qdd }t|||d tj|d	 r~td
d }dd }t||g||d tj|d rttj|d rtdd }|d d |d d ddg|d< t|g||d tj|d rttj|d r4tdd }	t	t
 t|	g||d W 5 Q R X td |d tj|rtd S )NZdummy_cache_dir   dataz.dat c                   S   s   d S r   r   r   r   r   r   data0R   s    ztest_clear_cache.<locals>.data0)datasets	cache_dirZ
method_mapz	data0.datc                   S   s   d S r   r   r   r   r   r   data1Y   s    ztest_clear_cache.<locals>.data1c                   S   s   d S r   r   r   r   r   r   data2\   s    ztest_clear_cache.<locals>.data2z	data1.datz	data2.datc                   S   s   d S r   r   r   r   r   r   data4e   s    ztest_clear_cache.<locals>.data4zdata4_0.datzdata4_1.datr1   c                   S   s   d S r   r   r   r   r   r   data5s   s    ztest_clear_cache.<locals>.data5)r-   r.   )mkdirrange
write_textr   r   r   r   r   r(   Zraises
ValueError)
Ztmp_pathZdummy_basepathZdummy_method_mapiZdata_filepathr,   r/   r0   r1   r2   r   r   r   test_clear_cacheD   sF    
r8   )Zscipy.datasets._registryr   Zscipy.datasets._fetchersr   Zscipy.datasets._utilsr   Zscipy.datasetsr   r   r   r   Znumpy.testingr	   r
   r   r(   r   ImportErrorr   r   r   r   r8   r   r   r   r   <module>   s   )