o
    3Ih`                     @   s   d dl m Z  d dlZd dlmZmZmZmZmZmZ G dd de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 )    )	overridesN)ConfigurationInternalConfigurationDefinitionInvalidConfigurationErrorStaticParameterErrorConfigurationParameterHNSWConfigurationc                   @   sD   e Zd Zeddd dddeddd d	d
ddZedddZdS )TestConfigurationstatic_str_valuec                 C   
   t | tS N
isinstancestrvalue r   p/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/chromadb/test/configurations/test_configurations.py<lambda>      
 zTestConfiguration.<lambda>Tdefaultname	validator	is_staticdefault_value	int_valuec                 C   r   r   )r   intr   r   r   r   r      r   Fr   )r
   r   returnNc                 C   s   d S r   r   selfr   r   r   configuration_validator   s   z)TestConfiguration.configuration_validatorr   N__name__
__module____qualname__r   definitionsr   r!   r   r   r   r   r	      s     r	   r   c                  C   sf   t  } | dd usJ | djt jd jksJ | dd us#J | djt jd jks1J d S )Nr
   r   )r	   get_parameterr   r'   r   )default_test_configurationr   r   r   test_default_values"   s   



r*   c                  C   s`   t  } tt | dd W d    n1 sw   Y  | dd | djdks.J d S )Nr
   	new_valuer      )r	   pytestraisesr   set_parameterr(   r   test_configurationr   r   r   test_set_values0   s   r2   c                  C   s@   t  } tt | d W d    d S 1 sw   Y  d S )Ninvalid_name)r	   r-   r.   
ValueErrorr(   r0   r   r   r   test_get_invalid_parameter9   s   "r5   c                  C   s   t dddt dddg} t| d}|djdksJ |djdks%J t dddg}tt t|d W d    n1 sAw   Y  t dd	dg}tt t|d W d    d S 1 scw   Y  d S )
Nr
   valid_valuer   r   r   r,   
parametersg      ?r3   
some_value)r   r	   r(   r   r-   r.   r4   )valid_parametersvalid_test_configurationinvalid_parameter_valuesinvalid_parameter_namesr   r   r   test_validation?   s$   





"r?   c                  C   sX   G dd dt } tjtdd | tdddgd W d    d S 1 s%w   Y  d S )	Nc                   @   s2   e Zd Zdeddd dddiZedd	d
ZdS )z7test_configuration_validation.<locals>.FooConfigurationfooc                 S   r   r   r   r   r   r   r   r   ]   r   z@test_configuration_validation.<locals>.FooConfiguration.<lambda>Fr   r   r   Nc                 S   s   | j ddkrtdd S )Nr@   barfoo must be 'bar')parameter_mapgetr   r   r   r   r   r!   c   s   zOtest_configuration_validation.<locals>.FooConfiguration.configuration_validatorr"   r#   r   r   r   r   FooConfigurationY   s    	rE   rB   matchr@   bazr7   r8   )r   r-   r.   r4   r   )rE   r   r   r   test_configuration_validationX   s   "rI   c                   C   s@   t jtdd tddd W d    d S 1 sw   Y  d S )Nzmust be less than or equalrF   i  d   )
batch_sizesync_threshold)r-   r.   r4   r   r   r   r   r   test_hnsw_validationl   s   "rM   r"   )r   r-   chromadb.api.configurationr   r   r   r   r   r   r	   r*   r2   r5   r?   rI   rM   r   r   r   r   <module>   s     



	

