o
    ðT·j–\  ã                   @   s   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aed6de d¡ie
¤ŽZ	dd	„ Zd
d„ Zdd„ Zdd„ ZG dd„ dƒZeƒ Zg d¢ZddgiZed dg ed< ed dg ed< dged< dged< ed ddg ed< ed ddg ed< ed ddg ed< ed ddg ed< ed dg ed< ed dg ed< ed dg ed< ed dg ed< ed ddg ed< ed g d¢ ed < ed d!g ed!< d"ged"< d#ged#< dged< e ¡ jjd$ksüe ¡ jjd%k�r2e jd&k�r2e ¡ e ¡ fd'k�r2e g d(¢¡ ed g d)¢ ed*< ed* g d+¢ ed,< ed  d!d-g ed-< G d.d/„ d/ƒZG d0d1„ d1ƒZ G d2d3„ d3ƒZ!G d4d5„ d5ƒZ"dS )7é    N)ÚPath)Úc_names_dicté   )ÚutilÚ	CHARACTERÚcc                  C   s   t tƒ ¡ jd } | d S )NÚsrcÚarray_from_pyobj)r   Ú__file__ÚresolveÚparent)Útestroot© r   úi/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/numpy/f2py/tests/test_array_from_pyobj.pyÚget_testdir   s   r   c                  C   s*   t du rtƒ d g} tj| dd�a dS dS )z6
    Build the required testing extension module

    Nzwrapmodule.cÚtest_array_from_pyobj_ext)Úmodule_name)Úwrapr   r   Úbuild_meson)r   r   r   r   Úsetup_module   s
   ÿür   c                 C   s   t  | ¡d }t|ƒS )Né   )r   Úarray_attrsÚflags2names)ÚarrÚflagsr   r   r   Ú
flags_info'   s   r   c                 C   s0   g }dD ]}t | ƒtt|dƒ@ r| |¡ q|S )N)Ú
CONTIGUOUSÚFORTRANÚOWNDATAÚ
ENSURECOPYÚENSUREARRAYÚALIGNEDÚ
NOTSWAPPEDÚ	WRITEABLEÚWRITEBACKIFCOPYÚUPDATEIFCOPYÚBEHAVEDÚ
BEHAVED_ROÚCARRAYÚFARRAYr   )ÚabsÚgetattrr   Úappend)r   ÚinfoÚflagnamer   r   r   r   ,   s   
€r   c                   @   s@   e Zd Zg fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚIntentc                 C   sP   |d d … | _ d}|D ]}|dkr|tjO }q|ttd| ¡  ƒO }q|| _d S )Nr   ÚoptionalÚF2PY_INTENT_)Úintent_listr   ÚF2PY_OPTIONALr+   Úupperr   )Úselfr2   r   Úir   r   r   Ú__init__D   s   
zIntent.__init__c                 C   s&   |  ¡ }|dkr
d}|  | j|g ¡S )NÚin_Úin)ÚlowerÚ	__class__r2   )r5   Únamer   r   r   Ú__getattr__N   s   zIntent.__getattr__c                 C   s   dd  | j¡ S )Nz
intent(%s)ú,)Újoinr2   ©r5   r   r   r   Ú__str__T   s   zIntent.__str__c                 C   s
   d| j  S )Nz
Intent(%r)©r2   r@   r   r   r   Ú__repr__W   ó   
zIntent.__repr__c                    s   t ‡ fdd„|D ƒƒS )Nc                 3   s   � | ]}|ˆ j v V  qd S ©NrB   )Ú.0r<   r@   r   r   Ú	<genexpr>[   s   € z#Intent.is_intent.<locals>.<genexpr>)Úall©r5   Únamesr   r@   r   Ú	is_intentZ   s   zIntent.is_intentc                 G   s   t | jƒt |ƒko| j|Ž S rE   )Úlenr2   rK   rI   r   r   r   Úis_intent_exact]   s   zIntent.is_intent_exactN)	Ú__name__Ú
__module__Ú__qualname__r7   r=   rA   rC   rK   rM   r   r   r   r   r/   C   s    
r/   )ÚBOOLÚBYTEÚUBYTEÚSHORTÚUSHORTÚINTÚUINTÚLONGÚULONGÚLONGLONGÚ	ULONGLONGÚFLOATÚDOUBLEÚCFLOATÚSTRING1ÚSTRING5r   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   )rW   r\   r]   r]   r^   r_   r`   é   é   Úwin32)ÚDarwinÚarm)Ú
LONGDOUBLEÚCDOUBLEÚCLONGDOUBLE)rY   r\   r]   rf   rf   )r^   rg   rh   rh   rg   c                   @   sP   e Zd Zi Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTypec                 C   sˆ   t |tjƒr"|}d }t ¡ D ]\}}t |tƒs!|j|ju r!|} nq| j | ¡ d ¡}|d ur1|S t	 
| ¡}| |¡ || j| ¡ < |S rE   )Ú
isinstanceÚnpÚdtyper   ÚitemsÚtypeÚ_type_cacheÚgetr4   ÚobjectÚ__new__Ú_init)Úclsr<   Údtype0Únr6   Úobjr   r   r   rr   «   s   €

zType.__new__c                 C   sä   |  ¡ | _| jdkrt| j }tj| _d| _t d¡| _nC| j 	d¡rGt| jd d…  }tj| _t
| jdd … p9dƒ| _t d| j› �¡| _nt| j }ttd| j ƒ| _|j| _t |j¡| _| j|jkshJ ‚|j| _|j| _d S )	Nr   r   r   ÚSTRINGr   r   ÚSÚNPY_)r4   ÚNAMEr   r   Ú
NPY_STRINGÚtype_numÚelsizerk   rl   Ú
startswithÚintr+   Úitemsizern   ÚnumÚcharÚ	dtypechar)r5   r<   r-   r   r   r   rs   »   s$   



z
Type._initc                 C   s4   d| j › d| j› d| j› d| j› d| j› d| j› �S )NzType(z)|type_num=z, dtype=z, type=z	, elsize=z, dtypechar=)r{   r}   rl   rn   r~   r„   r@   r   r   r   rC   Ò   s   ÿþþýzType.__repr__c                    s   ‡ fdd„t ˆ j D ƒS )Nc                    ó   g | ]}ˆ   |¡‘qS r   ©r;   ©rF   Ú_mr@   r   r   Ú
<listcomp>Ù   ó    z#Type.cast_types.<locals>.<listcomp>)Ú
_cast_dictr{   r@   r   r@   r   Ú
cast_typesØ   s   zType.cast_typesc                    s   ‡ fdd„t D ƒS )Nc                    r…   r   r†   r‡   r@   r   r   r‰   Ü   rŠ   z"Type.all_types.<locals>.<listcomp>)Ú_type_namesr@   r   r@   r   Ú	all_typesÛ   s   zType.all_typesc                 C   s:   t | j j}g }tD ]}t | j|k r| t|ƒ¡ q
|S rE   ©r   r{   Ú	alignmentr�   r,   ri   ©r5   ÚbitsÚtypesr<   r   r   r   Úsmaller_typesÞ   ó   €zType.smaller_typesc                 C   sF   t | j j}g }tD ]}|| jkrq
t | j|kr | t|ƒ¡ q
|S rE   r�   r‘   r   r   r   Úequal_typesæ   s   
€zType.equal_typesc                 C   s:   t | j j}g }tD ]}t | j|kr| t|ƒ¡ q
|S rE   r�   r‘   r   r   r   Úlarger_typesð   r•   zType.larger_typesN)rN   rO   rP   ro   rr   rs   rC   rŒ   rŽ   r”   r–   r—   r   r   r   r   ri   ¨   s    
ri   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚArrayc              
   C   s,   d| j › d| j› d| j› d| j› d| j› �
S )NzArray(z, z)|arr=)rn   ÚdimsÚintentrw   r   r@   r   r   r   rC   û   s
   ÿÿzArray.__repr__c                 C   sF  || _ || _|| _t |¡| _|| _t |j	|j
||j|¡| _t| jtjƒs(J ‚t | j¡| _t|ƒdkr€| j d¡r^|jtj@ sCJ ‚| jjd rKJ ‚| jjd sSJ ‚| jd tj@ r]J ‚n"|jtj@ rfJ ‚| jjd snJ ‚| jjd rvJ ‚| jd tj@ s€J ‚|d u rŒd | _d | _d S | d¡r«t|tjƒsŸJ tt |ƒƒƒ‚t |¡j|Ž  ¡ | _n!tjtj||jd�j|Ž | j d¡r¿dpÀd	d
�| _| jj|ksÌJ ‚| jj| jjd d� | jjd sãJ ||fƒ‚t | j¡| _t|ƒdk�r3| j d¡�r| jjd �rJ ‚| jjd �s
J ‚| jd tj@ �rJ ‚n| jjd �sJ ‚| jjd �r(J ‚| jd tj@ �s3J ‚| jd | jd k�s@J ‚| jd | jd k�sMJ ‚| jd dk�rv| jd | jd k�svJ t| jd | jd | j ¡ | j ¡ fƒƒ‚| jd dd … | jd dd … k�s—J t| jd | jd fƒƒ‚| jd | jd k�sÄJ t| jd | jd td| jd  | jd  ƒt| jd ƒ|fƒƒ‚| d¡�rÙ| jd d | j j
k�sØJ ‚n| jd d | j j
k�sçJ ‚|   | j| j¡�sòJ ‚t| jtjƒ�r|j
t!|jƒj
k�r| d¡�s| jd dk�r|  "¡ �s!J ‚d S d S d S d S d S )Nr   r   r   r   r   Úcache©rl   ÚCÚF)Úorderr#   ©Úwriter   é   é   é   éþÿÿÿr   Úcopy)#rn   r™   rš   r¦   ÚdeepcopyÚobj_copyrw   r   Úcallr}   r~   r   r   rj   rk   Úndarrayr   Úarr_attrrL   rK   ÚF2PY_INTENT_Cr   ÚpyarrÚ
pyarr_attrÚreprÚarrayÚreshaper„   rl   ÚsetflagsÚtobytesr   Ú	arr_equalri   Úhas_shared_memory)r5   Útypr™   rš   rw   r   r   r   r7   ÿ   s–   þ
þü*ÿûýzArray.__init__c                 C   s   |j |j krdS ||k ¡ S )NF)ÚshaperH   )r5   Úarr1Úarr2r   r   r   r´   V  s   zArray.arr_equalc                 C   s
   t | jƒS rE   )Ústrr   r@   r   r   r   rA   [  rD   zArray.__str__c                 C   s@   | j | ju rdS t| j tjƒsdS t | j ¡}|d | jd kS )z6Check that created array shares data with input array.TFr   )rw   r   rj   rk   rª   r   r   r«   )r5   Úobj_attrr   r   r   rµ   ^  s   zArray.has_shared_memoryN)rN   rO   rP   rC   r7   r´   rA   rµ   r   r   r   r   r˜   ù   s    Wr˜   c                   @   s   e Zd Zdd„ ZdS )Ú
TestIntentc                 C   st   t tjjƒdks
J ‚tjj d¡sJ ‚tjj d¡rJ ‚tjj dd¡s&J ‚tjj dd¡s0J ‚tj d¡r8J ‚d S )Nzintent(in,out)r   r9   )rº   rš   r8   Úoutr   rK   rM   r@   r   r   r   Útest_in_outi  s   zTestIntent.test_in_outN)rN   rO   rP   r¾   r   r   r   r   r¼   h  s    r¼   c                   @   s"  e Zd Zejdded�dd„ ƒZedd„ ƒZedd	„ ƒZ	d
d„ Z
dd„ Zej dddg¡ej dddg¡ej dddg¡dd„ ƒƒƒZdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?S )@ÚTestSharedMemoryTÚclass)ÚautouseÚscopeÚparamsc                    s"   t ˆ jƒˆ j_‡ fdd„ˆ j_d S )Nc                    s   t tˆ jƒ|||ƒS rE   )r˜   ri   Úparam)r5   r™   rš   rw   ©Úrequestr   r   Ú<lambda>w  s    ÿz-TestSharedMemory.setup_type.<locals>.<lambda>)ri   rÄ   rt   rn   r°   )r5   rÆ   r   rÅ   r   Ú
setup_typet  s   zTestSharedMemory.setup_typec                 C   s.   | j j d¡r| j j}d| d| gS ddgS )Nrx   Ú1Ú2r   r¢   ©rn   r{   r   r~   ©r5   r~   r   r   r   Únum2seqz  s   zTestSharedMemory.num2seqc                 C   sR   | j j d¡r!| j j}d| d| d| gd| d| d| ggS g d¢g d	¢gS )
Nrx   rÉ   rÊ   Ú3Ú4Ú5Ú6)r   r¢   r£   )ra   r¤   r   rË   rÌ   r   r   r   Únum23seq�  s   ÿzTestSharedMemory.num23seqc                 C   s$   |   dgtj| j¡}| ¡ rJ ‚d S )Nr¢   )r°   rš   r8   rÍ   rµ   ©r5   Úar   r   r   Útest_in_from_2seq‰  s   z"TestSharedMemory.test_in_from_2seqc                 C   sx   | j  ¡ D ]4}tj| j|jd�}|  t| jƒgtj|¡}|j	| j j	kr3| 
¡ s2J t| j j|jfƒƒ‚q| 
¡ r9J ‚qd S ©Nrœ   )rn   rŒ   rk   r°   rÍ   rl   rL   rš   r8   r~   rµ   r¯   ©r5   Útrw   rÔ   r   r   r   Útest_in_from_2casttype�  s    úz'TestSharedMemory.test_in_from_2casttyper¡   ÚwÚrorŸ   r�   rž   ÚinpÚ2seqÚ23seqc                 C   sd   t | d| ƒ}tj|| jj|d�}|j|dkd� |  |j|dkr%tjj	p'tj|¡}| 
¡ s0J ‚dS )z5Test if intent(in) array can be passed without copiesr‚   ©rl   rŸ   rÚ   r    r�   N)r+   rk   r°   rn   rl   r²   r·   rš   r8   r   rµ   )r5   r¡   rŸ   rÜ   Úseqrw   rÔ   r   r   r   Útest_in_nocopy–  s   ÿzTestSharedMemory.test_in_nocopyc              
   C   s�   t j| j| jjd�}|  t| jƒgtj|¡}| ¡ sJ ‚z|  dgtj	j| j¡}W tdƒ‚ t
yG } zt|ƒ d¡s<‚ W Y d }~d S d }~ww )Nrœ   r¢   z6failed to initialize intent(inout|inplace|cache) arrayz,intent(inout) should have failed on sequence)rk   r°   rÍ   rn   rl   rL   rš   Úinoutrµ   r8   Ú	TypeErrorrº   r   ÚSystemError)r5   rw   rÔ   Úmsgr   r   r   Útest_inout_2seq¢  s   ûÿþ€ÿz TestSharedMemory.test_inout_2seqc              
   C   sÎ   t j| j| jjdd�}t| jƒt| jd ƒf}|  |tjj|¡}| 	¡ s&J ‚t j| j| jjdd�}t| jƒt| jd ƒf}z|  |tjj|¡}W tdƒ‚ t
yf } zt|ƒ d¡s[‚ W Y d }~d S d }~ww )Nrž   rß   r   r�   z(failed to initialize intent(inout) arrayz2intent(inout) should have failed on improper array)rk   r°   rÒ   rn   rl   rL   rš   r8   râ   rµ   Ú
ValueErrorrº   r   rä   )r5   rw   r·   rÔ   rå   r   r   r   Útest_f_inout_23seq°  s&   ÿûÿþ€ÿz#TestSharedMemory.test_f_inout_23seqc                 C   sP   t j| j| jjd�}t| jƒt| jd ƒf}|  |tjjj	|¡}| 
¡ s&J ‚d S ©Nrœ   r   )rk   r°   rÒ   rn   rl   rL   rš   r8   r   râ   rµ   ©r5   rw   r·   rÔ   r   r   r   Útest_c_inout_23seqÂ  s   z#TestSharedMemory.test_c_inout_23seqc                 C   sL   | j  ¡ D ]}tj| j|jd�}|  t| jƒgtjj	|¡}| 
¡ r#J ‚qd S rÖ   )rn   rŒ   rk   r°   rÍ   rl   rL   rš   r8   r¦   rµ   r×   r   r   r   Útest_in_copy_from_2casttypeÈ  s
   ýz,TestSharedMemory.test_in_copy_from_2casttypec                 C   s6   |   t| jƒt| jd ƒgtj| j¡}| ¡ rJ ‚d S ©Nr   )r°   rL   rÒ   rš   r8   rµ   rÓ   r   r   r   Útest_c_in_from_23seqÎ  s
   þz%TestSharedMemory.test_c_in_from_23seqc                 C   sV   | j  ¡ D ]#}tj| j|jd�}|  t| jƒt| jd ƒgtj|¡}| 	¡ r(J ‚qd S ré   )
rn   rŒ   rk   r°   rÒ   rl   rL   rš   r8   rµ   r×   r   r   r   Útest_in_from_23casttypeÔ  s   ÿüz(TestSharedMemory.test_in_from_23casttypec                 C   st   | j  ¡ D ]2}tj| j|jdd�}|  t| jƒt| jd ƒgtj|¡}|j	| j j	kr1| 
¡ s0J ‚q| 
¡ r7J ‚qd S ©Nrž   rß   r   )rn   rŒ   rk   r°   rÒ   rl   rL   rš   r8   r~   rµ   r×   r   r   r   Útest_f_in_from_23casttypeÛ  s   ÿùz*TestSharedMemory.test_f_in_from_23casttypec                 C   st   | j  ¡ D ]2}tj| j|jd�}|  t| jƒt| jd ƒgtjj	|¡}|j
| j j
kr1| ¡ s0J ‚q| ¡ r7J ‚qd S ré   )rn   rŒ   rk   r°   rÒ   rl   rL   rš   r8   r   r~   rµ   r×   r   r   r   Útest_c_in_from_23casttypeå  s   ÿùz*TestSharedMemory.test_c_in_from_23casttypec                 C   sZ   | j  ¡ D ]%}tj| j|jdd�}|  t| jƒt| jd ƒgtjj	|¡}| 
¡ r*J ‚qd S rð   )rn   rŒ   rk   r°   rÒ   rl   rL   rš   r8   r¦   rµ   r×   r   r   r   Útest_f_copy_in_from_23casttypeï  s   þûz/TestSharedMemory.test_f_copy_in_from_23casttypec                 C   sZ   | j  ¡ D ]%}tj| j|jd�}|  t| jƒt| jd ƒgtjj	j
|¡}| ¡ r*J ‚qd S ré   )rn   rŒ   rk   r°   rÒ   rl   rL   rš   r8   r   r¦   rµ   r×   r   r   r   Útest_c_copy_in_from_23casttype÷  s   þûz/TestSharedMemory.test_c_copy_in_from_23casttypec                 C   s6  | j  ¡ D ]“}|j| j jkrqtj| j|jd�}t| jƒf}|  |tj	j
j|¡}| ¡ s.J ‚|  |tj	j|¡}| ¡ s=J ‚tj| j|jdd�}|  |tj	j
j|¡}| ¡ sWJ ‚|  |tj	j|¡}| ¡ skJ t|jƒƒ‚z|  |tj	j|d d d… ¡}W tdƒ‚ ty˜ } zt|ƒ d¡sŽ‚ W Y d }~qd }~ww d S )Nrœ   rž   rß   éÿÿÿÿú(failed to initialize intent(cache) arrayz8intent(cache) should have failed on multisegmented array)rn   rŽ   r~   rk   r°   rÍ   rl   rL   rš   r8   r   r›   rµ   r¯   rç   rº   r   rä   )r5   rØ   rw   r·   rÔ   rå   r   r   r   Útest_in_cache_from_2casttypeÿ  s8   ÿûÿþ€ÿìz-TestSharedMemory.test_in_cache_from_2casttypec                 C   sÐ   | j  ¡ D ]`}|jdkrq|j| j jkrqt |jtj¡}|r.t| j	d ƒt 
|j¡jkr.qtj| j	|jd�}t| j	ƒf}z|  |tjj|¡ W tdƒ‚ tye } zt|ƒ d¡s[‚ W Y d }~qd }~ww d S )Nrx   r   rœ   rö   z1intent(cache) should have failed on smaller array)rn   rŽ   r{   r~   rk   Ú
issubdtyperl   Úintegerr€   rÍ   ÚiinfoÚmaxr°   rL   rš   r8   r›   rç   rº   r   rä   )r5   rØ   Úis_intrw   r·   rå   r   r   r   Ú$test_in_cache_from_2casttype_failure  s0   
 ÿûÿþ€ÿòz5TestSharedMemory.test_in_cache_from_2casttype_failurec              
   C   s¤   d}|   |tjjd ¡}|jj|ksJ ‚d}|   |tjjd ¡}|jj|ks&J ‚d}z|   |tjjd ¡}W t	dƒ‚ tyQ } zt|ƒ d¡sF‚ W Y d }~d S d }~ww )N©r¢   ©r¢   r£   ©rõ   r£   ú2failed to create intent(cache|hide)|optional arrayz8intent(cache) should have failed on undefined dimensions)
r°   rš   r›   Úhider   r·   rç   rº   r   rä   ©r5   r·   rÔ   rå   r   r   r   Útest_cache_hidden3  s(   ÿûÿþ€ÿz"TestSharedMemory.test_cache_hiddenc              
   C   s\  d}|   |tjd ¡}|jj|ksJ ‚| |jtj|| jj	d�¡s"J ‚d}|   |tjd ¡}|jj|ks4J ‚| |jtj|| jj	d�¡sDJ ‚|jj
d rP|jj
d rRJ ‚d}|   |tjjd ¡}|jj|kseJ ‚| |jtj|| jj	d�¡suJ ‚|jj
d s�|jj
d sƒJ ‚d}z|   |tjd ¡}W tdƒ‚ ty­ } zt|ƒ d¡s¢‚ W Y d }~d S d }~ww )	Nrþ   rœ   rÿ   r   r   r   r  z7intent(hide) should have failed on undefined dimensions)r°   rš   r  r   r·   r´   rk   Úzerosrn   rl   r   r   rç   rº   r   rä   r  r   r   r   Útest_hiddenG  s8      ÿûÿþ€ÿzTestSharedMemory.test_hiddenc                 C   s
  d}|   |tjd ¡}|jj|ksJ ‚| |jtj|| jj	d�¡s"J ‚d}|   |tjd ¡}|jj|ks4J ‚| |jtj|| jj	d�¡sDJ ‚|jj
d rP|jj
d rRJ ‚d}|   |tjjd ¡}|jj|kseJ ‚| |jtj|| jj	d�¡suJ ‚|jj
d s�|jj
d sƒJ ‚d S )Nrþ   rœ   rÿ   r   r   )r°   rš   r0   r   r·   r´   rk   r  rn   rl   r   r   )r5   r·   rÔ   r   r   r   Útest_optional_noned  s       z#TestSharedMemory.test_optional_nonec                 C   s@   | j }t|ƒf}|  |tj|¡}|jj|ksJ ‚| ¡ rJ ‚d S rE   )rÍ   rL   r°   rš   r0   r   r·   rµ   rê   r   r   r   Útest_optional_from_2seqv  s
   
z(TestSharedMemory.test_optional_from_2seqc                 C   sx   | j }t|ƒt|d ƒf}|  |tj|¡}|jj|ksJ ‚| ¡ r#J ‚|  |tjj|¡}|jj|ks4J ‚| ¡ r:J ‚d S rí   )	rÒ   rL   r°   rš   r0   r   r·   rµ   r   rê   r   r   r   Útest_optional_from_23seq}  s   z)TestSharedMemory.test_optional_from_23seqc                 C   sæ   t j| j| jjd�}|jd s|jd sJ ‚|j}|  |tj|¡}|d d |j	d d ks7J t
||j	fƒƒ‚d|j	d d< |d d |j	d d   krYt jd| jjd�ks\J ‚ J ‚|j	|u scJ ‚|jd sjJ ‚|jd rqJ ‚d S ©Nrœ   r   r   r   r¢   é6   )rk   r°   rÒ   rn   rl   r   r·   rš   Úinplacer   r¯   rê   r   r   r   Útest_inplaceˆ  s   ,<zTestSharedMemory.test_inplacec                 C   s:  | j  ¡ D ]•}|| j u rqtj| j|jd�}|jj |j ksJ ‚|jj | j j us)J ‚|jd s3|jd s5J ‚|j}|  |tj	|¡}|d d |j
d d ksVJ t||j
fƒƒ‚d|j
d d< |d d |j
d d   krxtjd| j jd�ks{J ‚ J ‚|j
|u s‚J ‚|jd s‰J ‚|jd r�J ‚|jj | j j u sšJ ‚qd S r
  )rn   rŒ   rk   r°   rÒ   rl   r   r·   rš   r  r   r¯   )r5   rØ   rw   r·   rÔ   r   r   r   Útest_inplace_from_casttype”  s&   
,$ÿðz+TestSharedMemory.test_inplace_from_casttypeN)"rN   rO   rP   ÚpytestÚfixturer�   rÈ   ÚpropertyrÍ   rÒ   rÕ   rÙ   ÚmarkÚparametrizerá   ræ   rè   rë   rì   rî   rï   rñ   rò   ró   rô   r÷   rý   r  r  r  r  r	  r  r  r   r   r   r   r¿   r  s@    


		

r¿   r   )#Úsysr¦   Úplatformr  Úpathlibr   Únumpyrk   Únumpy._core._type_aliasesr   Ú_c_names_dictÚ r   r   Údictrl   r   r   r   r   r/   rš   r�   r‹   Úintpr�   Úclongdoubler�   ÚsystemÚ	processorÚextendri   r˜   r¼   r¿   r   r   r   r   Ú<module>   sf    ÿþ





"Qo
