o
    qo™iÐ
  ã                   @   sf   d Z ddl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r1e ¡  dS dS )
zTests for module_reflection.é    N)Úabsltest)Úmodule_reflection)Úmodule_reflection_test_module)Úauto_configc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚModuleReflectionTestc                 C   sp   t  ¡ }dd„ |_dd„ |_dd„ |_dd„ |_dd„ }||_dd	d
„}||_tg d¢ƒ}|  	|t
 |¡¡ d S )Nc                 S   ó   d S ©N© ©Úxr	   r	   úV/home/ubuntu/.local/lib/python3.10/site-packages/fiddle/_src/module_reflection_test.pyÚ<lambda>   ó    zDModuleReflectionTest.test_find_fiddler_like_things.<locals>.<lambda>c                 S   r   r   r	   ©r   Úyr	   r	   r   r      r   c                 S   r   r   r	   )r   r	   r	   r   r       r   c                   S   r   r   r	   r	   r	   r	   r   r   !   r   c                 [   r   r   r	   )ÚcfgÚkwargsr	   r	   r   Úkwarg_fn#   ó   zDModuleReflectionTest.test_find_fiddler_like_things.<locals>.kwarg_fné   c                 S   r   r   r	   )r   Údefaulted_argr	   r	   r   Úwith_defaults(   r   zIModuleReflectionTest.test_find_fiddler_like_things.<locals>.with_defaults)ÚsimpleÚanotherr   r   )r   )ÚtypesÚSimpleNamespacer   Únot_oner   Ú
zero_arityr   r   ÚsortedÚassertEqualr   Úfind_fiddler_like_things)ÚselfÚnsr   r   Úexpectedr	   r	   r   Útest_find_fiddler_like_things   s   




z2ModuleReflectionTest.test_find_fiddler_like_thingsc                 C   sR   t  ¡ }dd„ |_dd„ |_dd„ |_dd„ |_tddgƒ}|  |t 	|¡¡ d S )Nc                   S   r   r   r	   r	   r	   r	   r   r   2   r   zHModuleReflectionTest.test_find_base_config_like_things.<locals>.<lambda>c                   S   r   r   r	   r	   r	   r	   r   r   3   r   c                 S   r   r   r	   r
   r	   r	   r   r   4   r   c                 S   r   r   r	   r   r	   r	   r   r   5   r   Úbaser   )
r   r   r%   r   ÚfiddlerÚnot_mer   r   r   Úfind_base_config_like_things)r!   r"   r#   r	   r	   r   Ú!test_find_base_config_like_things0   s   



ÿz6ModuleReflectionTest.test_find_base_config_like_thingsc                 C   ó"   t g d¢ƒ}|  |t t¡¡ d S )N)Úsimple_baseÚalternate_baseÚbase_with_defaults)r   r   r   r(   Útest_module©r!   r#   r	   r	   r   Ú(test_find_base_config_like_things_module;   s   
ÿz=ModuleReflectionTest.test_find_base_config_like_things_modulec                 C   r*   )N)Úfiddler1Úfiddler2Úanother_fiddler)r   r   r   r    r.   r/   r	   r	   r   Ú$test_find_fiddler_like_things_module@   s   ÿz9ModuleReflectionTest.test_find_fiddler_like_things_modulec                    sV   ddd„‰ t j ‡ fdd„ƒ}t ¡ }||_dg}|  dt|ƒ¡ |  |t |¡¡ d S )Né   c                 S   s   | |fS r   r	   r   r	   r	   r   Úmy_fnG   s   z>ModuleReflectionTest.test_auto_config_functions.<locals>.my_fnc                      s
   ˆ ddƒS )Nr   r5   r	   r	   ©r6   r	   r   Úbase_configJ   s   
zDModuleReflectionTest.test_auto_config_functions.<locals>.base_configr8   )r5   )	r   r   r   r8   ÚassertInÚdirr   r   r(   )r!   r8   r"   r#   r	   r7   r   Útest_auto_config_functionsE   s   
ÿz/ModuleReflectionTest.test_auto_config_functionsN)Ú__name__Ú
__module__Ú__qualname__r$   r)   r0   r4   r;   r	   r	   r	   r   r      s    r   Ú__main__)Ú__doc__r   Úabsl.testingr   Úfiddle._srcr   r   r.   Úfiddle._src.experimentalr   ÚTestCaser   r<   Úmainr	   r	   r	   r   Ú<module>   s   =ÿ