U
    l/e                     @   sh   d dl mZ d dlmZ d dlmZ ddlmZ ee	 dddZ
ee	 dd	d
ZG dd deZdS )    )AsyncIterable)TestCaseN   )
async_testreturnc                  C  s   t dD ]
} | V  qd S )N   )rangei r   E/tmp/pip-unpacked-wheel-n_uj7zou/aioitertools/tests/more_itertools.py_gen   s    r   c                   C  s   d S Nr   r   r   r   r   r   _empty   s    r   c                   @   s   e Zd ZeddddZeddddZeddddZeddd	d
ZeddddZeddddZ	eddddZ
eddddZeddddZeddddZeddddZeddddZdS )MoreItertoolsTestNr   c                    sF   |  tdt I d H ddg |  tdtdI d H ddg d S )N   r   r   r   )assertEqualmittaker   r	   selfr   r   r   	test_take   s     zMoreItertoolsTest.test_takec                    s    |  tdt I d H g  d S r   )r   r   r   r   r   r   r   r   test_take_zero   s    z MoreItertoolsTest.test_take_zeroc              	      s.   |  t tdt I d H  W 5 Q R X d S )N)assertRaises
ValueErrorr   r   r   r   r   r   r   test_take_negative   s    z$MoreItertoolsTest.test_take_negativec                    s(   |  tdt I d H ttd d S )N
   r   )r   r   r   r   listr	   r   r   r   r   test_take_more_than_iterable$   s    z.MoreItertoolsTest.test_take_more_than_iterablec                    s^   t  }| ttd|I d H d | td|I d H g  | tdt I d H g  d S )Nr   r   )r   r   lenr   r   r   )r   itr   r   r   test_take_empty(   s    z!MoreItertoolsTest.test_take_emptyc                    sr   |  dd tt d2 I d H ddgddgdgg |  dd ttd	d2 I d H ddgddgdgg d S )
Nc                    s   g | z3 d H W }|q6 S Nr   .0chunkr   r   r   
<listcomp>2   s     z2MoreItertoolsTest.test_chunked.<locals>.<listcomp>r   r   r         c                    s   g | z3 d H W }|q6 S r$   r   r%   r   r   r   r(   5   s     r   )r   r   chunkedr   r	   r   r   r   r   test_chunked/   s      zMoreItertoolsTest.test_chunkedc                    s*   |  g dd tt d2 I d H  d S )Nc                    s   g | z3 d H W }|q6 S r$   r   r%   r   r   r   r(   :   s     z8MoreItertoolsTest.test_chunked_empty.<locals>.<listcomp>r   )r   r   r+   r   r   r   r   r   test_chunked_empty8   s    z$MoreItertoolsTest.test_chunked_emptyc                    sf   t  }tdd |I d H \}}| dd |2 I d H dddg | dd |2 I d H d	d
g d S )Nc                 S   s   | dkS Nr   r   r
   r   r   r   <lambda>?       z?MoreItertoolsTest.test_before_and_after_split.<locals>.<lambda>c                    s   g | z3 d H W }|q6 S r$   r   r&   elmr   r   r   r(   @   s     zAMoreItertoolsTest.test_before_and_after_split.<locals>.<listcomp>r   r   r   c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   A   s     r)   r*   r   r   before_and_afterr   r   r"   beforeafterr   r   r   test_before_and_after_split<   s    "z-MoreItertoolsTest.test_before_and_after_splitc                    sf   t  }tdd |I d H \}}| dd |2 I d H ddddd	g | d
d |2 I d H g  d S )Nc                 S   s   dS NTr   r
   r   r   r   r/   F   r0   zEMoreItertoolsTest.test_before_and_after_before_only.<locals>.<lambda>c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   G   s     zGMoreItertoolsTest.test_before_and_after_before_only.<locals>.<listcomp>r   r   r   r)   r*   c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   H   s     r3   r5   r   r   r   !test_before_and_after_before_onlyC   s    &z3MoreItertoolsTest.test_before_and_after_before_onlyc                    sf   t  }tdd |I d H \}}| dd |2 I d H g  | dd |2 I d H dddd	d
g d S )Nc                 S   s   dS )NFr   r
   r   r   r   r/   M   r0   zDMoreItertoolsTest.test_before_and_after_after_only.<locals>.<lambda>c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   N   s     zFMoreItertoolsTest.test_before_and_after_after_only.<locals>.<listcomp>c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   O   s     r   r   r   r)   r*   r3   r5   r   r   r    test_before_and_after_after_onlyJ   s    z2MoreItertoolsTest.test_before_and_after_after_onlyc                    sr   t tddd}t }t||I d H \}}| dd |2 I d H dddg | d	d |2 I d H d
dg d S )N)r2   r   c                    s   | dkS r.   r   )r2   r   r   r   	predicateS   s    zJMoreItertoolsTest.test_before_and_after_async_predicate.<locals>.predicatec                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   X   s     zKMoreItertoolsTest.test_before_and_after_async_predicate.<locals>.<listcomp>r   r   r   c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   Y   s     r)   r*   )intboolr   r   r4   r   )r   r<   r"   r6   r7   r   r   r   %test_before_and_after_async_predicateQ   s
    "z7MoreItertoolsTest.test_before_and_after_async_predicatec                    s\   t  }tdd |I d H \}}| dd |2 I d H g  | dd |2 I d H g  d S )Nc                 S   s   dS r9   r   r
   r   r   r   r/   ^   r0   z?MoreItertoolsTest.test_before_and_after_empty.<locals>.<lambda>c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   _   s     zAMoreItertoolsTest.test_before_and_after_empty.<locals>.<listcomp>c                    s   g | z3 d H W }|q6 S r$   r   r1   r   r   r   r(   `   s     )r   r   r4   r   r5   r   r   r   test_before_and_after_empty[   s    z-MoreItertoolsTest.test_before_and_after_empty)__name__
__module____qualname__r   r   r   r   r    r#   r,   r-   r8   r:   r;   r?   r@   r   r   r   r   r      s0   	r   )typingr   Zunittestr   Zaioitertools.more_itertoolsZmore_itertoolsr   Zhelpersr   r=   r   r   r   r   r   r   r   <module>   s   