o
    iu                     @   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mZ d dlZzd dlZW n eyE   edw 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_equalN)	get_identzsMissing 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   X/home/kim/smarthome/.venv/lib/python3.10/site-packages/scipy/datasets/tests/test_data.py	_has_hash   s   r   c                   @   sN   e Zd Zejddddd Zejddd Zd	d
 Z	dd Z
dd ZdS )TestDatasetsmoduleT)scopeZautousec                 c   s    t   d V  d S N)r   selfr   r   r   test_download_all   s   
zTestDatasets.test_download_all
   c                 C   s   t ttt tksJ d S r   )lenr   listdirdata_dirr   r   r   r   r   test_existence_all'   s   zTestDatasets.test_existence_allc                 C   .   t t jd ttjtdtd sJ d S )N)   r    z
ascent.dat)	r	   r   shaper   r   r   joinr   r   r   r   r   r   test_ascent+      zTestDatasets.test_ascentc                 C   r   )N)i   i      zface.dat)	r	   r   r!   r   r   r   r"   r   r   r   r   r   r   	test_face2   r$   zTestDatasets.test_facec                 C   sZ   t  }t|jt t|jd t| d t| d tt	j
tdtd s+J d S )N)i gGĔH"ſg-?zecg.dat)r   r	   Zdtypefloatr!   r
   meanZstdr   r   r   r"   r   r   )r   Zecgr   r   r   test_electrocardiogram9   s   z#TestDatasets.test_electrocardiogramN)__name__
__module____qualname__pytestZfixturer   markZ	fail_slowr   r#   r&   r)   r   r   r   r   r      s    


r   c                 C   s  | t t  }|  |d }|  i }tdD ]}d| dg|d| < |d| d }|d qdd }t|||d tj|d	 rJJ d
d }dd }t||g||d tj|d reJ tj|d roJ dd }	|d d |d d ddg|d< t|	g||d tj|d rJ tj|d rJ dd }
t	
t t|
g||d W d    n1 sw   Y  td |d tj|rJ d S )NZdummy_cache_dir   dataz.dat c                   S      d S r   r   r   r   r   r   data0W      ztest_clear_cache.<locals>.data0)datasets	cache_dirZ
method_mapz	data0.datc                   S   r2   r   r   r   r   r   r   data1^   r4   ztest_clear_cache.<locals>.data1c                   S   r2   r   r   r   r   r   r   data2a   r4   ztest_clear_cache.<locals>.data2z	data1.datz	data2.datc                   S   r2   r   r   r   r   r   r   data4j   r4   ztest_clear_cache.<locals>.data4zdata4_0.datzdata4_1.datr9   c                   S   r2   r   r   r   r   r   r   data5x   r4   ztest_clear_cache.<locals>.data5)r5   r6   )strr   mkdirrange
write_textr   r   r   r   r-   Zraises
ValueError)Ztmp_pathZthread_basepathZdummy_basepathZdummy_method_mapiZdata_filepathr3   r7   r8   r9   r:   r   r   r   test_clear_cacheF   sL   
rA   )Zscipy.datasets._registryr   Zscipy.datasets._fetchersr   Zscipy.datasets._utilsr   Zscipy.datasetsr   r   r   r   Znumpy.testingr	   r
   r   	threadingr   r-   r   ImportErrorr   r   r   r   rA   r   r   r   r   <module>   s"    *