o
    qo™iŸ	  ã                   @   s¼   d Z ddlZddlmZmZ ddlmZ ddlm	Z	 ej
G dd„ dƒƒZdejfd	d
„Zdejfdd„Ze	j	dd„ ƒZe	j	dd„ ƒZdeejejf fdd„Zdeejejf fdd„ZdS )z=Sample configs to use to validate the testing infrastructure.é    N)ÚAnyÚTuple)Úconfig)Úauto_configc                   @   s.   e Zd ZU eed< dZeed< dZeed< dS )ÚSimpleÚxzwhy?ÚyNÚz)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r	   © r   r   ú\/home/ubuntu/.local/lib/python3.10/site-packages/fiddle/_src/testing/example/demo_configs.pyr      s   
 r   Úreturnc                   C   s   t jtddS )Né   )r   )Ú
config_libÚConfigr   r   r   r   r   Úbase   s   r   Úcfgc                 C   s<   t | jtƒr|  jd7  _t | jtƒr|  jd9  _d S d S )Nr   é   )Ú
isinstancer   Úintr   Ústr)r   r   r   r   Úsimple_fiddler#   s
   ÿr   c                  C   sH   t ddƒ} t d| ƒ}t d| ƒ}t d| ƒ}t |||ƒ}t ddƒ}t ||ƒS )Núshared-xúshared-yzf1-xzf2-xzf3-xzb-xzb-y©r   )ÚsharedÚf1Úf2Úf3ÚaÚbr   r   r   Únested_node_sharing_config*   s   





r$   c                  C   s2   t ddƒ} t | dƒ}t |dƒ}t |dƒ}t |dƒS )Nr   r   Úy3Úy2Úy1r   r   )r   Úx3Úx2Úx1r   r   r   Úlinear_nested_config5   s
   




r+   c                  C   sj   d} d  g d¢¡}| |ksJ ‚t| ƒt|ƒksJ ‚t tt td| ¡| ¡}t tt td| ¡|¡}||fS )zCGenerate configs containing equal strings but different object ids.zabcd!Ú )r"   r#   ÚcÚdú!r   )ÚjoinÚidr   r   r   )Ús1Ús2r   r   r   r   r   Ú1get_equal_but_not_object_identical_string_configs>   s   r4   c                  C   sV   dddœ} ddi}d|d< t |  ¡ ƒt | ¡ ƒksJ ‚t t| ¡}t t|¡}||fS )z<Generate configs containing equal dict but different orders.r   é   )r"   r#   r#   r"   )ÚlistÚkeysr   r   r   )Úd1Úd2r   r   r   r   r   Ú*get_equal_but_different_order_dict_configsN   s   
r:   )Ú__doc__ÚdataclassesÚtypingr   r   Úfiddle._srcr   r   Úfiddle._src.experimentalr   Ú	dataclassr   r   r   r   r$   r+   r4   r:   r   r   r   r   Ú<module>   s&   



ÿÿ