o
    zi                     @   s  d dl Z d dlZd dlZdddZejejejejej	ej
ejgZe jdedd Zejejejejejejejejejej	ejejejej
ejejejejejgZe jdedd Zejejejejejejejej	ejej
ejejejgZe jded	d
 Zejejejejej ejejejejejej	ejejejej
ejejejejejgZ!e jde!dd Z"ejejejejejejej	ejej
ejg
Z#e jde#dd Z$dS )    Nc                 C   s   t dd d}t dd }||_| |g}|  tt}|	  W d    n1 s3w   Y  |p;d}|t
|jv sEJ d S )N   Tz!does not support sparse gradients)torchrandn	to_sparserequires_grad_grad	zero_gradpytestraisesRuntimeErrorstepstrvalue)optimizer_classerr_msgparamr   	optimizerctxmsg r   O/home/ubuntu/.local/lib/python3.10/site-packages/tests/test_param_validation.pyassert_sparse_not_supported   s   

r   r   c                 C   s   t |  d S N)r   )r   r   r   r   test_sparse_not_supported   s   r   c                 C   sZ   d}t t}| d dd W d    n1 sw   Y  d|}|t|jv s+J d S )Ng{Gz)lrzInvalid learning rate: {}r	   r
   
ValueErrorformatr   r   )r   r   r   r   r   r   r   test_learning_rate;   s   
r   c                 C   \   d}t t}| d d|d W d    n1 sw   Y  d|}|t|jv s,J d S )N皙皙?)r   epszInvalid epsilon value: {}r   )r   r"   r   r   r   r   r   test_eps_validationU      
r#   c                 C   r   )Nr    r!   )r   weight_decayzInvalid weight_decay value: {}r   )r   r%   r   r   r   r   r   test_weight_decay_validationv   r$   r&   c                 C   s   d}t t}| d ddd W d    n1 sw   Y  d|d }|t|jv s.J d}t t}| d d|d W d    n1 sGw   Y  d|d }|t|jv s\J d S )	N)g+?r!   )r   betasz%Invalid beta parameter at index 0: {}r   )g?g+z%Invalid beta parameter at index 1: {}r   r   )r   r(   r   r   r   r   r   test_betas_validation   s   r)   r   )%r	   r   torch_optimizeroptimr   AdaBoundAdaModDiffGradLambNovoGradRAdamYogino_sparse_optimizersmarkparametrizer   AccSGD	AdaBeliefAdamPAggMoApolloPIDQHAdamQHMSGDPSGDWSWATSShampoo
optimizersr   eps_optimizersr#   	Adafactorweight_decay_optimizersr&   betas_optimizersr)   r   r   r   r   <module>   s    


	
	
	