ó
\K]c           @` só  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l m	 Z	 m
 Z
 m Z d d l m Z m Z m Z m Z m Z d d l m Z m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z m Z m Z e j e d d ƒZ  d e e f d „  ƒ  YZ! d e f d „  ƒ  YZ" d e e f d „  ƒ  YZ# d e e f d „  ƒ  YZ$ d e f d „  ƒ  YZ% d e f d „  ƒ  YZ& d e f d „  ƒ  YZ' e d d e j( f g ƒ d e) f d  „  ƒ  Yƒ Z* d! e f d" „  ƒ  YZ+ d S(#   sâ   
Testing numba implementation of the numba dictionary.

The tests here only check that the numba typing and codegen are working
correctly.  Detailed testing of the underlying dictionary operations is done
in test_dictimpl.py.
i    (   t   print_functiont   absolute_importt   divisionN(   t   njitt   utilst   jitclass(   t   int32t   int64t   float32t   float64t   types(   t
   dictobjectt   typeof(   t   Dict(   t   _sentry_safe_cast(   t   IS_PY3(   t   TypingErrori   (   t   TestCaset   MemoryLeakMixint   unittestt   reasons   not supported in py2t   TestDictObjectc           B` sÄ  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j e j  oe! j" d. k d ƒ d „  ƒ Z# d „  Z$ d  „  Z% d! „  Z& d" „  Z' d# „  Z( d$ „  Z) d% „  Z* d& „  Z+ d' „  Z, d( „  Z- e j. d) „  ƒ Z/ e0 d* „  ƒ Z1 e0 d+ „  ƒ Z2 d, „  Z3 d- „  Z4 RS(/   c         C` sw   t  d „  ƒ } |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ d S(   sA   
        Exercise dictionary creation, insertion and len
        c         S` sA   t  j t t ƒ } x" t |  ƒ D] } | d | | <q Wt | ƒ S(   Ni   (   R   t   new_dictR   R   t   ranget   len(   t   nt   dt   i(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   foo   s    R   i    i   i   id   N(   R   t   assertEqual(   t   selfR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_create   s
    c         C` s”   t  d „  ƒ } |  j | d d d d g ƒ d d d g ƒ |  j | d d d d g ƒ d d d g ƒ |  j | d d d d g ƒ d d d g ƒ d S(	   sA   
        Exercise dictionary creation, insertion and get
        c         S` sd   t  j t t ƒ } x t |  ƒ D] } | | | <q Wg  } x$ | D] } | j | j | ƒ ƒ q@ W| S(   N(   R   R   R   R	   R   t   appendt   get(   R   t   targetsR   R   t   outputt   t(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   3   s    i   i    i   i	   i
   iÿÿÿÿN(   R   R   t   None(   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_get/   s    ++c         C` sK   t  d „  ƒ } |  j | d d d ƒ d ƒ |  j | d d d ƒ d ƒ d S(   s8   
        Exercise dict.get(k, d) where d is set
        c         S` sC   t  j t t ƒ } x t |  ƒ D] } | | | <q W| j | | ƒ S(   N(   R   R   R   R	   R   R!   (   R   t   targett   defaultR   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   G   s    i   i   iÿÿÿÿN(   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_get_with_defaultC   s    	c      	   C` så   t  d „  ƒ } d d d g } d d d g } |  j | | | d ƒ d ƒ |  j | | | d ƒ d ƒ |  j | | | d ƒ d ƒ |  j ƒ  |  j ƒ  |  j t ƒ  | | | d ƒ Wd	 QX|  j t ƒ  | | | d
 ƒ Wd	 QXd	 S(   s1   
        Exercise dictionary __getitem__
        c         S` sD   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" W| | S(   N(   R   R   R   R	   t   zip(   t   keyst   valsR'   R   t   kt   v(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   W   s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i    Ni   (   R   R   t   assert_no_memory_leakt   disable_leak_checkt   assertRaisest   KeyError(   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_getitemS   s    


c         C` sˆ   t  d „  ƒ } d d d g } d d d g } xT t d t | ƒ ƒ D]= } |  j | | |  | |  ƒ | | d | | d f ƒ qC Wd S(	   s.   
        Exercise dictionary .popitem
        c         S` sF   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" W| j ƒ  S(   N(   R   R   R   R	   R*   t   popitem(   R+   R,   R   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   s   s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?N(   R   R   R   R   (   R   R   R+   R,   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_popitemo   s    
c      	   ` sÝ   t  d „  ƒ ‰  t  ‡  f d †  ƒ } d d d g } d d d g } xW t t | ƒ ƒ D]C } |  j | | | d	 d ƒˆ  j t t | | ƒ ƒ d	 d ƒƒ qU W|  j ƒ  |  j ƒ  |  j	 t
 ƒ  | | | d	 d
 ƒWd QXd S(   s.   
        Exercise dictionary .popitem
        c         S` sS   d \ } } x: t  | ƒ D], } |  j ƒ  \ } } | | 7} | | 8} q W| | f S(   Ni    (   i    i    (   R   R4   (   R   t   npopt   keysumt   valsumt   _R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   coreŠ   s    
c         ` sI   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wˆ  | | ƒ S(   N(   R   R   R   R*   (   R+   R,   R6   R   R-   R.   (   R:   (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ”   s    i   i   i   i
   i   i   R6   i   N(   R   R   R   R   t   py_funct   dictR*   R/   R0   R1   R2   (   R   R   R+   R,   R   (    (   R:   s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_popitem_many…   s    
	)

c         C` sá   t  d „  ƒ } d d d g } d d d g } |  j | | | d ƒ d ƒ |  j | | | d ƒ d ƒ |  j | | | d ƒ d ƒ |  j | | | d ƒ d ƒ |  j ƒ  |  j ƒ  t  d	 „  ƒ } |  j t ƒ  | ƒ  Wd
 QXd
 S(   s*   
        Exercise dictionary .pop
        c         S` sX   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" W| j | d  ƒ t | ƒ f S(   N(   R   R   R   R	   R*   t   popR%   R   (   R+   R,   R'   R   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ²   s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i    c          S` s   t  j t t ƒ }  |  j d ƒ S(   Ni    (   R   R   R   R	   R>   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   É   s    N(   gš™™™™™¹?i   (   gš™™™™™É?i   (   g333333Ó?i   (   Ni   (   R   R   R%   R/   R0   R1   R2   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_pop®   s    


c      	   ` sž   t  d „  ƒ ‰  t  ‡  f d †  ƒ } d d d g } d d d g } d d d d d	 d d d	 d
 g	 } |  j | | | | ƒ ˆ  j t t | | ƒ ƒ | ƒ ƒ d S(   s*   
        Exercise dictionary .pop
        c         S` sI   d } x< | D]4 } | | |  j  | d ƒ t |  ƒ 7} | d 9} q W| S(   Ni    g°rh‘í|¿?i   (   R>   R   (   R   t   popst   totalR-   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR:   ×   s
    $c         ` sI   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wˆ  | | ƒ S(   N(   R   R   R   R	   R*   (   R+   R,   R@   R   R-   R.   (   R:   (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ß   s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i    iÿÿÿÿN(   R   R   R;   R<   R*   (   R   R   R+   R,   R@   (    (   R:   s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_pop_manyÒ   s    	!c         C` s¿   t  d „  ƒ } d d d g } d d d g } |  j | | | d ƒ d	 ƒ |  j | | | d ƒ d
 ƒ |  j | | | d ƒ d ƒ |  j ƒ  |  j ƒ  |  j t ƒ  | | | d ƒ Wd  QXd  S(   Nc         S` s\   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" W| | =t | ƒ | j | ƒ f S(   N(   R   R   R   R	   R*   R   R!   (   R+   R,   R'   R   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ò   s
    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i    (   i   N(   i   N(   i   N(   R   R   R%   R/   R0   R1   R2   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_delitemñ   s    	

c         C` sJ   t  d „  ƒ } d d d g } d d d g } |  j | | | ƒ d
 ƒ d	 S(   s%   
        Exercise dict.clear
        c         S` sb   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wt | ƒ } | j ƒ  | t | ƒ f S(   N(   R   R   R   R	   R*   R   t   clear(   R+   R,   R   R-   R.   t   b4(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    
i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i    N(   i   i    (   R   R   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_clear  s    c         C` s{   t  d „  ƒ } d d d g } d d d g } |  j | | | ƒ t t | | ƒ ƒ ƒ t  d „  ƒ } |  j | ƒ  g  ƒ d	 S(
   s%   
        Exercise dict.items
        c         S` sj   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wg  } x! | j ƒ  D] } | j | ƒ qO W| S(   N(   R   R   R   R	   R*   t   itemsR    (   R+   R,   R   R-   R.   t   outt   kv(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?c          S` s@   t  j t t ƒ }  g  } x! |  j ƒ  D] } | j | ƒ q% W| S(   N(   R   R   R   R	   RG   R    (   R   RH   RI   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   2  s
    N(   R   R   t   listR*   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_items  s    c         C` sJ   t  d „  ƒ } d d d g } d d d g } |  j | | | ƒ | ƒ d S(	   s$   
        Exercise dict.keys
        c         S` sj   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wg  } x! | j ƒ  D] } | j | ƒ qO W| S(   N(   R   R   R   R	   R*   R+   R    (   R+   R,   R   R-   R.   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   @  s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?N(   R   R   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_keys<  s    c         C` sJ   t  d „  ƒ } d d d g } d d d g } |  j | | | ƒ | ƒ d S(	   s&   
        Exercise dict.values
        c         S` sj   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wg  } x! | j ƒ  D] } | j | ƒ qO W| S(   N(   R   R   R   R	   R*   t   valuesR    (   R+   R,   R   R-   R.   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   W  s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?N(   R   R   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_valuesS  s    c         C` sS   t  d „  ƒ } d d d g } d d d g } |  j | | | ƒ d d d g ƒ d S(	   s%   
        Exercise iter(dict)
        c         S` sd   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wg  } x | D] } | j | ƒ qI W| S(   N(   R   R   R   R	   R*   R    (   R+   R,   R   R-   R.   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   n  s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?N(   R   R   (   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_iterj  s    c      	   C` sk   t  d „  ƒ } d d d g } d d d g } |  j | | | d d d d d	 g ƒ t t t t t g ƒ d
 S(   s,   
        Exercise operator.contains
        c         S` sj   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wg  } x! | D] } | j | | k ƒ qI W| S(   N(   R   R   R   R	   R*   R    (   R+   R,   t	   checklistR   R-   R.   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   …  s    i   i   i   gš™™™™™¹?gš™™™™™É?g333333Ó?i   i    N(   R   R   t   Truet   False(   R   R   R+   R,   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_contains  s    c         C` s€   t  d „  ƒ } t t d ƒ ƒ } g  t | ƒ D] \ } } | | d ^ q. } | | | ƒ } |  j | t t | | ƒ ƒ ƒ d S(   s$   
        Exercise dict.copy
        c         S` sR   t  j t t ƒ } x' t |  | ƒ D] \ } } | | | <q" Wt | j ƒ  j ƒ  ƒ S(   N(   R   R   R   R	   R*   RJ   t   copyRG   (   R+   R,   R   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   œ  s    i   id   N(   R   RJ   R   t	   enumerateR   R*   (   R   R   R+   R   t   xR,   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_copy˜  s
    -c         C` s&   t  d „  ƒ } |  j | ƒ  d ƒ d S(   s*   
        Exercise dict.setdefault
        c          S` s€   t  j t t ƒ }  |  j d d ƒ |  j d ƒ } d |  d <|  j d ƒ } d |  d <|  j d d ƒ |  j d ƒ } | | | f S(   Ni   g333333ó?gffffff@g333333@i   g      @(   R   R   R   R	   t
   setdefaultR!   (   R   t   at   bt   c(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ­  s    

g333333ó?gffffff@g333333@N(   g333333ó?gffffff@g333333@(   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_setdefault©  s    c         C` s§   t  d „  ƒ } |  j | d d d d ƒ t t f ƒ |  j | d d d d ƒ t t f ƒ |  j | d d d d ƒ t t f ƒ |  j | d d d d ƒ t t f ƒ d S(   s2   
        Exercise dict.__eq__ and .__ne__
        c         S` s„   t  j t t ƒ } t  j t t ƒ } x" t |  ƒ D] } | | | | <q1 Wx" t | ƒ D] } | | | | <qV W| | k | | k f S(   N(   R   R   R   R	   R   (   t   nat   nbt   fat   fbt   dat   dbR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ¿  s    i
   i   gÍÌÌÌÌÌ@i   N(   R   R   RQ   RR   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_equality»  s
    %%%c         C` sy  t  d „  ƒ } d d d g } d d d g } d d d g } d d d g } |  j | | | | | ƒ ƒ d d d g } d d d g } d d d d g } d d d d g } |  j | | | | | ƒ ƒ d d d g } d d d g } d d d g } d d d g } |  j | | | | | ƒ ƒ d d d g } d d d g } d d d g } d d d g } |  j | | | | | ƒ ƒ d S(   s&   
        Exercise dict.__eq__
        c         S` sŒ   t  j t t ƒ } t  j t t ƒ } x, t t |  ƒ ƒ D] } | | | |  | <q7 Wx, t t | ƒ ƒ D] } | | | | | <qf W| | k S(   N(   R   R   R   R	   R   R   R   R   (   t   akt   avt   bkt   bvRa   Rb   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   Ö  s    i   i   i   i   i    N(   R   t
   assertTruet   assertFalse(   R   R   Rd   Re   Rf   Rg   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_equality_moreÒ  s*    c         C` s?   t  d „  ƒ } |  j | d d ƒ ƒ |  j | d d ƒ ƒ d S(   s&   
        Exercise dict.__eq__
        c         S` s=   t  j t t ƒ } x t |  ƒ D] } | | | <q W| | k S(   N(   R   R   R   R	   R   (   R]   RZ   Ra   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    i
   i   N(   i   (   R   Ri   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_equality_diff_typeý  s    c         ` sŸ   t  d „  ƒ ‰ t  ‡ f d †  ƒ } t j t t ƒ ‰  t  ‡  f d †  ƒ } | d ƒ } |  j | j d ƒ | | ƒ } t ˆ j d ƒ ƒ } |  j | | ƒ d S(   sB   
        Exercise dictobject.{_as_meminfo, _from_meminfo}
        c         s` s2   x+ t  |  ƒ D] } | | | d d f Vq Wd  S(   Ni   id   (   R   (   t   nelemR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   make_content  s    c         ` sF   t  j t t ƒ } x$ ˆ  |  ƒ D] \ } } | | | <q Wt  j | ƒ S(   N(   R   R   R   R	   t   _as_meminfo(   Rl   R   R-   R.   (   Rm   (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   boxer  s    c         ` s"   t  j |  ˆ  ƒ } t | j ƒ  ƒ S(   N(   R   t   _from_meminfoRJ   RG   (   t   miR   (   t   dcttype(    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   unboxer  s    i
   i   N(	   R   R
   t   DictTypeR   R	   R   t   refcountRJ   R;   (   R   Ro   Rs   Rq   t   gott   expected(    (   Rr   Rm   s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_to_from_meminfo  s    c         C` sN   t  d „  ƒ } |  j t ƒ  } | d ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` sJ   t  j t t ƒ } x" t |  ƒ D] } | d | | <q W| j d ƒ } | S(   Ni   y              ð?(   R   R   R   R	   R   R!   (   R   R   R   t   z(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ,  s
    i
   s&   cannot safely cast complex128 to int32(   R   R1   R   t   assertInt   strt	   exception(   R   R   t   raises(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_001_cannot_downcast_key+  s    	c         C` sN   t  d „  ƒ } |  j t ƒ  } | d ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` sQ   t  j t t ƒ } x" t |  ƒ D] } | d | | <q W| j d |  d ƒ } | S(   Ni   i   y              ð?(   R   R   R   R	   R   R!   (   R   R   R   Ry   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   =  s
    i
   s(   cannot safely cast complex128 to float64(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt    test_002_cannot_downcast_default<  s    	c         C` sN   t  d „  ƒ } |  j t ƒ  } | d ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` sJ   t  j t t ƒ } x" t |  ƒ D] } | d | | <q W| j d ƒ } | S(   Ni   g333333@(   R   R   R   R	   R   R!   (   R   R   R   Ry   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   N  s
    i
   s#   cannot safely cast float64 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_003_cannot_downcast_keyM  s    
c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s    t  j t t ƒ }  d |  d <d  S(   Ng      @y              ð?(   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   `  s    s&   cannot safely cast complex128 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_004_cannot_downcast_key_  s    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s    t  j t t ƒ }  d |  d <d  S(   Ny              ð?i   (   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   n  s    s(   cannot safely cast complex128 to float64(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_005_cannot_downcast_valuem  s    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s   t  j t t ƒ }  |  d d  S(   Ng      '@(   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   |  s    s#   cannot safely cast float64 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_006_cannot_downcast_key{  s    i   i    s   Python 3, 64 bit test onlyc         C` sT   t  d „  ƒ } d \ } } | | | ƒ \ } } |  j | | ƒ |  j | | ƒ d  S(   Nc         S` st   t  j t t ƒ } t j d ƒ } t j d ƒ } t | ƒ t | ƒ k sN t ‚ |  | | <| | | <| | | | f S(   Ni   i=   i   i    I        Iÿÿÿÿÿÿÿ(   R   R   R   R	   t   npt   uint64t   hasht   AssertionError(   t   v1t   v2R   t   c1t   c2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    

g      $@g      4@(   g      $@g      4@(   R   R   (   R   R   RY   RZ   RV   t   y(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_007_collision_checks‰  s
    
c         C` s   t  d „  ƒ } d } | | ƒ \ } } |  j | g  t t | ƒ ƒ D] } | ^ qC ƒ |  j | g  t t | ƒ ƒ D] } | d ^ qr ƒ d  S(   Nc         S` s’   t  j t t ƒ } x" t |  ƒ D] } | d | | <q Wg  } g  } xB t |  ƒ D]4 } | j ƒ  } | j | d ƒ | j | d ƒ qP W| | f S(   Ni   i    (   R   R   R   R	   R   R4   R    (   R   R   R   R+   R,   t   tmp(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ž  s    i
   i   (   R   R   t   reversedR   (   R   R   Ry   t   gkt   gvRV   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_008_lifo_popitemœ  s
    /c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s:   t  j t t ƒ }  d |  d <d |  d <|  j d d ƒ d  S(   Ng      @i    g      @i   i   y              (@(   R   R   R   R	   R>   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ²  s    

s(   cannot safely cast complex128 to float64(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt    test_010_cannot_downcast_default±  s    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s7   t  j t t ƒ }  d |  d <d |  d <|  j d ƒ d  S(   Ng      @i    g      @i   y              &@(   R   R   R   R	   R>   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   Â  s    

s&   cannot safely cast complex128 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_011_cannot_downcast_keyÁ  s    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s&   t  j t t ƒ }  d |  d <d |  k S(   Ng      @i    y              ð?(   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   Ò  s    
s&   cannot safely cast complex128 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_012_cannot_downcast_keyÑ  s    c         C` s#   t  d „  ƒ } |  j | ƒ  ƒ d  S(   Nc          S` s   t  j t t ƒ }  d |  k S(   Ni   (   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   á  s    (   R   Ri   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_013_contains_empty_dictà  s    c         C` s#   t  d „  ƒ } |  j | ƒ  ƒ d  S(   Nc          S` s   t  j t t ƒ }  d |  k S(   Ni   (   R   R   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ê  s    (   R   Rh   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt    test_014_not_contains_empty_dicté  s    c         C` s5   t  d „  ƒ } d } |  j | | ƒ | d f ƒ d  S(   Nc         S` sc   t  j t t ƒ } x" t |  ƒ D] } | d | | <q Wt | ƒ } | j ƒ  t | ƒ } | | f S(   Ni   (   R   R   R   R	   R   R   RD   (   R   R   R   RV   RŒ   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ó  s    
i
   i    (   R   R   (   R   R   t   m(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_015_dict_clearò  s    
c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s&   t  j t t ƒ }  |  j d d ƒ d  S(   Ny              ð?g      (@(   R   R   R   R	   RX   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    s&   cannot safely cast complex128 to int32(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_016_cannot_downcast_key   s    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s&   t  j t t ƒ }  |  j d d ƒ d  S(   Ni   y              (@(   R   R   R   R	   RX   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    s(   cannot safely cast complex128 to float64(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt    test_017_cannot_downcast_default  s    c         C` sH   t  d „  ƒ } | ƒ  \ } } |  j | | ƒ |  j | d d g ƒ d  S(   Nc          S` sz   t  j t t ƒ }  d |  d <|  j ƒ  } d |  d <|  j ƒ  } g  | D] } | ^ qE } g  | D] } | ^ q^ } | | f S(   Ng      (@i   g      "@i   (   R   R   R   R	   R+   (   R   t   k1t   k2RV   t   rk1t   rk2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    

i   i   (   R   R   (   R   R   RY   RZ   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_018_keys_iter_are_views  s    c         C` s    t  d „  ƒ } t | ƒ  ƒ d  S(   Nc          S` s=   t  j t t ƒ }  d |  d <d |  d <|  j ƒ  d h @} | S(   Ng      (@i   g      "@i   i   (   R   R   R   R	   R+   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   2  s
    

(   R   t   print(   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_019/  s    c         C` sN   t  d „  ƒ } | ƒ  \ } } |  j | d
 d d d g ƒ |  j | d ƒ d  S(   Nc          S` su   t  j t j t ƒ }  d |  d <d |  d <d |  d <d |  d <g  } x! |  j ƒ  D] } | j | ƒ qP W| |  d f S(	   Ng      ð?RY   g       @RZ   g      @R[   g      @R   (   R   R   R
   t   unicode_typeR	   RG   R    (   R   RH   RV   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   >  s    



RY   g      ð?RZ   g       @R[   g      @R   i   (   RY   g      ð?(   RZ   g       @(   R[   g      @(   R   i   (   R   R   (   R   R   RG   Ra   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_020_string_key<  s    c         C` s3   t  d „  ƒ } |  j | ƒ  d d d f g ƒ d  S(   Nc          S` sn   t  j t j t ƒ }  g  } x! t d ƒ D] } | j d ƒ q( Wd j | ƒ } d |  | <t |  j	 ƒ  ƒ } | S(   Ni'  RY   t    g      ð?(
   R   R   R
   R£   R	   R   R    t   joinRJ   RG   (   R   RŽ   R   t   sRH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   P  s    
RY   i'  i   (   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_021_long_str_keyN  s    
c         C` sg   t  d „  ƒ } | ƒ  \ } } } |  j | d d	 g ƒ |  j | d
 d g ƒ |  j | d d g ƒ d  S(   Nc          S` sÈ   t  j t t ƒ }  |  } d |  d <d | d <t  j t t ƒ } d | d <d | d <|  } | }  g  |  j ƒ  D] } | ^ qk } g  | j ƒ  D] } | ^ qŠ } g  | j ƒ  D] } | ^ q© } | | | f S(   Ng      (@i   g      ,@i   g      Y@g     @@(   R   R   R   R	   RG   (   R   t   et   fRV   Rœ   R   t   k3(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ]  s    



i   g      Y@i   g     @@i   i   (   i   g      Y@(   i   g     @@(   i   g      Y@(   i   g     @@(   i   i   (   i   i   (   R   R   (   R   R   Rœ   R   R«   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_022_references_juggle\  s
    c         C` s,   t  d „  ƒ } |  j | ƒ  d d g ƒ d  S(   Nc          ` sE   t  j t t ƒ ‰  ‡  f d †  }  |  ƒ  g  ˆ  j ƒ  D] } | ^ q5 S(   Nc           ` s   d ˆ  d <d ˆ  d <d  S(   Ng      (@i   g      ,@i   (    (    (   R   (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   bary  s    
(   R   R   R   R	   R+   (   R­   RV   (    (   R   s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   u  s    i   i   (   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_023_closuret  s    
I       (5   t   __name__t
   __module__R   R&   R)   R3   R5   R=   R?   RB   RC   RF   RK   RL   RN   RO   RS   RW   R\   Rc   Rj   Rk   Rx   R~   R   R€   R   R‚   Rƒ   R   t
   skipUnlessR   R   t   syst   maxsizeR   R’   R“   R”   R•   R–   R—   R™   Rš   R›   R    t   expectedFailureR¢   t   skip_py2R¤   R¨   R¬   R®   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR      sX   						)	$				"								+																					t   TestDictTypeCastingc           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s   t  | | ƒ d  S(   N(   R   (   R   t   fromtyt   toty(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt
   check_goodƒ  s    c         C` sN   |  j  t ƒ  } t | | ƒ Wd  QX|  j d j t ƒ    t | j ƒ ƒ d  S(   Ns%   cannot safely cast {fromty} to {toty}(   R1   R   R   Rz   t   formatt   localsR{   R|   (   R   R·   R¸   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt	   check_bad†  s
    c         C` sˆ   |  j  t j t j ƒ |  j  t j t j ƒ |  j  t j t j ƒ |  j  t j t j ƒ |  j t j t j ƒ |  j  t j	 t j ƒ d  S(   N(
   R¹   R
   R   R   R	   t
   complex128R   R¼   t	   complex64t   int8(   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_cast_int_toŽ  s    c         C` sF   |  j  t j t j ƒ |  j  t j t j ƒ |  j  t j t j ƒ d  S(   N(   R¹   R
   R   R	   R¾   R½   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_cast_float_to–  s    c         C` sF   |  j  t j t j ƒ |  j  t j t j ƒ |  j  t j t j ƒ d  S(   N(   R¹   R
   t   booleanR   R	   R½   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_cast_bool_to›  s    (   R¯   R°   R¹   R¼   RÀ   RÁ   RÃ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR¶   ‚  s
   				t   TestTypedDictc           B` sA   e  Z d  „  Z d „  Z d „  Z e d „ Z d „  Z d „  Z RS(   c   	      C` sÅ  t  j t t ƒ } |  j t | ƒ d ƒ d | d <d | d <d | d <|  j t | ƒ d ƒ |  j t | j ƒ  ƒ d d d g ƒ xH t t | j	 ƒ  ƒ d d d g ƒ D]" \ } } |  j
 | | d d ƒq¦ W|  j
 | d d ƒ |  j
 | d d d d ƒ|  j
 | d d d d ƒ| d =|  j t | ƒ d ƒ |  j | j d ƒ ƒ | j d d	 ƒ | j d d
 ƒ |  j | d d	 ƒ |  j
 | d d d d ƒ| j i d d 6d d 6ƒ |  j
 | d d ƒ |  j
 | d d ƒ |  j d | k ƒ t | j ƒ  ƒ } |  j t | ƒ t | ƒ ƒ |  j
 | j d ƒ d ƒ t | ƒ } | j ƒ  \ } } |  j t | ƒ | d ƒ |  j | | k ƒ | j ƒ  } |  j | | ƒ |  j t | j ƒ  ƒ t | j ƒ  ƒ ƒ d  S(   Ni    i   gffffff@i   g333333@i   t   placesi   id   iÈ   i   i   (   R   t   emptyR   R   R   R   RJ   R+   R*   RM   t   assertAlmostEqualt   assertIsNoneR!   RX   t   updateRh   R<   RG   R>   R4   RT   (	   R   R   RV   RŒ   t   pydRl   R-   R.   t   copied(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt
   test_basic¢  sB    


%1c         C` s   d „  t  t d ƒ t d d ƒ ƒ Dƒ } t j t t ƒ } x$ | j ƒ  D] \ } } | | | <qG Wt | ƒ } |  j | | ƒ d  S(   Nc         S` s%   i  |  ] \ } } t  | ƒ | “ q S(    (   t   float(   t   .0R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pys
   <dictcomp>Ô  s   	 i
   i   (	   R*   R   R   RÆ   R   R	   RG   R<   R   (   R   t   expectt   nbdR-   R.   Rv   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_copy_from_dictÓ  s    (c         C` sG   t  d „  ƒ } t  d „  ƒ } | ƒ  } | | ƒ } |  j | d ƒ d  S(   Nc          S` s    t  j t t ƒ }  d |  d <|  S(   Ng®Gáz®ó?i   (   R   RÆ   R   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   producerÜ  s    
c         S` s   |  d S(   Ni   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   consumerâ  s    g®Gáz®ó?(   R   R   (   R   RÒ   RÓ   R   t   val(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_compiledÛ  s
    	c         C` s  t  j t t ƒ } i  } d | d <d | d <| r; |  j n |  j } | | | ƒ | | ƒ ƒ d | d <d | d <| | | ƒ | | ƒ ƒ x3 t d d ƒ D]" } | d | | <| d | | <qš W| | | ƒ | | ƒ ƒ | rþ |  j | | ƒ j d ƒ ƒ n  d  S(   Ni   i   i   i
   i   Rt   (   R   RÆ   R   Rz   R   R   Rh   t
   startswith(   R   t   strfnt   prefixRÐ   R   t   checkerR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   check_stringifyê  s    



c         C` s   |  j  t d t ƒd  S(   NRØ   (   RÚ   t   reprRQ   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt	   test_reprû  s    c         C` s   |  j  t ƒ d  S(   N(   RÚ   R{   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_strþ  s    (	   R¯   R°   RÌ   RÑ   RÕ   RR   RÚ   RÜ   RÝ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyRÄ   ¡  s   	1			t   TestDictRefctTypesc           B` s_   e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z e d „  ƒ Z d „  Z	 RS(   c         C` s0  t  d „  ƒ } | ƒ  } |  j | d d ƒ |  j | d d ƒ i d d 6d d 6} |  j t | ƒ | ƒ d | d <d | d <|  j | d d ƒ |  j t | ƒ | ƒ d } x4 t | ƒ D]& } | | t | ƒ <| | t | ƒ <q» Wx. t | ƒ D]  } |  j | t | ƒ | ƒ qò W|  j t | ƒ | ƒ d  S(   Nc          S` s6   t  j d t j d t j ƒ }  d |  d <d |  d <|  S(   Nt   key_typet
   value_typei{   t   123iA  t   321(   R   RÆ   R
   R£   R   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    		

Rá   i{   Râ   iA  iç   id   (   R   R   R<   R   R{   (   R   R   R   RÏ   Rl   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_str_key  s"    
	

c         C` s  t  d „  ƒ } | ƒ  } |  j | d d ƒ |  j | d d ƒ i d d 6d d 6} |  j t | ƒ | ƒ d | d <d | d <|  j t | ƒ | ƒ d } x4 t | ƒ D]& } t | ƒ | | <t | ƒ | | <q§ Wx. t | ƒ D]  } |  j | | t | ƒ ƒ qÞ W|  j t | ƒ | ƒ d  S(   Nc          S` s6   t  j d t j d t j ƒ }  d |  d <d |  d <|  S(   NRß   Rà   Rá   i{   Râ   iA  (   R   RÆ   R
   R   R£   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   $  s    		

i{   Rá   iA  Râ   t   231i   (   R   R   R<   R   R{   (   R   R   R   RÏ   Rl   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_str_val"  s     
	

c   	      C` sS  t  j j d ƒ t j d t j d t j ƒ } g  } | j t  j j d ƒ ƒ | d | d <| j t  j j d ƒ ƒ | d | d <xA t	 d	 ƒ D]3 } | j t  j j | ƒ ƒ | d | t
 | ƒ <q W|  j t | ƒ t | ƒ ƒ |  j | d | d
 ƒ |  j | d | d ƒ x3 t | j ƒ  | ƒ D] \ } } |  j | | ƒ q)W|  j d | k ƒ |  j d | k ƒ | d =|  j d | k ƒ | d =|  j d | k ƒ | d
 d 5xB t	 d ƒ D]4 } | j ƒ  \ } } | j ƒ  } |  j | | ƒ qºW| j t  j j d ƒ ƒ | d | d <x3 t | j ƒ  | ƒ D] \ } } |  j | | ƒ q/Wd  S(   Ni{   Rß   Rà   i
   iÿÿÿÿt   massi   t   velocityid   i    i   i   iZ   t   last(   R„   t   randomt   seedR   RÆ   R
   R£   R	   R    R   R{   R   R   t   assertPreciseEqualR*   RM   Rh   Ri   R4   R>   (	   R   R   RÏ   R   Rv   t   expR-   R.   t   w(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_str_key_array_value@  s@    		"
"c         C` sË   d „  } t  j d t j d t j t j t j ƒ ƒ } d „  } | | | ƒ } | i  t ƒ } |  j | t ƒ |  j t | ƒ | ƒ xA d d d d d	 g D]* } | | =| | =|  j t | ƒ | ƒ q™ Wd  S(
   Nc          S` s"   t  j d t j d t j ƒ }  |  S(   NRß   Rà   (   R   RÆ   R
   t   intp(   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   inner_numba_dictm  s    		Rß   Rà   c         S` sW   xP t  d ƒ D]B } | ƒ  } x& t  | d ƒ D] } | d | | <q- W| |  | <q W|  S(   Nid   i   i'  (   R   (   R   t   make_inner_dictR   t   midt   j(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   usecasey  s    	i   i   i   i   i
   (   R   RÆ   R
   Rï   Rt   R<   t   assertIsInstanceR   (   R   Rð   R   Rô   Rv   RÏ   t   where(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_of_dict_int_keyvall  s    				c         ` sÓ   t  j t  j t  j ƒ ‰  t d „  ƒ ‰ t ‡  ‡ f d †  ƒ } | d ƒ } d } xk | j ƒ  D]] \ } } | d 7} |  j t | ƒ | d ƒ x* | j ƒ  D] \ } } |  j | | ƒ q› Wq^ W|  j | d ƒ d  S(   Nc          S` s"   t  j d t j d t j ƒ }  |  S(   NRß   Rà   (   R   RÆ   R
   Rï   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyRð   ‘  s    		c         ` sl   t  j d t j d ˆ  ƒ } xJ t |  ƒ D]< } ˆ ƒ  | | <x& t | d ƒ D] } | | | | <qL Wq( W| S(   NRß   Rà   i   (   R   RÆ   R
   Rï   R   (   t   countR   R   Ró   (   t   inner_dict_tyRð   (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ™  s    			id   i    i   (   R
   Rt   Rï   R   RG   R   R   (   R   R   R   t   ctR-   t   ddt   kkt   vv(    (   Rù   Rð   s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_of_dict_npmŽ  s    
c         C` se   t  j t j t j ƒ } d | d <t d „  ƒ } | | d ƒ |  j t | ƒ d ƒ |  j | ƒ d  S(   Nt   applei   c         S` s   |  d =d  S(   Ni   (    (   RV   R-   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   µ  s    i    (	   R   RÆ   R
   R   R£   R   R   R   Ri   (   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_delitem°  s    
c         C` s²   t  j t j t j ƒ } t j d d t j ƒ| d <t d „  ƒ } | | ƒ | j d j } |  j	 | t j
 ƒ |  j | t j ƒ |  j | d t j d d t j ƒd ƒ d  S(   Ni
   t   dtypei   c         S` s   |  d c d 7<|  d S(   Ni   id   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   Â  s    i    id   (   R   RÆ   R
   R   R„   t   arangeR   t   nopython_signaturest   return_typeRõ   t   Arrayt   assertNotIsInstancet   OptionalRë   (   R   R   R   t   retty(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_getitem_return_type½  s    
(
   R¯   R°   Rµ   Rã   Rå   Rî   R÷   Rþ   R   R	  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyRÞ     s   ,	"	"t   TestDictForbiddenTypesc           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` sB   |  j  t ƒ  } | ƒ  Wd  QXt | j ƒ } |  j | | ƒ d  S(   N(   R1   R   R{   R|   Rz   (   R   RÏ   t   callableR}   t   msg(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   assert_disallowÑ  s    c         ` sQ   d j  ˆ  ƒ } |  j | ‡  f d †  ƒ t ‡  f d †  ƒ } |  j | | ƒ d  S(   Ns   {} as key is forbiddedc           ` s   t  j ˆ  t j ƒ S(   N(   R   RÆ   R
   Rï   (    (   t   ty(    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   <lambda>Ù  R¥   c           ` s   t  j ˆ  t j ƒ d  S(   N(   R   RÆ   R
   Rï   (    (   R  (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   Û  s    (   Rº   R  R   (   R   R  R  R   (    (   R  s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   assert_disallow_key×  s    c         ` sQ   d j  ˆ  ƒ } |  j | ‡  f d †  ƒ t ‡  f d †  ƒ } |  j | | ƒ d  S(   Ns   {} as value is forbiddedc           ` s   t  j t j ˆ  ƒ S(   N(   R   RÆ   R
   Rï   (    (   R  (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR  â  R¥   c           ` s   t  j t j ˆ  ƒ d  S(   N(   R   RÆ   R
   Rï   (    (   R  (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ä  s    (   Rº   R  R   (   R   R  R  R   (    (   R  s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   assert_disallow_valueà  s    c         C` s6   |  j  t j t j ƒ ƒ |  j t j t j ƒ ƒ d  S(   N(   R  R
   t   ListRï   R  (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_disallow_listé  s    c         C` s6   |  j  t j t j ƒ ƒ |  j t j t j ƒ ƒ d  S(   N(   R  R
   t   SetRï   R  (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_disallow_setí  s    (   R¯   R°   R  R  R  R  R  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR
  Ð  s
   						t   TestDictInferredc           B` sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C` sƒ   t  d „  ƒ } d \ } } | ƒ  } |  j t | ƒ i | | 6ƒ |  j t | ƒ j t | ƒ ƒ |  j t | ƒ j t | ƒ ƒ d  S(   Nc          S` s   t  ƒ  }  d |  d <|  S(   NiA  i{   (   R   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ô  s    	
i{   iA  (   i{   iA  (   R   R   R<   R   Rß   Rà   (   R   R   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_simple_literaló  s    	c         C` s‰   t  d „  ƒ } d \ } } | | | ƒ } |  j t | ƒ i | | 6ƒ |  j t | ƒ j t | ƒ ƒ |  j t | ƒ j t | ƒ ƒ d  S(   Nc         S` s   t  ƒ  } | | |  <| S(   N(   R   (   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    	
i{   iA  (   i{   iA  (   R   R   R<   R   Rß   Rà   (   R   R   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_simple_args   s    c         C` s   t  d „  ƒ } d \ } } } | | | | ƒ } |  j t | ƒ i | | 6ƒ |  j t | ƒ j t | ƒ ƒ |  j t | ƒ j t | ƒ ƒ d  S(   Nc         S` s!   t  ƒ  } | | |  <| | |  <| S(   N(   R   (   R-   R.   Rí   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    	

i{   gÍÌÌÌÌ@@iA  (   i{   gÍÌÌÌÌ@@iA  (   R   R   R<   R   Rß   Rà   (   R   R   R-   R.   Rí   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_simple_upcast  s    c         C` sr   t  d „  ƒ } d \ } } } |  j t ƒ  } | | | | ƒ Wd  QX|  j d j t | ƒ ƒ t | j ƒ ƒ d  S(   Nc         S` s!   t  ƒ  } | | |  <| | |  <| S(   N(   R   (   R-   R.   Rí   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR     s    	

i{   iA  gÍÌÌÌÌ@@s    cannot safely cast float64 to {}(   i{   iA  gÍÌÌÌÌ@@(   R   R1   R   Rz   Rº   R   R{   R|   (   R   R   R-   R.   Rí   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_conflicting_value_type  s    c         C` sr   t  d „  ƒ } d \ } } } |  j t ƒ  } | | | | ƒ Wd  QX|  j d j t | ƒ ƒ t | j ƒ ƒ d  S(   Nc         S` s!   t  ƒ  } | | |  <| | | <| S(   N(   R   (   R-   t   hR.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ,  s    	

i{   gfffffÆ^@iA  s    cannot safely cast float64 to {}(   i{   gfffffÆ^@iA  (   R   R1   R   Rz   Rº   R   R{   R|   (   R   R   R-   R  R.   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_conflicting_key_type+  s    c         C` s‡   t  d „  ƒ } d \ } } | | | ƒ } |  j t | ƒ i | | 6ƒ d \ } } | | | ƒ } |  j t | ƒ i | d d 6ƒ d  S(	   Nc         S` s.   t  ƒ  } |  r | | |  <n | d | d <| S(   Ni   i­Þ  (   R   (   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   <  s
    	i{   iA  i    i   i­Þ  (   i{   iA  (   i    i    (   R   R   R<   (   R   R   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt    test_ifelse_filled_both_branches;  s    
c         C` sº   t  d „  ƒ } d \ } } | | | ƒ } |  j t | ƒ i | | 6ƒ d \ } } | | | ƒ } |  j t | ƒ i  ƒ |  j t | ƒ j t | ƒ ƒ |  j t | ƒ j t | ƒ ƒ d  S(   Nc         S` s    t  ƒ  } |  r | | |  <n  | S(   N(   R   (   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   N  s    	i{   iA  i    (   i{   iA  (   i    i    (   R   R   R<   R   Rß   Rà   (   R   R   R-   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_ifelse_empty_one_branchM  s    c         C` sq   t  d „  ƒ } t t d ƒ ƒ } t t d „  | ƒ ƒ } | | | ƒ } |  j t | ƒ t t | | ƒ ƒ ƒ d  S(   Nc         S` s7   t  ƒ  } x' t |  | ƒ D] \ } } | | | <q W| S(   N(   R   R*   (   t   kst   vsR   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   `  s    	i   c         S` s   |  d S(   Nid   (    (   RV   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR  h  R¥   (   R   RJ   R   t   mapR   R<   R*   (   R   R   R   R  R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt	   test_loop_  s
    c         C` sK   t  d „  ƒ } |  j t ƒ  } | ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc          S` s   t  ƒ  }  |  S(   N(   R   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   m  s    	s   imprecise type(   R   R1   R   Rz   R{   R|   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_unusedl  s    c         C` s°   t  d „  ƒ } | t ƒ \ } } } |  j | d ƒ |  j | d ƒ |  j t | ƒ i d d 6ƒ | t ƒ \ } } } |  j | d ƒ |  j t | ƒ i  ƒ |  j | d ƒ d  S(   Nc         S` sb   t  ƒ  } t | ƒ } x$ | j ƒ  D] \ } } | | 7} q" W|  rO d | d <n  | | t | ƒ f S(   Ni   i   (   R   R   RG   (   t   defineR   Rú   R-   R.   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   z  s    	i    i   i   (   R   RQ   R   R<   RR   (   R   R   Rú   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_define_after_usey  s    c         C` sv   t  d „  ƒ } d \ } } } | | | | ƒ } |  j t | ƒ i i | | | d 6| 6i | | | d 6| 6ƒ d  S(   Nc         S` sW   t  ƒ  } t  ƒ  } | |  | |  d <t  ƒ  } | | | | d <| | |  <| | | <| S(   Ni   i   (   R   (   Rœ   R   R.   R   t   z1t   z2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ‘  s    			

id   iÈ   iA  i   i   (   id   iÈ   iA  (   R   R   R<   (   R   R   Rœ   R   R.   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_dict_of_dict  s    	(   R¯   R°   R  R  R  R  R  R  R  R"  R#  R%  R(  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR  ò  s   										t   TestNonCompiledInferc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c      
   C` s%  t  ƒ  } |  j | j ƒ |  j t | ƒ d ƒ |  j t | ƒ t i  ƒ ƒ |  j t t | ƒ ƒ g  ƒ |  j t	 ƒ  } | d Wd  QX|  j t | j
 ƒ t t	 d ƒ ƒ ƒ |  j t	 ƒ  } | d =Wd  QX|  j t | j
 ƒ t t	 d ƒ ƒ ƒ |  j t	 ƒ  | j d ƒ Wd  QX|  j t | j
 ƒ t t	 d ƒ ƒ ƒ |  j | j d d  ƒ d  ƒ |  j | j d ƒ d  ƒ |  j t	 ƒ  } | j ƒ  Wd  QX|  j t | j
 ƒ t t	 d ƒ ƒ ƒ |  j t ƒ  } | j d ƒ Wd  QX|  j t | j
 ƒ t t d ƒ ƒ ƒ |  j d | k ƒ |  j | j ƒ d  S(   Ni    i   s   dictionary is emptys'   invalid operation on untyped dictionary(   R   Ri   t   _typedR   R   R{   RJ   t   iterR1   R2   R|   R>   t   assertIsR%   R!   R4   t	   TypeErrorRX   (   R   R   R}   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_check_untyped_dict_ops¨  s6    	%%%c         C` s;   t  ƒ  } d | d <|  j | j ƒ |  j | d d ƒ d  S(   Ni   i   (   R   Rh   R*  R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_getitemÐ  s    	
c         C` sA   t  ƒ  } | j d d ƒ |  j | j ƒ |  j | d d ƒ d  S(   Ni   i   (   R   RX   Rh   R*  R   (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_setdefaultØ  s    	(   R¯   R°   R.  R/  R0  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR)  §  s   	(	t   specRY   t   Bagc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s   | |  _  d  S(   N(   RY   (   R   RY   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   __init__ã  s    c         C` s   t  |  j ƒ S(   N(   R†   RY   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   __hash__æ  s    (   R¯   R°   R3  R4  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR2  á  s   	t   TestDictWithJitclassc           B` s   e  Z d  „  Z RS(   c         C` sV   t  d „  ƒ } | t d d ƒ ƒ } |  j | d j d ƒ |  j | d j d ƒ d  S(   Nc         S` s'   t  ƒ  } |  | d <t d ƒ | d <| S(   Ni    ie   i   (   R   R2  (   RV   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR   ì  s    	
RY   id   i    i   ie   (   R   R2  R   RY   (   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   test_jitclass_as_valueë  s    (   R¯   R°   R6  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyR5  ê  s   (,   t   __doc__t
   __future__R    R   R   R²   t   numpyR„   t   numbaR   R   R   R   R   R   R	   R
   R   R   t   numba.typedR   t   numba.typedobjectutilsR   t   numba.utilsR   t   numba.errorsR   t   supportR   R   R   R±   Rµ   R   R¶   RÄ   RÞ   R
  R  R)  Rï   t   objectR2  R5  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dictobject.pyt   <module>   s2   (ÿ ÿ ÿ kaÎ"µ: