o
    xi4                     @   st   d dl mZ d dlZd dlmZmZmZ dd Zdd Zdd	 Z	d
d Z
dd Zdd Zdd Zdd Zdd ZdS )    )raisesN)Promise	promisifyis_thenablec                 C   s   | dd }d S )Nc                  S   s
   t  } d S Nr   p r
   c/home/ubuntu/.local/lib/python3.10/site-packages/wandb/vendor/promise-2.3.0/tests/test_benchmark.pycreate_promise   s   
z7test_benchmark_promise_creation.<locals>.create_promiser
   )	benchmarkr   r
   r
   r   test_benchmark_promise_creation   s   r   c                 C   s$   dd }| |  }|dksJ d S )Nc                   S   s
   t dS NTr   resolver
   r
   r
   r   r         
z6test_benchmark_promise_resolve.<locals>.create_promiseTgetr   r   resultr
   r
   r   test_benchmark_promise_resolve   s   r   c                 C   s    dd }| |}|dksJ d S )Nc                   S   s   t dS r   r   r
   r
   r
   r   r         z=test_benchmark_is_thenable_basic_type.<locals>.create_promiseFr
   r   r
   r
   r   %test_benchmark_is_thenable_basic_type   s   r   c                    s:   G dd dt }|   fdd}| |}|dksJ d S )Nc                   @      e Zd ZdS )z6test_benchmark_is_thenable_custom_type.<locals>.MyTypeN__name__
__module____qualname__r
   r
   r
   r   MyType       r    c                      s   t  S r   r   r
   my_type_instancer
   r   r   "   r   z>test_benchmark_is_thenable_custom_type.<locals>.create_promiseF)object)r   r    r   r   r
   r"   r   &test_benchmark_is_thenable_custom_type   s
   r%   c                    s0   dd   fdd}| |  }|dksJ d S )Nc                 S   s   | dS r   r
   r   rejectr
   r
   r   <lambda>*   s    z>test_benchmark_promise_creation_with_resolve.<locals>.<lambda>c                        t  } | S r   r   r   
do_resolver
   r   r   ,      zDtest_benchmark_promise_creation_with_resolve.<locals>.create_promiseTr   r   r
   r*   r   ,test_benchmark_promise_creation_with_resolve)   s   r-   c                    s^   dd   fdd}t t}| | }W d    n1 sw   Y  t|jdks-J d S )Nc                 S   s   |t dS )NError)	Exceptionr&   r
   r
   r   r(   6   s    z=test_benchmark_promise_creation_with_reject.<locals>.<lambda>c                     r)   r   r   r   r*   r
   r   r   8   r,   zCtest_benchmark_promise_creation_with_reject.<locals>.create_promiser.   )r   r/   r   strvalue)r   r   exc_infor   r
   r*   r   +test_benchmark_promise_creation_with_reject5   s   
r3   c                    sL   G dd dt }|   fdd}| |}t|tsJ |  ks$J d S )Nc                   @   r   )z<test_benchmark_promisify_custom_type.<locals>.CustomThenableNr   r
   r
   r
   r   CustomThenableO   r!   r4   c                      
   t  S r   r   r
   instancer
   r   r   V   r   z<test_benchmark_promisify_custom_type.<locals>.create_promise)r$   
isinstancer   r   )r   r4   r   r   r
   r6   r   $test_benchmark_promisify_custom_typeN   s   r9   c                    sF   t d  fdd}| |}t|tsJ | tt dks!J d S )Ni  c                      r5   r   r   allr
   valuesr
   r   r   b   r   z2test_benchmark_promise_all.<locals>.create_promiseranger8   r   r   listr   r
   r<   r   test_benchmark_promise_all_   s
   rA   c                    sP   dd t dD   fdd}| |}t|tsJ | tt dks&J d S )Nc                 S   s   g | ]}t |qS r
   r   ).0ir
   r
   r   
<listcomp>l   s    z6test_benchmark_promise_all_promise.<locals>.<listcomp>i c                      r5   r   r:   r
   r<   r
   r   r   n   r   z:test_benchmark_promise_all_promise.<locals>.create_promiser>   r   r
   r<   r   "test_benchmark_promise_all_promisek   s
   rE   )pytestr   timepromiser   r   r   r   r   r   r%   r-   r3   r9   rA   rE   r
   r
   r
   r   <module>   s    