
    ?fC)                         d dl Z d dlmZ d dlmZ d dlZddlmZ g dZ	 e
d          Z e
dd          Z e
d          Z G d	 d
e          ZdS )    N)AsyncIterator)TestCase   )
async_test)ABC      c                   <   e 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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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'ed%             Z(d&S )'BuiltinsTestc                    K   |                      t          j        g d           d {V            |                     t          j        g d           d {V            d S )N)Tr   string)Tr   r   )
assertTrueaitallassertFalseselfs    j/home/panchajanya/Development/work/volatility3/lib/python3.11/site-packages/aioitertools/tests/builtins.pytest_all_listzBuiltinsTest.test_all_list   sx      cg&9&9&9::::::::;;;sw':':':;;;;;;;;<<<<<    c                    K   |                      t          j        t                     d {V            |                     t          j        t
                     d {V            d S Nr   r   r   srange1r   sranger   s    r   test_all_rangezBuiltinsTest.test_all_range   sh      cgg........///swv....../////r   c                    K   |                      t          j        d t          D                        d {V            |                     t          j        d t
          D                        d {V            d S )Nc              3      K   | ]}|V  d S r    .0xs     r   	<genexpr>z2BuiltinsTest.test_all_generator.<locals>.<genexpr>!   "      %9%9Aa%9%9%9%9%9%9r   c              3      K   | ]}|V  d S r   r!   r"   s     r   r%   z2BuiltinsTest.test_all_generator.<locals>.<genexpr>"   s"      &9&9Qq&9&9&9&9&9&9r   r   r   s    r   test_all_generatorzBuiltinsTest.test_all_generator   s      cg%9%9%9%9%999999999:::sw&9&9&&9&9&999999999:::::r   c                   K   |                      t          j        t          j        t                               d {V            |                     t          j        t          j        t                               d {V            d S r   )r   r   r   iterr   r   r   r   s    r   test_all_async_generatorz%BuiltinsTest.test_all_async_generator$   s~      cgchw&7&788888888999swsx'7'78888888899999r   c                    K   |                      t          j        g d           d {V            |                     t          j        g d           d {V            d S )N)Fr    )Fr   r-   )r   r   anyr   r   s    r   test_any_listzBuiltinsTest.test_any_list+   sr      cgnnn55555555666sw~~~6666666677777r   c                 6  K   |                      t          j        t                     d {V            |                      t          j        t                     d {V            |                     t          j        t                     d {V            d S r   r   r   r.   r   r   r   srange0r   s    r   test_any_rangezBuiltinsTest.test_any_range0   s      cgfoo------...cgg........///sww////////00000r   c                 r  K   |                      t          j        d t          D                        d {V            |                      t          j        d t          D                        d {V            |                     t          j        d t          D                        d {V            d S )Nc              3      K   | ]}|V  d S r   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>8   s"      %8%8Aa%8%8%8%8%8%8r   c              3      K   | ]}|V  d S r   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>9   r&   r   c              3      K   | ]}|V  d S r   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>:   s"      &:&:Qq&:&:&:&:&:&:r   r1   r   s    r   test_any_generatorzBuiltinsTest.test_any_generator6   s      cg%8%8%8%8%888888888999cg%9%9%9%9%999999999:::sw&:&:'&:&:&:::::::::;;;;;r   c                   K   |                      t          j        t          j        t                               d {V            |                      t          j        t          j        t
                               d {V            |                     t          j        t          j        t                               d {V            d S r   )r   r   r.   r*   r   r   r   r2   r   s    r   test_any_async_generatorz%BuiltinsTest.test_any_async_generator<   s      cgchv&6&677777777888cgchw&7&788888888999swsx'8'899999999:::::r   c                    K   t          j        t                    }|                     |t                     d}|2 3 d {V }|                     |t          |                    |dz  }.6 d S Nr   r   )r   r*   slistassertIsInstancer   assertEqualr   itidxitems       r   test_iter_listzBuiltinsTest.test_iter_listD   s      Xe__b-000 	 	 	 	 	 	 	$T5:...1HCC ""   A)c                    K   t          j        t                    }|                     |t                     d}|2 3 d {V }|                     |t          |                    |dz  }.6 d S r<   )r   r*   r   r>   r   r?   r@   s       r   test_iter_rangezBuiltinsTest.test_iter_rangeM   s      Xfb-000 	 	 	 	 	 	 	$T6#;///1HCC ""rE   c                    K   t                       G fdd          } |            }|                     t          j        |                     d S )Nc                       e Zd Z fdZdS )7BuiltinsTest.test_iter_iterable.<locals>.async_iterablec                     S r   r!   r   sentinels    r   	__aiter__zABuiltinsTest.test_iter_iterable.<locals>.async_iterable.__aiter__[       r   N)__name__
__module____qualname__rN   rM   s   r   async_iterablerJ   Z   s.                     r   rT   objectr?   r   r*   )r   rT   aiterrM   s      @r   test_iter_iterablezBuiltinsTest.test_iter_iterableV   su      88	  	  	  	  	  	  	  	  	  	    %(33333r   c                    K   t                       G fdd          } |            }|                     t          j        |          |           d S )Nc                   $    e Zd Z fdZ fdZdS )7BuiltinsTest.test_iter_iterator.<locals>.async_iteratorc                     S r   r!   rL   s    r   rN   zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__aiter__f   rO   r   c                     S r   r!   rL   s    r   	__anext__zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__anext__i   rO   r   N)rP   rQ   rR   rN   r^   rS   s   r   async_iteratorr[   e   sG                              r   r_   rU   )r   r_   rW   rM   s      @r   test_iter_iteratorzBuiltinsTest.test_iter_iteratora   su      88	  	  	  	  	  	  	  	  	  	    %%00000r   c                 t   K   d } |            }|                      t          j        |          |           d S )Nc                    K   dW V  dW V  d S )Nr      r!   r!   r   r   	async_genz9BuiltinsTest.test_iter_async_generator.<locals>.async_genq   s       GGGGGGGGGGr   )r?   r   r*   )r   rd   agens      r   test_iter_async_generatorz&BuiltinsTest.test_iter_async_generatoro   sF      	 	 	 y{{$.....r   c                   K   t          j        t                    }|                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nr   r   r	   )r   r*   r=   r?   nextassertRaisesStopAsyncIterationr   rA   s     r   test_next_listzBuiltinsTest.test_next_listz   s<     Xe__sx||++++++S111sx||++++++S111sx||++++++S111122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	    C((C,/C,c                   K   t          j        t                    }|                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nr   r   rc   )r   r*   r   r?   rh   ri   rj   rk   s     r   test_next_rangezBuiltinsTest.test_next_range   s>     Xfsx||++++++Q///sx||++++++Q///sx||++++++Q///122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rm   c                   K    G d d          }t          j         |                      }|                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t
                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   t          t                    }|                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )3BuiltinsTest.test_next_iterable.<locals>.async_iterc                     d| _         d S )Nr   )indexr   s    r   __init__z<BuiltinsTest.test_next_iterable.<locals>.async_iter.__init__   s    


r   c                     | S r   r!   r   s    r   rN   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__aiter__   s    r   c                 \    | j         dk    rt                      |                                 S )Nrc   )rt   rj   	fake_nextr   s    r   r^   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__anext__   s)    :>>,...~~'''r   c                 N   K   t           | j                 }| xj        dz  c_        |S )Nr   )r=   rt   )r   values     r   rx   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.fake_next   s&      dj)

a

r   N)rP   rQ   rR   ru   rN   r^   rx   r!   r   r   
async_iterrr      sP            ( ( (
    r   r{   r   r   r	   )r   r*   r?   rh   ri   rj   r=   )r   r{   rA   s      r   test_next_iterablezBuiltinsTest.test_next_iterable   s     	 	 	 	 	 	 	 	" Xjjll##sx||++++++S111sx||++++++S111sx||++++++S111122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 %[[sx||++++++S111sx||++++++S111sx||++++++S111122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   C77C;>C;:G""G&)G&c                   K   d }t          j         |                      }|                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t          j        |           d {V d           |                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 (   K   t           D ]} | W V  d S r   r=   rC   s    r   rd   z9BuiltinsTest.test_next_async_generator.<locals>.async_gen   ,        




 r   r   r   r	   )r   r*   r?   rh   ri   rj   )r   rd   rA   s      r   test_next_async_generatorz&BuiltinsTest.test_next_async_generator   sU     	 	 	 Xiikk""sx||++++++S111sx||++++++S111sx||++++++S111122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C..C25C2c                    K   t          dg          }|                     t          j        |d           d {V d           |                     t          j        |d           d {V d           d S Nr   ?)r*   r?   r   rh   rk   s     r   test_next_default_iterablez'BuiltinsTest.test_next_default_iterable   s      3%[[sxC00000000#666sxC00000000#66666r   c                    K   t          j        dg          }|                     t          j        |d           d {V d           |                     t          j        |d           d {V d           d S r   )r   r*   r?   rh   rk   s     r    test_next_default_async_iterablez-BuiltinsTest.test_next_default_async_iterable   s      Xse__sxC00000000#666sxC00000000#66666r   c                    K   |                      t          j        t          j        t                               d {V t                     d S r   )r?   r   listr*   r=   r   s    r   	test_listzBuiltinsTest.test_list   sF      sx88888888%@@@@@r   c                    K   |                      t          j        t          j        t                               d {V t          t                               d S r   )r?   r   setr*   r=   r   s    r   test_setzBuiltinsTest.test_set   sL      swsx77777777UDDDDDr   c                    K   t          j        t                    2 3 d {V \  }}|                     |t          |                    ,6 d S r   r   	enumerater=   r?   r   rt   rz   s      r   test_enumeratezBuiltinsTest.test_enumerate   sd      "%-"6"6 	2 	2 	2 	2 	2 	2 	2,%UE%L1111 #7"6"6s   Ac                    K   t          j        t          d          2 3 d {V \  }}|                     |t          |dz
                      /6 d S )Nr   r   r   s      r   test_enumerate_startz!BuiltinsTest.test_enumerate_start   sk      "%-q"9"9 	6 	6 	6 	6 	6 	6 	6,%UE%!)$45555 #:"9"9s   Ac                    K   d}t          j        t          j        t                    2 3 d {V }|                     |t          |                                                    |dz  }@6 d S r<   )r   mapstrlowerr=   r?   )r   rB   rz   s      r   test_map_function_listz#BuiltinsTest.test_map_function_list   s}      739e44 	 	 	 	 	 	 	%UE#J$4$4$6$67771HCC 544s   A)c                    K   d }d}t          j        t          j         |                      2 3 d {V }|                     |t
          |                                                    |dz  }@6 d S )Nc                 (   K   t           D ]} | W V  d S r   r   r   s    r   genz;BuiltinsTest.test_map_function_async_generator.<locals>.gen   r   r   r   r   )r   r   r   r   r?   r=   )r   r   rB   rz   s       r   !test_map_function_async_generatorz.BuiltinsTest.test_map_function_async_generator   s      	 	 	 739ccee44 	 	 	 	 	 	 	%UE#J$4$4$6$67771HCC 544s   A/c                    K   d }d}t          j        |t                    2 3 d {V }|                     |t          |         dz             |dz  }16 d S )Nc                 D   K   t          j        d           d {V  | dz  S Ng-C6?rc   asynciosleepr$   s    r   doublez4BuiltinsTest.test_map_coroutine_list.<locals>.double   1      -'''''''''q5Lr   r   rc   r   )r   r   r=   r?   )r   r   rB   rz   s       r   test_map_coroutine_listz$BuiltinsTest.test_map_coroutine_list   s      	 	 	 76511 	 	 	 	 	 	 	%UE#JN3331HCC 211s   Ac                    K   d }d }d}t          j        | |                      2 3 d {V }|                     |t          |         dz             |dz  }16 d S )Nc                 (   K   t           D ]} | W V  d S r   r   r   s    r   r   z6BuiltinsTest.test_map_coroutine_generator.<locals>.gen  r   r   c                 D   K   t          j        d           d {V  | dz  S r   r   r   s    r   r   z9BuiltinsTest.test_map_coroutine_generator.<locals>.double  r   r   r   rc   r   )r   r   r?   r=   )r   r   r   rB   rz   s        r   test_map_coroutine_generatorz)BuiltinsTest.test_map_coroutine_generator   s      	 	 		 	 	 76335511 	 	 	 	 	 	 	%UE#JN3331HCC 211s   Ac                 ,  K   d }|                      t          j         |                       d {V d           |                      t          j        t          d                     d {V d           |                     t
          d          5  t          j        g            d {V  d d d            n# 1 swxY w Y   |                     t
          d          5  t          j        d d           d {V  d d d            d S # 1 swxY w Y   d S )	Nc                 (   K   t           D ]} | W V  d S r   r   r   s    r   r   z(BuiltinsTest.test_max_basic.<locals>.gen  r   r   r	   r   r
   iterable is emptykwarg .+ not supportedfoor   )r?   r   maxrangeassertRaisesRegex
ValueErrorr   r   s     r   test_max_basiczBuiltinsTest.test_max_basic       	 	 	 	swssuu~~------s333swuQxx00000000!444##J0CDD 	 	'"++	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##J0HII 	+ 	+'$E**********	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+$   B99B= B=D		DDc                 D  K   |                      t          j        t          d          d           d {V d           |                      t          j        g d           d {V d           |                      t          j        g d            d {V d            d S )Nrc   r$   defaultr   )r?   r   r   r   r   s    r   test_max_defaultzBuiltinsTest.test_max_default         swuQxx=========qAAAswr3777777777===swr4888888888$?????r   c                   K   g d}d }|                       |d          d           |                      t          j        |           d {V d           |                      t          j        ||           d {V d           d S )Nstarbuzzguardc                     | d d d         S Nr!   ss    r   reversez*BuiltinsTest.test_max_key.<locals>.reverse*      TTrT7Nr   pythonnohtypr   keyr   )r?   r   r   r   wordsr   s      r   test_max_keyzBuiltinsTest.test_max_key&  s      )))	 	 	 	**H555swu~~------v666swu':::::::::FCCCCCr   c                 ,  K   d }|                      t          j         |                       d {V d           |                      t          j        t          d                     d {V d           |                     t
          d          5  t          j        g            d {V  d d d            n# 1 swxY w Y   |                     t
          d          5  t          j        d d           d {V  d d d            d S # 1 swxY w Y   d S )	Nc                 (   K   t           D ]} | W V  d S r   r   r   s    r   r   z(BuiltinsTest.test_min_basic.<locals>.gen6  r   r   r   r   r   r   r   r   r   )r?   r   minr   r   r   r   s     r   test_min_basiczBuiltinsTest.test_min_basic4  r   r   c                 D  K   |                      t          j        t          d          d           d {V d           |                      t          j        g d           d {V d           |                      t          j        g d            d {V d            d S )Nrc   r$   r   r   )r?   r   r   r   r   s    r   test_min_defaultzBuiltinsTest.test_min_defaultC  r   r   c                   K   g d}d }|                       |d          d           |                      t          j        |           d {V d           |                      t          j        ||           d {V d           d S )Nr   c                     | d d d         S r   r!   r   s    r   r   z*BuiltinsTest.test_min_key.<locals>.reverseM  r   r   r   r   r   r   r   )r?   r   r   r   s      r   test_min_keyzBuiltinsTest.test_min_keyI  s      )))	 	 	 	**H555swu~~------v666swu':::::::::GDDDDDr   c                    K   |                      t          j        t                     d {V t          t                               d S r   )r?   r   sumr   r   s    r   test_sum_range_defaultz#BuiltinsTest.test_sum_range_defaultW  sB      swv......F<<<<<r   c                 r   K   |                      t          j        t          d           d {V d           d S )Nr   fooABC)r?   r   r   r=   r   s    r   test_sum_list_stringz!BuiltinsTest.test_sum_list_string[  s@      swue44444444h?????r   c                    K   d}t          j        t          t                    2 3 d {V \  }}|                     |t          |                    |                     |t          |                    |dz  }R6 d S r<   )r   zipr=   r   r?   )r   rB   abs       r   test_zip_equalzBuiltinsTest.test_zip_equala  s      '%00 	 	 	 	 	 	 	$!QQc
+++Qs,,,1HCC 100s   A6c                    K   g d}g d}t          j        t          j        ||                     d {V }ddgddgddgg}|                     ||           d S )	N)r   r   c)r   r   rc   r
      r   r   r   r   r   rc   )r   r   r   assertListEqual)r   shortlongresultexpecteds        r   test_zip_shortestzBuiltinsTest.test_zip_shortesti  sy      xt 4 455555555!HsAha1Xv.....r   N))rP   rQ   rR   r   r   r   r(   r+   r/   r3   r8   r:   rD   rG   rX   r`   rf   rl   ro   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r      s        = = Z= 0 0 Z0 ; ; Z; : : Z: 8 8 Z8 1 1 Z1
 < < Z<
 ; ; Z;   Z   Z 4 4 Z4 1 1 Z1 / / Z/   Z   Z   Z@ 
 
 Z
 7 7 Z7 7 7 Z7 A A ZA
 E E ZE
 2 2 Z2 6 6 Z6   Z   Z   Z   Z  + + Z+ @ @ Z@
 	D 	D Z	D + + Z+ @ @ Z@
 	E 	E Z	E = = Z= @ @ Z@
   Z / / Z/ / /r   r   )r   typingr   unittestr   aioitertoolsr   helpersr   r=   r   r   r   r2   r   r!   r   r   <module>r      s                                	q
%1++
%((_/ _/ _/ _/ _/8 _/ _/ _/ _/ _/r   