
    ?_FT                     r    d dl Z d dlZd dlmZ d dlZddlmZ g dZ e	dd          Z
 G d de          ZdS )	    N)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(ed&             Z)ed'             Z*ed(             Z+ed)             Z,ed*             Z-ed+             Z.ed,             Z/ed-             Z0ed.             Z1ed/             Z2ed0             Z3ed1             Z4ed2             Z5ed3             Z6ed4             Z7ed5             Z8ed6             Z9ed7             Z:ed8             Z;ed9             Z<ed:             Z=ed;             Z>ed<             Z?ed=             Z@ed>             ZAed?             ZBed@             ZCdAS )BItertoolsTestc                 <  K   t          j        t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )N)r         ait
accumulatesrangeassertEqualnextassertRaisesStopAsyncIterationselfitks      <lib/python3.11/site-packages/aioitertools/tests/itertools.pytest_accumulate_range_defaultz+ItertoolsTest.test_accumulate_range_default   s      ^F## 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   )BBBc                 T  K   t          j        t          t          j                  }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nfuncr      r   )	r   r   r   operatormulr   r   r   r   r   s      r   test_accumulate_range_functionz,ItertoolsTest.test_accumulate_range_function   s      ^F666 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   5BB!$B!c                 F  K   d }t          j        t          |          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | |z  S N abs     r   r$   z:ItertoolsTest.test_accumulate_range_coroutine.<locals>.mul"         q5L    r   r!   r   )r   r$   r   r   s       r   test_accumulate_range_coroutinez-ItertoolsTest.test_accumulate_range_coroutine    s     	 	 	 ^F--- 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .BBBc                 `  K   d }t          j         |            t          j                  }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 (   K   dW V  dW V  dW V  d S Nr   r"   r	   r*   r*   r/   r   genz7ItertoolsTest.test_accumulate_gen_function.<locals>.gen-   +      GGGGGGGGGGGGGGr/   r   r   r"      )r   r   r#   r$   r   r   r   r   r   r4   r   r   s       r   test_accumulate_gen_functionz*ItertoolsTest.test_accumulate_gen_function+   s     	 	 	
 ^CCEE555 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ;B##B'*B'c                 R  K   d }d }t          j         |            |          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | |z  S r)   r*   r+   s     r   r$   z8ItertoolsTest.test_accumulate_gen_coroutine.<locals>.mul:   r.   r/   c                 (   K   dW V  dW V  dW V  d S r3   r*   r*   r/   r   r4   z8ItertoolsTest.test_accumulate_gen_coroutine.<locals>.gen=   r5   r/   r   r6   )r   r   r   r   r   r   )r   r$   r4   r   r   s        r   test_accumulate_gen_coroutinez+ItertoolsTest.test_accumulate_gen_coroutine8   s     	 	 		 	 	
 ^CCEE,,, 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   4BB #B c                    K   g }t          j        g           2 3 d {V }|                    |           6 |                     |g            d S r)   )r   r   appendr   r   valuesvalues      r   test_accumulate_emptyz#ItertoolsTest.test_accumulate_emptyH   su      >"-- 	! 	! 	! 	! 	! 	! 	!%MM%     . 	$$$$$s   6c                 H  K   t          j        t          t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r"   r   )r   chainslistr   r   r   r   r   r   s      r   test_chain_listszItertoolsTest.test_chain_listsP   s      Yuf%%) 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /BBBc                 T  K   d }t          j        t           |                      }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 <   K   t          ddd          D ]} | W V  d S Nr"   	   ranger   s    r   r4   z/ItertoolsTest.test_chain_list_gens.<locals>.genZ   6      1a^^   r/   r   r   r   r"   r	   r   r7   )r   rF   rG   r   r   r   r   r8   s       r   test_chain_list_gensz"ItertoolsTest.test_chain_list_gensX   s	     	 	 	 Yuccee$$, 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r&   c                 l  K   d }t           j                            t           |            g          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 <   K   t          ddd          D ]} | W V  d S rK   rM   rO   s    r   r4   z3ItertoolsTest.test_chain_from_iterable.<locals>.genf   rP   r/   rQ   )r   rF   from_iterablerG   r   r   r   r   r8   s       r   test_chain_from_iterablez&ItertoolsTest.test_chain_from_iterabled   s     	 	 	 Y$$eSSUU^44, 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B))B-0B-c                 j  K   d fd}t           j                             |                      }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 <   K   t          ddd          D ]} | W V  d S rK   rM   rO   s    r   r4   zKItertoolsTest.test_chain_from_iterable_parameter_expansion_gen.<locals>.genr   rP   r/   c                 :   K   t           W V                W V  d S r)   rG   )r4   s   r   parameters_genzVItertoolsTest.test_chain_from_iterable_parameter_expansion_gen.<locals>.parameters_genv   s'      KKKK#%%KKKKKKr/   rQ   )r   rF   rU   r   r   r   r   )r   r[   r   r   r4   s       @r   0test_chain_from_iterable_parameter_expansion_genz>ItertoolsTest.test_chain_from_iterable_parameter_expansion_genp   s)     	 	 		 	 	 	 	 Y$$^^%5%566, 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	    B((B,/B,c                 N  K   t          j        t          d          d          }dD ]0}|                     t          j        |           d {V |           1|                     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   r   )r   r"   r   )r   r"   r   )r   combinationsrN   r   r   r   r   r   s      r   test_combinationszItertoolsTest.test_combinations   s      eAhh**= 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   2BB!Bc                 >  K   t          j        t          d          }dD ]0}|                     t          j        |           d {V |           1|                     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   )r   r   )r   r   )r   r   )r   combinations_with_replacementrG   r   r   r   r   r   s      r   "test_combinations_with_replacementz0ItertoolsTest.test_combinations_with_replacement   s      .ua88
 	4 	4A 38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   *BBBc                 Z  K   t          d          }g d}t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )N
   )
r   r   r   r   r   r   r   r   r   r   )r   r"   r   r7   )rN   r   compressr   r   r   r   r   data	selectorsr   r   s        r   test_compress_listz ItertoolsTest.test_compress_list   s     Ryy222	\$	** 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   8B  B$'B$c                 d  K   d}t          j        g d          }t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nabcdefghijkl)r   r   r   )r,   dgj)r   cyclerh   r   r   r   r   ri   s        r   test_compress_genzItertoolsTest.test_compress_gen   s
     Iiii((	\$	**% 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   =B%%B),B)c                    K   t          j                    }dD ]0}|                     t          j        |           d {V |           1d S )N)r   r   r"   r   r   countr   r   r   s      r   test_count_barezItertoolsTest.test_count_bare   s]      Y[[ 	4 	4A38B<<//////3333	4 	4r/   c                    K   t          j        d          }dD ]0}|                     t          j        |           d {V |           1d S )N*   )rz   +   ,   -   rv   r   s      r   test_count_startzItertoolsTest.test_count_start   s_      Yr]]! 	4 	4A38B<<//////3333	4 	4r/   c                    K   t          j        dd          }dD ]0}|                     t          j        |           d {V |           1d S )Nrz   r   )rz   r}   0   3   rv   r   s      r   test_count_start_stepz#ItertoolsTest.test_count_start_step   sc      Yr1! 	4 	4A38B<<//////3333	4 	4r/   c                    K   t          j        d          }dD ]0}|                     t          j        |           d {V |           1d S )N)step)r   r   irv   r   s      r   test_count_negativez!ItertoolsTest.test_count_negative   sd      YB  	4 	4A38B<<//////3333	4 	4r/   c                    K   t          j        t                    }dD ]0}|                     t          j        |           d {V |           1d S )N)r   r   r   r   r   r   r   r   )r   rr   rG   r   r   r   s      r   test_cycle_listzItertoolsTest.test_cycle_list   sa      Yu9 	4 	4A38B<<//////3333	4 	4r/   c                    K   d }t          j         |                      }dD ]0}|                     t          j        |           d {V |           1d S )Nc                 (   K   dW V  dW V  dW V  d S Nr   r"   rz   r*   r*   r/   r   r4   z)ItertoolsTest.test_cycle_gen.<locals>.gen   +      GGGGGGGGHHHHHHr/   )r   r"   rz   r   r"   rz   r   r"   )r   rr   r   r   r8   s       r   test_cycle_genzItertoolsTest.test_cycle_gen   sx      	 	 	
 Yssuu+ 	4 	4A38B<<//////3333	4 	4r/   c                    K   d }t          j        t          j        |g                      d {V }|                     |g            d S )Nc                     | dk     S Nr"   r*   xs    r   predz0ItertoolsTest.test_dropwhile_empty.<locals>.pred       q5Lr/   )r   list	dropwhiler   )r   r   results      r   test_dropwhile_emptyz"ItertoolsTest.test_dropwhile_empty   `      	 	 	 xdB 7 788888888$$$$$r/   c                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                     | dk     S r   r*   r   s    r   r   z8ItertoolsTest.test_dropwhile_function_list.<locals>.pred   r   r/   r"   r   r   r   r   r   r   r   r   r   r   r   r   s       r   test_dropwhile_function_listz*ItertoolsTest.test_dropwhile_function_list        	 	 	 ]4(( 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   -BBBc                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                     | dk     S r   r*   r   s    r   r   z7ItertoolsTest.test_dropwhile_function_gen.<locals>.pred   r   r/   c                 (   K   dW V  dW V  dW V  d S r   r*   r*   r/   r   r4   z6ItertoolsTest.test_dropwhile_function_gen.<locals>.gen   r   r/   r"   rz   r   r   r   r   r   r   r   r   r4   r   r   s        r   test_dropwhile_function_genz)ItertoolsTest.test_dropwhile_function_gen        	 	 		 	 	
 ]4'' 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   3BB"Bc                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | dk     S r   r*   r   s    r   r   z9ItertoolsTest.test_dropwhile_coroutine_list.<locals>.pred         q5Lr/   r   r   r   s       r   test_dropwhile_coroutine_listz+ItertoolsTest.test_dropwhile_coroutine_list   r   r   c                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | dk     S r   r*   r   s    r   r   z8ItertoolsTest.test_dropwhile_coroutine_gen.<locals>.pred  r   r/   c                 (   K   dW V  dW V  dW V  d S r   r*   r*   r/   r   r4   z7ItertoolsTest.test_dropwhile_coroutine_gen.<locals>.gen	  r   r/   r   r   r   s        r   test_dropwhile_coroutine_genz*ItertoolsTest.test_dropwhile_coroutine_gen  r   r   c                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                     | dz  dk    S Nr"   r   r*   r   s    r   r   z:ItertoolsTest.test_filterfalse_function_list.<locals>.pred  s    q5A:r/   r   r   r   filterfalser   r   r   r   r   r   s       r   test_filterfalse_function_listz,ItertoolsTest.test_filterfalse_function_list       	 	 	 _T6** 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | dz  dk    S r   r*   r   s    r   r   z;ItertoolsTest.test_filterfalse_coroutine_list.<locals>.pred!  s      q5A:r/   r   r   r   s       r   test_filterfalse_coroutine_listz-ItertoolsTest.test_filterfalse_coroutine_list  r   r   c                 R  K   d}t          j        |          }dg dfdddgfddgffD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Naaabbar,   r,   r,   r,   r-   r   groupbyr   r   r   r   r   rj   r   r   s       r   test_groupby_listzItertoolsTest.test_groupby_list*  s     [(3c
*;cC5\J 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r>   c                 j  K   d}t          j        |t          j                  }dg dfdddgfddgffD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )NaAabBAkeyr,   r,   r   r,   r-   r   r   r   r   strlowerr   r   r   r   r   s       r   test_groupby_list_keyz#ItertoolsTest.test_groupby_list_key4  s     [39---(3c
*;cC5\J 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r]   c                 d  K   d }t          j         |                      }dg dfdddgfddgffD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   dD ]} | W V  d S )Nr   r*   cs    r   r4   z+ItertoolsTest.test_groupby_gen.<locals>.gen@  ,         r/   r,   r   r-   r   r8   s       r   test_groupby_genzItertoolsTest.test_groupby_gen>  s&     	 	 	 [(3c
*;cC5\J 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rt   c                 |  K   d }t          j         |            t          j                  }dg dfdddgfddgffD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   dD ]} | W V  d S )Nr   r*   r   s    r   r4   z/ItertoolsTest.test_groupby_gen_key.<locals>.genL  r   r/   r   r,   r   r-   r   r   r   r8   s       r   test_groupby_gen_keyz"ItertoolsTest.test_groupby_gen_keyJ  s-     	 	 	 [CI...(3c
*;cC5\J 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	B11B58B5c                    K   d }t          j         |                      2 3 d {V }|                     d           6 d S )Nc                 8   K   t          d          D ]} d W V  d S )Nr   rM   )_s    r   r4   z-ItertoolsTest.test_groupby_empty.<locals>.genX  s2      1XX   r/   z!No iteration should have happened)r   r   fail)r   r4   r   s      r   test_groupby_emptyz ItertoolsTest.test_groupby_emptyV  sp      	 	 	 {3355)) 	; 	; 	; 	; 	; 	; 	;!II9:::: *))s   ?c                 `  K   |                      t          d          5  t          j        ddg          2 3 d {V }6 	 d d d            n# 1 swxY w Y   |                      t          d          5  t          j        ddgdddd          2 3 d {V }6 	 d d d            d S # 1 swxY w Y   d S )Nzmust pass stop indexr   r"   ztoo many argumentsr   r	   )assertRaisesRegex
ValueErrorr   islice)r   r   s     r   test_islice_bad_rangez#ItertoolsTest.test_islice_bad_range_  sy     ##J0FGG 	 	:q!f--       a .-	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##J0DEE 	 	:q!faAq99       a :9	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s8   A=AAA1B#BB##B'*B'c                    K   g }t          j        t          d          d          2 3 d {V }|                    |           6 |                     |g            d S )N   r   )r   r   rN   r@   r   rA   s      r   test_islice_stop_zeroz#ItertoolsTest.test_islice_stop_zeroi  s{      :eAhh22 	! 	! 	! 	! 	! 	! 	!%MM%     3$$$$$s   Ac                 >  K   t          j        t          d          }dD ]0}|                     t          j        |           d {V |           1|                     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   r   r   r   r   s      r   test_islice_range_stopz$ItertoolsTest.test_islice_range_stopp  s      Z"" 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	re   c                 B  K   t          j        t          dd d          }dD ]0}|                     t          j        |           d {V |           1|                     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   s      r   test_islice_range_start_stepz*ItertoolsTest.test_islice_range_start_stepx  s      Z4++ 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   ,BBBc                 @  K   t          j        t          dd          }dD ]0}|                     t          j        |           d {V |           1|                     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   s      r   test_islice_range_start_stopz*ItertoolsTest.test_islice_range_start_stop  s      Z1%% 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   +BBBc                 B  K   t          j        t          ddd          }dD ]0}|                     t          j        |           d {V |           1|                     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   s      r   !test_islice_range_start_stop_stepz/ItertoolsTest.test_islice_range_start_stop_step  s      Z1a(( 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                   K   d } |            }t          j        |d          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   t          j        |           d {V ddgk    sJ d S )Nc                 2   K   dW V  dW V  dW V  dW V  d S Nr   r"   r   r	   r*   r*   r/   r   r4   z/ItertoolsTest.test_islice_gen_stop.<locals>.gen  6      GGGGGGGGGGGGGGGGGGr/   r"   r   r   r	   r   r   r   r   r   r   r   r   r4   gen_itr   r   s        r   test_islice_gen_stopz"ItertoolsTest.test_islice_gen_stop  s6     	 	 	 Z"" 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Xf%%%%%%%%!Q//////s   2BB Bc                 N  K   d }t          j         |            dd d          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 2   K   dW V  dW V  dW V  dW V  d S r   r*   r*   r/   r   r4   z5ItertoolsTest.test_islice_gen_start_step.<locals>.gen  r   r/   r   r"   )r"   r	   r   r   r   r   r   r   r8   s       r   test_islice_gen_start_stepz(ItertoolsTest.test_islice_gen_start_step  s     	 	 	 Zq$** 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ra   c                 L  K   d }t          j         |            dd          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 2   K   dW V  dW V  dW V  dW V  d S r   r*   r*   r/   r   r4   z5ItertoolsTest.test_islice_gen_start_stop.<locals>.gen  r   r/   r   r   r   r   r8   s       r   test_islice_gen_start_stopz(ItertoolsTest.test_islice_gen_start_stop  s     	 	 	 Zq!$$ 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   1BB Bc                   K   d } |            }t          j        |ddd          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   t          j        |           d {V dgk    sJ d S )Nc                 2   K   dW V  dW V  dW V  dW V  d S r   r*   r*   r/   r   r4   z:ItertoolsTest.test_islice_gen_start_stop_step.<locals>.gen  r   r/   r   r   r"   r   r	   r   r   s        r   test_islice_gen_start_stop_stepz-ItertoolsTest.test_islice_gen_start_stop_step  s8     	 	 	 Z1a(( 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Xf%%%%%%%%!,,,,,,s   4BB"Bc                 @  K   t          j        t          d          }dD ]0}|                     t          j        |           d {V |           1|                     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   )r   r   )r   r"   )r   permutationsr   r   r   r   r   r   s      r   test_permutations_listz$ItertoolsTest.test_permutations_list  s      f***A 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 L  K   d }t          j         |            d          }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 (   K   dW V  dW V  dW V  d S Nr   r"   r   r*   r*   r/   r   r4   z0ItertoolsTest.test_permutations_gen.<locals>.gen  r5   r/   r"   r  r  )r   r	  r   r   r   r   r8   s       r   test_permutations_genz#ItertoolsTest.test_permutations_gen  s     	 	 	
 cceeq)))A 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 <  K   t          j        ddgddg          }dD ]0}|                     t          j        |           d {V |           1|                     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  )r"   r   )r"   r  r   productr   r   r   r   r   s      r   test_product_listzItertoolsTest.test_product_list  s      [!Q!Q((1 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 ^  K   d }t          j         |d           |d                    }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                $   K   | W V  | dz   W V  d S )Nr   r*   r   s    r   r4   z+ItertoolsTest.test_product_gen.<locals>.gen  s$      GGGGa%KKKKKKr/   r   r   r  r  r8   s       r   test_product_genzItertoolsTest.test_product_gen  s     	 	 	 [QQ((1 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :B""B&)B&c                    K   t          j        d          }dgdz  D ]0}|                     t          j        |           d {V |           1d S )Nrz   rg   )r   repeatr   r   r   s      r   test_repeatzItertoolsTest.test_repeat  se      Z^^ 	4 	4A38B<<//////3333	4 	4r/   c                 <  K   t          j        dd          }dgdz  D ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nrz   r   )r   r  r   r   r   r   r   s      r   test_repeat_limitzItertoolsTest.test_repeat_limit  s      ZA 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                   K   t           d d         t           dd          t           g}d }t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nr"   r   c                  ,    d                     |           S N joinargss    r   concatz8ItertoolsTest.test_starmap_function_list.<locals>.concat      774== r/   ABBCABCrG   r   starmapr   r   r   r   r   rj   r%  r   r   s        r   test_starmap_function_listz(ItertoolsTest.test_starmap_function_list       bqb	59e,	! 	! 	! [&&$ 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   B44B8;B8c                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc               3   `   K   t           d d         V  t           dd          V  t           V  d S Nr"   r   rZ   r*   r/   r   r4   z4ItertoolsTest.test_starmap_function_gen.<locals>.gen  s5      )OOO)OOOKKKKKr/   c                  ,    d                     |           S r  r!  r#  s    r   r%  z7ItertoolsTest.test_starmap_function_gen.<locals>.concat  r&  r/   r'  r   r,  r   r   r   r   r   r4   r%  r   r   s        r   test_starmap_function_genz'ItertoolsTest.test_starmap_function_gen       	 	 	
	! 	! 	! [''$ 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                   K   t           d d         t           dd          t           g}d }t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nr"   r   c                  0   K   d                     |           S r  r!  r#  s    r   r%  z9ItertoolsTest.test_starmap_coroutine_list.<locals>.concat$        774== r/   r'  r+  r-  s        r   test_starmap_coroutine_listz)ItertoolsTest.test_starmap_coroutine_list   r/  r0  c                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 f   K   t           d d         W V  t           dd          W V  t           W V  d S r3  rZ   r*   r/   r   r4   z5ItertoolsTest.test_starmap_coroutine_gen.<locals>.gen/  s;      )OOOO)OOOOKKKKKKr/   c                  0   K   d                     |           S r  r!  r#  s    r   r%  z8ItertoolsTest.test_starmap_coroutine_gen.<locals>.concat4  r;  r/   r'  r5  r6  s        r   test_starmap_coroutine_genz(ItertoolsTest.test_starmap_coroutine_gen-  r8  r   c                    K   d }t          j        t          j        |g                      d {V }|                     |g            d S )Nc                     | dk     S Nr   r*   r   s    r   r   z0ItertoolsTest.test_takewhile_empty.<locals>.pred?  r   r/   )r   r   	takewhiler   )r   r   rB   s      r   test_takewhile_emptyz"ItertoolsTest.test_takewhile_empty=  r   r/   c                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                     | dk     S rC  r*   r   s    r   r   z8ItertoolsTest.test_takewhile_function_list.<locals>.predG  r   r/   r   r   rD  r   r   r   r   r   r   s       r   test_takewhile_function_listz*ItertoolsTest.test_takewhile_function_listE  r   r   c                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 (   K   dW V  dW V  dW V  d S r  r*   r*   r/   r   r4   z6ItertoolsTest.test_takewhile_function_gen.<locals>.genR  r5   r/   c                     | dk     S rC  r*   r   s    r   r   z7ItertoolsTest.test_takewhile_function_gen.<locals>.predW  r   r/   r   r   rD  r   r   r   r   r   r4   r   r   r   s        r   test_takewhile_function_genz)ItertoolsTest.test_takewhile_function_genP       	 	 	
	 	 	 ]4'' 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 D  K   d }t          j        |t                    }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                    K   | dk     S rC  r*   r   s    r   r   z9ItertoolsTest.test_takewhile_coroutine_list.<locals>.predb  r   r/   r   rH  r   s       r   test_takewhile_coroutine_listz+ItertoolsTest.test_takewhile_coroutine_list`  r   r   c                 P  K   d }d }t          j        | |                      }dD ]0}|                     t          j        |           d {V |           1|                     t
                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc               3   "   K   dV  dV  dV  d S r  r*   r*   r/   r   r4   z7ItertoolsTest.test_takewhile_coroutine_gen.<locals>.genm  s%      GGGGGGGGGGGr/   c                    K   | dk     S rC  r*   r   s    r   r   z8ItertoolsTest.test_takewhile_coroutine_gen.<locals>.predr  r   r/   r   rM  rN  s        r   test_takewhile_coroutine_genz*ItertoolsTest.test_takewhile_coroutine_genk  rP  r   c                   K   t          j        t          dz            \  }}t          dz  D ]}t          j        t          j        |          t          j        |                     d {V \  }}|                     ||           |                     ||           |                     ||           ||fD ]N}|                     t                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   Od S r   )	r   teerG   asynciogatherr   r   r   r   )r   it1it2r   r,   r-   r   s          r   test_tee_list_twozItertoolsTest.test_tee_list_two{  sT     7519%%S 	# 	#A sx}}EEEEEEEEDAqQ"""Q"""Q""""* 	# 	#B""#566 # #hrll"""""""# # # # # # # # # # # # # # #	# 	#s   C::C>	C>	c                 t  K   t          j        t          dz  d          }t          dz  D ];}t          j        d |D               d {V }|D ]}|                     ||           <|D ]N}|                     t                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   Od S )Nr"   r   nc                 6    g | ]}t          j        |          S r*   r   r   .0r   s     r   
<listcomp>z3ItertoolsTest.test_tee_list_six.<locals>.<listcomp>       +H+H+HRCHRLL+H+H+Hr/   )	r   rY  rG   rZ  r[  r   r   r   r   )r   itrsr   rB   rC   r   s         r   test_tee_list_sixzItertoolsTest.test_tee_list_six  s/     wuqyA&&& 	+ 	+A">+H+H4+H+H+HIIIIIIIF + +  ****+ 	# 	#B""#566 # #hrll"""""""# # # # # # # # # # # # # # #	# 	#s   B,,B0	3B0	c                   K   d }t          j         |                      \  }}dD ]}t          j        t          j        |          t          j        |                     d {V \  }}|                     ||           |                     ||           |                     ||           ||fD ]N}|                     t                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   Od S )Nc                 2   K   dW V  dW V  dW V  dW V  d S Nr   r	   rL      r*   r*   r/   r   r4   z+ItertoolsTest.test_tee_gen_two.<locals>.gen  6      GGGGGGGGGGGGHHHHHHr/   r   r	   rL   rm  )r   rY  rZ  r[  r   r   r   r   )r   r4   r\  r]  r   r,   r-   r   s           r   test_tee_gen_twozItertoolsTest.test_tee_gen_two  sa     	 	 	 73355>>S 	# 	#A sx}}EEEEEEEEDAqQ"""Q"""Q""""* 	# 	#B""#566 # #hrll"""""""# # # # # # # # # # # # # # #	# 	#s   C55C9	<C9	c                 j  K   d }t          j         |            d          }dD ];}t          j        d |D               d {V }|D ]}|                     ||           <|D ]N}|                     t                    5  t          j        |           d {V  d d d            n# 1 swxY w Y   Od S )Nc                 2   K   dW V  dW V  dW V  dW V  d S rl  r*   r*   r/   r   r4   z+ItertoolsTest.test_tee_gen_six.<locals>.gen  rn  r/   r   r`  ro  c                 6    g | ]}t          j        |          S r*   rc  rd  s     r   rf  z2ItertoolsTest.test_tee_gen_six.<locals>.<listcomp>  rg  r/   )r   rY  rZ  r[  r   r   r   r   )r   r4   rh  r   rB   rC   r   s          r   test_tee_gen_sixzItertoolsTest.test_tee_gen_six  s>     	 	 	 wssuu""" 	+ 	+A">+H+H4+H+H+HIIIIIIIF + +  ****+ 	# 	#B""#566 # #hrll"""""""# # # # # # # # # # # # # # #	# 	#s    B''B+	.B+	c                 p  K   t          d          }t          d          }t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     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"   r"   rC  )Nr	   rN   r   zip_longestr   r   r   r   )r   r,   r-   r   r   s        r   test_zip_longest_rangez$ItertoolsTest.test_zip_longest_range  s     !HH!HH_Q""? 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   B++B/2B/c                 p  K   d } |            }t          d          }t          j        ||d          }dD ]0}|                     t          j        |           d {V |           1|                     t                    5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 2   K   dW V  dW V  dW V  dW V  d S rl  r*   r*   r/   r   r4   z5ItertoolsTest.test_zip_longest_fillvalue.<locals>.gen  rn  r/   r   rz   )	fillvalue))r   r   )r	   r   )rL   r"   )rm  r   )rz   r	   rv  r   r4   r,   r-   r   r   s         r   test_zip_longest_fillvaluez(ItertoolsTest.test_zip_longest_fillvalue  s     	 	 	 CEE!HH_QR000; 	4 	4A38B<<//////3333122 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ry  c                 x  K   d } |            }t          j        d          }t          j        ||          }dD ]0}|                     t          j        |           d {V |           1|                     t          d          5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                 8   K   dW V  dW V  t          d          )Nr   r"   
fake error)	Exceptionr*   r/   r   r4   z5ItertoolsTest.test_zip_longest_exception.<locals>.gen  s*      GGGGGGGGL)))r/   r   ))r   r   )r"   r   r  )r   r  rw  r   r   r   r  r}  s         r   test_zip_longest_exceptionz(ItertoolsTest.test_zip_longest_exception  s     	* 	* 	*
 CEEJqMM_Q""! 	4 	4A38B<<//////3333##I|<< 	 	(2,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B//B36B3N)D__name__
__module____qualname__r   r   r%   r0   r9   r=   rD   rH   rR   rV   r\   r`   rd   rl   rs   rx   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  r
  r  r  r  r  r  r.  r7  r<  r@  rE  rI  rO  rS  rW  r^  ri  rp  rt  rx  r~  r  r*   r/   r   r   r      s         Z   Z   Z 
 
 Z
   Z % % Z%   Z 	 	 Z	 	 	 Z	   Z   Z   Z   Z   Z 4 4 Z4
 4 4 Z4
 4 4 Z4
 4 4 Z4
 4 4 Z4
 4 4 Z4 % % Z%   Z   Z   Z   Z   Z   Z   Z   Z 	 	 Z	 	 	 Z	 ; ; Z;   Z % % Z%   Z   Z   Z   Z 0 0 Z0   Z   Z - - Z-   Z 
 
 Z
   Z 	 	 Z	 4 4 Z4
   Z 
 
 Z
   Z 
 
 Z
   Z % % Z%   Z   Z   Z   Z 
# 
# Z
# 	# 	# Z	# # # Z#$ # # Z#" 	 	 Z	   Z"   Z  r/   r   )rZ  r#   unittestr   aioitertoolsr   helpersr   rG   rN   r   r   r*   r/   r   <module>r     s                     	q!W W W W WH W W W W Wr/   