U
    ?h                     @   sl   d dl Z d dlmZmZmZmZmZ d dlmZ eeededG dd deZ	e
dkrhe   dS )	    N)CUDATestCaseskip_if_cudadevrt_missingskip_on_cudasimskip_unless_cc_60skip_if_mvc_enabled)captured_stdoutzCG not supported with MVCz4cudasim doesn't support cuda import at non-top-levelc                       s4   e Zd ZdZ fddZ fddZdd Z  ZS )TestSessionizationz*
    Test click stream sessionization
    c                    s    t  | _| j  t   d S N)r   _captured_stdout	__enter__supersetUpself	__class__ _/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/doc_examples/test_sessionize.pyr      s    
zTestSessionization.setUpc                    s   | j d d d  t   d S r	   )r
   __exit__r   tearDownr   r   r   r   r      s    zTestSessionization.tearDownc                     s\  dd l }ddlm  ||dd |ddddddddddddddddddddddddddddg} |jdddd	d
ddddddd	d
dddddddd	dddddddgddd} |t	|} j
 fdd}|t	|||| t|  dddddddddddddd d d d d!d"d#d$d%d%d&d'd'd'd'g}|j||  d S )(Nr   )cudaZ3600s            i  i  i  i'  i'  i'  i'  i:  iI iQ  i N  ia  ia  ia  ia  zdatetime64[ns])Zdtypeint64c                    s     d}t| }||krd S |dk}|s`| | | |d  k}|| ||d   k}|p\|}nd}|r|||<  j }	|	  d}
|||
  dkr||||
 < |
d7 }
||
 |d kr||||
 < qqd S )Nr   r   T)gridlenZcgZ	this_gridsync)Zuser_id	timestampresultsgidsizeZis_first_datapointZnew_userZ	timed_outZis_sess_boundaryr   Z
look_aheadr   Zsession_timeoutr   r   
sessionizeE   s,    


z9TestSessionization.test_ex_sessionize.<locals>.sessionize   	                              )numpyZnumbar   r   Ztimedelta64Z	to_devicearrayZastypeZzerosr   ZjitforallprintZcopy_to_hostZtestingZassert_equal)r   npZidssecr!   r%   expectr   r$   r   test_ex_sessionize   s                            
                       
)	                         z%TestSessionization.test_ex_sessionize)__name__
__module____qualname____doc__r   r   r8   __classcell__r   r   r   r   r   	   s   r   __main__)ZunittestZnumba.cuda.testingr   r   r   r   r   Znumba.tests.supportr   r   r9   mainr   r   r   r   <module>   s   t