zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
U
P±dr1ã@sÚddlZddlZddlZddlmZddlZddlmZm    Z    m
Z
ddl m Z ddl mZmZmZmZz ddlZWnek
rˆdZYn¢XdZdZeedƒrðze    dejjjƒZWnek
rÄYnXze    dejjjƒZWnek
rîYnXedkr
e    d    ejjjƒZedkr$e    dejjjƒZejZejjedkd
d ejjej d kd d Gdd„dƒƒƒZ!Gdd„dƒZ"ejjedkdd Gdd„dƒƒZ#ejjedkdd Gdd„dƒƒZ$ejjedkdd Gdd„dƒƒZ%dS)éN)ÚPath)Ú    ndpointerÚ load_libraryÚas_array)Úget_shared_lib_extension)Úassert_Úassert_array_equalÚ assert_raisesÚ assert_equalÚgettotalrefcountZ_multiarray_umath_dÚ_multiarray_testsÚ_multiarray_umathz#ctypes not available in this python)ÚreasonÚcygwinzKnown to fail on cygwinc@seZdZdd„Zdd„ZdS)ÚTestLoadLibrarycCsrtjjj}td|ƒ}ttdƒ|ƒ}tdt|ƒƒ}td|ƒ}t|tjƒsJt    ‚||krh|krh|ksnnt    ‚dS)Nr s_multiarray_umath)
ÚnpÚcorer Ú__file__rrÚ
isinstanceÚctypesÚCDLLÚAssertionError)ÚselfZ loader_pathZout1Zout2Zout3Zout4©rúQd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/tests/test_ctypeslib.pyÚ
test_basic(s
 
 
zTestLoadLibrary.test_basicc
Cs€zDz"tdd}td|tjjjƒWntk
r@tdƒYnXWn6tk
rz}zdt|ƒ}t|ƒW5d}~XYnXdS)NT)Z is_python_extz_multiarray_umath%sz&No distutils available, skipping test.zPctypes is not available on this python: skipping the test (import error was: %s))    rrrrr rÚ ImportErrorÚprintÚstr)rÚsoÚeÚmsgrrrÚ test_basic23s
ÿzTestLoadLibrary.test_basic2N)Ú__name__Ú
__module__Ú __qualname__rr"rrrrr#s rc@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú TestNdpointerc    CsTtj}t|d}t| t dg|¡¡ƒd}t|d}t| t dg|¡¡ƒt d¡}t|d}| t dg|¡¡tt|jt dg|     d¡¡ƒddg}tjtj
g}||dœ}t |¡}t|d}t| t  d    |¡¡ƒt |¡}t|d}t| t  d    |¡¡ƒtj|d
d }|j |j kr:tt|jt  d    |¡ƒnt| t  d    |¡¡ƒdS) N©Údtypeéú<i4z>i4ZswapÚxÚy)ÚnamesÚformats©é
T©Zalign) rZintcrrÚ
from_paramÚarrayr(r    Ú    TypeErrorZ newbyteorderÚfloat64ÚzerosÚitemsize)rÚdtÚpZdtnamesZ    dtformatsZdtdescrZsamedtZdt2rrrÚ
test_dtypeDs2
 
 
 
ÿ 
 
 
 
 
zTestNdpointer.test_dtypecCsŽtdd}t| t d¡¡ƒtt|jt dg¡ƒtdd}tt|jt d¡ƒt| t dg¡¡ƒtdd}t| t dgg¡¡ƒdS)Nr©Úndimr)é©rrr2rr3r    r4©rr9rrrÚ    test_ndim_s
 
 
zTestNdpointer.test_ndimcCsbtdd}t| t ddgg¡¡ƒtt|jt dgdgg¡ƒtdd}t| t d¡¡ƒdS)N)r)r=©Úshaper)r=rr>r?rrrÚ
test_shapeis
 
 
zTestNdpointer.test_shapecCsŠtjddgddggdd}tdd}t| |¡ƒtd    d}tt|j|ƒt|jjd}t| |¡ƒtt|jt ddgddgg¡ƒdS)
Nr)r=ééÚF)ÚorderZFORTRAN)ÚflagsZ
CONTIGUOUS)    rr3rrr2r    r4rHÚnum)rr+r9rrrÚ
test_flagsps
 
zTestNdpointer.test_flagscCshtttjdttjdkƒttddtddkƒttddtddk    ƒttddtddk    ƒdS)Nr'r=rA©r=r;)rrrr5©rrrrÚ
test_cachezszTestNdpointer.test_cacheN)r#r$r%r:r@rCrJrMrrrrr&Cs
 
 
r&z0ctypes not available on this python installationc @s\eZdZdd„Zejjdee     e
ddgddgddgd    d
¡gd d gd dd„ƒZ dd„Z dS)ÚTestNdpointerCFunccCs<tjt_tddft_tt d¡ƒttj    tt d¡ƒdS)z- Test that arguments are coerced from arrays r=r;©r=rD)r=rDrEN)
rÚc_void_pÚc_forward_pointerÚrestyperÚargtypesrr6r    Ú ArgumentErrorrLrrrÚtest_arguments‡sÿz!TestNdpointerCFunc.test_argumentsr8r*ÚaÚbrr=é)r.r-Úoffsetsr7Úfloatzoverlapping-fields)ÚidscCsht d|¡}t|j|jd}|t_|ft_t|ƒ}t|j|jƒt|j|jƒt|j    d|j    dƒdS)z/ Test that return values are coerced to arrays rO)rBr(ÚdataN)
rr6rrBr(rQrRrSr
Z__array_interface__)rr8ÚarrÚptr_typeZarr2rrrÚ test_return‘s þzTestNdpointerCFunc.test_returncCs>t d¡}t|jd}|t_|ft_t|ƒ}tt||ƒƒdS)zB Test that vague ndpointer return values do not promote to arrays rOr'N)    rr6rr(rQrRrSrr)rr]r^ÚretrrrÚtest_vague_return_value°s 
 z*TestNdpointerCFunc.test_vague_return_valueN) r#r$r%rUÚpytestÚmarkZ parametrizerZrr(Údictr_rarrrrrN„s"
üþ    þ÷
rNc@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú TestAsArraycCsšddlm}|d}t|ddƒƒ}t|jdƒt|t ddg¡ƒt|d|ddƒ|ddƒ|dd    ƒƒƒ}t|jd
ƒt|t ddgddgdd    gg¡ƒdS) Nr)Úc_intr=r)rKrDrEérX)rDr=)rrfrr
rBrrr3)rrfZpair_trVrrrÚ
test_array¿s  & zTestAsArray.test_arraycCs”ddlm}m}m}||dtdƒŽ||ƒƒ}t|dd}t|jdƒt|t     
d¡ƒt|dd}t|jdƒt|t     
d¡  d¡ƒt t t|ƒdS)Nr)rfÚcastÚPOINTERr0r/rA)r=rg)rrfrirjÚrangerr
rBrrÚarangeZreshaper    r4)rrfrirjr9rVrrrÚ test_pointerÊs    zTestAsArray.test_pointercsüddlm‰m}m}G‡fdd„d|ƒ}d|}d|||dd|dd|ddƒ||d    d|d
d|d dƒƒ}tjd d dgdddggdtjfgd‰‡fdd„}|t|ƒƒ|t||ƒddƒ|t||dƒd dƒ|t||ddƒddƒdS)Nr)Úc_int16Ú    StructureÚpointercseZdZd”fgZdS)z5TestAsArray.test_struct_array_pointer.<locals>.StructrVN)r#r$r%Ú_fields_r)rnrrÚStructÝsrrrDr=r))rVrErgrX)r)rK)rD)rE)rg)rXrVr'cst|jˆjƒt|ˆƒdS)N)r
r()r+)ÚexpectedrrÚcheckìsz4TestAsArray.test_struct_array_pointer.<locals>.checkrrArO)rrnrorprr3Úint16r)rrorprrZStruct3Zc_arrayrtr)rnrsrÚtest_struct_array_pointerÚs$þþ
ý  z%TestAsArray.test_struct_array_pointerc    Csjddl}d}tj|tjd}tj |¡}tj ¡.| ||     |j
¡¡}tj  ||f¡}~~W5QRXdS)Nrédr') rrrlÚshortÚ    ctypeslibÚ    as_ctypesZtestingZassert_no_gc_cyclesrirjÚc_shortr)rrÚNrVZpntZnewpntrWrrrÚtest_reference_cyclesös  z!TestAsArray.test_reference_cyclescCsDt d¡}tj |¡}t |¡}~t|ƒdk    ƒ|ddddS)N)éàr~rDr)rr6ryrzÚweakrefÚrefr)rr]Zc_arrZarr_refrrrÚtest_segmentation_fault
s 
 
z#TestAsArray.test_segmentation_faultN)r#r$r%rhrmrvr}rrrrrre¼s
 rec@sHeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dS)ÚTestAsCtypesTypez- Test conversion from dtypes to ctypes types cCsnt d¡}tj |¡}t|tjjƒt d¡}tj |¡}t|tjjƒt d¡}tj |¡}t|tjƒdS)Nz<u2z>u2Úu2)    rr(ryÚas_ctypes_typer
rÚc_uint16Ú __ctype_le__Ú __ctype_be__©rr8ÚctrrrÚ test_scalars
 
 
 zTestAsCtypesType.test_scalarcCs4t tjdf¡}tj |¡}t|ddtjƒdS)NrOr=rD)rr(Úint32ryr„r
rÚc_int32rˆrrrÚ test_subarray(s zTestAsCtypesType.test_subarraycCsht dtjfdtjfg¡}tj |¡}tt|tj    ƒƒt
t  |¡|j ƒt
|j dtjfdtjfgƒdS)NrVrW)rr(Úuint16Úuint32ryr„rÚ
issubclassrror
Úsizeofr7rqr…Úc_uint32rˆrrrÚtest_structure-sþ þzTestAsCtypesType.test_structurecCsxtjdtjfdtjfgdd}tj |¡}tt|tj    ƒƒt
t  |¡|j ƒt
|j dtjfdtjdfdtjfgƒdS)NrVrWTr1Úr=)rr(rŽrryr„rrrror
r‘r7rqr…Úc_charr’rˆrrrÚtest_structure_aligned;sþý  ýz'TestAsCtypesType.test_structure_alignedcCsrt tddgddgtjtjgd¡}tj |¡}tt|t    j
ƒƒt t      |¡|j ƒt |jdt    jfdt    jfgƒdS)NrVrWr©r-rYr.)rr(rdrŽrryr„rrrÚUnionr
r‘r7rqr…r’rˆrrrÚ
test_unionJs
ý þzTestAsCtypesType.test_unioncCs€t tddgddgtjtjgdd¡}tj |¡}tt|t    j
ƒƒt t      |¡|j ƒt |jdt    jfdt    jfdt    jdfgƒdS)NrVrWrrg)r-rYr.r7r”)rr(rdrŽrryr„rrrr˜r
r‘r7rqr…r’r•rˆrrrÚtest_padded_unionYs
ü  ýz"TestAsCtypesType.test_padded_unioncCs8t tddgddgtjtjgd¡}tttjj|ƒdS)NrVrWrr=r—)rr(rdrr    ÚNotImplementedErrorryr„)rr8rrrÚtest_overlappingjs 
ýz!TestAsCtypesType.test_overlappingN) r#r$r%Ú__doc__rŠrr“r–r™ršrœrrrrr‚s r‚)&ÚsysrbrÚpathlibrÚnumpyrZnumpy.ctypeslibrrrZnumpy.distutils.misc_utilrZ numpy.testingrrr    r
rrÚcdllZ    test_cdllÚhasattrrr rÚOSErrorr Zforward_pointerrQrcZskipifÚplatformrr&rNrer‚rrrrÚ<module>s^   
 
 
 
 ÿÿA ÿ6 ÿY ÿ