
    ?fH                     t    d dl Z d dlmZ d dlZd dlm Z ddlmZ g dZ	 e
d          Z G d de          ZdS )	    N)TestCase   )
async_test)ABC   c                      e Zd Zd Zed             Zed             Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             Zed             Zed             Zed             ZdS )AsyncioTestc                 P    |                      t          j        t                     d S N)assertEqualaitasyncioaio)selfs    i/home/panchajanya/Development/work/volatility3/lib/python3.11/site-packages/aioitertools/tests/asyncio.pytest_importzAsyncioTest.test_import   s     c*****    c                 r  K   d g d}g d}fd|D             }t          j        t          j        |                     d {V }|                     ||           fd|D             }g }t          j        |          2 3 d {V }|                    |           6 |                     ||           d S )Nc                 >   K   t          j        |           d {V  | S r   r   sleep)numberdurations     r   sleepyz-AsyncioTest.test_as_completed.<locals>.sleepy   s-      -)))))))))Mr   ))r   g333333?)   皙?)r	         ?)r   r   r	   c                     g | ]} | S  r!   .0pairr   s     r   
<listcomp>z1AsyncioTest.test_as_completed.<locals>.<listcomp>       333T664=333r   c                     g | ]} | S r!   r!   r"   s     r   r%   z1AsyncioTest.test_as_completed.<locals>.<listcomp>    r&   r   )r   listr   as_completedr   append)r   pairsexpectedfuturesresultsvaluer   s         @r   test_as_completedzAsyncioTest.test_as_completed   s     	 	 	 /..993333U333!1'!:!:;;;;;;;;(+++3333U333+G44 	" 	" 	" 	" 	" 	" 	"%NN5!!!! 5(+++++s   B c                   K   ddg}d |D             }|                      t          j                  5  t          j        t          j        |d                     d {V  d d d            n# 1 swxY w Y   d |D             }d}|                      t          j                  5  t          j        |d          2 3 d {V }|dz  }6 	 d d d            n# 1 swxY w Y   |                     |d           d S )	N)g      ?)r   c                 *    g | ]}t          j        | S r!   r   r#   argss     r   r%   z9AsyncioTest.test_as_completed_timeout.<locals>.<listcomp>*       :::D7=$':::r   r   )timeoutc                 *    g | ]}t          j        | S r!   r   r3   s     r   r%   z9AsyncioTest.test_as_completed_timeout.<locals>.<listcomp>.   r5   r   r   r   )assertRaisesr   TimeoutErrorr   r(   r   r)   r   )r   callsr-   r.   _s        r   test_as_completed_timeoutz%AsyncioTest.test_as_completed_timeout&   s      ::E:::w344 	C 	C(3+GSAAABBBBBBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C ;:E:::w344 	 	+GSAAA       a1 BA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!$$$$$s/   /A--A14A1%C<C	CCCc                   K   d } |             |             |            g}t          t          d                    dz  }g }t          j        |          2 3 d {V }|                    |           6 |                     dt          |                     |                     t          |          t          |                     d S )Nc                 l   K   t          d          D ]!} | W V  t          j        d           d {V  "d S N
   r   ranger   r   is    r   genz*AsyncioTest.test_as_generated.<locals>.gen7   U      2YY ' 'mA&&&&&&&&&&' 'r   r@   r	      )	r(   rB   r   as_generatedr*   r   lenassertListEqualsortedr   rE   gensr,   r.   r/   s         r   test_as_generatedzAsyncioTest.test_as_generated5   s      	' 	' 	'
 ssuuccee$b		??Q&+D11 	" 	" 	" 	" 	" 	" 	"%NN5!!!! 2S\\***VH--vg?????s   A5c                 :  K   d }d } |             |            g}g }|                      t          d          5  t          j        |          2 3 d {V }|                    |           6 	 d d d            n# 1 swxY w Y   |                     d|           d S )Nc                    K   t          d          D ]!} | W V  t          j        d           d {V  "t          d          Nr	   r   fakerB   r   r   	ExceptionrC   s    r   gen1z5AsyncioTest.test_as_generated_exception.<locals>.gen1F   Y      1XX ' 'mA&&&&&&&&&&F###r   c                 l   K   t          d          D ]!} | W V  t          j        d           d {V  "d S r?   rA   rC   s    r   gen2z5AsyncioTest.test_as_generated_exception.<locals>.gen2L   rF   r   rR   r@   )assertRaisesRegexrT   r   rH   r*   assertNotIn)r   rU   rX   rM   r.   r/   s         r   test_as_generated_exceptionz'AsyncioTest.test_as_generated_exceptionD   s     	$ 	$ 	$	' 	' 	'
 ##Iv66 	& 	&"/55 & & & & & & &eu%%%%  65	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	W%%%%%s   A:A,A::A>A>c                 ^  K   d }d } |             |            g}t          t          d                    t          t          d                    z   }g }g }t          j        |d          2 3 d {V }t	          |t
                    r|                    |           2|                    |           H6 |                     t          |          t          |                     | 	                    dt          |                     |                     |d         t
                     d S )	Nc                    K   t          d          D ]!} | W V  t          j        d           d {V  "t          d          rQ   rS   rC   s    r   rU   z<AsyncioTest.test_as_generated_return_exception.<locals>.gen1Z   rV   r   c                 l   K   t          d          D ]!} | W V  t          j        d           d {V  "d S r?   rA   rC   s    r   rX   z<AsyncioTest.test_as_generated_return_exception.<locals>.gen2`   rF   r   r	   r@   Treturn_exceptionsr   r   )r(   rB   r   rH   
isinstancerT   r*   rJ   rK   r   rI   assertIsInstance)r   rU   rX   rM   r,   errorsr.   r/   s           r   "test_as_generated_return_exceptionz.AsyncioTest.test_as_generated_return_exceptionX   sD     	$ 	$ 	$	' 	' 	'
 a>>DrOO3+DDIII 	& 	& 	& 	& 	& 	& 	&%%++ &e$$$$u%%%%	 J
 	VH--vg???CKK(((fQi33333s   0B8c                   K   ddt           fd} |d           |            g}t          t          d                    t          t          d                    z   }g }t          j        |          2 3 d {V }|                    |           6 |                     t          |          t          |                     d S )Nr@   maxc                   K   t          d          D ]3}|| k    rt          j        |W V  t          j        d           d {V  4d S )N   r   )rB   r   CancelledErrorr   )rf   rD   s     r   rE   z9AsyncioTest.test_as_generated_task_cancelled.<locals>.gent   sg      1XX ' 's77!00mA&&&&&&&&&&	' 'r   r   r	   rh   )r@   )intr(   rB   r   rH   r*   rJ   rK   rL   s         r    test_as_generated_task_cancelledz,AsyncioTest.test_as_generated_task_cancelledr   s      	' 	'3 	' 	' 	' 	' Aa>>DqNN2+D11 	" 	" 	" 	" 	" 	" 	"%NN5!!!! 2VH--vg?????s   3Bc                 0  K   d g d}g fd}t          j         |                      }t          j        d           d {V  |                                 | d {V  |                     t          |          t                               d S )Nc                 l   K   t          d          D ]!} | W V  t          j        d           d {V  "d S )Nrh   r   rA   rC   s    r   rE   z4AsyncioTest.test_as_generated_cancelled.<locals>.gen   sU      1XX ) )mC(((((((((() )r   )r   r   r   r   c                     K                             g} t          j        |           2 3 d {V }                    |           6 S r   )r   rH   r*   )rM   r/   rE   r.   s     r   fooz4AsyncioTest.test_as_generated_cancelled.<locals>.foo   sn      CEE3355>D"/55 & & & & & & &eu%%%%  6Ns   A	g333333?)r   ensure_futurer   cancelrJ   rK   )r   r,   ro   taskrE   r.   s       @@r   test_as_generated_cancelledz'AsyncioTest.test_as_generated_cancelled   s      	) 	) 	)
  <<	 	 	 	 	 	 $SSUU++mD!!!!!!!!!






VH--vg?????r   c                   K   d } |d          t          j         |d                    g}t          t           d          r1|                    t          j         |d                               n|                     |d                     t          j        |  d {V }|                     g d|           d S )Nc                 >   K   t          j        d           d {V  | S NMbP?r   args    r   fnz/AsyncioTest.test_gather_input_types.<locals>.fn   -      -&&&&&&&&&Jr   r   r   create_taskr	   )r   r   r	   )r   rp   hasattrr*   r|   r   gatherr   )r   rz   fnsresults       r   test_gather_input_typesz#AsyncioTest.test_gather_input_types   s      	 	 	 r!uug+BBqEE2237M** 	JJw*22a55112222JJrr!uuz3'''''''F+++++r   c                   K   ddfdt          j        fdt          d          D             ddi d {V }|                     d           |                     g d|           t          j        fdt          d          D               d {V }|                     d           |                     g d|           d S )	Nr   c                 t   K   dz  t                    t          j        d           d {V  dz  | S )Nr   rw   )rf   r   r   )ry   countermax_counters    r   rz   z+AsyncioTest.test_gather_limited.<locals>.fn   sO      qLGk733K-&&&&&&&&&qLGJr   c                 &    g | ]} |          S r!   r!   r#   rD   rz   s     r   r%   z3AsyncioTest.test_gather_limited.<locals>.<listcomp>   !    #=#=#=aBBqEE#=#=#=r   r@   limitr   )
r   r   r   r	      rh            	   c                 &    g | ]} |          S r!   r!   r   s     r   r%   z3AsyncioTest.test_gather_limited.<locals>.<listcomp>   r   r   )r   r~   rB   r   )r   r   r   rz   r   s     @@@r   test_gather_limitedzAsyncioTest.test_gather_limited   s$     	 	 	 	 	 	 z#=#=#=#=599#=#=#=GQGGGGGGGGK(((777@@@ z#=#=#=#=599#=#=#=>>>>>>>	
 	
 	
 	777@@@@@r   c           	      H  K   d } |d          } |d          }t          j        ||||||d           d {V }|                     g d|            |d          } |d          }t          j        ||||||           d {V }|                     g d|           d S )Nc                 >   K   t          j        d           d {V  | S rv   r   rx   s    r   rz   z1AsyncioTest.test_gather_limited_dupes.<locals>.fn   r{   r   r   r   )r   )r   r   r   r   r   r   )r   r~   r   )r   rz   fgr   s        r   test_gather_limited_dupesz%AsyncioTest.test_gather_limited_dupes   s      	 	 	 BqEEBqEEz!Q1a!<<<<<<<<<+++V444BqEEBqEEz!Q1a33333333+++V44444r   c                   K    G d dt                     dfd	}|                               5  t          j         |dd           |d                     d {V  d d d            n# 1 swxY w Y   t          j         |dd           |d          d	           d {V }|                     |d
         d           |                     |d                    d S )Nc                       e Zd ZdS )<AsyncioTest.test_gather_with_exceptions.<locals>.MyExceptionN)__name__
__module____qualname__r!   r   r   MyExceptionr      s        Dr   r   Fc                 Z   K   t          j        |            d {V  |r |           | S r   r   )ry   failr   s     r   rz   z3AsyncioTest.test_gather_with_exceptions.<locals>.fn   sF      -$$$$$$$$$ '!k#&&&Jr   gMb`?T)r   rw   r_   r   r   )F)rT   r8   r   r~   r   rb   )r   rz   r   r   s      @r   test_gather_with_exceptionsz'AsyncioTest.test_gather_with_exceptions   s     	 	 	 	 	) 	 	 		 	 	 	 	 	 {++ 	> 	>*RRD11122e99=========	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> zBu4   ""U))t
 
 
 
 
 
 
 
 
 	E***fQi55555s   0A..A25A2c                   K   ddfdfd}t          t          d          rt          j         |                      }nt          j         |                      }t          j        d           d {V  |                                 |                     t          j                  5  | d {V  d d d            n# 1 swxY w Y   |                                |                                d S )NFc                  r   K   	 dt          j        d           d {V  d S # t           j        $ r d  w xY w)NTr@   )r   r   ri   )	cancelledstarteds   r   _fnz+AsyncioTest.test_gather_cancel.<locals>._fn   s_      mB''''''''''')    	s   # 6c                  P   K   t          j                                 d {V  d S r   )r   r~   )r   s   r   _gatherz/AsyncioTest.test_gather_cancel.<locals>._gather   s5      *SSUU###########r   r|   r   )	r}   r   r|   rp   r   rq   r8   ri   
assertTrue)r   r   rr   r   r   r   s      @@@r   test_gather_cancelzAsyncioTest.test_gather_cancel   sb     		 	 	 	 	 		$ 	$ 	$ 	$ 	$ 7M** 	4&wwyy11DD(33DmAw566 	 	JJJJJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   	"""""s   0	CC	C	N)r   r   r   r   r   r0   r<   rN   r[   rd   rk   rs   r   r   r   r   r   r!   r   r   r   r      ss       + + + , , Z,$ % % Z% @ @ Z@ & & Z&& 4 4 Z42 @ @ Z@ @ @ Z@, , , Z, A A ZA0 5 5 Z5 6 6 Z6& # # Z# # #r   r   )r   unittestr   aioitertoolsr   aioitertools.asyncior   helpersr   slistrB   sranger   r!   r   r   <module>r      s               " " " " " "      	qt# t# t# t# t#( t# t# t# t# t#r   