§
    1@ÄjÛ  ã                   ó|   — d Z ddlZddlmZmZ ddlmZmZ  G d„ de¦  «        Z	e
dk    r ej        ¦   «          dS dS )z
Test basic language features

é    N)ÚcudaÚfloat64)ÚunittestÚCUDATestCasec                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestLangc                 ó  ‡— dŠt          j        d¦  «        ˆfd„¦   «         }t          j        t	          ‰¦  «        ¦  «        } |d         |¦  «         |                      t          j        |‰k    ¦  «        ¦  «         d S )N)ç      ð?g      @g      @úvoid(float64[:])c                 ó<   •— t          ‰¦  «        D ]
\  }}|| |<   Œd S )N)Ú	enumerate)ÚaÚiÚvÚtups      €úRC:\Projects\Historical\venv\Lib\site-packages\numba/cuda/tests/cudapy/test_lang.pyÚfooz$TestLang.test_enumerate.<locals>.foo   s1   ø€ å! #™œð ð ‘��1Ø��!‘�ðð ó    ©é   r   )r   ÚjitÚnpÚzerosÚlenÚ
assertTrueÚall)Úselfr   r   r   s      @r   Útest_enumeratezTestLang.test_enumerate   s…   ø€ Øˆå	ŒÐ$Ñ	%Ô	%ð	ð 	ð 	ð 	ñ 
&Ô	%ð	õ ŒH•S˜‘X”XÑÔˆØˆˆDŒ	�!‰ŒˆØ�Š�œ˜q CšxÑ(Ô(Ñ)Ô)Ð)Ð)Ð)r   c                 ól  ‡‡— dŠdŠt          j        d¦  «        ˆˆfd„¦   «         }t          j        d¦  «        } |d         |¦  «         t          j        ‰¦  «        }t          j        ‰¦  «        }|                      t          j        |||z                        ¦   «         k    ¦  «        ¦  «         d S )N)r   é   é   )g      @gffffff@gÍÌÌÌÌÌ@r   c                 óR   •— d}t          ‰‰¦  «        D ]\  }}|||z   z  }Œ|| d<   d S )Nr   )Úzip)r   Úcr   ÚjÚt1Út2s       €€r   r   zTestLang.test_zip.<locals>.foo   s?   ø€ àˆAÝ˜B ™œð ð ‘��1Ø�Q˜‘U‘
��ØˆAˆa‰DˆDˆDr   r   r   )r   r   r   r   Úarrayr   r   Úsum)r   r   r   Úbr$   r&   r'   s        @@r   Útest_zipzTestLang.test_zip   s¯   øø€ ØˆØˆå	ŒÐ$Ñ	%Ô	%ð	ð 	ð 	ð 	ð 	ñ 
&Ô	%ð	õ ŒH�Q‰KŒKˆØˆˆDŒ	�!‰ŒˆÝŒH�R‰LŒLˆÝŒH�R‰LŒLˆØ�Š�œ˜q Q¨¡U§K¢K¡M¤MÒ1Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r   c                 óŠ   — t          j        d¦  «        d„ ¦   «         }t          j        d¦  «        } |d         |¦  «         dS )a?  
        Ensure that typing and lowering of CUDA kernel API primitives works in
        more than one block. Was originally to ensure that macro expansion works
        for more than one block (issue #872), but macro expansion has been
        replaced by a "proper" implementation of all kernel API functions.
        zvoid(float64[:,:])c                 ó  — t          d¦  «        D ]}t          j        j        }Œt          d¦  «        D ]}t          j        j        }Œt          j                             dt          ¦  «        }d|||f<   |||f         | ||f<   d S )Nr    r!   ©r    r!   r
   )Úranger   Ú	threadIdxÚxÚyÚsharedr(   r   )Úaryr   Útxr%   ÚtyÚsms         r   Ú"cuda_kernel_api_in_multiple_blockszCTestLang.test_issue_872.<locals>.cuda_kernel_api_in_multiple_blocks1   s�   € å˜1‘X”Xð &ð &�Ý”^Ô%��Ý˜1‘X”Xð &ð &�Ý”^Ô%��Ý”×"Ò" 6­7Ñ3Ô3ˆBØˆBˆr�2ˆv‰JØ˜R ˜Vœ*ˆC��B�‰KˆKˆKr   r.   )r   r.   N)r   r   r   r   )r   r8   r   s      r   Útest_issue_872zTestLang.test_issue_872)   sV   € õ 
ŒÐ&Ñ	'Ô	'ð	%ð 	%ñ 
(Ô	'ð	%õ ŒH�VÑÔˆØ5Ð*¨9Ô5°aÑ8Ô8Ð8Ð8Ð8r   N)Ú__name__Ú
__module__Ú__qualname__r   r+   r9   © r   r   r   r      sA   € € € € € ð
*ð 
*ð 
*ð4ð 4ð 4ð"9ð 9ð 9ð 9ð 9r   r   Ú__main__)Ú__doc__Únumpyr   Únumbar   r   Únumba.cuda.testingr   r   r   r:   Úmainr=   r   r   ú<module>rD      sž   ððð ð
 Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð19ð 19ð 19ð 19ð 19ˆ|ñ 19ô 19ð 19ðh ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   