
    Dh)                         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y)    N)AsyncIterator)TestCase   )
async_test)ABC      c                   l   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(ed&        Z)y')(BuiltinsTestc                    K   | j                  t        j                  g d       d {          | j                  t        j                  g d       d {          y 7 77 w)N)Tr   string)Tr   r   )
assertTrueaitallassertFalseselfs    }/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aioitertools/tests/builtins.pytest_all_listzBuiltinsTest.test_all_list   sC     cgg&9::;sww':;;< ;;!   &A$A -A$A"
A$"A$c                    K   | j                  t        j                  t               d {          | j	                  t        j                  t
               d {          y 7 97 wNr   r   r   srange1r   sranger   s    r   test_all_rangezBuiltinsTest.test_all_range   s@     cggg../swwv./ /.s!   (A(A$/A(A&
A(&A(c                    K   | j                  t        j                  d t        D               d {          | j	                  t        j                  d t
        D               d {          y 7 @7 w)Nc              3       K   | ]  }|  y wr    .0xs     r   	<genexpr>z2BuiltinsTest.test_all_generator.<locals>.<genexpr>!        %9Aa%9   c              3       K   | ]  }|  y wr   r!   r"   s     r   r%   z2BuiltinsTest.test_all_generator.<locals>.<genexpr>"   s     &9Qq&9r'   r   r   s    r   test_all_generatorzBuiltinsTest.test_all_generator   sM     cgg%9%999:sww&9&&999: :9s!   /A6A26A6(A4)
A64A6c                    K   | j                  t        j                  t        j                  t                     d {          | j                  t        j                  t        j                  t                     d {          y 7 L7 wr   )r   r   r   iterr   r   r   r   s    r   test_all_async_generatorz%BuiltinsTest.test_all_async_generator$   sS     cggchhw&7889swwsxx'7889 98s"   ;BB
AB B
BBc                    K   | j                  t        j                  g d       d {          | j                  t        j                  g d       d {          y 7 77 w)N)Fr    )Fr   r.   )r   r   anyr   r   s    r   test_any_listzBuiltinsTest.test_any_list+   sA     cggn556sww~667 66r   c                 8  K   | j                  t        j                  t               d {          | j                  t        j                  t               d {          | j                  t        j                  t               d {          y 7 i7 ;7 wr   r   r   r/   r   r   r   srange0r   s    r   test_any_rangezBuiltinsTest.test_any_range0   s\     cggfo-.cggg../swww//0 ../s3   (BB/BB/B
B
BBBc                 b  K   | j                  t        j                  d t        D               d {          | j                  t        j                  d t        D               d {          | j                  t        j                  d t        D               d {          y 7 w7 B7 w)Nc              3       K   | ]  }|  y wr   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>8   s     %8Aa%8r'   c              3       K   | ]  }|  y wr   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>9   r&   r'   c              3       K   | ]  }|  y wr   r!   r"   s     r   r%   z2BuiltinsTest.test_any_generator.<locals>.<genexpr>:   s     &:Qq&:r'   r2   r   s    r   test_any_generatorzBuiltinsTest.test_any_generator6   so     cgg%8%8889cgg%9%999:sww&:'&:::; 99:s3   /B/B)6B/(B+)6B/B- 
B/+B/-B/c                   K   | j                  t        j                  t        j                  t                     d {          | j                  t        j                  t        j                  t
                     d {          | j                  t        j                  t        j                  t                     d {          y 7 7 N7 wr   )r   r   r/   r+   r   r   r   r3   r   s    r   test_any_async_generatorz%BuiltinsTest.test_any_async_generator<   sx     cggchhv&6778cggchhw&7889swwsxx'899: 889s5   ;CCAC CACC
CCCc                    K   t        j                  t              }| j                  |t               d}|2 3 d {   }| j                  |t        |          |dz  }(7 #6 y wNr   r   )r   r+   slistassertIsInstancer   assertEqualr   itidxitems       r   test_iter_listzBuiltinsTest.test_iter_listD   s\     XXe_b-0 	 	$T5:.1HC	"%   4A"A AA  A"A  A"c                    K   t        j                  t              }| j                  |t               d}|2 3 d {   }| j                  |t        |          |dz  }(7 #6 y wr=   )r   r+   r   r?   r   r@   rA   s       r   test_iter_rangezBuiltinsTest.test_iter_rangeM   s]     XXfb-0 	 	$T6#;/1HC	"rF   c                    K   t                G fdd      } |       }| j                  t        j                  |             y w)Nc                       e Zd Z fdZy)7BuiltinsTest.test_iter_iterable.<locals>.async_iterablec                     S r   r!   r   sentinels    r   	__aiter__zABuiltinsTest.test_iter_iterable.<locals>.async_iterable.__aiter__[           N)__name__
__module____qualname__rO   rN   s   r   async_iterablerK   Z   s     rQ   rV   objectr@   r   r+   )r   rV   aiterrN   s      @r   test_iter_iterablezBuiltinsTest.test_iter_iterableV   s:     8	  	   %(3   AAc                    K   t                G fdd      } |       }| j                  t        j                  |      |       y w)Nc                   "    e Zd Z fdZ fdZy)7BuiltinsTest.test_iter_iterator.<locals>.async_iteratorc                     S r   r!   rM   s    r   rO   zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__aiter__f   rP   rQ   c                     S r   r!   rM   s    r   	__anext__zABuiltinsTest.test_iter_iterator.<locals>.async_iterator.__anext__i   rP   rQ   N)rR   rS   rT   rO   ra   rU   s   r   async_iteratorr^   e   s      rQ   rb   rW   )r   rb   rY   rN   s      @r   test_iter_iteratorzBuiltinsTest.test_iter_iteratora   s:     8	  	   %%0r[   c                 j   K   d } |       }| j                  t        j                  |      |       y w)Nc                     K   d d y w)Nr      r!   r!   rQ   r   	async_genz9BuiltinsTest.test_iter_async_generator.<locals>.async_genq   s     GGr'   )r@   r   r+   )r   rg   agens      r   test_iter_async_generatorz&BuiltinsTest.test_iter_async_generatoro   s,     	 {$.s   13c                   K   t        j                  t              }| j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t              5  t        j                  |       d {    d d d        y 7 7 t7 I7 # 1 sw Y   y xY ww)Nr   r   r	   )r   r+   r>   r@   nextassertRaisesStopAsyncIterationr   rB   s     r   test_next_listzBuiltinsTest.test_next_listz   s     XXe_sxx|+S1sxx|+S1sxx|+S112 	((2,	 	 ,++	 	^   =C3C ,C3,C!-,C3C#C38C'C%C'
C3!C3#C3%C''C0,C3c                   K   t        j                  t              }| j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t              5  t        j                  |       d {    d d d        y 7 7 t7 I7 # 1 sw Y   y xY ww)Nr   r   rf   )r   r+   r   r@   rk   rl   rm   rn   s     r   test_next_rangezBuiltinsTest.test_next_range   s     XXfsxx|+Q/sxx|+Q/sxx|+Q/12 	((2,	 	 ,++	 	rp   c                   K    G d d      }t        j                   |             }| j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j	                  t
              5  t        j                  |       d {    d d d        t        t              }| j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j	                  t
              5  t        j                  |       d {    d d d        y 7 q7 G7 7 # 1 sw Y   xY w7 7 7 `7 *# 1 sw Y   y xY ww)Nc                   $    e Zd Zd Zd Zd Zd Zy)3BuiltinsTest.test_next_iterable.<locals>.async_iterc                     d| _         y )Nr   )indexr   s    r   __init__z<BuiltinsTest.test_next_iterable.<locals>.async_iter.__init__   s	    
rQ   c                     | S r   r!   r   s    r   rO   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__aiter__   s    rQ   c                 T    | j                   dkD  r
t               | j                         S )Nrf   )rw   rm   	fake_nextr   s    r   ra   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.__anext__   s#    ::>,..~~''rQ   c                 ^   K   t         | j                     }| xj                  dz  c_        |S w)Nr   )r>   rw   )r   values     r   r{   z=BuiltinsTest.test_next_iterable.<locals>.async_iter.fake_next   s&     djj)

a
s   +-N)rR   rS   rT   rx   rO   ra   r{   r!   rQ   r   
async_iterru      s    (
rQ   r~   r   r   r	   )r   r+   r@   rk   rl   rm   r>   )r   r~   rB   s      r   test_next_iterablezBuiltinsTest.test_next_iterable   sa    	 	" XXjl#sxx|+S1sxx|+S1sxx|+S112 	((2,	 %[sxx|+S1sxx|+S1sxx|+S112 	((2,	 	 ,++	 	 ,++	 	s   AG&
F;,G&7F>8,G&$G%G&GGG!:G&G,G&G	,G&5G6G&G-G.G2
G&>G&G&GGG&G&G&GG#G&c                   K   d }t        j                   |             }| j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j                  t        j                  |       d {   d       | j	                  t
              5  t        j                  |       d {    d d d        y 7 7 t7 I7 # 1 sw Y   y xY ww)Nc                 ,   K   t         D ]  } |  	 y wr   r>   rD   s    r   rg   z9BuiltinsTest.test_next_async_generator.<locals>.async_gen         
   r   r   r	   )r   r+   r@   rk   rl   rm   )r   rg   rB   s      r   test_next_async_generatorz&BuiltinsTest.test_next_async_generator   s     	 XXik"sxx|+S1sxx|+S1sxx|+S112 	((2,	 	 ,++	 	s`   AC7C#,C70C%1,C7C'C7<C+C)C+
C7%C7'C7)C++C40C7c                    K   t        dg      }| j                  t        j                  |d       d {   d       | j                  t        j                  |d       d {   d       y 7 87 wNr   ?)r+   r@   r   rk   rn   s     r   test_next_default_iterablez'BuiltinsTest.test_next_default_iterable   sV     3%[sxxC00#6sxxC00#6 10s!   1A0A,-A0!A."A0.A0c                    K   t        j                  dg      }| j                  t        j                  |d       d {   d       | j                  t        j                  |d       d {   d       y 7 87 wr   )r   r+   r@   rk   rn   s     r    test_next_default_async_iterablez-BuiltinsTest.test_next_default_async_iterable   sZ     XXse_sxxC00#6sxxC00#6 10s!   ;A:A6-A:+A8,A:8A:c                    K   | j                  t        j                  t        j                  t                     d {   t               y 7 wr   )r@   r   listr+   r>   r   s    r   	test_listzBuiltinsTest.test_list   s-     sxx88%@8s   ;AAAc                    K   | j                  t        j                  t        j                  t                     d {   t        t                     y 7 wr   )r@   r   tupler+   r>   r   s    r   
test_tuplezBuiltinsTest.test_tuple   s1     syy%995<H9   ;AAAc                    K   | j                  t        j                  t        j                  t                     d {   t        t                     y 7 wr   )r@   r   setr+   r>   r   s    r   test_setzBuiltinsTest.test_set   s1     swwsxx77UD7r   c                    K   t        j                  t              2 3 d {   \  }}| j                  |t        |          &7 !6 y wr   r   	enumerater>   r@   r   rw   r}   s      r   test_enumeratezBuiltinsTest.test_enumerate   s?     "%--"6 	2 	2,%UE%L1	2"6s%   AAAAAAAc                    K   t        j                  t        d      2 3 d {   \  }}| j                  |t        |dz
            )7 $6 y w)Nr   r   r   s      r   test_enumerate_startz!BuiltinsTest.test_enumerate_start   sF     "%--q"9 	6 	6,%UE%!)$45	6"9s%   A
AAA!A
AA
c                    K   d}t        j                  t        j                  t              2 3 d {   }| j                  |t        |   j                                |dz  }67 16 y wr=   )r   mapstrlowerr>   r@   )r   rC   r}   s      r   test_map_function_listz#BuiltinsTest.test_map_function_list   sX     77399e4 	 	%UE#J$4$4$671HC	4s%   +A'A%A#A%.A'#A%%A'c                    K   d }d}t        j                  t        j                   |             2 3 d {   }| j	                  |t
        |   j                                |dz  }67 16 y w)Nc                 ,   K   t         D ]  } |  	 y w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   rC   r}   s       r   !test_map_function_async_generatorz.BuiltinsTest.test_map_function_async_generator   sa     	 77399ce4 	 	%UE#J$4$4$671HC	4s%   /A+A)A'A).A+'A))A+c                    K   d }d}t        j                  |t              2 3 d {   }| j                  |t        |   dz         |dz  }+7 &6 y w)Nc                 R   K   t        j                  d       d {    | dz  S 7 	wNg-C6?rf   asynciosleepr$   s    r   doublez4BuiltinsTest.test_map_coroutine_list.<locals>.double   &     --'''q5L (   '%
'r   rf   r   )r   r   r>   r@   )r   r   rC   r}   s       r   test_map_coroutine_listz$BuiltinsTest.test_map_coroutine_list   sV     	 77651 	 	%UE#JN31HC	1s%    AAAA#AAAc                    K   d }d }d}t        j                  | |             2 3 d {   }| j                  |t        |   dz         |dz  }+7 &6 y w)Nc                 ,   K   t         D ]  } |  	 y wr   r   r   s    r   r   z6BuiltinsTest.test_map_coroutine_generator.<locals>.gen  r   r   c                 R   K   t        j                  d       d {    | dz  S 7 	wr   r   r   s    r   r   z9BuiltinsTest.test_map_coroutine_generator.<locals>.double
  r   r   r   rf   r   )r   r   r@   r>   )r   r   r   rC   r}   s        r   test_map_coroutine_generatorz)BuiltinsTest.test_map_coroutine_generator  s]     		 776351 	 	%UE#JN31HC	1s%   $AAAA#AAAc                   K   d }| j                  t        j                   |              d {   d       | j                  t        j                  t        d             d {   d       | j	                  t
        d      5  t        j                  g        d {    d d d        | j	                  t
        d      5  t        j                  d d       d {    d d d        y 7 7 7 O# 1 sw Y   NxY w7 # 1 sw Y   y xY ww)	Nc                 ,   K   t         D ]  } |  	 y w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       	 	swwsu~-s3swwuQx00!4##J0CD 	''"+	 ##J0HI 	+''$E***	+ 	+ .0 	 	 +	+ 	+u   ,D	C)5D	$C+%D	C/C-C/"D	 C=C;C= 
D	+D	-C//C84D	;C==DD	c                 D  K   | j                  t        j                  t        d      d       d {   d       | j                  t        j                  g d       d {   d       | j                  t        j                  g d        d {   d        y 7 h7 ;7 w)Nrf   r$   defaultr   )r@   r   r   r   r   s    r   test_max_defaultzBuiltinsTest.test_max_default$  q     swwuQx==qAswwr377=swwr488$? >783   /B B.B  B!.B BB B B c                 
  K   g d}d }| j                   |d      d       | j                  t        j                  |       d {   d       | j                  t        j                  ||       d {   d       y 7 97 w)Nstarbuzzguardc                     | d d d   S Nr!   ss    r   reversez*BuiltinsTest.test_max_key.<locals>.reverse.      TrT7NrQ   pythonnohtypr   keyr   )r@   r   r   r   wordsr   s      r   test_max_keyzBuiltinsTest.test_max_key*  si     )	 	*H5swwu~-v6swwu'::FC .:$   ABA?.B4B5BBc                   K   d }| j                  t        j                   |              d {   d       | j                  t        j                  t        d             d {   d       | j	                  t
        d      5  t        j                  g        d {    d d d        | j	                  t
        d      5  t        j                  d d       d {    d d d        y 7 7 7 O# 1 sw Y   NxY w7 # 1 sw Y   y xY ww)	Nc                 ,   K   t         D ]  } |  	 y wr   r   r   s    r   r   z(BuiltinsTest.test_min_basic.<locals>.gen:  r   r   r   r   r   r   r   r   r   )r@   r   minr   r   r   r   s     r   test_min_basiczBuiltinsTest.test_min_basic8  r   r   c                 D  K   | j                  t        j                  t        d      d       d {   d       | j                  t        j                  g d       d {   d       | j                  t        j                  g d        d {   d        y 7 h7 ;7 w)Nrf   r$   r   r   )r@   r   r   r   r   s    r   test_min_defaultzBuiltinsTest.test_min_defaultG  r   r   c                 
  K   g d}d }| j                   |d      d       | j                  t        j                  |       d {   d       | j                  t        j                  ||       d {   d       y 7 97 w)Nr   c                     | d d d   S r   r!   r   s    r   r   z*BuiltinsTest.test_min_key.<locals>.reverseQ  r   rQ   r   r   r   r   r   )r@   r   r   r   s      r   test_min_keyzBuiltinsTest.test_min_keyM  si     )	 	*H5swwu~-v6swwu'::GD .:r   c                    K   | j                  t        j                  t               d {   t        t                     y 7 wr   )r@   r   sumr   r   s    r   test_sum_range_defaultz#BuiltinsTest.test_sum_range_default[  s(     swwv.F<.s   (AAAc                 t   K   | j                  t        j                  t        d       d {   d       y 7 
w)Nr   fooABC)r@   r   r   r>   r   s    r   test_sum_list_stringz!BuiltinsTest.test_sum_list_string_  s'     swwue44h?4s   )868c                    K   d}t        j                  t        t              2 3 d {   \  }}| j	                  |t        |          | j	                  |t        |          |dz  }D7 ?6 y wr=   )r   zipr>   r   r@   )r   rC   abs       r   test_zip_equalzBuiltinsTest.test_zip_equale  sc     ''%0 	 	$!QQc
+Qs,1HC	0s%   !A+A)A'A)<A+'A))A+c                    K   g d}g d}t        j                  t        j                  ||             d {   }g d}| j                  ||       y 7 w)N)r   r   c)r   r   rf   r
      ))r   r   )r   r   )r   rf   )r   r   r   assertListEqual)r   shortlongresultexpecteds        r   test_zip_shortestzBuiltinsTest.test_zip_shortestm  sF     xxt 4551Xv. 6s   5AAAN)*rR   rS   rT   r   r   r   r)   r,   r0   r4   r9   r;   rE   rH   rZ   rc   ri   ro   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   rQ   r   r   r      s    = = 0 0 ; ; : : 8 8 1 1
 < <
 ; ;     4 4 1 1 / /      @ 
 
 7 7 7 7 A A I I
 E E
 2 2 6 6          + + @ @
 	D 	D + + @ @
 	E 	E = = @ @
   / /rQ   r   )r   typingr   unittestr   aioitertoolsr   helpersr   r>   r   r   r   r3   r   r!   rQ   r   <module>r      sF         	q
1+
(c/8 c/rQ   