
    Bvh\                         d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlm	Z
 ddlmZ da ed2d ej                  d      ie
Z	d Zd	 Zd
 Zd Z G d d      Z e       Zg dZddgiZed   dgz   ed<   ed   dgz   ed<   dged<   dged<   ed   ddgz   ed<   ed   ddgz   ed<   ed   ddgz   ed<   ed   ddgz   ed<   ed   dgz   ed<   ed   dgz   ed<   ed   dgz   ed<   ed   dgz   ed<   ed   ddgz   ed<   ed   g dz   ed<   ed   dgz   ed<   dged<   dged<   dged<    ej0                         j                  j2                  d k7  s( ej4                         j                  j6                  d!k  rnej                  d"k7  r_ ej8                          ej:                         fd#k7  r:ej=                  g d$       ed   g d%z   ed&<   ed&   g d'z   ed(<   ed   dd)gz   ed)<    G d* d+      Z G d, d-      Z  G d. d/      Z! G d0 d1      Z"y)3    N)Path)c_names_dict   )util	CHARACTERcc                  `    t        t              j                         j                  dz  } | dz  S )Nsrcarray_from_pyobj)r   __file__resolveparent)testroots    P/RAG/venv/lib/python3.12/site-packages/numpy/f2py/tests/test_array_from_pyobj.pyget_testdirr      s+    H~%%'..6H(((    c                  \    t         &t               dz  g} t        j                  | d      a yy)z6
    Build the required testing extension module

    Nzwrapmodule.ctest_array_from_pyobj_ext)module_name)wrapr   r   build_meson)r
   s    r   setup_moduler      s4     |MN*
 1LM	 r   c                 H    t         j                  |       d   }t        |      S )N   )r   array_attrsflags2names)arrflagss     r   
flags_infor   (   s"    S!!$Eur   c                 v    g }dD ]1  }t        |       t        t        |d      z  s!|j                  |       3 |S )N)
CONTIGUOUSFORTRANOWNDATA
ENSURECOPYENSUREARRAYALIGNED
NOTSWAPPED	WRITEABLEWRITEBACKIFCOPYUPDATEIFCOPYBEHAVED
BEHAVED_ROCARRAYFARRAYr   )absgetattrr   append)r   infoflagnames      r   r   r   -   s=    D  u:h22KK!#$ Kr   c                   4    e Zd Zg fdZd Zd Zd Zd Zd Zy)Intentc                     |d d  | _         d}|D ]?  }|dk(  r|t        j                  z  }|t        t        d|j	                         z         z  }A || _        y )Nr   optionalF2PY_INTENT_)intent_listr   F2PY_OPTIONALr0   upperr   )selfr9   r   is       r   __init__zIntent.__init__E   sY    &q>AJ+++~	'ABB	 
 
r   c                 n    |j                         }|dk(  rd}| j                  | j                  |gz         S )Nin_in)lower	__class__r9   )r<   names     r   __getattr__zIntent.__getattr__O   s5    zz|5=D~~d..$788r   c                 @    ddj                  | j                         dS )Nzintent(,))joinr9   r<   s    r   __str__zIntent.__str__U   s!    $"2"234A66r   c                 "    d| j                   dS )NzIntent(rH   r9   rJ   s    r   __repr__zIntent.__repr__X   s    )),A..r   c                 ,     t         fd|D              S )Nc              3   :   K   | ]  }|j                   v   y wNrM   ).0rD   r<   s     r   	<genexpr>z#Intent.is_intent.<locals>.<genexpr>\   s     >44+++s   )allr<   namess   ` r   	is_intentzIntent.is_intent[   s    >>>>r   c                 f    t        | j                        t        |      k(  xr  | j                  | S rQ   )lenr9   rW   rU   s     r   is_intent_exactzIntent.is_intent_exact^   s,    4##$E
2M~t~~u7MMr   N)	__name__
__module____qualname__r>   rE   rK   rN   rW   rZ    r   r   r5   r5   D   s$    #% 97/?Nr   r5   )BOOLBYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONG	ULONGLONGFLOATDOUBLECFLOATSTRING1STRING5r   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   )re   rj   rk   rk   rl   rm   rn         win32)Darwinarm)
LONGDOUBLECDOUBLECLONGDOUBLE)rg   rj   rk   rt   rt   )rl   ru   rv   rv   ru   c                   @    e Zd Zi Zd Zd Zd Zd Zd Zd Z	d Z
d Zy	)
Typec                    t        |t        j                        rM|}d }t        j	                         D ]2  \  }}t        |t
              r|j
                  |j
                  u s0|} n | j                  j                  |j                         d       }||S t        j                  |       }|j                  |       || j                  |j                         <   |S rQ   )
isinstancenpdtyper   itemstype_type_cachegetr;   object__new___init)clsrD   dtype0nr=   objs         r   r   zType.__new__   s    dBHH%FD$**,1!!T*v{{aff/DD - oo!!$**,5?JnnS!		$(+

%
r   c                 L   |j                         | _        | j                  dk(  rJt        | j                     }t        j                  | _        d| _        t        j                  d      | _        n| j                  j                  d      rtt        | j                  d d    }t        j                  | _        t        | j                  dd  xs d      | _        t        j                  d| j                         | _        njt        | j                     }t        t        d| j                  z         | _        |j                  | _        t        j                  |j                        | _        | j
                  |j                  k(  sJ |j                  | _        |j                  | _        y )	Nr   r   r   STRINGr   r   SNPY_)r;   NAMEr   r   
NPY_STRINGtype_numelsizer{   r|   
startswithintr0   itemsizer~   numchar	dtypechar)r<   rD   r2   s      r   r   z
Type._init   s!   JJL	99#		*D OODMDK#DJYY!!(+		"1.D OODMdiim0q1DKAdkk]"34DJ		*D#D&499*<=DM--DK$)),DJ}}(((II	r   c                     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   r|   r~   r   r   rJ   s    r   rN   zType.__repr__   sV    		{+dmm_ =** &9T[[M :"nn-/ 	0r   c                 l    t         | j                     D cg c]  }| j                  |       c}S c c}w rQ   )
_cast_dictr   rC   r<   _ms     r   
cast_typeszType.cast_types   s.    -7		-BC-Brr"-BCCCs   1c                 R    t         D cg c]  }| j                  |       c}S c c}w rQ   )_type_namesrC   r   s     r   	all_typeszType.all_types   s#    -89[rr"[999s   $c                     t         | j                     j                  }g }t        D ]3  }t         |   j                  |k  s|j	                  t        |             5 |S rQ   r   r   	alignmentr   r1   rx   r<   bitstypesrD   s       r   smaller_typeszType.smaller_types   O    DII&00DD!++d2T$Z(   r   c                     t         | j                     j                  }g }t        D ]C  }|| j                  k(  rt         |   j                  |k(  s*|j	                  t        |             E |S rQ   r   r   s       r   equal_typeszType.equal_types   s^    DII&00Dtyy D!++t3T$Z(	  
 r   c                     t         | j                     j                  }g }t        D ]3  }t         |   j                  |kD  s|j	                  t        |             5 |S rQ   r   r   s       r   larger_typeszType.larger_types   r   r   N)r[   r\   r]   r   r   r   rN   r   r   r   r   r   r^   r   r   rx   rx      s0    K #.0D:r   rx   c                   *    e Zd Zd Zd Zd Zd Zd Zy)Arrayc           
          d| j                    d| j                   d| j                   d| j                   d| j                   
S )NzArray(z, z)|arr=)r~   dimsintentr   r   rJ   s    r   rN   zArray.__repr__   sD    2dii[4;;- @HH:VDHH:/ 	0r   c           
         || _         || _        || _        t        j                  |      | _        || _        t        j                  |j                  |j                  ||j                  |      | _        t        | j                  t        j                        sJ t        j!                  | j                        | _        t%        |      dkD  r	| j                  j'                  d      rw|j                  t        j(                  z  sJ | j                  j                  d   rJ | j                  j                  d   sJ | j"                  d   t        j*                  z  ryJ |j                  t        j(                  z  rJ | j                  j                  d   sJ | j                  j                  d   rJ | j"                  d   t        j*                  z  sJ |d | _        d | _        y |j'                  d      rit        |t        j                        sJ t1        t        |                    t        j2                  |      j4                  | j                         | _        nt        j2                   t        j2                  ||j6                        j4                  | | j                  j'                  d      xr dxs d	
      | _        | j,                  j8                  |k(  sJ | j,                  j;                  | j                  j                  d          | j,                  j                  d   s	J ||f       t        j!                  | j,                        | _        t%        |      dkD  r| j                  j'                  d      rX| j,                  j                  d   rJ | j,                  j                  d   sJ | j.                  d   t        j*                  z  rZJ | j,                  j                  d   sJ | j,                  j                  d   rJ | j.                  d   t        j*                  z  sJ | j"                  d   | j.                  d   k(  sJ | j"                  d   | j.                  d   k(  sJ | j"                  d   dk  r}| j"                  d   | j.                  d   k(  s^J t1        | j"                  d   | j.                  d   | j                  j=                         | j,                  j=                         f             | j"                  d   dd  | j.                  d   dd  k(  s,J t1        | j"                  d   | j.                  d   f             | j"                  d   | j.                  d   k(  snJ t1        | j"                  d   | j.                  d   t?        d| j"                  d   z  | j.                  d   z
        t?        | j"                  d         |f             |j'                  d      r+| j"                  d   d   | j                   j                  k\  sUJ | j"                  d   d   | j                   j                  k(  sJ | jA                  | j,                  | j                        sJ t        | j                  t        j                        re|j                  tC        |j8                        j                  k(  r8|j'                  d      s&| j"                  d   dk  r| jE                         sJ y y y y y )Nr   r   r"   r!   r   cacher|   CF)orderr(   writer#            r   copy)#r~   r   r   r   deepcopyobj_copyr   r   callr   r   r   r   rz   r{   ndarrayr   arr_attrrY   rW   F2PY_INTENT_Cr"   pyarr
pyarr_attrreprarrayreshaper   r|   setflagstobytesr   	arr_equalrx   has_shared_memory)r<   typr   r   r   s        r   r>   zArray.__init__   s   		c* 99S\\ ZZ!6<<6 $((BJJ///((2t9q={{$$S)t'9'99:988>>)444xx~~l333 MM!,t||;<;"LL4+=+==>=xx~~i00088>>,777a(4<<787;DJ"DOG$c2::.?T#Y?..#..5::<DJ:CMM2::DA{{,,S19cAcDJ ::##s***

$((.."=>zz	*9S&M9***4::6t9q={{$$S)::++I666zz''555 OOA.=>=zz''	222::++L999*T\\9:9}}Q4??1#5555}}Q4??1#5555==q ==#tq'99 4a "  "

""$	A < 9 }}Q$(:23(?? 	MM!dooa0G B 	? }}Q4??1#55 	tMM!OOADMM!,,tq/AABa()=
 8 	5 G$==#A&$))*:*::::==#A&$))*:*::::NN4::txx898dhh

+zzT#))_333''/DMM!4D4I11333 5J/ 4 ,r   c                 \    |j                   |j                   k7  ry||k(  j                         S )NF)shaperT   )r<   arr1arr2s      r   r   zArray.arr_equalW  s(    ::#!!##r   c                 ,    t        | j                        S rQ   )strr   rJ   s    r   rK   zArray.__str__\  s    488}r   c                     | j                   | j                  u ryt        | j                   t        j                        syt
        j                  | j                         }|d   | j                  d   k(  S )z6Check that created array shares data with input array.TFr   )r   r   rz   r{   r   r   r   r   )r<   obj_attrs     r   r   zArray.has_shared_memory_  sV    88txx$((BJJ/##DHH-{dmmA...r   N)r[   r\   r]   rN   r>   r   rK   r   r^   r   r   r   r      s    0U4n$
/r   r   c                       e Zd Zd Zy)
TestIntentc                    t        t        j                  j                        dk(  sJ t        j                  j                  j                  d      sJ t        j                  j                  j                  d      rJ t        j                  j                  j                  dd      sJ t        j                  j                  j                  dd      sJ t        j                  j                  d      rJ y )Nzintent(in,out)r   rA   )r   r   r@   outr   rW   rZ   rJ   s    r   test_in_outzTestIntent.test_in_outj  s    6::>>"&6666zz||%%c***::<<//444zz||++C666zz||++D#666::'',,,,r   N)r[   r\   r]   r   r^   r   r   r   r   i  s    -r   r   c                      e Zd Z ej                  dde      d        Zed        Zed        Z	d Z
d Zej                  j                  d	d
dg      ej                  j                  dddg      ej                  j                  dddg      d                      Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zd! Zd" Zd# Zd$ Z d% Z!y&)'TestSharedMemoryTclass)autousescopeparamsc                 v    t        j                        j                  _        fdj                  _        y )Nc                 F    t        t        j                        |||      S rQ   )r   rx   param)r<   r   r   r   requests       r   <lambda>z-TestSharedMemory.setup_type.<locals>.<lambda>x  s    Evs=4r   )rx   r   r   r~   r   )r<   r   s    `r   
setup_typezTestSharedMemory.setup_typeu  s&    .4r   c                     | j                   j                  j                  d      r | j                   j                  }d|z  d|z  gS ddgS )Nr   12r   r   r~   r   r   r   r<   r   s     r   num2seqzTestSharedMemory.num2seq{  sC    99>>$$X.YY%%F&L#,//1vr   c                     | j                   j                  j                  d      r2| j                   j                  }d|z  d|z  d|z  gd|z  d|z  d|z  ggS g dg d	gS )
Nr   r   r   3456)r   r   r   )ro   r   r   r   r   s     r   num23seqzTestSharedMemory.num23seq  sj    99>>$$X.YY%%F6\3<v>6\3<v>@ @9%%r   c                     | j                  dgt        j                  | j                        }|j	                         rJ y )Nr   )r   r   r@   r   r   r<   as     r   test_in_from_2seqz"TestSharedMemory.test_in_from_2seq  s3    JJsFJJ5&&((((r   c                    | j                   j                         D ]  }t        j                  | j                  |j
                        }| j                  t        | j                        gt        j                  |      }|j                  | j                   j                  k(  rA|j                         rJ t        | j                   j
                  |j
                  f             |j                         sJ  y Nr   )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   r<   tr   r   s       r   test_in_from_2casttypez'TestSharedMemory.test_in_from_2casttype  s    %%'A((4<<qww7C

C-.

C@Axx499+++**,NdDIIOOQWW3M.NN,..000 (r   r   wror   r   r   inp2seq23seqc                 d   t        | d|z         }t        j                  || j                  j                  |      }|j                  |dk(         | j                  |j                  |dk(  xr t        j                  j                  xs t        j                  |      }|j                         sJ y)z5Test if intent(in) array can be passed without copiesr   r|   r   r   r   r   N)r0   r{   r   r~   r|   r   r   r   r@   r   r   )r<   r   r   r   seqr   r   s          r   test_in_nocopyzTestSharedMemory.test_in_nocopy  s    
 dECK(hhs$))//?ESL*JJsyy#6&**,,E6::M""$$$r   c                    t        j                  | j                  | j                  j                        }| j                  t        | j                        gt        j                  |      }|j                         sJ 	 | j                  dgt        j                  j                  | j                        }t        d      # t        $ r%}t        |      j                  d      s Y d }~y d }~ww xY w)Nr   r   z,intent(inout) should have failed on sequencez6failed to initialize intent(inout|inplace|cache) array)r{   r   r   r~   r|   rY   r   inoutr   r@   SystemError	TypeErrorr   r   )r<   r   r   msgs       r   test_inout_2seqz TestSharedMemory.test_inout_2seq  s    hht||499??;JJDLL)*FLL#>""$$$	N

A3

 0 0$,,?A LMM  	s8&&LNN	s   >6B? ?	C-C((C-c                    t        j                  | j                  | j                  j                  d      }t        | j                        t        | j                  d         f}| j                  |t        j                  j                  |      }|j                         sJ t        j                  | j                  | j                  j                  d      }t        | j                        t        | j                  d         f}	 | j                  |t        j                  j                  |      }t        d      # t        $ r%}t        |      j                  d      s Y d }~y d }~ww xY w)Nr   r  r   r   z2intent(inout) should have failed on improper arrayz(failed to initialize intent(inout) array)r{   r   r   r~   r|   rY   r   r@   r  r   r  
ValueErrorr   r   )r<   r   r   r   r  s        r   test_f_inout_23seqz#TestSharedMemory.test_f_inout_23seq  s   hht}}DIIOO3GT]]#Sq)9%:;JJufjj..4""$$$hht}}DIIOO3GT]]#Sq)9%:;	F

5&**"2"2C8A DF F  	s8&&>@@	s   +D; ;	E)E$$E)c                 V   t        j                  | j                  | j                  j                        }t        | j                        t        | j                  d         f}| j                  |t        j                  j                  j                  |      }|j                         sJ y Nr   r   )r{   r   r   r~   r|   rY   r   r@   r   r  r   r<   r   r   r   s       r   test_c_inout_23seqz#TestSharedMemory.test_c_inout_23seq  sq    hht}}DIIOO<T]]#Sq)9%:;JJufjjll00#6""$$$r   c                 :   | j                   j                         D ]~  }t        j                  | j                  |j
                        }| j                  t        | j                        gt        j                  j                  |      }|j                         s~J  y r   )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   s       r   test_in_copy_from_2casttypez,TestSharedMemory.test_in_copy_from_2casttype  si    %%'A((4<<qww7C

C-.

EA**,,, (r   c                     | j                  t        | j                        t        | j                  d         gt        j                  | j                        }|j                         rJ y Nr   )r   rY   r   r   r@   r   r   s     r   test_c_in_from_23seqz%TestSharedMemory.test_c_in_from_23seq  sS    JJT]]1%5!67MM &&((((r   c                 T   | j                   j                         D ]  }t        j                  | j                  |j
                        }| j                  t        | j                        t        | j                  d         gt        j                  |      }|j                         sJ  y r  )
r~   r   r{   r   r   r|   rY   r   r@   r   r   s       r   test_in_from_23casttypez(TestSharedMemory.test_in_from_23casttype  sy    %%'A((4==8C

T]]#Sq)9%:;VZZNA**,,,	 (r   c                    | j                   j                         D ]  }t        j                  | j                  |j
                  d      }| j                  t        | j                        t        | j                  d         gt        j                  |      }|j                  | j                   j                  k(  r|j                         rJ |j                         sJ  y Nr   r  r   )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   s       r   test_f_in_from_23casttypez*TestSharedMemory.test_f_in_from_23casttype  s    %%'A((4==sCC

T]]#Sq)9%:;VZZNAxx499+++**,,,..000 (r   c                    | j                   j                         D ]  }t        j                  | j                  |j
                        }| j                  t        | j                        t        | j                  d         gt        j                  j                  |      }|j                  | j                   j                  k(  r|j                         rJ |j                         sJ  y r  )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   r   s       r   test_c_in_from_23casttypez*TestSharedMemory.test_c_in_from_23casttype  s    %%'A((4==8C

T]]#Sq)9%:;VZZ\\3PAxx499+++**,,,..000 (r   c                 j   | j                   j                         D ]  }t        j                  | j                  |j
                  d      }| j                  t        | j                        t        | j                  d         gt        j                  j                  |      }|j                         sJ  y r  )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   s       r   test_f_copy_in_from_23casttypez/TestSharedMemory.test_f_copy_in_from_23casttype  s    %%'A((4==sCC

T]]#Sq)9%:;VZZ__A **,,, (r   c                 |   | j                   j                         D ]  }t        j                  | j                  |j
                        }| j                  t        | j                        t        | j                  d         gt        j                  j                  j                  |      }|j                         sJ  y r  )r~   r   r{   r   r   r|   rY   r   r@   r   r   r   r   s       r   test_c_copy_in_from_23casttypez/TestSharedMemory.test_c_copy_in_from_23casttype  s    %%'A((4==8C

T]]#Sq)9%:;VZZ\\=N=NA **,,, (r   c           	         | j                   j                         D ]  }|j                  | j                   j                  k7  r(t        j                  | j
                  |j                        }t        | j
                        f}| j	                  |t        j                  j                  j                  |      }|j                         sJ | j	                  |t        j                  j                  |      }|j                         sJ t        j                  | j
                  |j                  d      }| j	                  |t        j                  j                  j                  |      }|j                         sJ | j	                  |t        j                  j                  |      }|j                         sJ t        |j                               	 | j	                  |t        j                  j                  |d d d         }t        d       y # t        $ r&}t!        |      j#                  d      s Y d }~d }~ww xY w)Nr   r   r  z8intent(cache) should have failed on multisegmented array(failed to initialize intent(cache) array)r~   r   r   r{   r   r   r|   rY   r   r@   r   r   r   r   r  r  r   r   )r<   r   r   r   r   r  s         r   test_in_cache_from_2casttypez-TestSharedMemory.test_in_cache_from_2casttype   s   $$&Axx499+++((4<<qww7C&)E

5&**,,"4"4c:A&&(((

5&**"2"2C8A&&(((((4<<qwwcBC

5&**,,"4"4c:A&&(((

5&**"2"2C8A&&(7$qww-7(PJJufjj&6&6DbD	B "NP P3 '(  3x**BDDs   1H	H>H99H>c                    | j                   j                         D ]   }|j                  dk(  r|j                  | j                   j                  k\  r8t	        j
                  |j                  t        j                        }|rCt        | j                  d         t	        j                  |j                        j                  kD  rt	        j                  | j                  |j                        }t        | j                        f}	 | j                  |t        j                  j                   |       t#        d       y # t$        $ r&}t'        |      j)                  d      s Y d }~Od }~ww xY w)Nr   r   r   z1intent(cache) should have failed on smaller arrayr#  )r~   r   r   r   r{   
issubdtyper|   integerr   r   iinfomaxr   rY   r   r@   r   r  r  r   r   )r<   r   is_intr   r   r  s         r   $test_in_cache_from_2casttype_failurez5TestSharedMemory.test_in_cache_from_2casttype_failure  s   $$&Avv!xx499+++]]177BJJ7F#dll1o.!''1B1F1FF((4<<qww7C&)EI

5&**"2"2C8 "GI I' '  3x**BDDs   +E  	E/	E**E/c                    d}| j                  |t        j                  j                  d       }|j                  j
                  |k(  sJ d}| j                  |t        j                  j                  d       }|j                  j
                  |k(  sJ d}	 | j                  |t        j                  j                  d       }t        d      # t        $ r%}t        |      j                  d      s Y d }~y d }~ww xY w)Nr   r   r   r"  r   z8intent(cache) should have failed on undefined dimensions2failed to create intent(cache|hide)|optional array)
r   r   r   hider   r   r  r  r   r   r<   r   r   r  s       r   test_cache_hiddenz"TestSharedMemory.test_cache_hidden4  s    JJufll//6uu{{e###JJufll//6uu{{e###	L

5&,,"3"3T:A JL L  	s8&&HJJ	s   +C
 
	C8C33C8c                    d}| j                  |t        j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ d}| j                  |t        j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ |j                  j                  d   r|j                  j                  d   rJ d}| j                  |t        j                  j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ |j                  j                  d   s|j                  j                  d   sJ d}	 | j                  |t        j                  d       }t        d      # t        $ r%}t        |      j                  d      s Y d }~y d }~ww xY w)	Nr-  r   r.  r"   r!   r/  z7intent(hide) should have failed on undefined dimensionsr0  )r   r   r1  r   r   r   r{   zerosr~   r|   r   r   r  r  r   r   r2  s       r   test_hiddenzTestSharedMemory.test_hiddenH  s   JJufkk40uu{{e###{{155"((5		"HIIIJJufkk40uu{{e###{{155"((5		"HIIIuu{{9%aeekk,.GGGJJufhhmmT2uu{{e###{{155"((5		"HIII55;;y)aeekk,.GGG	K

5&++t4A IK K  	s8&&HJJ	s   !H1 1	I:IIc                    d}| j                  |t        j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ d}| j                  |t        j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ |j                  j                  d   r|j                  j                  d   rJ d}| j                  |t        j                  j                  d       }|j                  j                  |k(  sJ |j                  |j                  t        j                  || j                  j                              sJ |j                  j                  d   s|j                  j                  d   sJ y )Nr-  r   r.  r"   r!   )r   r   r7   r   r   r   r{   r5  r~   r|   r   r   )r<   r   r   s      r   test_optional_nonez#TestSharedMemory.test_optional_nonee  si   JJufoot4uu{{e###{{155"((5		"HIIIJJufoot4uu{{e###{{155"((5		"HIIIuu{{9%aeekk,.GGGJJufhh//6uu{{e###{{155"((5		"HIII55;;y)aeekk,.GGG.Gr   c                     | j                   }t        |      f}| j                  |t        j                  |      }|j
                  j                  |k(  sJ |j                         rJ y rQ   )r   rY   r   r   r7   r   r   r   r  s       r   test_optional_from_2seqz(TestSharedMemory.test_optional_from_2seqw  sW    llSJJufoos3uu{{e###&&((((r   c                    | j                   }t        |      t        |d         f}| j                  |t        j                  |      }|j
                  j                  |k(  sJ |j                         rJ | j                  |t        j                  j                  |      }|j
                  j                  |k(  sJ |j                         rJ y r  )	r   rY   r   r   r7   r   r   r   r   r  s       r   test_optional_from_23seqz)TestSharedMemory.test_optional_from_23seq~  s    mmS3s1v;'JJufoos3uu{{e###&&(((JJufoo//5uu{{e###&&((((r   c                    t        j                  | j                  | j                  j                        }|j
                  d   s|j
                  d   sJ |j                  }| j                  |t        j                  |      }|d   d   |j                  d   d   k(  sJ t        ||j                  f             d|j                  d   d<   |d   d   |j                  d   d   cxk(  r/t        j                  d| j                  j                        k(  sJ  J |j                  |u sJ |j
                  d   sJ |j
                  d   rJ y Nr   r"   r!   r   r   6   )r{   r   r   r~   r|   r   r   r   inplacer   r   r  s       r   test_inplacezTestSharedMemory.test_inplace  s   hht}}DIIOO<99Y'CIIl,CCC		JJufnnc21vayAEE!HQK';sAEEl);;'a1vayAEE!HQKN288Bdiioo+NNNNNNuu||yy###99\****r   c                    | j                   j                         D ]  }|| j                   u rt        j                  | j                  |j
                        }|j
                  j                   |j                   k(  sJ |j
                  j                   | j                   j                   usJ |j                  d   s|j                  d   sJ |j                  }| j                  |t        j                  |      }|d   d   |j                  d   d   k(  sJ t        ||j                  f             d|j                  d   d<   |d   d   |j                  d   d   cxk(  r/t        j                  d| j                   j
                        k(  sJ  J |j                  |u sJ |j                  d   sJ |j                  d   rJ |j
                  j                   | j                   j                   u rJ  y r>  )r~   r   r{   r   r   r|   r   r   r   r@  r   r   )r<   r   r   r   r   s        r   test_inplace_from_casttypez+TestSharedMemory.test_inplace_from_casttype  s   %%'ADII~((4==8C99>>QVV+++99>>777yy+		,0GGGIIE

5&..#6Aq6!9a+?T3,-??+AEE!HQKq6!9a Orxx>Biioo0O O O O O O55C<<99Y'''yy...99>>TYY^^333! (r   N)"r[   r\   r]   pytestfixturer   r   propertyr   r   r   r   markparametrizer  r	  r  r  r  r  r  r  r  r  r   r$  r+  r3  r6  r8  r:  r<  rA  rC  r^   r   r   r   r   s  s    V^^DD4 E4
   & &)1 [[WsDk2[[WsCj1[[UVW$56% 7 2 3%NF$%-)-11--P:I.L(K:H$)	)
+4r   r   r^   )#r   platformsyspathlibr   rD  numpyr{   numpy._core._type_aliasesr   _c_names_dict r   r   dictr|   r   r   r   r   r5   r   r   r   intpr   clongdoubler   system	processorextendrx   r   r   r   r^   r   r   <module>rV     s     
    C   bhhsm)N
.N N< 
( vh
'6(2
6  (G94
7 X
6 i
7  (GW+==
7 !'*fh-??
8 w'8U*;;
5 )Wf,==
6 &&1
6  (G94
7 #F+zl:
: $W-=
;  )Xw,??
7 !%(+FF
8 !'*hZ7
8 "
9 "
9 &-
;  RWWY__"nbnn&6&<&<&F&F!&KLLG#X__ 2 2 2 459JJ?@)&1 5  J| !+< 8 < !J}
 'x0Hi3HHJyN Nbl/ l/^- -s4 s4r   