§
    1@Äj,
  ã                   ó¦   — 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     úWC:\Projects\Historical\venv\Lib\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   € ÝŒY�q¥¤
Ð+Ñ+Ô+¨aÑ/ˆØ—’‘”ˆÝ˜‰mŒmˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%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˜ˆJˆJð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`   € ÝŒY�q¥¤
Ð+Ñ+Ô+¨aÑ/ˆÝŒ^˜AÑÔˆØ—’‘”ˆÝ˜‰nŒnˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%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
   € ¨q°1©u€ 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ˆÝŒY�r¥¤Ð,Ñ,Ô,¨qÑ0ˆØ—’‘”ˆØˆk˜! !Ð$Ñ$Ô$ˆÝ
Œ
×"Ò" 6¨3Ñ/Ô/Ð/Ð/Ð/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°!°Q©i¬i€ 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ˆ
ÝŒY�t¥2¤:Ð.Ñ.Ô.°Ñ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   € ØˆÝŒY�r¥¤Ð,Ñ,Ô,¨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�   € ÝŒY�r¥¤Ð,Ñ,Ô,¨qÑ0ˆÝŒn�RœX a­r¬zÐ:Ñ:Ô:Ñ;Ô;ˆØ—’‘”ˆÝ˜ Ð$Ñ$Ô$ˆØ×Ò˜#ÑÔÐØ×Ò˜  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ÒÐØ€H„M�O„O€O€O€Oð Ðr   