o
    qoi+                     @   s^   d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd dejZ	e
dkr-e  d	S d	S )
zTests for baseline_style.    )absltest)fake_encoder_decoder)baseline_style)fake_experimentc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )BaselineStyleTestc                 C   s   t j }tj|dd d S )N   configmax_config_source_files)r   fixtureas_buildabler   check_baseline_styleselfr	    r   ^/home/ubuntu/.local/lib/python3.10/site-packages/fiddle/_src/validation/baseline_style_test.pytest_check_baseline_style_okay   s   

z0BaselineStyleTest.test_check_baseline_style_okayc                 C   sH   t   }| td tj|dd W d    d S 1 sw   Y  d S )NzMore than 1 file\(s\) produced this config.*files which have written.*fake_encoder_decoder.*fake_experiment.*encoder\.attentionr   r   )r   assertRaisesRegex
ValueErrorr   r   r   r   r   r   (test_check_baseline_style_too_many_files!   s   "z:BaselineStyleTest.test_check_baseline_style_too_many_filesc                 C   sT   t   }d|jj_| td tj|ddd W d    d S 1 s#w   Y  d S )Nint64z3 value\(s\) written to <config>.*Please limit the number of overrides of this config attribute to 2 to maintain baseline configuration readability.      r	   r
   max_writes_per_attribute)r   encoder	attentiondtyper   r   r   r   r   r   r   r   ,test_check_baseline_style_too_many_overrides-   s   
"z>BaselineStyleTest.test_check_baseline_style_too_many_overridesc                 C   s0   t   }d|jj_tj|dd|jjjgd d S )Nr   r   r	   r
   r   ignore)r   r   r   r   r   r   r   r   r   r   Btest_check_baseline_style_too_many_overrides_for_ignored_attribute=   s   


zTBaselineStyleTest.test_check_baseline_style_too_many_overrides_for_ignored_attributec                 C   s   t j }d|jjd _| td tj	|ddd W d    n1 s%w   Y  tj	|dd|jjd j|j
jd jgd d S )Nfloat64tokens2 value\(s\) written to <config>.*Please limit the number of overrides of this config attribute to 1 to maintain baseline configuration readability.r   r   r   r   )r   r   r   r   	embeddersr   r   r   r   r   decoderr   r   r   r   +test_check_baseline_style_ignored_attributeL   s(   

z=BaselineStyleTest.test_check_baseline_style_ignored_attributec                 C   s   t j }d|jjd _d|i}d|i}d|i}tj|d|gd | t	d tj|dd	 W d    d S 1 s:w   Y  d S )
Nr"   r#   foobarquxr   )r   r    r$   )r   )
r   r   r   r   r%   r   r   r   r   r   )r   r	   r(   r)   r*   r   r   r   /test_check_baseline_style_ignored_non_attributel   s   
"zABaselineStyleTest.test_check_baseline_style_ignored_non_attributeN)	__name__
__module____qualname__r   r   r   r!   r'   r+   r   r   r   r   r      s     r   __main__N)__doc__absl.testingr   fiddle._src.testing.exampler   fiddle._src.validationr   r   TestCaser   r,   mainr   r   r   r   <module>   s   q