
    f                     j   d dl Z d dl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
mZ d dlmZ dZ ej                   e       ej"                  e      k  rdZ		 ej&                  j)                  e	du d      Z ej,                  d	      d
        Zd Zd Zd Zd Zd Zd Zd Zy# e$ r dZ	Y Ww xY w)    N)IS_WASM)version)_pep440z0.29.30zrequires cython)reasonmodule)scopec           	         t         rt        j                  d       t        j                  j                  t        j                  j                  t              dd      }| j                  d      dz  }t        j                  |d       	 t        j                  dd	g       t        j                  dk(  r&t        j                  ddddt        |      g|       n#t        j                  ddt        |      g|       t        j                  g d|       t        j                  j!                  t        |             y # t        $ r t        j                  d
       Y w xY w)NzNo subprocessexamplescythoncython_testbuildT)exist_okmesonz	--versionzNo usable 'meson' foundwin32setupz--buildtype=releasez--vsenv)cwd)r   compilez-vv)r   pytestskipospathjoindirname__file__mktempmakedirs
subprocess
check_callFileNotFoundErrorsysplatformstrappend)tmpdir_factorysrcdir	build_dirs      >/usr/lib/python3/dist-packages/numpy/core/tests/test_cython.pyinstall_tempr(      s    O$WW\\"''//(3ZJF%%m4w>IKK	D)/w45 ||ww4(#f+7 #,	  	wV="+	  59EHHOOC	N#  /-./s   
D? ?E E c                    dd l }|j                  t        j                  d            sJ |j                  t        j                  dd            sJ |j                  t        j                  dd            sJ |j                  d      rJ |j                  d       rJ |j                  d      rJ |j                  t        j                  dd            rJ y )	Nr     nsNaT   foonows)checksis_td64nptimedelta64
datetime64r(   r1   s     r'   test_is_timedelta64_objectr7   :   s    >>"...///>>"..t4555>>"..5666~~a   ~~d###~~e$$$~~bmmE378888    c                 f   dd l }|j                  t        j                  dd            sJ |j                  t        j                  dd            sJ |j                  d      rJ |j                  d       rJ |j                  d      rJ |j                  t        j                  d            rJ y )Nr   r*   r+   r,   r-   r.   )r1   is_dt64r3   r5   r4   r6   s     r'   test_is_datetime64_objectr;   G   s    >>"--d3444>>"--t4555~~a   ~~d###~~e$$$~~bnnT23333r8   c                     dd l }t        j                  dd      }|j                  |      }|j	                  d      }||k(  sJ y )Nr   
2016-01-01r+   i8)r1   r3   r5   get_dt64_valueview)r(   r1   dt64resultexpecteds        r'   test_get_datetime64_valuerD   S   s@    ==t,D""4(FyyHXr8   c                     dd l }t        j                  dd      }|j                  |      }|j	                  d      }||k(  sJ y )Nr   90  hr>   )r1   r3   r4   get_td64_valuer@   )r(   r1   td64rB   rC   s        r'   test_get_timedelta64_valuerJ   ^   s@    >>%%D""4(FyyHXr8   c                     dd l }t        j                  dd      }|j                  |      }d}||k(  sJ t        j                  dd      }|j                  |      }d}||k(  sJ y )Nr   r=   r+   
   rF   rG      )r1   r3   r5   get_dt64_unitr4   )r(   r1   rA   rB   rC   rI   s         r'   test_get_datetime64_unitrO   i   sk    ==t,D!!$'FHX>>%%D!!$'FHXr8   c                     dd l }|j                  d      sJ |j                  t        j                  d            sJ |j                  t        j                  d            sJ y )Nr   r-   )r1   
is_integerr3   int8uint64r6   s     r'   test_abstract_scalarsrT   w   sQ    QRWWQZ(((RYYq\***r8   c                     dd l } G d d      }|j                  d      dk(  sJ |j                   |             dk(  sJ y )Nr   c                       e Zd Zd Zy)test_conv_intp.<locals>.myintc                      y)N    )selfs    r'   __int__z%test_conv_intp.<locals>.myint.__int__   s    r8   N)__name__
__module____qualname__r\   rZ   r8   r'   myintrW      s    	r8   r`   g      @rY   )r1   	conv_intp)r(   r1   r`   s      r'   test_conv_intprb   ~   sE     
 B1$$$EG$)))r8   )r   shutilr   r    r   numpyr3   numpy.testingr   r   Cython.Compiler.Versionr   cython_versionnumpy._utilsr   required_versionparseVersionImportErrormarkskipif
pytestmarkfixturer(   r7   r;   rD   rJ   rO   rT   rb   rZ   r8   r'   <module>rq      s    	   
   !A % !w}}^$w7G'HH[[$7HI
 h$  $4
9	4+	*a  Fs   
B( (B21B2