o
    di                     @   sh   d dl mZ d dlmZ d dlmZ ddlmZ dee	 fddZ
dee	 f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   U/home/ubuntu/.local/lib/python3.10/site-packages/aioitertools/tests/more_itertools.py_gen   s   r   c                   C  s   d S Nr   r   r   r   r   _empty   s   r   c                   @   s   e Zd ZedddZedddZedddZedd	d
ZedddZedddZ	edddZ
edddZedddZedddZedddZedddZdS )MoreItertoolsTestr   Nc                    sH   |  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 )Nr   )r   r   r   r   r   r   r   r   test_take_zero   s    z MoreItertoolsTest.test_take_zeroc                    sF   |  t tdt I d H  W d    d S 1 sw   Y  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                    st   |  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                       g | z3 d H W }|q6 S r   r   .0chunkr   r   r   
<listcomp>2       z2MoreItertoolsTest.test_chunked.<locals>.<listcomp>r   r   r         c                    r#   r   r   r$   r   r   r   r'   5   r(   r   )r   r   chunkedr   r   r   r   r   r   test_chunked/   s   .0zMoreItertoolsTest.test_chunkedc                    s,   |  g dd tt d2 I d H  d S )Nc                    r#   r   r   r$   r   r   r   r'   :   r(   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 g d | dd |2 I d H ddg d S )	Nc                 S   s   | dkS Nr   r   r	   r   r   r   <lambda>?   s    z?MoreItertoolsTest.test_before_and_after_split.<locals>.<lambda>c                    r#   r   r   r%   elmr   r   r   r'   @   r(   zAMoreItertoolsTest.test_before_and_after_split.<locals>.<listcomp>r   r   r   c                    r#   r   r   r0   r   r   r   r'   A   r(   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                    sb   t  }tdd |I d H \}}| dd |2 I d H g d | dd |2 I d H g  d S )Nc                 S      dS NTr   r	   r   r   r   r/   F       zEMoreItertoolsTest.test_before_and_after_before_only.<locals>.<lambda>c                    r#   r   r   r0   r   r   r   r'   G   r(   zGMoreItertoolsTest.test_before_and_after_before_only.<locals>.<listcomp>r   r   r   r)   r*   c                    r#   r   r   r0   r   r   r   r'   H   r(   r3   r5   r   r   r   !test_before_and_after_before_onlyC   s
     z3MoreItertoolsTest.test_before_and_after_before_onlyc                    sb   t  }tdd |I d H \}}| dd |2 I d H g  | dd |2 I d H g d d S )Nc                 S   r9   )NFr   r	   r   r   r   r/   M   r;   zDMoreItertoolsTest.test_before_and_after_after_only.<locals>.<lambda>c                    r#   r   r   r0   r   r   r   r'   N   r(   zFMoreItertoolsTest.test_before_and_after_after_only.<locals>.<listcomp>c                    r#   r   r   r0   r   r   r   r'   O   r(   r<   r3   r5   r   r   r    test_before_and_after_after_onlyJ   s
   $z2MoreItertoolsTest.test_before_and_after_after_onlyc                    st   dt dtfdd}t }t||I d H \}}| dd |2 I d H g d | dd |2 I d H d	d
g d S )Nr1   r   c                    s
   | dkS r.   r   )r1   r   r   r   	predicateS   s   zJMoreItertoolsTest.test_before_and_after_async_predicate.<locals>.predicatec                    r#   r   r   r0   r   r   r   r'   X   r(   zKMoreItertoolsTest.test_before_and_after_async_predicate.<locals>.<listcomp>r2   c                    r#   r   r   r0   r   r   r   r'   Y   r(   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   r9   r:   r   r	   r   r   r   r/   ^   r;   z?MoreItertoolsTest.test_before_and_after_empty.<locals>.<lambda>c                    r#   r   r   r0   r   r   r   r'   _   r(   zAMoreItertoolsTest.test_before_and_after_empty.<locals>.<listcomp>c                    r#   r   r   r0   r   r   r   r'   `   r(   )r   r   r4   r   r5   r   r   r   test_before_and_after_empty[   s
    z-MoreItertoolsTest.test_before_and_after_empty)r   N)__name__
__module____qualname__r   r   r   r   r   r"   r,   r-   r8   r=   r>   rB   rC   r   r   r   r   r      s2    	r   )collections.abcr   unittestr   aioitertools.more_itertoolsmore_itertoolsr   helpersr   r@   r   r   r   r   r   r   r   <module>   s   