U
    ?h(	                     @   sH   d dl mZ d dlmZmZ d dlZG dd deZedkrDe	  dS )    )cuda)unittestCUDATestCaseNc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestIteratorsc                 C   sJ   t jdd }td}tjdtjd}|d || | |d d d S )Nc                 S   sZ   d}t | D ]4\}}||kr$d|d< || | kr8d|d< |d7 }q|t| krVd|d< d S Nr            )	enumeratelen)xerrorcountiv r   X/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_iterators.py
enumerator
   s    
z0TestIterators.test_enumerate.<locals>.enumerator
   	            r   Zdtyper   r   r   )r   jitnpasarrayzerosint32assertEqual)selfr   r   r   r   r   r   test_enumerate	   s    

zTestIterators.test_enumeratec                 C   sH   t d}t d}t jdt jd}|d ||| | |d d d S )Nr   )r   r   r	         r   r   r   r   )r   r   r   r    r!   )r"   fr   yr   r   r   r   _test_twoarg_function   s
    

z#TestIterators._test_twoarg_functionc                 C   s   t jdd }| | d S )Nc                 S   s`   d}t | |D ]8\}}|| | kr*d|d< ||| kr>d|d< |d7 }q|t| kr\d|d< d S r   )zipr   )r   r'   r   r   xvyvr   r   r   zipper(   s    
z&TestIterators.test_zip.<locals>.zipperr   r   r(   )r"   r,   r   r   r   test_zip'   s    
zTestIterators.test_zipc                 C   s   t jdd }| | d S )Nc                 S   sx   d}t t| |D ]L\}\}}||kr.d|d< || | krBd|d< ||| krVd|d< |d7 }q|t| krtd|d< d S Nr   r   r   r	   r$   )r
   r)   r   r   r'   r   r   r   r*   r+   r   r   r   enumerator_zipper:   s    
z;TestIterators.test_enumerate_zip.<locals>.enumerator_zipperr-   )r"   r1   r   r   r   test_enumerate_zip9   s    
z TestIterators.test_enumerate_zipc                 C   s   t jdd }| | d S )Nc                 S   sx   d}t t| |D ]L\\}}}||kr.d|d< || | krBd|d< ||| krVd|d< |d7 }q|t| krtd|d< d S r/   )r)   r
   r   r0   r   r   r   zipper_enumeratorN   s    
z;TestIterators.test_zip_enumerate.<locals>.zipper_enumeratorr-   )r"   r3   r   r   r   test_zip_enumerateM   s    
z TestIterators.test_zip_enumerateN)__name__
__module____qualname__r#   r(   r.   r2   r4   r   r   r   r   r      s
   r   __main__)
Znumbar   Znumba.cuda.testingr   r   numpyr   r   r5   mainr   r   r   r   <module>   s
   [