ó
\K]c           @  s¢   d  d l  m Z d  d l j Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 d d l m Z m Z d e f d „  ƒ  YZ e d k rž e j ƒ  n  d S(	   iÿÿÿÿ(   t   print_functionN(   t   jitt   utilsi   (   t   TestCaset
   tweak_codet   TestExtendedArgc           B  s    e  Z d  Z d „  Z d „  Z RS(   s3   
    Test support for the EXTENDED_ARG opcode.
    c         C  sŸ   d „  } t  | j j ƒ } | j j } t j d k rE d } d } n d } d } | d | d } t j | t	 j
 d	 ƒ | d
 *t | d t | ƒ d | ƒ| S(   sW   
        Get a function with a EXTENDED_ARG opcode before a LOAD_CONST opcode.
        c          S  s
   d }  |  S(   Ni   (    (   t   x(    (    s<   lib/python2.7/site-packages/numba/tests/test_extended_arg.pyt   f   s    i   i   iÿ   s   <BBiÿÿ  s   <BHi*   i   i    t
   codestringt   consts(   i   i   N(   N(   i*   (   t	   bytearrayt   __code__t   co_codet	   co_constsR   t	   PYVERSIONt   Nonet   structt   packt   dist   EXTENDED_ARGR   t   bytes(   t   selfR   t   bR	   t   bytecode_lent   bytecode_format(    (    s<   lib/python2.7/site-packages/numba/tests/test_extended_arg.pyt   get_extended_arg_load_const   s    		c         C  sK   |  j  ƒ  } |  j | ƒ  d ƒ t d t ƒ | ƒ } |  j | ƒ  d ƒ d  S(   Ni*   t   nopython(   R   t   assertPreciseEqualR   t   True(   R   t   pyfunct   cfunc(    (    s<   lib/python2.7/site-packages/numba/tests/test_extended_arg.pyt   test_extended_arg_load_const'   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_extended_arg.pyR      s   	t   __main__(   t
   __future__R    t   numba.unittest_supportt   unittest_supportt   unittestR   R   t   syst   numbaR   R   t   supportR   R   R   R    t   main(    (    (    s<   lib/python2.7/site-packages/numba/tests/test_extended_arg.pyt   <module>   s   "