o
    ¶N i»  ã                   @   sŒ   d Z ddlmZ ddlmZ ddlmZ ddlZddlm  mZ	 ddl
mZ ddl
mZ e	 ¡  G dd	„ d	ejƒZed
krDe ¡  dS dS )z.Tests for tensorflow_datasets.core.test_utils.é    )Úabsolute_import)Údivision)Úprint_functionN)Ú	test_case)Ú
test_utilsc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚRunInGraphAndEagerTestc                    sf   g ‰ ‡ fdd„}t  |¡}|| dd t  ¡ |ƒ}|| dd |  tˆ ƒd¡ |  tˆ ƒh d£¡ d S )Nc                    s0   ~ t  ¡ rdnd}|rdnd}ˆ  ||f¡ d S )NÚeagerÚgraphÚwith_bracketsÚwithout_brackets)ÚtfÚexecuting_eagerlyÚappend)Úselfr
   Úmode©Úl© ú_/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/testing/test_utils_test.pyÚinc%   s   zERunInGraphAndEagerTest.test_run_in_graph_and_eager_modes.<locals>.incF)r
   Té   >   ©r
   r   ©r
   r	   ©r   r   ©r   r	   )r   Úrun_in_graph_and_eager_modesÚassertEqualÚlenÚset)r   r   Úfr   r   r   Ú!test_run_in_graph_and_eager_modes#   s   
z8RunInGraphAndEagerTest.test_run_in_graph_and_eager_modesc                    sp   g ‰dd„ ‰G ‡ ‡‡fdd„dt jƒ‰ ˆ ƒ }| ¡  | ¡  |  ˆdd… ddg¡ |  ˆdd … d	d
g¡ d S )Nc                   S   s   t  ¡ rdS dS )Nr   r	   )r   r   r   r   r   r   Ú<lambda>:   s    z]RunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_mode.<locals>.<lambda>c                       s>   e Zd Zdd„ Z‡‡ ‡‡fdd„Zej‡‡fdd„ƒZ‡  ZS )z`RunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_mode.<locals>.ExampleTestc                 S   s   d S )Nr   ©r   r   r   r   ÚrunTest>   s   zhRunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_mode.<locals>.ExampleTest.runTestc                    s"   t ˆ | ƒ ¡  ˆ dˆƒ  ¡ d S )NÚsetup_)ÚsuperÚsetUpr   r"   )ÚExampleTestÚ	__class__Ú	mode_nameÚmodesr   r   r&   A   s   zfRunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_mode.<locals>.ExampleTest.setUpc                    s   ˆ  dˆ ƒ  ¡ d S )NÚrun_)r   r"   )r)   r*   r   r   ÚtestBodyE   s   ziRunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_mode.<locals>.ExampleTest.testBody)	Ú__name__Ú
__module__Ú__qualname__r#   r&   r   r   r,   Ú__classcell__r   ©r'   r)   r*   )r(   r   r'   <   s
    r'   r   é   Úsetup_eagerÚ	run_eagerÚsetup_graphÚ	run_graph)r   ÚTestCaser&   r,   r   )r   Úer   r1   r   Ú4test_run_in_graph_and_eager_modes_setup_in_same_mode8   s   zKRunInGraphAndEagerTest.test_run_in_graph_and_eager_modes_setup_in_same_modec              	   C   s
  t jjdk rd S t ¡ }| ¡ ë | dd¡ | dd¡ |  tj	j
 d¡¡ |  tj	j
 d¡¡ tj	j
 dd¡}| d	¡ W d   ƒ n1 sIw   Y  |  |jd d	¡ tj	j
 dd¡}| d
¡ W d   ƒ n1 sow   Y  |  |jd d
¡ tj	j
 dd¡}|  | ¡ d
¡ W d   ƒ n1 s˜w   Y  |  |jd d¡ tj	j
 dd¡ |  d|j¡ |  |jd d¡ |  tj	j
 d¡tj	j
 d¡¡ |  tj	j
 d¡ddg¡ |  tj	j
 d¡ddg¡ |  |jd
dddœ¡ W d   ƒ d S 1 sþw   Y  d S )Né   z/path/to/file1zContent of file 1ú/path/file.txtzContent of file.txtz/path/to/file1_nonexistingú/path/to/file2ÚwzContent of file 2 (old)zContent of file 2 (new)Úrú/path/to/file1_movedz/path/toz	/path/to/Úfile1_movedÚfile2z/pathzfile.txtÚto)r<   r?   r;   )ÚsysÚversion_infoÚmajorr   ÚMockFsÚmockÚadd_fileÚ
assertTruer   ÚioÚgfileÚexistsÚassertFalseÚGFileÚwriter   ÚfilesÚreadÚrenameÚassertNotInÚassertCountEqualÚlistdir)r   Úfsr   r   r   r   Útest_mock_fsP   sH   
ÿÿÿÿÿ
ý"àz#RunInGraphAndEagerTest.test_mock_fsN)r-   r.   r/   r    r9   rW   r   r   r   r   r   !   s    r   Ú__main__)Ú__doc__Ú
__future__r   r   r   rC   Útensorflow.compat.v2ÚcompatÚv2r   Útensorflow_datasets.testingr   r   Úenable_v2_behaviorr7   r   r-   Ú	test_mainr   r   r   r   Ú<module>   s   Zÿ