ó
¦V]c           @@  s‘  d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m Z d d l	 m
 Z
 y  d d l Z d d l m Z Wn9 e k
 r¹ d e f d	 „  ƒ  YZ e ƒ  Z d
 „  Z n
 Xd „  Z y d d l m Z e e _ Wn e k
 ró n Xe j d ƒ Z e j d ƒ Z e e j d ƒ Z e j d k rhy d d l m Z Wqqe k
 rdd „  Z qqXn	 d „  Z e d e
 f d „  ƒ  Yƒ Z d S(   s&   Tests for the Cython magics extension.i    (   t   absolute_importN(   t   contextmanager(   t   IpythonMagic(   t
   CythonTest(   t	   py3compatt
   _py3compatc           B@  s   e  Z d  „  Z RS(   c         C@  s   | S(   N(    (   t   selft   s(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   str_to_unicode   s    (   t   __name__t
   __module__R   (    (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR      s   c         C@  s   d  S(   N(   t   None(   t   _(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   skip_if_not_installed   s    c         C@  s   |  S(   N(    (   t   c(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR      s    (   t   HistoryManagers   def f(x):
    return 2*x
sA   def f(int x):
    return 2 / x

def call(x):
    return f(*(x,))
s4   def main():
    for _ in range(100): call(5)
main()
t   win32(   t   skipc         C@  s   d „  } | S(   Nc         S@  s   d  S(   N(   R   (   t   func(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   _skip_win32A   s    (    (   t   dummyR   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt
   skip_win32@   s    	c         C@  s   d „  } | S(   Nc         @  s   ‡  f d †  } | S(   Nc          @  s   ˆ  |  | Ž  d  S(   N(    (   t   argst   kwargs(   R   (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   wrapperG   s    (    (   R   R   (    (   R   sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR   F   s    (    (   R   R   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR   E   s    	t   TestIPythonMagicc           B@  s§   e  Z e d  „  ƒ Z d „  Z d „  Z e d ƒ d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z e d ƒ d
 „  ƒ Z e d ƒ d „  ƒ Z d „  Z d „  Z RS(   c         C@  s#   t  j ƒ  t j j j ƒ  |  _ d  S(   N(   R   t
   setUpClasst   IPythont   testingt   globalipappt   get_ipythont   _ip(   t   cls(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR   P   s    
c         C@  s$   t  j |  ƒ |  j j j d ƒ d  S(   Nt   cython(   R   t   setUpR   t   extension_managert   load_extension(   R   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR"   U   s    c         C@  s?   |  j  } | j d ƒ | j d d d ƒ } |  j | d ƒ d  S(   Ns
   a=10; b=20t   cython_inlinet    s
   return a+bi   (   R   t   ext   run_cell_magict   assertEqual(   R   t   ipt   result(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_inlineY   s    	s   Skip on Windowsc         C@  sª   |  j  } d } | j d | t ƒ | j d ƒ |  j | j d d ƒ | j d | t ƒ | j d ƒ |  j | j d d ƒ y t j | d	 ƒ Wn t k
 r¥ n Xd  S(
   Nt   _test_cython_pyximportt   cython_pyximports	   g = f(10)t   gg      4@s
   h = f(-10)t   hg      4Às   .pyx(	   R   R(   t   codeR'   R)   t   user_nst   ost   removet   OSError(   R   R*   t   module_name(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_pyximport_   s    	c         C@  sD   |  j  } | j d d t ƒ | j d ƒ |  j | j d d ƒ d  S(   NR!   R&   s	   g = f(10)R/   g      4@(   R   R(   R1   R'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cythonn   s    	c         C@  sD   |  j  } | j d d t ƒ | j d ƒ |  j | j d d ƒ d  S(   NR!   s   --name=mymodules#   import mymodule; g = mymodule.f(10)R/   g      4@(   R   R(   R1   R'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_namet   s    	c         C@  s§   |  j  } | j d d t ƒ | j d ƒ t j d d k  rm |  j | j d d ƒ |  j | j d	 d ƒ n6 |  j | j d d
 d ƒ |  j | j d	 d
 d ƒ d  S(   NR!   R&   s   g = f(10); h = call(10)i    i   R/   i   i
   R0   g       @g      $@i    i    (   R   R(   t   cython3_codeR'   t   syst   version_infoR)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_language_level|   s    	c         C@  sc   |  j  } | j d d t ƒ | j d ƒ |  j | j d d d ƒ |  j | j d d d ƒ d  S(   NR!   s   -3s   g = f(10); h = call(10)R/   g       @g      $@R0   (   R   R(   R:   R'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython3ˆ   s
    	c         C@  s[   |  j  } | j d d t ƒ | j d ƒ |  j | j d d ƒ |  j | j d d	 ƒ d  S(
   NR!   s   -2s   g = f(10); h = call(10)R/   i   i
   R0   i    i    (   R   R(   R:   R'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython2   s
    	c         C@  sc   |  j  } | j d d t ƒ | j d ƒ |  j | j d d d ƒ |  j | j d d d ƒ d  S(   NR!   s   -3 --pgos   g = f(10); h = call(10); main()R/   g       @g      $@R0   (   R   R(   t   pgo_cython3_codeR'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython3_pgo˜   s
    	c         C@  sS   |  j  } t j d ƒ } d | j d <| j d d | ƒ |  j | j d d ƒ d  S(   Ns1   
from libc.math cimport sin
x = sin(0.0)
        i   t   xR!   s   -l mi    (   R   R   R   R2   R(   R)   (   R   R*   R1   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_extlibs¡   s    		c         C@  sD   |  j  } | j d d t ƒ | j d ƒ |  j | j d d ƒ d  S(   NR!   s	   --verboses	   g = f(10)R/   g      4@(   R   R(   R1   R'   R)   R2   (   R   R*   (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_verbose­   s    	c      	   C@  sì   t  d „  ƒ } |  j } | ƒ  ' } | j d d t ƒ | j d ƒ Wd  QX|  j | j d d ƒ |  j | j | j	 | j g | j
 ƒ | ƒ  ' } | j d d t ƒ | j d ƒ Wd  QX|  j | j d d ƒ |  j | j g | j
 ƒ d  S(   Nc          s@  sQ   d d d „  ƒ  Y}  |  ƒ  } t  j j } z | t  j _ | VWd  | t  j _ Xd  S(   Nt   MockLogc           B@  s&   e  Z d  Z d Z e g Z d „  Z RS(   i   i   c         S@  s   |  j  j | ƒ |  j  d S(   Niþÿÿÿ(   t
   thresholdst   append(   R   t   val(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   set_threshold»   s    (   R	   R
   t   DEBUGt   INFORF   RI   (    (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyRE   ¶   s   	(    (   R   t	   distutilst   log(   RE   t   new_logt   old_log(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   mock_distutils´   s    
		R!   s	   --verboses	   g = f(10)R/   g      4@R&   (   R   R   R(   R1   R'   R)   R2   t   assertEqualsRK   RJ   RF   (   R   RP   R*   t   verbose_logt
   normal_log(    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   test_cython_verbose_thresholds³   s    	
(   R	   R
   t   classmethodR   R"   R,   R   R7   R8   R9   R=   R>   R?   RA   RC   RD   RT   (    (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyR   M   s   									(    t   __doc__t
   __future__R    R3   R;   t
   contextlibR   t   Cython.BuildR   t   Cython.TestUtilsR   t   IPython.testing.globalipappR   t   IPython.utilsR   t   ImportErrort   objectR   R   t   IPython.core.historyR   t   Falset   enabledR   R1   R:   R@   t   platformt   unittestR   R   R   (    (    (    sB   lib/python2.7/site-packages/Cython/Build/Tests/TestIpythonMagic.pyt   <module>   sB   					
	