
    Bwg\                         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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    ]/var/www/horilla/myenv/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*
 3NO	 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   ,   sB    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__D   s`    &q> 	CAJ+++~	'ABB		C
 
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__N   s5    zz|5=D~~d..$788r   c                 >    ddj                  | j                        z  S )Nz
intent(%s),)joinr9   r<   s    r   __str__zIntent.__str__T   s    sxx(8(89::r   c                      d| j                   z  S )Nz
Intent(%r)r9   rI   s    r   __repr__zIntent.__repr__W   s    t//00r   c                 ,     t         fd|D              S )Nc              3   :   K   | ]  }|j                   v   y wNrL   ).0rD   r<   s     r   	<genexpr>z#Intent.is_intent.<locals>.<genexpr>[   s     >44+++>s   )allr<   namess   ` r   	is_intentzIntent.is_intentZ   s    >>>>r   c                 f    t        | j                        t        |      k(  xr  | j                  | S rP   )lenr9   rV   rT   s     r   is_intent_exactzIntent.is_intent_exact]   s,    4##$E
2M~t~~u7MMr   N)	__name__
__module____qualname__r>   rE   rJ   rM   rV   rY    r   r   r5   r5   C   s$    #% 9;1?Nr   r5   )BOOLBYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONG	ULONGLONGFLOATDOUBLECFLOATSTRING1STRING5r   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   )rd   ri   rj   rj   rk   rl   rm         win32)Darwinarm)
LONGDOUBLECDOUBLECLONGDOUBLE)rf   ri   rj   rs   rs   )rk   rt   ru   ru   rt   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 rP   )
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elsizerz   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   rI   s    r   rM   zType.__repr__   sV    		{+dmm_ =** &9T[[M :"nn-/ 	0r   c                 l    t         | j                     D cg c]  }| j                  |       c}S c c}w rP   )
_cast_dictr   rC   r<   _ms     r   
cast_typeszType.cast_types   s(    -7		-BCrr"CCCs   1c                 R    t         D cg c]  }| j                  |       c}S c c}w rP   )_type_namesrC   r   s     r   	all_typeszType.all_types   s    -89rr"999s   $c                     t         | j                     j                  }g }t        D ]3  }t         |   j                  |k  s|j	                  t        |             5 |S rP   r   r   	alignmentr   r1   rw   r<   bitstypesrD   s       r   smaller_typeszType.smaller_types   T    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 rP   r   r   s       r   equal_typeszType.equal_types   sc    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 rP   r   r   s       r   larger_typeszType.larger_types   r   r   N)rZ   r[   r\   r~   r   r   rM   r   r   r   r   r   r]   r   r   rw   rw      s0    K #.0D:r   rw   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   rI   s    r   rM   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   ry   rz   ndarrayr   arr_attrrX   rV   F2PY_INTENT_Cr"   pyarr
pyarr_attrreprarrayreshaper   r{   setflagstobytesr   	arr_equalrw   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kk++C08S?C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)shaperS   )r<   arr1arr2s      r   r   zArray.arr_equalV  s(    ::#!!##r   c                 ,    t        | j                        S rP   )strr   rI   s    r   rJ   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   ry   rz   r   r   r   r   )r<   obj_attrs     r   r   zArray.has_shared_memory^  sV    88txx$((BJJ/##DHH-{dmmA...r   N)rZ   r[   r\   rM   r>   r   rJ   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   rV   rY   rI   s    r   test_in_outzTestIntent.test_in_outi  s    6::>>"&6666zz||%%c***::<<//444zz||++C666zz||++D#666::'',,,,r   N)rZ   r[   r\   r   r]   r   r   r   r   h  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 rP   )r   rw   param)r<   r   r   r   requests       r   <lambda>z-TestSharedMemory.setup_type.<locals>.<lambda>w  s    Evs=4 r   )rw   r   r   r}   r   )r<   r   s    `r   
setup_typezTestSharedMemory.setup_typet  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.num2seqz  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   )rn   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   rz   r   r   r{   rX   r   r@   r   r   r   r<   tr   r   s       r   test_in_from_2casttypez'TestSharedMemory.test_in_from_2casttype  s    %%' 	1A((4<<qww7C

C-.

C@Axx499+++**,NdDIIOOQWW3M.NN,..000	1r   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   rz   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)rz   r   r   r}   r{   rX   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)rz   r   r   r}   r{   rX   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   )rz   r   r   r}   r{   rX   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   rz   r   r   r{   rX   r   r@   r   r   r   s       r   test_in_copy_from_2casttypez,TestSharedMemory.test_in_copy_from_2casttype  sn    %%' 	-A((4<<qww7C

C-.

EA**,,,	-r   c                     | j                  t        | j                        t        | j                  d         gt        j                  | j                        }|j                         rJ y Nr   )r   rX   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   rz   r   r   r{   rX   r   r@   r   r   s       r   test_in_from_23casttypez(TestSharedMemory.test_in_from_23casttype  s~    %%' 	-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   rz   r   r   r{   rX   r   r@   r   r   r   s       r   test_f_in_from_23casttypez*TestSharedMemory.test_f_in_from_23casttype  s    %%' 	1A((4==sCC

T]]#Sq)9%:;VZZNAxx499+++**,,,..000	1r   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   rz   r   r   r{   rX   r   r@   r   r   r   r   s       r   test_c_in_from_23casttypez*TestSharedMemory.test_c_in_from_23casttype  s    %%' 	1A((4==8C

T]]#Sq)9%:;VZZ\\3PAxx499+++**,,,..000	1r   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   rz   r   r   r{   rX   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   rz   r   r   r{   rX   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   rz   r   r   r{   rX   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   $$& 	P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	P(  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   rz   
issubdtyper{   integerr   r   iinfomaxr   rX   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   $$& 	IAvv!xx499+++]]177BJJ7F#dll1o.!''1B1F1FF((4<<qww7C&)EI

5&**"2"2C8 "GI 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_hidden3  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 dimensionsr/  )r   r   r0  r   r   r   rz   zerosr}   r{   r   r   r  r
  r   r   r1  s       r   test_hiddenzTestSharedMemory.test_hiddenG  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   rz   r4  r}   r{   r   r   )r<   r   r   s      r   test_optional_nonez#TestSharedMemory.test_optional_noned  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 rP   )r   rX   r   r   r7   r   r   r   r  s       r   test_optional_from_2seqz(TestSharedMemory.test_optional_from_2seqv  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   rX   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   )rz   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   rz   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   %%' 	4A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!	4r   N)"rZ   r[   r\   pytestfixturer   r   propertyr   r   r   r   markparametrizer  r  r  r  r  r  r  r  r  r  r  r#  r*  r2  r5  r7  r9  r;  r@  rB  r]   r   r   r   r   r  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]   )#sysr   platformrC  pathlibr   numpyrz   numpy._core._type_aliasesr   _c_names_dict r   r   dictr{   r   r   r   r   r5   r   r   r   intpr   clongdoubler   system	processorextendrw   r   r   r   r]   r   r   <module>rU     s   
      C   bhhsm*P
.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   