
    pg\j&g                     T   S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJ	r
  SSKJr  \R                  R                  rSq\" S2S\R$                  " S5      0\
D6r	S rS	 rS
 rS r " S S5      r\" 5       r/ SQrSS/0r\S   S/-   \S'   \S   S/-   \S'   S/\S'   S/\S'   \S   SS/-   \S'   \S   SS/-   \S'   \S   SS/-   \S'   \S   SS/-   \S'   \S   S/-   \S'   \S   S/-   \S'   \S   S/-   \S'   \S   S/-   \S'   \S   SS/-   \S'   \S   / SQ-   \S'   \S   S/-   \S'   S/\S'   S/\S'   S/\S'   \R6                  " 5       R$                  R8                  S :w  d)  \R:                  " 5       R$                  R<                  S!::  ap  \R                  S";  a`  \R>                  " 5       \R@                  " 5       4S#:w  a:  \RC                  / S$Q5        \S   / S%Q-   \S&'   \S&   / S'Q-   \S('   \S   SS)/-   \S)'    " S* S+5      r" " S, S-5      r# " S. S/5      r$ " S0 S15      r%g)3    N)Path)c_names_dict   )util	CHARACTERcc                  `    [        [        5      R                  5       R                  S-  n U S-  $ )Nsrcarray_from_pyobj)r   __file__resolveparent)testroots    a/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/numpy/f2py/tests/test_array_from_pyobj.pyget_testdirr      s+    H~%%'..6H(((    c                  Z    [         c$  [        5       S-  /n [        R                  " U SS9q gg)z.
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    [         R                  U 5      S   n[        U5      $ )N   )r   array_attrsflags2names)arrflagss     r   
flags_infor   *   s"    S!!$Eur   c                     / nS H8  n[        U 5      [        [        US5      -  (       d  M'  UR                  U5        M:     U$ )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2KK!#$ Kr   c                   >    \ rS rSr/ 4S jrS rS rS rS rS r	Sr
g	)
IntentF   c                     US S  U l         SnU HB  nUS:X  a  U[        R                  -  nM  U[        [        SUR	                  5       -   5      -  nMD     X l        g )Nr   optionalF2PY_INTENT_)intent_listr   F2PY_OPTIONALr0   upperr   )selfr:   r   is       r   __init__Intent.__init__G   sW    &q>AJ+++~	'ABB	 
 
r   c                 p    UR                  5       nUS:X  a  SnU R                  U R                  U/-   5      $ )Nin_in)lower	__class__r:   )r=   names     r   __getattr__Intent.__getattr__Q   s5    zz|5=D~~d..$788r   c                 @    SSR                  U R                  5       S3$ )Nzintent(,))joinr:   r=   s    r   __str__Intent.__str__W   s!    $"2"234A66r   c                 $    SU R                   < S3$ )NzIntent(rK   r:   rM   s    r   __repr__Intent.__repr__Z   s    )),A..r   c                 .   ^  [        U 4S jU 5       5      $ )Nc              3   @   >#    U  H  oTR                   ;   v   M     g 7fNrQ   ).0rF   r=   s     r   	<genexpr>#Intent.is_intent.<locals>.<genexpr>^   s     >4+++s   )allr=   namess   ` r   	is_intentIntent.is_intent]   s    >>>>r   c                 p    [        U R                  5      [        U5      :H  =(       a    U R                  " U6 $ rV   )lenr:   r]   r[   s     r   is_intent_exactIntent.is_intent_exact`   s*    4##$E
2Mt~~u7MMr   )r   r:   N)__name__
__module____qualname____firstlineno__r?   rG   rN   rR   r]   ra   __static_attributes__ r   r   r5   r5   F   s$    #% 97/?Nr   r5   )BOOLBYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONG	ULONGLONGFLOATDOUBLECFLOATSTRING1STRING5r   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   )ro   rt   ru   ru   rv   rw   rx         )win32aix)Darwinarm)
LONGDOUBLECDOUBLECLONGDOUBLE)rq   rt   ru   r   r   )rv   r   r   r   r   c                   H    \ rS rSr0 rS rS rS rS rS r	S r
S rS	 rS
rg)Type   c                    [        U[        R                  5      (       aU  UnS n[        R	                  5        H9  u  p4[        U[
        5      (       a  M  UR
                  UR
                  L d  M7  Un  O   U R                  R                  UR                  5       S 5      nUb  U$ [        R                  U 5      nUR                  U5        XPR                  UR                  5       '   U$ rV   )
isinstancenpdtyper   itemstype_type_cachegetr<   object__new___init)clsrF   dtype0nr>   objs         r   r   Type.__new__   s    dBHH%%FD$**,!!T**v{{aff/DD - oo!!$**,5?JnnS!		$(+

%
r   c                 l   UR                  5       U l        U R                  S:X  aL  [        U R                     n[        R                  U l        SU l        [        R                  " S5      U l        GOU R                  R                  S5      (       az  [        U R                  S S    n[        R                  U l        [        U R                  SS  =(       d    S5      U l        [        R                  " SU R                   35      U l        Ok[        U R                     n[        [        SU R                  -   5      U l        UR                  U l        [        R                  " UR                  5      U l        U R
                  UR                  :X  d   eUR                  U l        UR                  U l        g )	Nr   r   r   STRINGr   r   SNPY_)r<   NAMEr   r   
NPY_STRINGtype_numelsizer   r   
startswithintr0   itemsizer   numchar	dtypechar)r=   rF   r2   s      r   r   
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                     SU R                    SU R                   SU R                   SU R                   SU R                   SU R
                   3$ )NzType(z)|type_num=z, dtype=z, type=z	, elsize=z, dtypechar=)r   r   r   r   r   r   rM   s    r   rR   Type.__repr__   sV    		{+dmm_ =** &9T[[M :"nn-/ 	0r   c                 p    [         U R                      Vs/ s H  oR                  U5      PM     sn$ s  snf rV   )
_cast_dictr   rE   r=   _ms     r   
cast_typesType.cast_types   s,    -7		-BC-Brr"-BCCCs   3c                 V    [          Vs/ s H  oR                  U5      PM     sn$ s  snf rV   )_type_namesrE   r   s     r   	all_typesType.all_types   s!    -89[rr"[999s   &c                     [         U R                     R                  n/ n[         H6  n[         U   R                  U:  d  M  UR	                  [        U5      5        M8     U$ rV   r   r   	alignmentr   r1   r   r=   bitstypesrF   s       r   smaller_typesType.smaller_types   O    DII&00DD!++d2T$Z(   r   c                     [         U R                     R                  n/ n[         HG  nX0R                  :X  a  M  [         U   R                  U:X  d  M-  UR	                  [        U5      5        MI     U$ rV   r   r   s       r   equal_typesType.equal_types   s\    DII&00Dyy D!++t3T$Z(	  
 r   c                     [         U R                     R                  n/ n[         H6  n[         U   R                  U:  d  M  UR	                  [        U5      5        M8     U$ rV   r   r   s       r   larger_typesType.larger_types   r   r   )r   r   r   r   r   r   N)rc   rd   re   rf   r   r   r   rR   r   r   r   r   r   rg   rh   r   r   r   r      s0    K #.0D:r   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	Array   c           
          SU R                    SU R                   SU R                   SU R                   SU R                   3
$ )NzArray(z, z)|arr=)r   dimsintentr   r   rM   s    r   rR   Array.__repr__   sD    2dii[4;;- @HH:VDHH:/ 	0r   c           
         Xl         X l        X0l        [        R                  " U5      U l        X@l        [        R                  UR                  UR                  X#R                  U5      U l        [        U R                  [        R                  5      (       d   e[        R!                  U R                  5      U l        [%        U5      S:  Ga7  U R                  R'                  S5      (       a  UR                  [        R(                  -  (       d   eU R                  R                  S   (       a   eU R                  R                  S   (       d   eU R"                  S   [        R*                  -  (       a   eOUR                  [        R(                  -  (       a   eU R                  R                  S   (       d   eU R                  R                  S   (       a   eU R"                  S   [        R*                  -  (       d   eUc  S U l        S U l        g UR'                  S5      (       ao  [        U[        R                  5      (       d   [1        [        U5      5      5       e[        R2                  " U5      R4                  " U6 R                  5       U l        O[        R2                  " [        R2                  " XAR6                  S9R4                  " U6 U R                  R'                  S5      =(       a    S=(       d    S	S
9U l        U R,                  R8                  U:X  d   eU R,                  R;                  U R                  R                  S   S9  U R,                  R                  S   (       d   XC45       e[        R!                  U R,                  5      U l        [%        U5      S:  a  U R                  R'                  S5      (       ah  U R,                  R                  S   (       a   eU R,                  R                  S   (       d   eU R.                  S   [        R*                  -  (       a   eOgU R,                  R                  S   (       d   eU R,                  R                  S   (       a   eU R.                  S   [        R*                  -  (       d   eU R"                  S   U R.                  S   :X  d   eU R"                  S   U R.                  S   :X  d   eU R"                  S   S::  a~  U R"                  S   U R.                  S   :X  d^   [1        U R"                  S   U R.                  S   U R                  R=                  5       U R,                  R=                  5       45      5       eU R"                  S   SS  U R.                  S   SS  :X  d,   [1        U R"                  S   U R.                  S   45      5       eU R"                  S   nUR'                  S5      (       aY  UR8                  U:X  a  UR                  S   (       d5  [?        S5      S/:X  d   eUS-  (       d   [?        S5       S35       eUS-  nOUS-  (       a   eXPR.                  S   :X  dn   [1        U R"                  S   U R.                  S   [?        SU R"                  S   -  U R.                  S   -
  5      [?        U R"                  S   5      U45      5       eUR'                  S5      (       a-  U R"                  S   S   U R                   R                  :  d   eOYU R"                  S   S   U R                   R                  :X  d   eU RA                  U R,                  U R                  5      (       d   e[        U R                  [        R                  5      (       aq  UR                  [C        UR8                  5      R                  :X  aC  UR'                  S5      (       d,  U R"                  S   S::  a  U RE                  5       (       d   eg g g g g )Nr   r   r"   r!   r   cacher   CF)orderr(   writer#            inplaceF_CONTIGUOUSi    r)   z	 not set.r   copy)#r   r   r   r   deepcopyobj_copyr   r   callr   r   r   r   r   r   ndarrayr   arr_attrr`   r]   F2PY_INTENT_Cr"   pyarr
pyarr_attrreprarrayreshaper   r   setflagstobytesr   	arr_equalr   has_shared_memory)r=   typr   r   r   	arr_flagss         r   r?   Array.__init__  sO   		c* 99S\\ ZZ!<<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MM2::DA{{,,S19cAcDJ ::##s***

$((.."=>zz	*9SM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 	? MM!$	I&&		S SYY~%>t$):(;;;;$F+d*;)<I'FF$I!D())OOA.. 	MM!OOADMM!,,tq/AABa()6
 1 	. G$$==#A&$))*:*::::==#A&$))*:*::::NN4::txx8898dhh

++zzT#))_333''//DMM!4D4I113333 5J/ 4 ,r   c                 \    UR                   UR                   :w  a  gX:H  R                  5       $ )NF)shaperZ   )r=   arr1arr2s      r   r   Array.arr_equalc  s&    ::#!!##r   c                 ,    [        U R                  5      $ rV   )strr   rM   s    r   rN   Array.__str__h  s    488}r   c                     U R                   U R                  L a  g[        U R                   [        R                  5      (       d  g[
        R                  U R                   5      nUS   U R                  S   :H  $ )z6Check that created array shares data with input array.TFr   )r   r   r   r   r   r   r   r   )r=   obj_attrs     r   r   Array.has_shared_memoryk  sY    88txx$((BJJ//##DHH-{dmmA...r   )	r   r   r   r   r   r   r   r   r   N)
rc   rd   re   rf   rR   r?   r   rN   r   rg   rh   r   r   r   r      s    0_4B$
/r   r   c                       \ rS rSrS rSrg)
TestIntentiu  c                 &   [        [        R                  R                  5      S:X  d   e[        R                  R                  R                  S5      (       d   e[        R                  R                  R                  S5      (       a   e[        R                  R                  R                  SS5      (       d   e[        R                  R                  R                  SS5      (       d   e[        R                  R                  S5      (       a   eg )Nzintent(in,out)r   rC   )r   r   rB   outr   r]   ra   rM   s    r   test_in_outTestIntent.test_in_outv  s    6::>>"&6666zz||%%c****::<<//4444zz||++C6666zz||++D#6666::'',,,,,r   rh   N)rc   rd   re   rf   r   rg   rh   r   r   r   r   u  s    -r   r   c                      \ rS rSr\R
                  " SS\S9\S 5       5       r\	S 5       r
\	S 5       rS rS	 r\R                  R                  S
SS/5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       rS rS rS rS rS rS rS rS rS rS rS rS rS  rS! rS" rS# r S$ r!S% r"S& r#S' r$S(r%g))*TestSharedMemoryi  Tclass)autousescopeparamsc                 x   ^ [        TR                  5      TR                  l        U4S jTR                  l        g )Nc                 D   > [        [        TR                  5      XU5      $ rV   )r   r   param)r=   r   r   r   requests       r   <lambda>-TestSharedMemory.setup_type.<locals>.<lambda>  s    Es=4r   )r   r   r   r   r   )r=   r  s    `r   
setup_typeTestSharedMemory.setup_type  s(      .4r   c                     U R                   R                  R                  S5      (       a   U R                   R                  nSU-  SU-  /$ SS/$ )Nr   12r   r   r   r   r   r   r=   r   s     r   num2seqTestSharedMemory.num2seq  sF    99>>$$X..YY%%F&L#,//1vr   c                     U R                   R                  R                  S5      (       a2  U R                   R                  nSU-  SU-  SU-  /SU-  SU-  SU-  //$ / SQ/ S	Q/$ )
Nr   r  r  3456)r   r   r   )ry   r   r   r	  r
  s     r   num23seqTestSharedMemory.num23seq  sm    99>>$$X..YY%%F6\3<v>6\3<v>@ @9%%r   c                     U R                  S/[        R                  U R                  5      nUR	                  5       (       a   eg )Nr   )r   r   rB   r  r   r=   as     r   test_in_from_2seq"TestSharedMemory.test_in_from_2seq  s6    JJsFJJ5&&(((((r   c                    U R                   R                  5        H  n[        R                  " U R                  UR
                  S9nU R                  [        U R                  5      /[        R                  U5      nUR                  U R                   R                  :X  aG  UR                  5       (       d0   [        U R                   R
                  UR
                  45      5       eM  UR                  5       (       d  M   e   g Nr   )r   r   r   r   r  r   r`   r   rB   r   r   r   r=   tr   r  s       r   test_in_from_2casttype'TestSharedMemory.test_in_from_2casttype  s    %%'A((4<<qww7C

C-.

C@Axx499+++**,,NdDIIOOQWW3M.NN,..0000 (r   r   wror   r   r   inp2seq23seqc                 v   [        U SU-   5      n[        R                  " X@R                  R                  US9nUR                  US:H  S9  U R                  UR                  US:H  =(       a    [        R                  R                  =(       d    [        R                  U5      nUR                  5       (       d   eg)z5Test if intent(in) array can be passed without copiesr   r   r   r  r   r   N)r0   r   r   r   r   r   r   r   rB   r   r   )r=   r   r   r!  seqr   r  s          r   test_in_nocopyTestSharedMemory.test_in_nocopy  s    
 dECK(hhs))//?ESL*JJsyy#6&**,,E6::M""$$$$r   c                    [         R                  " U R                  U R                  R                  S9nU R                  [        U R                  5      /[        R                  U5      nUR                  5       (       d   e U R                  S/[        R                  R                  U R                  5      n[        S5      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)Nr   r   z,intent(inout) should have failed on sequencez6failed to initialize intent(inout|inplace|cache) array)r   r   r  r   r   r`   r   inoutr   rB   SystemError	TypeErrorr   r   )r=   r   r  msgs       r   test_inout_2seq TestSharedMemory.test_inout_2seq  s    hht||499??;JJDLL)*FLL#>""$$$$	N

A3

 0 0$,,?A LMM  	s8&&LN NN	s   6C 
C6 C11C6c                    [         R                  " U R                  U R                  R                  SS9n[        U R                  5      [        U R                  S   5      4nU R                  U[        R                  R                  U5      nUR                  5       (       d   e[         R                  " U R                  U R                  R                  SS9n[        U R                  5      [        U R                  S   5      4n U R                  U[        R                  R                  U5      n[        S5      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)Nr   r%  r   r   z2intent(inout) should have failed on improper arrayz(failed to initialize intent(inout) array)r   r   r  r   r   r`   r   rB   r*  r   r+  
ValueErrorr   r   )r=   r   r   r  r-  s        r   test_f_inout_23seq#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< <
E0 E++E0c                 \   [         R                  " U R                  U R                  R                  S9n[        U R                  5      [        U R                  S   5      4nU R                  U[        R                  R                  R                  U5      nUR                  5       (       d   eg Nr   r   )r   r   r  r   r   r`   r   rB   r   r*  r   r=   r   r   r  s       r   test_c_inout_23seq#TestSharedMemory.test_c_inout_23seq  st    hht}}DIIOO<T]]#Sq)9%:;JJufjjll00#6""$$$$r   c                 D   U R                   R                  5        H  n[        R                  " U R                  UR
                  S9nU R                  [        U R                  5      /[        R                  R                  U5      nUR                  5       (       d  M   e   g r  )r   r   r   r   r  r   r`   r   rB   r   r   r  s       r   test_in_copy_from_2casttype,TestSharedMemory.test_in_copy_from_2casttype  sl    %%'A((4<<qww7C

C-.

EA**,,,, (r   c                     U R                  [        U R                  5      [        U R                  S   5      /[        R                  U R                  5      nUR                  5       (       a   eg Nr   )r   r`   r  r   rB   r   r  s     r   test_c_in_from_23seq%TestSharedMemory.test_c_in_from_23seq  sV    JJT]]1%5!67MM &&(((((r   c                 ^   U R                   R                  5        H  n[        R                  " U R                  UR
                  S9nU R                  [        U R                  5      [        U R                  S   5      /[        R                  U5      nUR                  5       (       d  M   e   g r5  )
r   r   r   r   r  r   r`   r   rB   r   r  s       r   test_in_from_23casttype(TestSharedMemory.test_in_from_23casttype  s|    %%'A((4==8C

T]]#Sq)9%:;VZZNA**,,,,	 (r   c                    U R                   R                  5        H  n[        R                  " U R                  UR
                  SS9nU R                  [        U R                  5      [        U R                  S   5      /[        R                  U5      nUR                  U R                   R                  :X  a  UR                  5       (       d   eM  UR                  5       (       d  M   e   g Nr   r%  r   )r   r   r   r   r  r   r`   r   rB   r   r   r  s       r   test_f_in_from_23casttype*TestSharedMemory.test_f_in_from_23casttype  s    %%'A((4==sCC

T]]#Sq)9%:;VZZNAxx499+++**,,,,..0000 (r   c                    U R                   R                  5        H  n[        R                  " U R                  UR
                  S9nU R                  [        U R                  5      [        U R                  S   5      /[        R                  R                  U5      nUR                  U R                   R                  :X  a  UR                  5       (       d   eM  UR                  5       (       d  M   e   g r5  )r   r   r   r   r  r   r`   r   rB   r   r   r   r  s       r   test_c_in_from_23casttype*TestSharedMemory.test_c_in_from_23casttype  s    %%'A((4==8C

T]]#Sq)9%:;VZZ\\3PAxx499+++**,,,,..0000 (r   c                 t   U R                   R                  5        H  n[        R                  " U R                  UR
                  SS9nU R                  [        U R                  5      [        U R                  S   5      /[        R                  R                  U5      nUR                  5       (       d  M   e   g rD  )r   r   r   r   r  r   r`   r   rB   r   r   r  s       r   test_f_copy_in_from_23casttype/TestSharedMemory.test_f_copy_in_from_23casttype  s    %%'A((4==sCC

T]]#Sq)9%:;VZZ__A **,,,, (r   c                    U R                   R                  5        H  n[        R                  " U R                  UR
                  S9nU R                  [        U R                  5      [        U R                  S   5      /[        R                  R                  R                  U5      nUR                  5       (       d  M   e   g r5  )r   r   r   r   r  r   r`   r   rB   r   r   r   r  s       r   test_c_copy_in_from_23casttype/TestSharedMemory.test_c_copy_in_from_23casttype  s    %%'A((4==8C

T]]#Sq)9%:;VZZ\\=N=NA **,,,, (r   c           	         U R                   R                  5        GH  nUR                  U R                   R                  :w  a  M*  [        R                  " U R
                  UR                  S9n[        U R
                  5      4nU R	                  U[        R                  R                  R                  U5      nUR                  5       (       d   eU R	                  U[        R                  R                  U5      nUR                  5       (       d   e[        R                  " U R
                  UR                  SS9nU R	                  U[        R                  R                  R                  U5      nUR                  5       (       d   eU R	                  U[        R                  R                  U5      nUR                  5       (       d   [        UR                  5      5       e U R	                  U[        R                  R                  US S S2   5      n[        S5      e   g ! [         a,  n[!        U5      R#                  S5      (       d  e  S nAGM8  S nAff = f)Nr   r   r%  z8intent(cache) should have failed on multisegmented array(failed to initialize intent(cache) array)r   r   r   r   r   r  r   r`   r   rB   r   r   r   r   r+  r1  r   r   )r=   r  r   r   r  r-  s         r   test_in_cache_from_2casttype-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Ds   #1H""
I, IIc                 
   U R                   R                  5        GH+  nUR                  S:X  a  M  UR                  U R                   R                  :  a  M<  [        R
                  " UR                  [        R                  5      nU(       aF  [        U R                  S   5      [        R                  " UR                  5      R                  :  a  M  [        R                  " U R                  UR                  S9n[        U R                  5      4n U R                  U[        R                  R                   U5        [#        S5      e   g ! [$         a,  n['        U5      R)                  S5      (       d  e  S nAGMb  S nAff = f)Nr   r   r   z1intent(cache) should have failed on smaller arrayrR  )r   r   r   r   r   
issubdtyper   integerr   r  iinfomaxr   r`   r   rB   r   r+  r1  r   r   )r=   r  is_intr   r   r-  s         r   $test_in_cache_from_2casttype_failure5TestSharedMemory.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Ds   +E
F E==Fc                    SnU R                  U[        R                  R                  S 5      nUR                  R
                  U:X  d   eSnU R                  U[        R                  R                  S 5      nUR                  R
                  U:X  d   eSn U R                  U[        R                  R                  S 5      n[        S5      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)Nr   r   r   rQ  r   z8intent(cache) should have failed on undefined dimensions2failed to create intent(cache|hide)|optional array)
r   r   r   hider   r   r+  r1  r   r   r=   r   r  r-  s       r   test_cache_hidden"TestSharedMemory.test_cache_hiddenA  s    JJufll//6uu{{e###JJufll//6uu{{e###	L

5&,,"3"3T:A JL L  	s8&&HJ JJ	s   +C 
D  C;;D c                 
   SnU R                  U[        R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eSnU R                  U[        R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eUR                  R                  S   (       a  UR                  R                  S   (       a   eSnU R                  U[        R                  R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eUR                  R                  S   (       d  UR                  R                  S   (       d   eSn U R                  U[        R                  S 5      n[        S5      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)	Nr^  r   r_  r"   r!   r`  z7intent(hide) should have failed on undefined dimensionsra  )r   r   rb  r   r   r   r   zerosr   r   r   r   r+  r1  r   r   rc  s       r   test_hiddenTestSharedMemory.test_hiddenU  s   JJufkk40uu{{e###{{155"((5		"HIIIIJJufkk40uu{{e###{{155"((5		"HIIIIuu{{9%aeekk,.GGGJJufhhmmT2uu{{e###{{155"((5		"HIIII55;;y)aeekk,.GGG	K

5&++t4A IK K  	s8&&HJ JJ	s   "!I 
J I==Jc                 @   SnU R                  U[        R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eSnU R                  U[        R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eUR                  R                  S   (       a  UR                  R                  S   (       a   eSnU R                  U[        R                  R                  S 5      nUR                  R                  U:X  d   eUR                  UR                  [        R                  " XR                  R                  S95      (       d   eUR                  R                  S   (       d  UR                  R                  S   (       d   eg )Nr^  r   r_  r"   r!   )r   r   r8   r   r   r   r   rg  r   r   r   r   )r=   r   r  s      r   test_optional_none#TestSharedMemory.test_optional_noner  sl   JJufoot4uu{{e###{{155"((5		"HIIIIJJufoot4uu{{e###{{155"((5		"HIIIIuu{{9%aeekk,.GGGJJufhh//6uu{{e###{{155"((5		"HIIII55;;y)aeekk,.GGG.Gr   c                     U R                   n[        U5      4nU R                  U[        R                  U5      nUR
                  R                  U:X  d   eUR                  5       (       a   eg rV   )r  r`   r   r   r8   r   r   r   r6  s       r   test_optional_from_2seq(TestSharedMemory.test_optional_from_2seq  sZ    llSJJufoos3uu{{e###&&(((((r   c                    U R                   n[        U5      [        US   5      4nU R                  U[        R                  U5      nUR
                  R                  U:X  d   eUR                  5       (       a   eU R                  U[        R                  R                  U5      nUR
                  R                  U:X  d   eUR                  5       (       a   eg r=  )	r  r`   r   r   r8   r   r   r   r   r6  s       r   test_optional_from_23seq)TestSharedMemory.test_optional_from_23seq  s    mmS3s1v;'JJufoos3uu{{e###&&((((JJufoo//5uu{{e###&&(((((r   c                    [         R                  " U R                  U R                  R                  S9nUR
                  S   (       d  UR
                  S   (       d   eUR                  nU R                  U[        R                  U5      nUS   S   UR                  S   S   :X  d   [        XR                  45      5       eU R                  R                  [        :w  a  SOSnXCR                  S   S'   UR                  S   S   [         R                  " X@R                  R                  S9:X  d   eUS   S   [         R                  " X@R                  R                  S9:w  d   eUR                  R
                  S   (       d   eUR                  R                  UL d   eUR                  R
                  S   (       a  UR                  R
                  S   (       a   e[        R                  UR                  5      nUS:X  d   S	5       eUS   S   [         R                  " X@R                  R                  S9:X  d   eUR
                  S   (       d  UR
                  S   (       d   eg )
Nr   r"   r!   r   r   6   Fr)   "no write-back resolution was done!)r   r   r  r   r   r   r   r   r   r   r   boolbaser   resolve_write_back_if_copy)r=   r   r   r  change_itemcodes         r   test_inplaceTestSharedMemory.test_inplace  s   hht}}DIIOO<99Y'CIIl,CCC		JJufnnc21vayAEE!HQK';sEEl);;' IIOOt3b!auuQx{bhh{))//JJJJ1vayBHH[		HHHHuu{{,---uuzzS   uu{{9%aeekk,.GGG..quu5qy>>>y1vayBHH[		HHHH99Y'CIIl,CCC,Cr   c                 8   [         R                  " U R                  U R                  R                  SS9nUR
                  S   (       a  UR
                  S   (       a   eU R                  UR                  [        R                  U5      nUR                  UL d   eg )Nr   r%  r"   r!   )
r   r   r  r   r   r   r   r   r   r   )r=   r   r  s      r   test_inplace_f_order%TestSharedMemory.test_inplace_f_order  sg    hht}}DIIOO3Gyy#CIIl,CCCJJsyy&..#6uu||r   c                    U R                   R                  5        GH%  nXR                   L a  M  [        R                  " U R                  UR
                  S9nUR
                  R                   UR                   :X  d   eUR
                  R                   U R                   R                   Ld   eUR                  S   (       d  UR                  S   (       d   eUR                  nUR
                  R                  U R                   R
                  R                  :H  n U R                  U[        R                  U5      nU(       d-  [        R                  UR                  5        U(       d   S5       eUS   S   UR                  S   S   :X  d   [!        X%R                  45      5       eU R                   R
                  ["        :w  a  S	OS
nXuR                  S   S'   UR                  S   S   [        R                  " XpR                   R
                  S9:X  d   eUS   S   [        R                  " XpR                   R
                  S9:w  d   eUR                  R                  S   (       d   eUR                  R$                  UL d   e[        R                  UR                  5      nUS:X  d   S5       eUS   S   [        R                  " XpR                   R
                  S9:X  d   eUR                  S   (       d  UR                  S   (       d   eUR
                  R                   U R                   R                   La  GM&   e   g ! [         a*  nU(       a   S5       eS[        U5      ;   d   e S nA  g S nAff = f)Nr   r"   r!   z(Array not created while having same kindznot compatiblez*Array created despite not having same kindr   r   rt  Fr)   ru  )r   r   r   r   r  r   r   r   kindr   r   r1  r   r   rx  r   r   rv  rw  )	r=   r  r   r   	same_kindr  excry  rz  s	            r   test_inplace_from_casttype+TestSharedMemory.test_inplace_from_casttype  s   %%'AII~((4==8C99>>QVV+++99>>777yy+		,0GGGIIE		$))//*>*>>IJJufnnc: //6 N"NNyq6!9a+?T3,-??+ $		4 7"UK%EE!HQK558A;"((;iioo"NNNNq6!9IIOO LLLL55;;011155::$$$221559D19BBB9q6!9IIOO LLLLyy+		,0GGG99>>777K (  $P&PP}'3s8333s   !M
M:M55M:rh   N)&rc   rd   re   rf   pytestfixturer   classmethodr  propertyr  r  r  r  markparametrizer'  r.  r2  r7  r:  r>  rA  rE  rH  rK  rN  rS  r[  rd  rh  rk  rn  rq  r{  r~  r  rg   rh   r   r   r   r     s,   ^^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$)	)D0'8r   r   rh   )&r   platformsyspathlibr   r  numpyr   numpy._core._type_aliasesr   _c_names_dict r   r  slow
pytestmarkr   dictr   r   r   r   r   r5   r   r   r   intpr   clongdoubler   system	processorextendr   r   r   r   rh   r   r   <module>r     s     
    C [[
  hhsm)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 &-
;  WWY__"bnn&6&<&<&F&F!&KLL 00__ 2 2 459JJ?@)&1 5  J| !+< 8 < !J}
 'x0Hi3HHJyN Nbv/ v/r- -]8 ]8r   