σ
\K]c           @` sr   d  d l  m Z m Z m Z d  d l m Z d  d l m Z d e j	 f d     YZ
 e d k rn e j   n  d S(   i    (   t   print_functiont   divisiont   absolute_import(   t   unittest_support(   t   get_limiting_factorst   TestOccupancyc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` st   t  |   } xa | j   D]S \ } } t | |  } | d k rY |  j | | d | q |  j | | |  q Wd  S(   Nt	   occupancyt   msg(   R   t   itemst   getattrt   assertAlmostEqualt   assertEqual(   t   selft   inputst   expected_outputst   outputst   kt   expectt   got(    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   check_limits   s    c         C` sk   t  d d d d d d  } t  d d d	 d
 d d
 d d d d d t d	 d d g   } |  j | |  d  S(   Nt
   group_sizei  t   vgpr_per_workitemi   t   sgpr_per_wavei1   t   allowed_wave_due_to_sgpri
   t   allowed_wave_due_to_vgpri   t   allowed_wavet   allowed_vgpr_per_workitemi   R   i    t   reasons(   t   dictt   setR   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_1   s    	c         C` s_   t  d d d d d d  } t  d d d	 d
 d d
 d d d d d t    } |  j | |  d  S(   NR   i   R   i   R   i1   R   i
   R   i   R   R   R   gΉ?R   (   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_2!   s    	c         C` sk   t  d d d d d d  } t  d d d	 d d
 d d d d d d t d d
 d g   } |  j | |  d  S(   NR   i   R   i   R   iF   R   i   R   R   R   i    R   i    R   (   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_3/   s    	c         C` se   t  d d d d d d  } t  d d d	 d
 d d
 d d d d d t d g   } |  j | |  d  S(   NR   i   R   i    R   i2   R   i
   R   i   R   R   R   i    R   (   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_4?   s    	c         C` s_   t  d d d d d d  } t  d d d	 d
 d d
 d d d d d t    } |  j | |  d  S(   NR   i   R   i   R   i
   R   i3   R   i   R   R   i   R   gΉ?R   (   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_5M   s    	c         C` sh   t  d d d d d d  } t  d d d	 d
 d d
 d d d d
 d t d	 d g   } |  j | |  d  S(   NR   i   R   i  R   i   R   iͺ   R   i    R   R   i   R   R   (   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   test_limits_6[   s    	(	   t   __name__t
   __module__R   R   R   R    R!   R"   R#   (    (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyR      s   							t   __main__N(   t
   __future__R    R   R   t   numbaR   t   unittestt   numba.roc.gcn_occupancyR   t   TestCaseR   R$   t   main(    (    (    sC   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_occupancy.pyt   <module>   s
   d