
    wg              	           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e                                  Z	e
dk(  r e j                          yy)	    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                   2     e Zd ZdZ fdZ fdZd Z xZS )TestSessionizationz*
    Test click stream sessionization
    c                 t    t               | _        | j                  j                          t        |           y N)r   _captured_stdout	__enter__supersetUpself	__class__s    r/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/cuda/tests/doc_examples/test_sessionize.pyr   zTestSessionization.setUp   s)     / 1'')    c                 \    | j                   j                  d d d        t        |           y r   )r   __exit__r   tearDownr   s    r   r   zTestSessionization.tearDown   s&    &&tT48r   c                 V   dd l }ddlm |j                  |j	                  dd            j                  |j                  g d            }j                  |j                  g dd      j                  d	            }j                  |j                  t        |                  }j                  fd
       } |j                  t        |            |||       t        |j                                g d}|j                  j                  ||j                                y )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                    j                  d      }t        |       }||k\  ry |dk(  }|s&| |   | |dz
     k7  }||   ||dz
     z
  kD  }|xs |}nd}|rk|||<   j                  j                         }	|	j	                          d}
|||
z      dk(  r.||||
z   <   |
dz  }
||
z   |dz
  k(  r	||||
z   <   y |||
z      dk(  r-y y y )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_aheadr   session_timeouts              r   
sessionizez9TestSessionization.test_ex_sessionize.<locals>.sessionizeE   s   ))A,Cw<Dd{ "%%"3<737+;;cNYsQw%77/I  $,#8y #'   " ww((*		
 cJ./1403GC*,-!OJZ'4!8347j 01 cJ./14  r   )r   r   r   r   r   r      r8   r8   	   r9      r:      r;   r;   r;                  r@         rB   rB   rB   )numpynumbar   r%   timedelta64	to_devicearrayastypezerosr(   jitforallprintcopy_to_hosttestingassert_equal)	r   npidssecr.   r7   expectr   r6   s	          @@r   test_ex_sessionizez%TestSessionization.test_ex_sessionize   s    ((2>>&##>?
 nnHH	
 nnHH '  	 f
 ..#c(!34 
%	 
%	R 	$
#c(#Cg6g""$%

 	

(<(<(>?r   )__name__
__module____qualname____doc__r   r   rT   __classcell__)r   s   @r   r
   r
   	   s    

a@r   r
   __main__)unittestnumba.cuda.testingr   r   r   r   r   numba.tests.supportr   r
   rU   main r   r   <module>r`      sx    5 5 0 01GHq@ q@ I 2  q@h zHMMO r   