HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/f2py/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/f2py/tests/__pycache__/test_callback.cpython-36.pyc
3

���h��@s^ddlZddlZddlZddlZddlZddlmZmZm	Z	ddl
mZGdd�dej�Z
dS)�N)�assert_�assert_equal�IS_PYPY�)�utilc@s�eZdZdZejjddjd��dd��Zejj	e
dd�d	d
��Zdd�Zejj
ejd
kdd�dd��Zejj
ejd
kdd�dd��ZdS)�TestF77Callbacka�
       subroutine t(fun,a)
       integer a
cf2py  intent(out) a
       external fun
       call fun(a)
       end

       subroutine func(a)
cf2py  intent(in,out) a
       integer a
       a = a + 11
       end

       subroutine func0(a)
cf2py  intent(out) a
       integer a
       a = 11
       end

       subroutine t2(a)
cf2py  intent(callback) fun
       integer a
cf2py  intent(out) a
       external fun
       call fun(a)
       end

       subroutine string_callback(callback, a)
       external callback
       double precision callback
       double precision a
       character*1 r
cf2py  intent(out) a
       r = 'r'
       a = callback(r)
       end

       subroutine string_callback_array(callback, cu, lencu, a)
       external callback
       integer callback
       integer lencu
       character*8 cu(lencu)
       integer a
cf2py  intent(out) a

       a = callback(cu, lencu)
       end
    �namezt,t2�,cCs|j|�dS)N)�check_function)�selfr�r�?/tmp/pip-build-5_djhm0z/numpy/numpy/f2py/tests/test_callback.py�test_all>szTestF77Callback.test_allz,PyPy cannot modify tp_doc after PyType_Ready)�reasoncCstjd�}t|jjj|�dS)Na�        a = t(fun,[fun_extra_args])

        Wrapper for ``t``.

        Parameters
        ----------
        fun : call-back function

        Other Parameters
        ----------------
        fun_extra_args : input tuple, optional
            Default: ()

        Returns
        -------
        a : int

        Notes
        -----
        Call-back functions::

          def fun(): return a
          Return objects:
            a : int
        )�textwrap�dedentr�module�t�__doc__)r�expectedrrr
�test_docstringBszTestF77Callback.test_docstringcCs�t|j|�}|dd��}t|dkt|��|dd�dd�}t|dkt|��|dd�dd�}t|dkt|��|d	d�dd�}t|dkt|��|dd�tjfd�}t|d
kt|��|tjtjfd�}t|d
kt|��||jjdd�}t|dkt|��||jj�}t|dkt|��||jjj	�}t|dkt|��Gdd�d�}|�}||�}t|d
kt|��||j
�}t|dkt|��dS)NcSsdS)N�rrrrr
�<lambda>csz0TestF77Callback.check_function.<locals>.<lambda>rcSsdS)N�r)�arrr
res�)Zfun_extra_argsrcSs|S)Nr)rrrr
rgscSsd|S)Nrr)rrrr
ris��cSs
tj|�S)N)�math�degrees)rrrr
rks���c@seZdZdd�Zdd�ZdS)z)TestF77Callback.check_function.<locals>.AcSsdS)Nrr)rrrr
�__call__ysz2TestF77Callback.check_function.<locals>.A.__call__cSsdS)N�	r)rrrr
�mth|sz-TestF77Callback.check_function.<locals>.A.mthN)�__name__�
__module__�__qualname__r#r%rrrr
�Awsr)r$)r)r)r)r)�getattrrr�reprr�pir�funcZfunc0Z	_cpointerr%)rrr�rr)rrrr
r
as2
zTestF77Callback.check_function�win32z)Fails with MinGW64 Gfortran (Issue #9673)cCs2dd�}t|jd�}||�}t|dkt|��dS)NcSs|dkrdSdSdS)Nr.rrr)�coderrr
�callback�sz6TestF77Callback.test_string_callback.<locals>.callbackZstring_callbackr)r*rrr+)rr1�fr.rrr
�test_string_callback�sz$TestF77Callback.test_string_callbackcCsFtjdd�}dd�}t|jd�}|||t|��}t|dkt|��dS)	Nr��S1cSs6|j|dfkrdS|jdkr dStj|dk�s2dSdS)Nr4rr5���r)�shapeZdtype�np�all)�cuZlencurrr
r1�s
z<TestF77Callback.test_string_callback_array.<locals>.callbackZstring_callback_arrayr)rr4)r:�zerosr*r�lenrr+)rr<r1r2�resrrr
�test_string_callback_array�s
	z*TestF77Callback.test_string_callback_arrayN)r&r'r(r0�pytest�markZparametrize�splitrZxfailrrr
Zskipif�sys�platformr3r@rrrr
rs1#
r)rrrDrAZnumpyr:Z
numpy.testingrrr�rZF2PyTestrrrrr
�<module>s