
    J/Ph	                         d dl Zd dlmZ d dlmZ d dlmZ d dlZ ej	        d           Z
 G d de          Zedk    r ej                     dS dS )	    N)cuda)ENABLE_CUDASIM)CUDATestCasec                     | |z   S N abs     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_reduction.py<lambda>r      s
    a!e     c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestReductionc                     t          j        |t           j                  dz   }|                                }t	          |          }|                     ||           d S )Ndtype   nparangefloat64sum
sum_reduceassertEqual)selfnAexpectgots        r   _sum_reducezTestReduction._sum_reduce   Q    Yq
+++a/mm%%%%%r   c                 Z    t           rddg}ng d}|D ]}|                     |           d S )Nr      )r      r$               i  i   i  i   i   i  i i  )r   r!   )r   
test_sizesr   s      r   test_sum_reducezTestReduction.test_sum_reduce   s^     	J bJJJ J JJ  	  	 AQ	  	 r   c                     t          j        dt           j                  dz   }|                                }t	          |          }|                     ||           d S Nr   r   r   r   )r   r   r   r    s       r   test_empty_array_hostz#TestReduction.test_empty_array_host    r"   r   c                     t          j        dt           j                  dz   }t          j        |          }|                                }t          |          }|                     ||           d S r-   )r   r   r   r   	to_devicer   r   r   )r   r   dAr   r    s        r   test_empty_array_devicez%TestReduction.test_empty_array_device&   s`    Yq
+++a/^Ann%%%%%r   c                     t          j        d           }t          j        dt          j                  dz   }|                                } ||d          }t          j                            ||           d S )Nc                     | |z  S r   r   r	   s     r   r   z0TestReduction.test_prod_reduce.<locals>.<lambda>.   s
    q1u r   @   r   r   init)r   reducer   r   r   prodtestingassert_allclose)r   prod_reducer   r   r    s        r   test_prod_reducezTestReduction.test_prod_reduce-   so    k"4"455Yr,,,q0k!!$$$

""63/////r   c                     t          j        d           }t          j        dt          j                  dz   }|                                } ||d          }|                     ||           d S )Nc                 "    t          | |          S r   )maxr	   s     r   r   z/TestReduction.test_max_reduce.<locals>.<lambda>5   s    c!Qii r   i  r   r   r   r6   )r   Reducer   r   r   r@   r   )r   
max_reducer   r   r    s        r   test_max_reducezTestReduction.test_max_reduce4   sm    [!7!788
Yt2:...2j###%%%%%r   c                     d}t          j        dt           j                  dz   }|                                |z   }t	          ||          }|                     ||           d S )N   
   r   r   r6   r   )r   r7   r   r   r    s        r   test_non_identity_initz$TestReduction.test_non_identity_init;   sa    Yr,,,q04&&&%%%%%r   c                 \   t          j        dt           j                  dz   }t          j        t          j        dt           j                            }|                                }t          ||          }|                     |           | 	                    ||d                    d S )NrF   r   r   )resr   )
r   r   r   r   r0   zerosr   r   assertIsNoner   )r   r   r    r   rI   s        r   test_result_on_devicez#TestReduction.test_result_on_deviceB   s    Yr,,,q0nRXarz:::;;$$$#Q(((((r   N)__name__
__module____qualname__r!   r+   r.   r2   r=   rC   rG   rL   r   r   r   r   r      s        & & &     & & && & &0 0 0& & && & &) ) ) ) )r   r   __main__)numpyr   numbar   numba.core.configr   numba.cuda.testingr   unittestrA   r   r   rM   mainr   r   r   <module>rW      s              , , , , , , + + + + + +  T[++,,
=) =) =) =) =)L =) =) =)@ zHMOOOOO r   