o
    ۾i                     @   sp   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r6e   dS 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__ a/home/ubuntu/.local/lib/python3.10/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 |g d} |jg dddd	} |t	|} j
 fd
d}|t	|||| t|  g d}|j||  d S )Nr   )cuda3600s)   r   r   r   r   r      r   r      r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   )r   r   r       i  r   r   r   r   r   r   r   i'  i'  i'  i'  :  iI r   r   iQ  r   i N  ia  ia  ia  ia  zdatetime64[ns])dtypeint64c                    s     d}t| }||krd S |dk}|s0| | | |d  k}|| ||d   k}|p.|}nd}|ro|||<  j }	|	  d}
|||
  dkrq||||
 < |
d7 }
||
 |d kre||||
 < d S |||
  dksKd S d S d S )Nr   r   T)gridlencg	this_gridsync)user_id	timestampresultsgidsizeis_first_datapointnew_user	timed_outis_sess_boundaryr"   
look_aheadr   session_timeoutr   r   
sessionizeE   s2   


z9TestSessionization.test_ex_sessionize.<locals>.sessionize)r   r   r   r   r   r      r4   r4   	   r5      r6      r7   r7   r7                  r<         r>   r>   r>   )numpynumbar   r!   timedelta64	to_devicearrayastypezerosr#   jitforallprintcopy_to_hosttestingassert_equal)r   npidssecr)   r3   expectr   r1   r   test_ex_sessionize   s0   
	)z%TestSessionization.test_ex_sessionize)__name__
__module____qualname____doc__r   r   rP   __classcell__r   r   r   r   r   	   s
    r   __main__)unittestnumba.cuda.testingr   r   r   r   r   numba.tests.supportr   r   rQ   mainr   r   r   r   <module>   s    t