
    ?_                      t    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 G d d	e          ZdS )
    N)AsyncIterator)TestCase   )
async_test)ABC   c                   J   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dS )BuiltinsTestc                    K   t          j        t                    }|                     |t                     d}|2 3 d {V }|                     |t          |                    |dz  }.6 d S Nr   r   )aititerslistassertIsInstancer   assertEqualselfitidxitems       ;lib/python3.11/site-packages/aioitertools/tests/builtins.pytest_iter_listzBuiltinsTest.test_iter_list   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   sranger   r   r   r   s       r   test_iter_rangezBuiltinsTest.test_iter_range   s      Xfb-000 	 	 	 	 	 	 	$T6#;///1HCC ""r   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 N r   sentinels    r   	__aiter__zABuiltinsTest.test_iter_iterable.<locals>.async_iterable.__aiter__*           N)__name__
__module____qualname__r'   r&   s   r   async_iterabler!   )   s.                     r)   r.   objectr   r   r   )r   r.   aiterr&   s      @r   test_iter_iterablezBuiltinsTest.test_iter_iterable%   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$   r%   s    r   r'   zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__aiter__5   r(   r)   c                     S r#   r$   r%   s    r   	__anext__zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__anext__8   r(   r)   N)r*   r+   r,   r'   r8   r-   s   r   async_iteratorr5   4   sG                              r)   r9   r/   )r   r9   r1   r&   s      @r   test_iter_iteratorzBuiltinsTest.test_iter_iterator0   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_gen@   s       GGGGGGGGGGr)   )r   r   r   )r   r>   agens      r   test_iter_async_generatorz&BuiltinsTest.test_iter_async_generator>   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   r   s     r   test_next_listzBuiltinsTest.test_next_listI   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   r=   )r   r   r   r   rB   rC   rD   rE   s     r   test_next_rangezBuiltinsTest.test_next_rangeR   s>     Xfsx||++++++Q///sx||++++++Q///sx||++++++Q///122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rG   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   )indexr   s    r   __init__z<BuiltinsTest.test_next_iterable.<locals>.async_iter.__init__^   s    


r)   c                     | S r#   r$   rO   s    r   r'   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__aiter__a   s    r)   c                 \    | j         dk    rt                      |                                 S )Nr=   )rN   rD   	fake_nextrO   s    r   r8   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__anext__d   s)    :>>,...~~'''r)   c                 N   K   t           | j                 }| xj        dz  c_        |S )Nr   )r   rN   )r   values     r   rS   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.fake_nexti   s&      dj)

a

r)   N)r*   r+   r,   rP   r'   r8   rS   r$   r)   r   
async_iterrL   ]   sP            ( ( (
    r)   rV   r   r   r	   )r   r   r   rB   rC   rD   r   )r   rV   r   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   r   s    r   r>   z9BuiltinsTest.test_next_async_generator.<locals>.async_gen~   ,        




 r)   r   r   r	   )r   r   r   rB   rC   rD   )r   r>   r   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          j        t          j        t                               d {V t                     d S r#   )r   r   listr   r   rO   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   rO   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   rN   rU   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 )N   re   rg   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   r   rU   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#   rZ   r[   s    r   genz;BuiltinsTest.test_map_function_async_generator.<locals>.gen   r\   r)   r   r   )r   rm   rn   ro   r   r   )r   rs   r   rU   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?r=   asynciosleepxs    r   doublez4BuiltinsTest.test_map_coroutine_list.<locals>.double   1      -'''''''''q5Lr)   r   r=   r   )r   rm   r   r   )r   r}   r   rU   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#   rZ   r[   s    r   rs   z6BuiltinsTest.test_map_coroutine_generator.<locals>.gen   r\   r)   c                 D   K   t          j        d           d {V  | dz  S rw   rx   r{   s    r   r}   z9BuiltinsTest.test_map_coroutine_generator.<locals>.double   r~   r)   r   r=   r   )r   rm   r   r   )r   rs   r}   r   rU   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#   rZ   r[   s    r   rs   z(BuiltinsTest.test_max_basic.<locals>.gen   r\   r)   r	   rj   r
   iterable is emptykwarg .+ not supportedfoor   )r   r   maxrangeassertRaisesRegex
ValueErrorr   rs   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 )Nr=   r|   defaultr   )r   r   r   r   rO   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#   rZ   r[   s    r   rs   z(BuiltinsTest.test_min_basic.<locals>.gen   r\   r)   r   rj   r   r   r   r   r   )r   r   minr   r   r   r   s     r   test_min_basiczBuiltinsTest.test_min_basic   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 )Nr=   r|   r   r   )r   r   r   r   rO   s    r   test_min_defaultzBuiltinsTest.test_min_default  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>.reverse  r   r)   r   r   r   r   r   )r   r   r   r   s      r   test_min_keyzBuiltinsTest.test_min_key	  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   rO   s    r   test_sum_range_defaultz#BuiltinsTest.test_sum_range_default  sB      swv......F<<<<<r)   c                 r   K   |                      t          j        t          d           d {V d           d S )Nr   fooABC)r   r   r   r   rO   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   r   abs       r   test_zip_equalzBuiltinsTest.test_zip_equal!  s      '%00 	 	 	 	 	 	 	$!QQc
+++Qs,,,1HCC 100s   A6N)r*   r+   r,   r   r   r   r2   r:   r@   rF   rI   rW   r]   r`   rc   rh   rk   rp   rt   r   r   r   r   r   r   r   r   r   r   r   r$   r)   r   r   r      s          Z   Z 4 4 Z4 1 1 Z1 / / Z/   Z   Z   Z@ 
 
 Z
 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  r)   r   )ry   typingr   unittestr   aioitertoolsr   helpersr   r   r   r   r   r$   r)   r   <module>r      s                                	qX X X X X8 X X X X Xr)   