
ZO\c           @@ s  d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 Z	 d  d l
 Z d  d l
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 d  d l4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 d  d l
 m9 Z9 m: Z: m; Z; m< Z< m= Z= m> Z> d  d l? Z? d  d l? m@ Z@ mA ZA mB ZB mC ZC mD ZD mE ZE d  d lF ZF eF jG ZG e jH ZH e jI d  d k r,eJ ZK n  d  d	 lL mM ZM eM d
  ZN d eG f d     YZO d eO f d     YZP d eG f d     YZQ d d d d d d d d d d d d d d d d  g f g ZR g  ZS x eT d!  d" g D] ZU eS jV d# eU  eS jV d$ eU  eS jV d% eU  eS jV d& eU  eS jV d' eU  eS jV d( eU  eS jV d) eU  eS jV d* eU  qWeR jV d+ eS f  g  ZW xd d, d- d. d/ d0 d1 g D]J ZU eW jV d2 eU  eW jV d3 eU  eW jV d4 eU  eW jV d5 eU  qWeR jV d6 eW f  g  ZX xg d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN g D] ZY eX jV dO eY  qZWeR jV dP eX f  g  ZZ xG dQ dR g D]9 ZY eZ jV dS eY  eZ jV dT eY  eZ jV dU eY  qWeR jV dV eZ f  g  Z[ x@ dW dX dY dZ d[ d  d\ d] d^ d_ d f D] Z\ e[ jV d` e\  qWeR jV da e[ f  db   Z] dc e^ f dd     YZ_ de   Z` df eG f dg     YZa dh eG f di     YZb dj eG f dk     YZc dl eG f dm     YZd dn eG f do     YZe dp eG f dq     YZf e dr    Zg ds eG f dt     YZh du eG f dv     YZi ej dw  Zk dx eG f dy     YZl dz   Zm d] d{  Zn eo en _p d|   Zq er d} k rem   eF js d~ d  n  d S(   i    (   t   absolute_importt   print_functionN(   t   contextmanager((   t   arrayt   aranget   emptyt   zerost   int32t   int64t   uint16t   complex_t   float64t   rect   copyt	   ones_liket   wheret   alltruet   linspacet   sumt   prodt   sqrtt   fmodt   floort   ceilt   sint   cost   tant   arcsint   arccost   arctant   arctan2t   sinht   cosht   tanht   arcsinht   arccosht   arctanht   logt   log1pt   log10t   expt   expm1t   conj(   t   assert_equalt   assert_array_equalt   assert_array_almost_equalt   assert_allclose(   t   shapet   allcloset   array_equalt   ravelt   isnant   isinf(   t   Et   NumExprt   evaluatet   re_evaluatet   disassemblet   use_vmli   (   t   LooseVersions   1.7.0t   test_numexprc           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 RS(   s   Testing with 1 threadi   c         C@ s   t  j |  j  d  S(   N(   t   numexprt   set_num_threadst   nthreads(   t   self(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   setUp2   s    c         C@ s   d t  j d t  j t  j } d t f d t f d t f g } t | d | } | t d d d	 g  t d
 d d g  t d d d g   } t | t d d d g   d  S(   Ng       @g      @t   at   bt   ct	   signatureg      ?i   i   g      @i   i   g      @i   i	   g     U@g      _@g      e@(   R5   RB   RC   RD   t   doubleR6   R   R,   (   R@   t   ext   sigt   funct   x(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_simple5   s
    !?c         C@ s8   t  t j  } t d  } | |  } t | |  d  S(   Ng      Y@(   R6   R5   RB   R   R,   (   R@   RI   RJ   t   y(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_simple_expr_small_array<   s    c         C@ s8   t  t j  } t d  } | |  } t | |  d  S(   Ng    .A(   R6   R5   RB   R   R,   (   R@   RI   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_simple_exprB   s    c         C@ s   t  t j d t j d t j d t j t j  } t d  } t d  d } | d | d | d | | } | | |  } t | |  d  S(   Ng       @i   i   g    .Ag?i   (   R6   R5   RB   RC   R   R-   (   R@   RI   RB   RC   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_rational_exprH   s    7"c         C@ sA  t  t t d d t f g   d7 d8 d9 g  t  t t d
 d t f g   d: d; d< g  t  t t d d t f g   d= d> d? g  t d  d } t t d  t | d d d   t t d  t | d d d  t t d  t	 | d d  t t d  t
 j |   t t d  t
 j | d d  t
 j d  j d d  } t t d  t | d d   t t d  t | d d  t t d  t | d d  t d  } t t d  t | d d d d  t t d  t	 | d d d d  t t d  t
 j | d d d d  t t d   t
 j | d d d d  t d!  } t t d  t | d d d d  t t d"  t	 | d d d  t t d#  t
 j | d d d  t t d$  t
 j | d d d  t d% d& d'  } t t d  t | d d d d  t t d"  t	 | d d d  t t d#  t
 j | d d d  t t d$  t
 j | d d d  t d(  j d) d)  } t t d*  t | d d d  t t d+  t | d d d  t t d,  t | d d d   t t d-  t	 | d d d  t t d.  t	 | d d d  t t d/  t	 | d d d   t t d0  t
 j | d d d  t t d1  t
 j | d d d  t t d2  t
 j | d d d   t t d3  t
 j | d d d  t t d4  t
 j | d d d  t t d5  t
 j | d d d   t d  } | j t  } t t d  t | d d d d  t t d  t	 | d d d d  t t d  t
 j | d d d d  t t d   t
 j | d d d d  | j t  } t t d  t | d d d d  t t d  t	 | d d d d  t t d  t
 j | d d d d  t t d   t
 j | d d d d  | d6 } t t d  t | d d d d  t t d"  t	 | d d d  d  S(@   Ns   sum(x**2+2, axis=None)RJ   t   mul_dddt   t3s   r1[x]t   add_ddds   c2[2.0]t   sum_ddnt   r0s   sum(x**2+2, axis=1)i   s   prod(x**2+2, axis=2)t   prod_ddni   i g{Gz?s   sum(x+2,axis=None)t   axiss   sum(x+2,axis=0)i    s   prod(x,axis=0)s   min(x)s   max(x,axis=0)i
   s   sum(x,axis=None)s   sum(x,axis=0)s   sum(x,axis=1)g      $@s   sum(x**2+2,axis=0)s   prod(x**2+2,axis=0)s   min(x**2+2,axis=0)s   max(x**2+2,axis=0)g      Y@s   prod(x-1,axis=0)s   min(x-1,axis=0)s   max(x-1,axis=0)g?g      ?i  g      "@i   s   sum(y**2, axis=1)s   sum(y**2, axis=0)s   sum(y**2, axis=None)s   prod(y**2, axis=1)s   prod(y**2, axis=0)s   prod(y**2, axis=None)s   min(y**2, axis=1)s   min(y**2, axis=0)s   min(y**2, axis=None)s   max(y**2, axis=1)s   max(y**2, axis=0)s   max(y**2, axis=None)y        ?(   RP   RQ   s   r1[x]s   r1[x](   RR   RQ   RQ   s   c2[2.0](   RS   RT   RQ   N(   RP   RQ   s   r1[x]s   r1[x](   RR   RQ   RQ   s   c2[2.0](   RS   RT   RQ   i   (   RP   RQ   s   r1[x]s   r1[x](   RR   RQ   RQ   s   c2[2.0](   RU   RT   RQ   i   (   R+   R9   R6   RF   t   NoneR   R.   R7   R   R   t   npt   mint   maxR   t   reshapeR   t   astypet   intt   long(   R@   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_reductionsP   s    


##"''**'#&&'#&&######&&&&&&''**''**
'c         C@ s   t  d  j d d  } t d d | t | t  d  j d d  d  t  d  } t d d | t | t  d  j d d  t  d  d  d  S(	   Ng     @i  i
   s   x + 3t   outi   s   (x - 3) * y + (x - 3)i   (   R   R[   R7   R+   (   R@   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_in_place   s    #c         C@ s   t  d  j d d  } y t d  Wn t k
 r9 n Xt d   y t d  Wn t k
 rg n Xt d   y t d  Wn t k
 r n Xt d   d  S(   Ng      "@i   s   sum(y, axis=2)s   should raise exception!s   sum(y, axis=-3)s   sum(y, axis=-1)(   R   R[   R7   t
   ValueError(   R@   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt	   test_axis   s     c         C@ s/   t  t t d d t f g   d d	 g  d  S(
   Ns	   x * x + 2RJ   RP   RT   s   r1[x]RR   s   c2[2.0](   RP   RT   s   r1[x]s   r1[x](   RR   RT   RT   s   c2[2.0](   R+   R9   R6   RF   (   R@   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_r0_reuse   s    c         C@ s   t  d  } t | t  d  S(   Ns   contains(b"abc", b"ab")(   R7   R+   t   True(   R@   t   res(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic0   s    c         C@ sG   t  d d d d d g  } t d  } t | t t t t t g  d  S(   Nt   abct   deft   xyzt   x11t   zas   contains(haystack, b"ab")(   R   R7   R+   Re   t   False(   R@   t   haystackRf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic1   s    c         C@ sG   t  d d d d d g  } t d  } t | t t t t t g  d  S(   NRh   Ri   Rj   Rk   Rl   s   contains(b"abcd", haystack)(   R   R7   R+   Re   Rm   (   R@   Rn   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic2   s    c         C@ sk   t  d d d d d d g  } t  d d d d	 d
 d g  } t d  } t | t t t t t t g  d  S(   Nt   abckkkt   adefRj   t   x11abcpRl   Rh   Ri   t   aterrt   oott   zut   abs   contains(haystacks, needles)(   R   R7   R+   Re   Rm   (   R@   t	   haystackst   needlesRf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic3   s    c      
   C@ sY   t  d d d d d d d d g  } t d	  } t | t t t t t t t t g  d  S(
   NRh   Ri   Rt   Ru   Rv   s   ab cs    abcs   abc s#   contains(b"test abc here", needles)(   R   R7   R+   Re   Rm   (   R@   Ry   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic4   s
    c         C@ sM   t  d d d d d d g  } t d  } t | t t t t t t g  d  S(   NRh   s   ab cs    abcs    abc s   	abcs   c hs#   contains(b"test abc here", needles)(   R   R7   R+   Re   Rm   (   R@   Ry   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_basic5   s    c   
      C@ sC  d d l  m } d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d> d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` d  da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz dw d{ d| d} d~ d d d d d d d d d d d d d dY d d d d d d d d d d g } d d d d\ d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d? d d d d d d dk d d d d d dw d d d d d d d d d d d d d d d d d d d d d d de d d d d d d d d d d d d d d d d d d d d d ddddddddd	d
dddddddddddddg } t | | |   } g  | D] } | d | dk ^ q} g  | D] } | d j   ^ q} g  | D] } | dj   ^ q} g  t d D] } t |  ^ q}	 t |	 |  d  S(  Ni    (   t   products   It ws   as ths   e Whits   e Rabs   bit,s    trot   ttings    slt   owlys    back s   again,s    ands    lot   okins   g at   nxiouss   ly at   bous   t as   s it ws   ent,s    as is   f its    had lt   osts    somet   this   ng; as   nd s   she s   heard s   it mutt   terins   g to t   itss   elf s   'Thes    Duchs   ess! Ts   he t   Duchess   s! Oh s   my deas   r pawss   ! Oh s   my fs   ur s   and t   whiskes   rs! t   Shes   'll gs   et mes    ext   ecus   ted, s   as sus   re as   s ft   erretss    are fs   ! Whs   ere t   CANs    I havs   e dt   roppes   d ts   hem,s    I wos   nder?s   ' At   lices    gut   esseds    in as    moms   ent t   thas   t it ws   as t   lookis   ng fs   or s   the fas   n and t   thes    pais   r of wt   hits   e kids    glot   vess   , and s   very gt   oods   -nat   turedls   y bes   gan ht   untt   ings    abouts    for tt   hems   , buts    they t   wers   e nowhs   ere tos    bes    ses   en--t   evert   ythins   g seems   ed s   to s   have ct   hangt   sinces    hes   r swims    ins    thes    pool,s    the gs   reat t   hals   l, wt   iths    ths   e gls   ass tt   abls   e and s    lit   ttles    doos   r, has   d vt   anis   shed ct   ompt   letes   ly.s   It was   s thes    Ws   e t   Rat   bbs   it, tt   ros   tting st   lowlyt   agais   n, ands    lt   ookins   g t   ant   xiouslys    about s   as it ws   ent, ass    if s   it hads    loss   t t   sot   methings   ; ands    she hs   eard s   it t   mutteris   ng tos    itselfs    'The t   Duchesss   ! t   Ths   ! Oh ms   y des   ar pawss   Oh my t   fus   r and wt   hiskerss   ! She's   ll t   gets    me t   executes   d,s    as   s t   sus   re as t   fet   rretss   errets!s    Whers   e CANs    I has   ve dros   pped ts   , I t   wons   der?' As   lice gt   uesss   in a mt   omens   t thats    is   t was lt   ooks   ing fs   or ths   fan ands   e ps   air os   f whits   e kis   d gloves   s, and s   she vs   ery s   good-nat   tut   redls   gan hunt   tis   ng abous   t for tt   hes   m, bus   t ts   hey s   were nt   owheres    to bs   e ss   een-s   -evet   rythis   ng seet   mes   d s   to hat   ves    ct   hangeds    sincs   e her ss   wim s   in the s   pool,s    ans   d the gt   reas   t hs   all, wis   th the t   glass   s ts   able ans   d ths   e littls   e door,s    had vat   nis   shed cot   mpletels   y.i   s   contains(b, a)(   t	   itertoolsR}   t   listt   encodeR7   t   boolR+   (
   R@   R}   t   smallt   bigt   pRJ   t	   python_inRB   RC   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_listproduct   s^    '##%c         C@ s;   t  d d d g  } t d  } t | t t t g  d  S(   NRh   Ri   t    s   contains(b"abcd", withemptystr)(   R   R7   R+   Re   Rm   (   R@   t   withemptystrRf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_withemptystr1  s    c         C@ s;   t  d d d g  } t d  } t | t t t g  d  S(   NRh   Ri   R   s   contains(withemptystr, b"")(   R   R7   R+   Re   (   R@   R   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_withemptystr2"  s    c         C@ s5   d d d } d d } t  d  } t | t  d  S(   Nt   1RB   i(   s   contains(a, b)(   R7   R+   Re   (   R@   RB   RC   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_str_contains_long_needle'  s    
c         C@ sf   t  } t d d g  } t d d g  } t d  } t | |  t } t d  } t | |  d  S(   Ni   i   i   i   s   where(a, b, c)(   Re   R   R7   R,   Rm   (   R@   RB   RC   RD   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_where_scalar_bool-  s    c         C@ sS   t  d g  } t j |  d k s* t  t d  t j |  d k sO t  d  S(   Ni   i   R   (   R   t   syst   getrefcountt   AssertionErrorR7   (   R@   RB   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_refcount8  s    
c         C@ sL   d j  d d d d d d d d d d g
  } t j t j d	 | g  } d  S(
   Nt   ;s   import numexpr as nes   a=10s   ne.evaluate('1')s   a += 1s   ne.evaluate('2', local_dict={})s    ne.evaluate('3', global_dict={})s/   ne.evaluate('4', local_dict={}, global_dict={})s   -c(   t   joint
   subprocesst
   check_callR   t
   executable(   R@   t   scriptt   check(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_locals_clears_globals?  s    (   t   __name__t
   __module__t   __doc__R?   RA   RK   RM   RN   RO   R_   Ra   Rc   Rd   Rg   Ro   Rp   Rz   R{   R|   R   R   R   R   R   R   R   (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR<   .   s0   						P											4					t   test_numexpr2c           B@ s   e  Z d  Z d Z RS(   s   Testing with 2 threadsi   (   R   R   R   R?   (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR   V  s   t   test_evaluatec           B@ s   e  Z d    Z d   Z d   Z d   Z d   Z e j d d k  rR d   Z	 n  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 e j   k r d   Z d   Z n  RS(   c         C@ sk   t  d d d g  } t  d d d g  } t  d d d	 g  } t d
  } t | t  d d d g   d  S(   Ng      ?g       @g      @g      @g      @g      @g      @g       @g      "@s   2*a + 3*b*cg     U@g      _@g      e@(   R   R7   R,   (   R@   RB   RC   RD   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRK   \  s
    c         C@ s)   t  d  } t d  } t | |  d  S(   Ng      Y@RJ   (   R   R7   R,   (   R@   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRM   c  s    c         C@ s)   t  d  } t d  } t | |  d  S(   Ng    .ARJ   (   R   R7   R,   (   R@   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRN   h  s    c         C@ st   t  d d d g  } t  d d d g  } t  d d d	 g  } t d
  } t   } t | t  d d d g   d  S(   Ng      ?g       @g      @g      @g      @g      @g      @g       @g      "@s   2*a + 3*b*cg     U@g      _@g      e@(   R   R7   R8   R,   (   R@   RB   RC   RD   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_re_evaluatem  s    	c         C@ s   t  d d d g  } t  d d d g  } t  d d d	 g  } t d
 d i | d 6| d 6| d 6} t   } t | t  d d d g   d  S(   Ng      ?g       @g      @g      @g      @g      @g      @g       @g      "@s   2*a + 3*b*ct
   local_dictRB   RC   RD   g     U@g      _@g      e@(   R   R7   R8   R,   (   R@   RB   RC   RD   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_re_evaluate_dictu  s    '	i    i   c         C@ sK   t  d d d } t d  } t d d d } d | d <t | |  d  S(   Nid   t   dtypet   i4s   1/xi   (   R   R7   R   R,   (   R@   RJ   RL   t   x2(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_zero_div  s
    
c         C@ s   t  d d d } t t d  | d  t t d d t | d  t t d d d | d  t t d d t | d  d  S(	   Ni
   R   R   s   x/2i   t   truedivt   autog       @(   R   R,   R7   Rm   Re   (   R@   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_true_div  s
    c         C@ s-   t  d d d } t t d  | d > d  S(   Ni
   R   R   s   x<<2i   (   R   R,   R7   (   R@   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_left_shift  s    c         C@ s-   t  d d d } t t d  | d ? d  S(   Ni
   R   R   s   x>>2i   (   R   R,   R7   (   R@   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_right_shift  s    c         C@ sD   t  d d d } y t d  Wn t k
 r3 n Xt d   d  S(   Ni
   R   R   s   (x > 1) and (x < 9)s   should raise exception!(   R   R7   t	   TypeErrorRb   (   R@   RJ   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_boolean_operator  s    c         C@ s[   t  d  } t  d  d } | d | d | d | | } t d  } t | |  d  S(   Ng    .Ag?i   i   i   s   (a + 2*b) / (1 + a + 4*b*b)(   R   R7   R-   (   R@   RB   RC   RJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRO     s
    "c         C@ sx   d   } t  d  } t  d  d } | d | } | j } t | | |   j | j } t d  } t | |  d  S(   Nc         S@ s+   t  |  j d t } |  | _ | | _ | S(   NR   (   R   R/   R
   t   realt   imag(   RB   RC   RD   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   complex  s    		g     @gh㈵>y              ?s    sin(complex(a, b)).real + z.imag(   R   R   R   R   R7   R-   (   R@   R   RB   RC   t   zRJ   RL   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_complex_expr  s    		c         C@ s   t  d  j d d  d  d  d  } t  d  j d d  } t t d  | |  t d g d d t f d	 t f g } t  d  | d <| d	 j d
  | d } | d } t t d  |  t t d  | |  d  S(   Nid   i
   i   i2   i   s   a+bR   t   c1t   c2i  i    s   a0+c1(   R   R[   R,   R7   R   R   R	   t   fill(   R@   RB   RC   RD   R   t   a0(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_complex_strides  s    %'

c         C@ s   t  d  } t  d d  } t j j d  d d d d } | | d <| | d <| d } t t d  t |  d	 k  t t d
  t |   d  S(   Nid   i   t   formatss   f4,f4R/   t   f0t   f1s   sqrt(c) > 1.g      ?s   log10(c)(   id   (	   R   RX   R   R   RW   R-   R7   R   R'   (   R@   RB   RC   t   recarrRD   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_recarray_strides  s    


c         C@ s   t  d  j d d  d  d  d  } t  d  } t  d  j d d  } t t d  | |  t t d  | |  t d d	 t f d
 t f g  } t | | |  d | d |  d  S(   Nid   i
   i   i   i   s   a+cs   a+ds   2.0*a+3.0*cRB   RD   g       @g      @(   R   R[   R,   R7   R6   RF   (   R@   RB   RD   t   dt   expr(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_broadcasting  s    %!c         C@ sj   d } d } t  t d  | |  t d d t f d t f g  } t | | |  d | d |  d  S(	   Ng      @g      @s   a+bs   2*a+3*bRB   RC   i   i   (   R.   R7   R6   RF   R+   (   R@   RB   RC   R
  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_all_scalar  s
    !c         C@ sx   t  d  j d d  d  d  d  } t  d  } t d d t f d t f g  } t | | |  | j | |   d  S(   Nid   i
   i   s   2*a+3*bRB   RC   (   R   R[   R6   RF   R,   t   run(   R@   RB   RC   R
  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_run  s    %!c         C@ s<   t  d  } y t d  Wn t k
 r- n X|  j   d  S(   Ni   s   a < [0, 0, 0](   R   R7   R   t   fail(   R@   RB   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_illegal_value  s    c         C@ s   d d d d d d d d d	 d
 d d d d d d d d d d d g } xC | D]; } | d } t  j j | i   \ } } t | t |  qL Wd  S(   NR   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   t   absR*   R   R   s   (a)(   R=   t
   necompilert   getExprNamesR+   R:   (   R@   t	   vml_funcsRI   t   strexprt   _t   ex_uses_vml(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_ex_uses_vml  s    
t   sparcc         C@ st   t  d d d  } d | d | d | d } x= t d d  D], } t j |  t d	  } t | |  q@ Wd  S(
   Nii   g    .Ag      ?g      ?g      ?i   i   s   ((.25*a + .75)*a - 1.5)*a - 2(   R   t   rangeR=   R>   R7   R-   (   R@   RB   RC   R?   RD   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_changing_nthreads_00_inc  s    c         C@ sw   t  d d d  } d | d | d | d } x@ t d d d  D], } t j |  t d	  } t | |  qC Wd  S(
   Nii   g    .Ag      ?g      ?g      ?i   i   s   ((.25*a + .75)*a - 1.5)*a - 2(   R   R  R=   R>   R7   R-   (   R@   RB   RC   R?   RD   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_changing_nthreads_01_dec  s    (   R   R   RK   RM   RN   R   R   R   t   version_infoR   R   R   R   R   RO   R   R  R  R  R  R  R  R  t   platformt   machineR  R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR   [  s.   															
							
	t   MISCs   b*c+d*es   2*a+3*bs   -as   sinh(a)s   2*a + (cos(3)+5)*sinh(cos(b))s   2*a + arctan2(a, b)s   arcsin(0.5)s   where(a != 0.0, 2, a)s   where(a > 10, b < a, b > a)s   where((a-10).real != 0.0, a, 2)s    0.25 * (a < 5) + 0.33 * (a >= 5)s   cos(1+1)s   1+1R   s   cos(a2)s   +-*/%s   **s   (a+1) %s (b+3)s
   3 %s (b+3)s
   (a+1) %s 4s
   2 %s (b+3)s
   (a+1) %s 2s   (a+1) %s -1s   (a+1) %s 0.5s
   (a+1) %s 0t
   OPERATIONSt   <s   <=s   ==s   >=t   >s   !=s
   a/2+5 %s bs
   a/2+5 %s 7s   7 %s bs   7.0 %s 5t   COMPARISONSR   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R  R*   R   R   s   a + %s(b+c)t   1_ARG_FUNCSR   R   s   a + %s(b+c, d+1)s   a + %s(b+c, 1)s   a + %s(1, d+1)t   2_ARG_FUNCSig      g      gg      g        i   gffffff@g      @s	   (a+1)**%st	   POW_TESTSc         C@ sD  t  |  |  r t St |  d  r |  j d	 k r t |   j   } | d k re | t |  j   k St |   j   } | d k r | t |  j   k Sn  | r t |   t |  k o t t	 |   t	 |  k d d St |  d  r|  j d k rd } n d } t |   t |  k o?t
 t	 |   t	 |  d | Sd  S(
   NR   t   f4t   f8i    RV   gh㈵>g:0yE>t   atol(   R(  R)  (   R1   Re   t   hasattrR   R3   R   R4   R/   R   R2   R0   (   RB   RC   t   exactt   nnanst   ninfsR*  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   equalJ  s     :	t   Skipc           B@ s   e  Z RS(    (   R   R   (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR0  e  s    c          #@ s  d g     f d   }  d  } xcd D][} xRt t t j t t f D]8} d } t d | d | d  d  d  } t | | g d | } t | d | | } t | d | } t | d | }	 t | d | }
 | t k r#| j	 } x4 | | | |	 |
 g D] } | d 7} | d 9} qWn  | d k r@| | d } n  | d k r]| | d } n  xd t
 f d	 t
 f d
 t
 f g D] \ } } x t D] \ } } x | D] } | t k rd | k sd | k sd | k sd | k sd | k sd | k sd | k rqn  | t t f k r;| r;| d k r;qn  |  | | | | |	 |
 | | | | | | |  } | VqWqWqWqD Wq% Wd  S(   Ni    c         @ s   t            f d   } d     j   f | _  d c d 7<d    j  j d  | j d   d f | _ | S(   Nc          @ s  yH t  j d  t  t     }  t  j d  t  t     }  Wn t k
 ri } | } d  }  n Xd  } y t  d  d  } Wn t k
 r   n"t k
 r t	 d    j
   f  n t k
 r&} t t |  t |   } | d  k s| rt	 d  f    qn t	 d  f    n Xd  f } | d  k sft |   t |  |   st d     j
   |  t |   t |   | t |  t |  f   d  S(	   Nt   ignoret   alwaysR   t   optimizations-   %r not implemented for %s (scalar=%d, opt=%s)s   numexpr error for expression %rs3   expected numexpr error not raised for expression %rsa   %r
(test_scalar=%r, dtype=%r, optimization=%r, exact=%r,
 npval=%r (%r - %r)
 neval=%r (%r - %r))(   t   warningst   simplefiltert   evalt   globalst	   ExceptionRW   R7   R   t   NotImplementedErrort   printR   t
   issubclasst   typeR/  R/   (   t   npvalRG   t   np_exceptiont   nevalt   ne_exceptiont   same_exc_typet   msg(   R   R,  R
  R3  t   test_scalart   this_locals(    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   methodo  sD    
	
sI   test_expressions(%s, test_scalar=%r, dtype=%r, optimization=%r, exact=%r)i    i   s   test_scalar%d_%s_%s_%s_%04dt   ascii(   t   localsR   t   descriptionR   (   RB   t   a2RC   RD   R	  t   eRJ   R
  RC  R   R3  R,  t   sectionRE  (   t   test_no(   R   R,  R
  R3  RC  RD  s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   make_test_methodk  s    	.i   i   id   R   y              ?t   nonet   moderatet
   aggressiveR"  R#  t   %R   R   R   R   s   (a+1) ** -1(   i    i   i   y      ?      ?(   RW   R]   R^   RX   t   float32RF   R   R   R   R   Rm   t   tests(   RM  RJ   RC  R   t
   array_sizeRB   RI  RC   RD   R	  RJ  R3  R,  t   section_namet   section_testsR
  t   m(    (   RL  s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_expressionsh  sL    	<#	
+$		t
   test_int64c           B@ s   e  Z d    Z RS(   c         C@ se   t  d
 d d d g d t } t d  } t | d d d d d d g  |  j | j j d  d  S(   Ni   i   i   i    i?   R   s   -aR   I       iI       I       l            l    I       I       i   I       I    l            (   R   R   R7   R,   t   assertEqualR   t   name(   R@   RB   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_neg  s    !(   R   R   R\  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRY    s   t   test_int32_int64c           B@ sK   e  Z e j d  d k  r% d   Z n  d   Z d   Z d   Z d   Z RS(   i    i   c         C@ s3   t  d  } t | d  |  j | j j d  d  S(   Nt   42Li*   R   (   R7   R,   RZ  R   R[  (   R@   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_small_long  s    c         C@ s3   t  d  } t | d  |  j | j j d  d  S(   Nt   2i   R   (   R7   R,   RZ  R   R[  (   R@   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_small_int  s    c         C@ s3   t  d  } t | d  |  j | j j d  d  S(   Ns   2**40i   i(   R   I       (   R7   R,   RZ  R   R[  (   R@   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_big_int  s    c         C@ s   t  d d d } t j d  } t j d  } | d } t d  } t d  } t | |  t | |  |  j | j j d  |  j | j j d  d  S(   Nid   R   R   i   s   int32array * itwos   int32array * ltwoR   (	   R   RX   R   R   R7   R,   RZ  R   R[  (   R@   t
   int32arrayt   itwot   ltwoRf   t   res32t   res64(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_long_constant_promotion  s    
c         C@ sa   t  d d d } t  d d d } | | } t d  } t | |  |  j | j j d  d  S(   Nid   R   R   R   s   int32array * int64array(   R   R7   R,   RZ  R   R[  (   R@   Rc  t
   int64arrayt   respyt   resnx(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_int64_array_promotion  s    
(	   R   R   R   R  R_  Ra  Rb  Rh  Rl  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR]    s   			t   test_uint32_int64c           B@ s#   e  Z d    Z d   Z d   Z RS(   c         C@ sB   t  j d  } t d  } t | d  |  j | j j d  d  S(   Ni*   RB   R   (   RX   t   uint32R7   R,   RZ  R   R[  (   R@   RB   Rf   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_small_uint32  s    c         C@ s   t  d d d } t j d  } t j d  } | | } t d  } t d  } t | |  t | |  |  j | j j d  |  j | j j d  d  S(   Nid   R   R   i   s   int32array * stwos   int32array * utwoR   (	   R   RX   R   Rn  R7   R,   RZ  R   R[  (   R@   Rc  t   stwot   utwoRf   Rf  Rg  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_uint32_constant_promotion
  s    
c         C@ sa   t  d d d } t  d d d } | | } t d  } t | |  |  j | j j d  d  S(   Nid   R   Rn  R   s   uint32array * int64array(   R   R7   R,   RZ  R   R[  (   R@   t   uint32arrayRi  Rj  Rk  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRl    s    
(   R   R   Ro  Rr  Rl  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRm    s   		t   test_stringsc           B@ s   e  Z d  Z d Z d d d d g Z d d d d g Z e e  e e d Z e e e  Z	 e e 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 RS(   i   i   t   foot   barR   s     RJ   t    i   t   doodooc         C@ sU   d d d d d d d d g } x0 | D]( } t  d	  } |  j | | j    q% Wd  S(
   Ns      s     foo s     foo bs     foo b s   foo s   foo bs   foo b s   foo bar baz  t   s(   R7   RZ  t   tostring(   R@   t   str_listRy  t   r(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_null_chars)  s
    c         C@ s8   |  j  } d } t |  } t |  } t | |  d  S(   Nt   sarr(   t
   str_array1R6  R7   R,   (   R@   R~  R
  t   res1t   res2(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_compare_copy1  s
    	c         C@ sA   |  j  } |  j } d } t |  } t |  } t | |  d  S(   Ns   sarr1 >= sarr2(   R  t
   str_array2R6  R7   R,   (   R@   t   sarr1t   sarr2R
  R  R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_compare_array8  s    		c         C@ sA   |  j  } |  j } d } t |  } t |  } t | |  d  S(   Ns   sarr >= svar(   R  t   str_constantR6  R7   R,   (   R@   R~  t   svarR
  R  R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_compare_variable@  s    		c         C@ s?   |  j  } d |  j } t |  } t |  } t | |  d  S(   Ns
   sarr >= %r(   R  R  R6  R7   R,   (   R@   R~  R
  R  R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_compare_constantH  s
    	c         C@ s2   |  j  } |  j } d } |  j d | t    d  S(   Ns   sarr1 + sarr2t   add_sss(   R  R  t   assert_missing_opRG  (   R@   R  R  R
  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_add_string_arrayO  s    		c         C@ s~   t  j d d g  } t  j d d g  } t d  } t | t  j t t g   t d  } t | t  j t t g   d  S(   NR   t   pepet   pepe2s   (a == b'') & (b == b'pepe2')s   (a == b'pepe') & (b == b'')(   RX   R   R7   R,   Re   Rm   (   R@   RB   RC   Rf   R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_empty_string1U  s    c         C@ s~   t  j d d g  } t  j d d g  } t d  } t | t  j t t g   t d  } t | t  j t t g   d  S(   NR   R  R  R   s   (a == b'') & (b == b'pepe2')s   (a == b'pepe') & (b == b'')(   RX   R   R7   R,   Rm   (   R@   RB   RC   Rf   R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_empty_string2]  s    c         C@ sA   |  j  } t t |  d d } d } |  j d | t    d  S(   NR   R   s   sarr >= narrt   ge_bsi(   R  R   t   lenR  RG  (   R@   R~  t   narrR
  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_add_numeric_arraye  s    	c         C@ si   d | } y t  | |  Wn: t k
 rW } d | | j d k re |  j |  qe n X|  j |  d  S(   Ns+   expected NotImplementedError regarding '%s's   '%s'i    (   R7   R9  t   argsR  (   R@   t   opR
  R   RB  t   nie(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR  k  s    
c         C@ s   x| d d d g D]k \ } } |  j  t d   |  j  t d   |  j  t d   |  j  t d   |  j  t d	   q Wd \ } } |  j  t d   d  S(   NRu  t   foobars   foo bars   foo as   s1 < s2s   s1 <= s2s   ~(s1 == s2)s   ~(s1 >= s2)s
   ~(s1 > s2)s   foo  s   s1 == s2(   Ru  R  (   Ru  s   foo bar(   s   foo as   foo bar(   Ru  s   foo  (   t
   assertTrueR7   (   R@   t   s1t   s2(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_compare_prefixu  s    	(   R   R   t   BLOCK_SIZE1t   BLOCK_SIZE2t	   str_list1t	   str_list2R  t
   str_nloopsR   R  R  R  R}  R  R  R  R  R  R  R  R  R  R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRt    s&   										
t   test_irregular_stridec           B@ s   e  Z d    Z RS(   c         C@ s   t  d d t } t  d d t } t j | | g  } | d } | d } t d  } t d  } t | | t  d d t  t | | t  d d t  d  S(   Ni
   R   R  R  s   f0 < 5s   f1 < 5i   (   R   R   R   R   t
   fromarraysR7   R,   (   R@   R  R  t	   irregulart   i0t   i1(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_select  s    

(   R   R   R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   t   test_zerodimc           B@ s   e  Z d    Z d   Z RS(   c         C@ sZ   t  g  d t } t  g  d t } t d  } t d  } t | |  t | |  d  S(   NR   s   a0 + a1s   a0 * a1(   R   R   R   R7   R,   (   R@   R  t   a1RT   t   r1(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_zerodim1d  s    c         C@ sx   t  g  d t j d d d  } t  g  d t j d d d  } t d  } t d  } t | |  t | |  d  S(   NR   i    i   i   s   a0 + a1s   a0 * a1(   R   R   R[   R   R7   R,   (   R@   R  R  RT   R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_zerodim3d  s    !!(   R   R   R  R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   	
c         c@ sP   t  j j |   } | t  j |  <z	 d  VWd  | rA | t  j |  <n
 t  j |  =Xd  S(   N(   t   ost   environR   (   t   keyt   valuet   old(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   _environment  s    	t   test_threading_configc           B@ s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@ s8   d j  d d d d d g  } t j d d | g  d  S(	   Ns   
s	   import ossM   if 'NUMEXPR_MAX_THREADS' in os.environ: os.environ.pop('NUMEXPR_MAX_THREADS')s   import numexprs   assert(numexpr.nthreads <= 8)s   exit(0)t   pythons   -c(   R   R   R   (   R@   R   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_max_threads_unset  s    c         C@ s8   d j  d d d d d g  } t j d d | g  d  S(	   Ns   
s	   import oss'   os.environ['NUMEXPR_MAX_THREADS'] = '4's   import numexprs    assert(numexpr.MAX_THREADS == 4)s   exit(0)R  s   -c(   R   R   R   (   R@   R   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_max_threads_set  s    c         C@ sF   t  d d  1 t  d d   |  j d t j    Wd  QXWd  QXd  S(   Nt   OMP_NUM_THREADSt   5t   NUMEXPR_NUM_THREADSt   3i   (   R  t   assertEqualsR=   t   _init_num_threads(   R@   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_numexpr_num_threads  s    c         C@ s0   t  d d   |  j d t j    Wd  QXd  S(   NR  R  i   (   R  R  R=   R  (   R@   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_omp_num_threads  s    (   R   R   R  R  R  R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   			t   test_threadingc           B@ s   e  Z d    Z d   Z RS(   c         C@ sF   d d  l  } d | j f d     Y} |   } | j   | j   d  S(   Ni    t
   ThreadTestc           B@ s   e  Z d    Z RS(   c         S@ s2   t  d  } t t d  t d d d g   d  S(   Ni   s   a**3i    i   i   (   R   R,   R7   R   (   R@   RB   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s    (   R   R   R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   (   t	   threadingt   Threadt   startR   (   R@   R  R  t   test(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_thread  s
    	
c         C@ s   d d  l  } d   } | d  d } g  t |  D] } | j d | d d  ^ q2 } x | D] } | j   q] Wx | D] } | j   qx Wd  S(	   Ni    c         S@ s   t  |   } t d  d  S(   Ns   a+a(   R   R7   (   t   nRB   (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   work  s    i
   i   t   targetR  g     j@(   g     j@(   R  R  R  R  R   (   R@   R  R  R?   t   it   threadst   t(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_multithread  s    	
.(   R   R   R  R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   	c         C@ s;   t  j d  } t d  } |  d  k	 r7 |  j d  n  d  S(   Ng     @@s   ra > 0t   Done(   RX   R   R7   RW   t   put(   t   qoutt   rat   rows(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   _worker  s    t   test_subprocessc           B@ s   e  Z d    Z RS(   c         C@ s   y d d  l  } Wn t k
 r$ d  SXt j d  t   | j   } | j d t d | f  } t | _ | j	   | j
   } d  S(   Ni    i   R  R  (   t   multiprocessingt   ImportErrorR=   R>   R  t   Queuet   ProcessRe   t   daemonR  R   (   R@   t   mpR  t   pst   result(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   test_multiprocess  s    	
(   R   R   R  (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR    s   c    
      C@ s  d d l  m }  d d l } t t j  } | t k  rN t d | t f  n  t d d  t d t j  t d t j  t d	 t	 j
  | j   \ } } } } } } t d
 t	 j | | f  y_ |  j d }	 t d |	 j d d   t d |	 j d d   t d |	 j d d   Wn t k
 r9n Xt d t  t ret d t j    n  t d t j t j f  t d t j  t d d  d S(   s6   Print the versions of software that numexpr relies on.i    (   t   cpuNs;   *Warning*: NumPy version is lower than recommended: %s < %ss   -=i&   s   Numexpr version:   %ss   NumPy version:     %ss   Python version:    %ss   Platform:          %s-%s-%ss   CPU vendor:        %st   VendorIdentifierR   s   CPU model:         %st   ProcessorNameStrings   CPU clock speed:   %s MHzs   ~MHzs   VML available?     %ss   VML/MKL version:   %ss@   Number of threads used by default: %d (out of %d detected cores)s   Maximum number of threads: %s(   t   numexpr.cpuinfoR  R  R;   RX   t   __version__t   minimum_numpy_versionR:  R=   R   t   versiont   unamet   infoR   t   KeyErrorR:   t   get_vml_versionR?   t   ncorest   MAX_THREADS(
   R  R  t
   np_versiont   sysnamet   nodenamet   releaset
   os_versionR  t	   processort   cpu_info(    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   print_versions#  s2    c      	   C@ sE   t    t j d d d d d d d d  t j d |   j t    S(   s.   
    Run all the tests in the test suite.
    t   divideR1  t   invalidt   overt   undert	   verbosity(   R  RX   t   seterrt   unittestt   TextTestRunnerR  t   suite(   R  (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR  E  s    "c          @ s  d d  l  }  d d  l } |  j   } d } d t f d     Y    f d   } x t   D] } | |  qY WxLt |  D]>} | j |  j t   d t j	   k r | j |  j t
   n  | j |  j t   | j |  j     | j |  j t   | j |  j t   | j |  j t   | j |  j t   | j |  j t   | j |  j t   | j   j   d	 k r| j |  j t   n  | j |  j t   qz W| S(
   Ni    i   t   TestExpressionsc           B@ s   e  Z RS(    (   R   R   (    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR  \  s   c         @ s2     f d   } t     j | j d     d  S(   Nc         @ s       S(   N(    (   R@   (   RI   (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyRE  `  s    (   t   setattrR   t   __get__RW   (   RI   RE  (   R  (   RI   s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt
   add_method_  s    R  t   gnus   gnu/kfreebsd(   R   s   gnu/kfreebsd(   R  R  t	   TestSuitet   TestCaseRX  R  t   addTestt	   makeSuiteR<   R  R   R   R]  Rm  Rt  R  R  R  t   systemt   lowerR  R  (   R  t   plt   theSuitet   niterR  RI   R  (    (   R  s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyR  U  s2    t   __main__t   defaultTestR  (t   t
   __future__R    R   R  R   R  R4  t
   contextlibR   R   t   numpyRX   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   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   t   numpy.testingR+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R=   R5   R6   R7   R8   R9   R:   R  R  RF   R  R]   R^   t   distutils.versionR;   R  R<   R   R   RS  t   optestsR   R  t   appendt   cmptestst
   func1testsRI   t
   func2testst   powtestsR  R/  R8  R0  RX  RY  R]  Rm  Rt  R  R  R  R  R  RW   R  R  R  R  Rm   t   __test__R  R   t   main(    (    (    s9   lib/python2.7/site-packages/numexpr/tests/test_numexpr.pyt   <module>
   s   "..			 ).		h*l##		"		/