
    ,Vh\                     8   d dl Z 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
mZ d dlmZ ddlmZ da ed3d 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j8                         j&                  j:                  d!k7  s( ej<                         j&                  j>                  d"k  rnej                  d#k7  r_ ej@                          ejB                         fd$k7  r:ejE                  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/ d0      Z% G d1 d2      Z&y)4    N)Path)assert_assert_equal)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    V/home/dcms/DCMS/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_OPTIONALr2   upperr    )selfr;   r    is       r   __init__zIntent.__init__F   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__r;   )r>   names     r   __getattr__zIntent.__getattr__P   s5    zz|5=D~~d..$788r   c                 >    ddj                  | j                        z  S )Nz
intent(%s),)joinr;   r>   s    r   __str__zIntent.__str__V   s    sxx(8(89::r   c                      d| j                   z  S )Nz
Intent(%r)r;   rK   s    r   __repr__zIntent.__repr__Y   s    t//00r   c                 ,     t         fd|D              S )Nc              3   :   K   | ]  }|j                   v   y wNrN   ).0rF   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 rR   )lenr;   rX   rV   s     r   is_intent_exactzIntent.is_intent_exact_   s,    4##$E
2M~t~~u7MMr   N)	__name__
__module____qualname__r@   rG   rL   rO   rX   r[    r   r   r7   r7   E   s$    #% 9;1?Nr   r7   )BOOLBYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONG	ULONGLONGFLOATDOUBLECFLOATSTRING1STRING5r	   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   )rf   rk   rl   rl   rm   rn   ro         win32)Darwinarm)
LONGDOUBLECDOUBLECLONGDOUBLE)rh   rk   rl   ru   ru   )rm   rv   rw   rw   rv   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 rR   )
isinstancenpdtyper   itemstype_type_cachegetr=   object__new___init)clsrF   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        t        d      | _        d| _        t        j                  d      | _        n| j                  j                  d      rtt        | j                  d d    }t        t        d      | _        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	   
NPY_STRINGr   r
   STRINGr   r   SNPY_)r=   NAMEr   r2   r   type_numelsizer|   r}   
startswithintitemsizer   numchar	dtypechar)r>   rF   r4   s      r   r   z
Type._init   s'   JJL	99#		*D#D,7DMDK#DJYY!!(+		"1.D#D,7DM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   rK   s    r   rO   zType.__repr__   sV    		{+dmm_ =** &9T[[M :"nn-/ 	0r   c                 l    t         | j                     D cg c]  }| j                  |       c}S c c}w rR   )
_cast_dictr   rE   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 rR   )_type_namesrE   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 rR   r   r   	alignmentr   r3   ry   r>   bitstypesrF   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 rR   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 rR   r   r   s       r   larger_typeszType.larger_types   r   r   N)r\   r]   r^   r   r   r   rO   r   r   r   r   r   r_   r   r   ry   ry      s0    K #.0D:r   ry   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   rK   s    r   rO   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   r{   r|   ndarrayr   arr_attrrZ   rX   F2PY_INTENT_Cr$   pyarr
pyarr_attrreprarrayreshaper   r}   setflagstobytesr   	arr_equalry   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)shaperU   )r>   arr1arr2s      r   r   zArray.arr_equalX  s(    ::#!!##r   c                 ,    t        | j                        S rR   )strr   rK   s    r   rL   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   r{   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^   rO   r@   r   rL   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
   rC   )r   r   rB   outr
   rX   r[   rK   s    r   test_in_outzTestIntent.test_in_outk  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   j  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 rR   )r   ry   param)r>   r   r   r   requests       r   <lambda>z-TestSharedMemory.setup_type.<locals>.<lambda>y  s    Evs=4 r   )ry   r   r   r   r   )r>   r   s    `r   
setup_typezTestSharedMemory.setup_typev  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   )rp   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   rB   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}   rZ   r   rB   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)r2   r|   r   r   r}   r   r   r   rB   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}   rZ   r   inoutr   rB   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}   rZ   r   rB   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}   rZ   r   rB   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}   rZ   r   rB   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   rZ   r   r   rB   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}   rZ   r   rB   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   r|   r   r   r}   rZ   r   rB   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   r|   r   r   r}   rZ   r   rB   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   r|   r   r   r}   rZ   r   rB   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}   rZ   r   rB   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}   rZ   r   rB   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   r|   
issubdtyper}   integerr   r   iinfomaxr   rZ   r   rB   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_hidden5  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#   r0  z7intent(hide) should have failed on undefined dimensionsr1  )r   r   r2  r   r   r   r|   zerosr   r}   r    r
   r  r  r   r   r3  s       r   test_hiddenzTestSharedMemory.test_hiddenI  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   r9   r   r   r   r|   r6  r   r}   r    r
   )r>   r   r   s      r   test_optional_nonez#TestSharedMemory.test_optional_nonef  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 rR   )r   rZ   r   r   r9   r   r   r   r  s       r   test_optional_from_2seqz(TestSharedMemory.test_optional_from_2seqx  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   rZ   r   r   r9   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   rA  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)"r\   r]   r^   pytestfixturer   r   propertyr   r   r   r   markparametrizer  r
  r  r  r  r  r  r  r  r  r!  r%  r,  r4  r7  r9  r;  r=  rB  rD  r_   r   r   r   r   t  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_   )'ossysr   platformrE  pathlibr   numpyr|   numpy.testingr   r   numpy._core._type_aliasesr   _c_names_dict r   r   dictr}   r   r   r!   r   r7   r   r   r   intpr   clongdoubler   system	processorextendry   r   r   r   r_   r   r   <module>rY     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   