o
    toi1                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
 ejjdejvp1ejd  ddG dd	 d	ejZed
krHe  dS dS )    )annotationsN)join)
ModelProtohubTEST_HUBzConserving Git LFS quota)reasonc                   @  s   e Zd ZdddZdddZdddZdd	d
ZdddZdddZdddZ	dddZ
dddZdddZdddZdddZdS )TestModelHubreturnNonec                 C  s   d| _ d| _d| _d S )NMNISTzonnx/models:main   )namerepoopsetself r   F/home/ubuntu/.local/lib/python3.10/site-packages/onnx/test/hub_test.pysetUp   s   
zTestModelHub.setUpc                 C  sR   t j| j| jdd}| |t ttjtt 	 dddd}| 
t|d d S )NT)force_reload***.onnx	recursive   r   loadr   r   assertIsInstancer   listglobr   get_dirassertGreaterEquallenr   modelcached_filesr   r   r   test_force_reload   s   zTestModelHub.test_force_reloadc                 C  sn   t j| jddgd}t j| jdgd}t | j}| t|d | t|t| | t|t| d S )Nmnistvision)r$   tags)r)   r   )r   list_modelsr   assertGreaterr"   )r   model_info_list_1model_info_list_2model_info_list_3r   r   r   test_listing_models#   s   z TestModelHub.test_listing_modelsc                 C  sN   t | j| j}| |t ttjtt 	 dddd}| 
t|d d S )Nr   r   Tr   r   r   r#   r   r   r   test_basic_usage,   s   zTestModelHub.test_basic_usagec                 C  sp   t  }t|d}t | t | j| j}| |t t	t
j
t|dddd}| t|d t | d S )Ncustomr   r   Tr   r   )r   r    r   set_dirr   r   r   r   r   r   r   r!   r"   )r   	old_cache	new_cacher$   r%   r   r   r   test_custom_cache5   s   

zTestModelHub.test_custom_cachec                 C  s$   t j| j| jdd}| |t d S )N   r   )r   r   r   r   r   r   r   r$   r   r   r   test_download_with_opsetB   s   z%TestModelHub.test_download_with_opsetc                        t fdd d S )Nc                     s   t j j jddS )Nr7   )r   r   r   r   r   r   r   r   <lambda>H   s    z/TestModelHub.test_opset_error.<locals>.<lambda>assertRaisesAssertionErrorr   r   r   r   test_opset_errorF   s   zTestModelHub.test_opset_errorc                   r:   )Nc                     s   t j jdddS )Nonnx/models:unknownT)silent)r   r   r   r   r   r   r   r<   N       z6TestModelHub.test_manifest_not_found.<locals>.<lambda>r=   r   r   r   r   test_manifest_not_foundK   s   
z$TestModelHub.test_manifest_not_foundc                 C  sB   t d}| | t d}| | t | j}| | d S )Nzmhamilton723/modelsrA   )r   _verify_repo_refassertFalser   
assertTrue)r   verifiedr   r   r   test_verify_repo_refQ   s   



z!TestModelHub.test_verify_repo_refc                   s8   t jd jdd t d j  t fdd d S )Nr'   r6   r7   c                     s   t jd jddS )Nr'   r;   r7   )r   get_model_infor   r   r   r   r   r<   b   rC   z2TestModelHub.test_get_model_info.<locals>.<lambda>)r   rJ   r   r>   r?   r   r   r   r   test_get_model_info^   s
   z TestModelHub.test_get_model_infoc                 C  sD   t d}t|}| |t | jd|dd | jd|dd d S )Nr'   z
model.onnxzOnnx model not found)member	containermsgtest_data_set_0zTest data not found)r   download_model_with_test_dataoslistdirr   strassertIn)r   	directoryfilesr   r   r   "test_download_model_with_test_datae   s   


z/TestModelHub.test_download_model_with_test_datac                 C  s   t jddd}| |t d S )NzResNet50-fp32zResNet-preproc)preprocessing_model)r   load_composite_modelr   r   r8   r   r   r   test_model_with_preprocessingn   s   z*TestModelHub.test_model_with_preprocessingN)r	   r
   )__name__
__module____qualname__r   r&   r/   r0   r5   r9   r@   rD   rI   rK   rW   rZ   r   r   r   r   r      s    


	
	
	





	r   __main__)
__future__r   r   rQ   unittestos.pathr   pytestonnxr   r   markskipifenvironTestCaser   r[   mainr   r   r   r   <module>   s   a