o
    `^hu                     @   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pooch	file_hash)r   expected_hash r   \/home/air/shanriGPT/back/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)scope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	   dtypefloatr$   r
   meanstdr   r   r   r%   r    r   )r   ecgr   r   r   test_electrocardiogram9   s   z#TestDatasets.test_electrocardiogramN)__name__
__module____qualname__pytestfixturer   mark	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 )Ndummy_cache_dir   dataz.dat c                   S      d S r   r   r   r   r   r   data0W      ztest_clear_cache.<locals>.data0)datasets	cache_dir
method_mapz	data0.datc                   S   r;   r   r   r   r   r   r   data1^   r=   ztest_clear_cache.<locals>.data1c                   S   r;   r   r   r   r   r   r   data2a   r=   ztest_clear_cache.<locals>.data2z	data1.datz	data2.datc                   S   r;   r   r   r   r   r   r   data4j   r=   ztest_clear_cache.<locals>.data4zdata4_0.datzdata4_1.datrC   c                   S   r;   r   r   r   r   r   r   data5x   r=   ztest_clear_cache.<locals>.data5)r>   r?   )strr   mkdirrange
write_textr   r   r   r   r3   raises
ValueError)tmp_paththread_basepathdummy_basepathdummy_method_mapidata_filepathr<   rA   rB   rC   rD   r   r   r   test_clear_cacheF   sL   
rQ   )scipy.datasets._registryr   scipy.datasets._fetchersr   scipy.datasets._utilsr   scipy.datasetsr   r   r   r   numpy.testingr	   r
   r   	threadingr   r3   r   ImportErrorr   r    r   r   rQ   r   r   r   r   <module>   s"    *