1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
U
P±d† ã@sœddlZddlZddlZddlmZddlmZGdd„dejƒZej    j
e  ¡dkdd    ej    j
e  ej ¡jd
kd d    Gd d „d eƒƒƒZGdd„deƒZdS)éN)Úarrayé)Úutilc@seZdZdd„ZdS)ÚTestReturnRealcCs®|dkrd}nd}t|dƒdƒ|ks*t‚t|dƒdƒ|ksBt‚t|dƒdƒ|ksZt‚t|dƒdƒ|ksrt‚t|d    ƒdƒ|ksŠt‚t|dgƒdƒ|ks¤t‚t|d
ƒdƒ|ks¼t‚t|tdƒƒdƒ|ksØt‚t|tdgƒƒdƒ|ksöt‚t|tdggƒƒdƒ|kst‚t|tdgƒ d ¡ƒd ƒ|ks>t‚t|tdgd ƒƒdƒ|ks`t‚t|tdgdƒƒdƒ|ks‚t‚t|tdgdƒƒdƒ|ks¤t‚t|tdgdƒƒdƒ|ksÆt‚t|tdgdƒƒdƒ|ksèt‚t|tdgdƒƒdƒ|ks
t‚|dkr*|dƒ|dƒks*t‚t t|d¡t t|g¡t t|d¡t t||¡t t|i¡z"|ddƒ}t    |ƒdkst‚Wnt
k
r¨YnXdS)N)Út0Zt4Ús0Zs4gñh㈵øä>géêg@m@g33333Sm@Z234z234.6iÿÿÿ)rÚbéÚhÚiÚlÚBÚfÚdgZb××çtigœuˆ<ä7~Úabc©é
i)ÚinfÚInfinity) ÚabsÚAssertionErrorrZastypeÚpytestZraisesÚ
ValueErrorÚ
IndexErrorÚ    ExceptionÚreprÚ OverflowError)ÚselfÚtZtnameÚerrÚrrrúXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/f2py/tests/test_return_real.pyÚcheck_function
s@"&""""""
 zTestReturnReal.check_functionN)Ú__name__Ú
__module__Ú __qualname__r#rrrr"r    srÚDarwinzVProne to error when run with numpy/f2py/tests on mac os, but not when run in isolation)Úreasonéz32-bit builds are buggyc@s4eZdZdZdZdZej dd     d¡¡dd„ƒZ
d    S)
ÚTestCReturnRealz.pyfZc_ext_return_realax
python module c_ext_return_real
usercode '''
float t4(float value) { return value; }
void s4(float *t4, float value) { *t4 = value; }
double t8(double value) { return value; }
void s8(double *t8, double value) { *t8 = value; }
'''
interface
  function t4(value)
    real*4 intent(c) :: t4,value
  end
  function t8(value)
    real*8 intent(c) :: t8,value
  end
  subroutine s4(t4,value)
    intent(c) s4
    real*4 intent(out) :: t4
    real*4 intent(c) :: value
  end
  subroutine s8(t8,value)
    intent(c) s8
    real*8 intent(out) :: t8
    real*8 intent(c) :: value
  end
end interface
end python module c_ext_return_real
    Únamez t4,t8,s4,s8ú,cCs| t|j|ƒ|¡dS©N©r#ÚgetattrÚmodule©rr+rrr"Útest_all\szTestCReturnReal.test_allN) r$r%r&ÚsuffixÚ module_nameÚcoderÚmarkÚ parametrizeÚsplitr2rrrr"r*3s
 
r*c@sdeZdZe dddd¡e dddd¡gZej dd     d¡¡d    d
„ƒZ
ej dd     d¡¡d d „ƒZ d S)ÚTestFReturnRealÚtestsÚsrcZ return_realzfoo77.fz    foo90.f90r+zt0,t4,t8,td,s0,s4,s8,sdr,cCs| t|j|ƒ|¡dSr-r.r1rrr"Ú test_all_f77gszTestFReturnReal.test_all_f77cCs| t|jj|ƒ|¡dSr-)r#r/r0Zf90_return_realr1rrr"Ú test_all_f90kszTestFReturnReal.test_all_f90N) r$r%r&rZgetpathÚsourcesrr6r7r8r<r=rrrr"r9asþ
r9)ÚplatformrÚnumpyÚnprÚrZF2PyTestrr6ZskipifÚsystemZdtypeZintpÚitemsizer*r9rrrr"Ú<module>s  *
þþ%