
    Dg]                        d dl Z 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m	Z	 d dl
mZ ddlmZ daed         Z ed2d  ee          dej        d	ej        ej        f          ie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j                    j        j        d!k    s ej                    j        j        d	k    rtej        d"k    ri ej                      ej!                    fd#k    rGe"                    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&dS )3    N)assert_assert_equal)typeinfo   )utilSTRING	CHARACTERc   c                  ^   t          j                    st          j        d           t          ~d} t
          j                            t                    }t          j	        dddd          t          j	        dd          t          j	        dd	          g}t          j
        || d
          adS dS )z6
    Build the required testing extension module

    zNo C compiler availableNz
        config.add_extension('test_array_from_pyobj_ext',
                             sources=['wrapmodule.c', 'fortranobject.c'],
                             define_macros=[])
        testssrcarray_from_pyobjzwrapmodule.czfortranobject.czfortranobject.htest_array_from_pyobj_ext)r   has_c_compilerpytestskipwrapospathdirname__file__getpathbuild_module_distutils)config_codedr   s      [/var/www/sysmax/venv/lib/python3.11/site-packages/numpy/f2py/tests/test_array_from_pyobj.pysetup_moduler      s        /-...|
 GOOH%%L%);^LLL 122L 122

 *3+FH H |    c                 `    t                               |           d         }t          |          S )N   )r   array_attrsflags2names)arrflagss     r   
flags_infor&   1   s(    S!!!$Eur   c                     g }dD ]=}t          |           t          t          |d          z  r|                    |           >|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#   6   sQ    D " "  u::h222 	"KK!!!Kr   c                   6    e Zd Zg fdZd Zd Zd Zd Zd ZdS )Intentc                     |d d          | _         d}|D ]E}|dk    r|t          j        z  }|t          t          d|                                z             z  }F|| _        d S )Nr   optionalF2PY_INTENT_)intent_listr   F2PY_OPTIONALr7   upperr%   )selfr@   r%   is       r   __init__zIntent.__init__N   sn    &qqq> 	C 	CAJ++~		'ABBB


r   c                 v    |                                 }|dk    rd}|                     | j        |gz             S )Nin_in)lower	__class__r@   )rC   names     r   __getattr__zIntent.__getattr__X   s9    zz||5==D~~d.$7888r   c                 <    dd                     | j                  z  S )Nz
intent(%s),)joinr@   rC   s    r   __str__zIntent.__str__^   s    sxx(899::r   c                     d| j         z  S )Nz
Intent(%r)r@   rP   s    r   __repr__zIntent.__repr__a   s    t/00r   c                 (    |D ]}|| j         vr dS dS )NFTrS   )rC   namesrK   s      r   	is_intentzIntent.is_intentd   s0     	 	D4+++uu ,tr   c                 `    t          | j                  t          |          k    o	 | j        | S N)lenr@   rW   )rC   rV   s     r   is_intent_exactzIntent.is_intent_exactj   s,    4#$$E

2M~t~u7MMr   N)	__name__
__module____qualname__rE   rL   rQ   rT   rW   r[    r   r   r<   r<   M   s{        #%    9 9 9; ; ;1 1 1  N N N N Nr   r<   )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   rt   rt   )rm   ru   rv   rv   ru   c                   B    e Zd Zi Zd Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
Typec                    t          |t          j                  rJ|}d }t                                          D ],\  }}t          |t
                    s|j        |j        u r|} n-| j                            |                                d           }||S t          
                    |           }|                    |           || j        |                                <   |S rY   )
isinstancenpdtyper   itemstype_type_cachegetrB   object__new___init)clsrK   dtype0nrD   objs         r   r   zType.__new__   s    dBH%% 	FD ((  1!!T** v{af/D/DDEo!!$**,,55?JnnS!!		$(+

%
r   c                 $   |                                 | _        | j        dk    rMt          | j                 }t          t          d          | _        d| _        t          j        d          | _        n| j        	                    d          ryt          | j        d d                  }t          t          d          | _        t          | j        dd          pd          | _        t          j        d| j                   | _        nat          | j                 }t          t          d	| j        z             | _        |j        d
z  | _        t          j        |j                  | _        | j        |j        k    sJ |j        | _        |j        | _        d S )Nr	   
NPY_STRINGr   r
   r   r!   r   SNPY_r   )rB   NAMEr   r7   r   type_numelsizer{   r|   
startswithintbitsr~   numchar	dtypechar)rC   rK   r9   s      r   r   z
Type._init   s;   JJLL	9##DI&D#D,77DMDK#DJJY!!(++ 		-DIbqbM*D#D,77DMdim0q11DK"3dk"3"344DJJDI&D#D&49*<==DM)q.DK$),,DJ}((((I	r   c                 f    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   rP   s    r   rT   zType.__repr__   sf    /	 / /dm / /*/ // /-1[/ / #n/ / 	0r   c                 @      fdt            j                 D             S )Nc                 :    g | ]}                     |          S r_   rJ   .0_mrC   s     r   
<listcomp>z#Type.cast_types.<locals>.<listcomp>   s%    CCCrr""CCCr   )
_cast_dictr   rP   s   `r   
cast_typeszType.cast_types   s$    CCCCZ	-BCCCCr   c                 *      fdt           D             S )Nc                 :    g | ]}                     |          S r_   r   r   s     r   r   z"Type.all_types.<locals>.<listcomp>   s%    999rr""999r   )_type_namesrP   s   `r   	all_typeszType.all_types   s    9999[9999r   c                     t           | j                 j        }g }t          D ]:}t           |         j        |k     r"|                    t          |                     ;|S rY   r   r   	alignmentr   r8   rx   rC   r   typesrK   s       r   smaller_typeszType.smaller_types   U    	", 	) 	)D~'$..T$ZZ(((r   c                     t           | j                 j        }g }t          D ]F}|| j        k    rt           |         j        |k    r"|                    t          |                     G|S rY   r   r   s       r   equal_typeszType.equal_types   se    	", 	) 	)Dty  ~'4//T$ZZ(((r   c                     t           | j                 j        }g }t          D ]:}t           |         j        |k    r"|                    t          |                     ;|S rY   r   r   s       r   larger_typeszType.larger_types   r   r   N)r\   r]   r^   r   r   r   rT   r   r   r   r   r   r_   r   r   rx   rx      s        K   # # #.0 0 0D D D: : :        r   rx   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )Arrayc           
      V    d| j          d| j         d| j         d| j         d| j         
S )NzArray(z, z)|arr=)r~   dimsintentr   r$   rP   s    r   rT   zArray.__repr__  sT    / / /di / /4; / /H/ /$(H/ / 	0r   c           
         || _         || _        || _        t          j        |          | _        || _        t                              |j	        |j
        ||j        |          | _        t          | j        t          j                  sJ t                              | j                  | _        t%          |          dk    r| j                            d          r[|j        t          j        z  sJ | j        j        d         rJ | j        j        d         sJ | j        d         t          j        z  rJ nZ|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 | _        d S |                    d          rrt          |t          j                  s$J t1          t          |                                 t          j        |          j        |                                 | _        njt          j         t          j        ||j                  j        | | j                            d          rdpd	
          | _        | j        j        |k    sJ | j                            | j        j        d                    | j        j        d         sJ ||f            t                              | j                  | _        t%          |          dk    r| j                            d          rE| j        j        d         rJ | j        j        d         sJ | j        d         t          j        z  rJ nD| 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                                        f                      | j        d         dd          | j        d         dd          k    s/J t1          | j        d         | j        d         f                      | j        d         | j        d         k    ssJ t1          | j        d         | j        d         t?          d| j        d         z  | j        d         z
            t?          | j        d                   |f                      |                    d          r$| j        d         d         | j         j
        k    sJ nE| j        d         d         | j         j
        k    sJ |                      | j        | j                  sJ t          | j        t          j                  r^|j
        tC          |j                  j
        k    r>|                    d          s+| j        d         dk    r| "                                s
J d S d S d S d S d S )Nr   r
   r)   r(   r!   cacher|   CF)orderr/   writer*            r   copy)#r~   r   r   r   deepcopyobj_copyr   r   callr   r   r%   r$   rz   r{   ndarrayr"   arr_attrrZ   rW   F2PY_INTENT_Cr)   pyarr
pyarr_attrreprarrayreshaper   r|   setflagstobytesr#   	arr_equalrx   has_shared_memory)rC   typr   r   r   s        r   rE   zArray.__init__  s   		c** 99S\ Z!6<6 6 $(BJ/////((22t99q=={$$S)) 	9t'99:::8>)4444x~l3333 M!,t|;<<<<"L4+==>>>x~i00008>,7777a(4<7888;DJ"DOFG$$ 	+c2:..??T#YY???.#.5::<<DJJ:CM222:DAk++C008S?C  DJ :#s****
$(."=>>>z	*99S&M999**4:66t99q=={$$S)) ;:+I6666z'5555 OA.=>>>>z'	2222:+L9999*T\9:::}Q4?1#55555}Q4?1#55555=q  =#tq'99994a "  ""
""$$	A < <999 }Q$(:233(????M!doa0G B B??? }Q4?1#5555tM!OADM!,,tq/AABBa())=
 8 8555 G$$ 	:=#A&$)*::::::=#A&$)*:::::NN4:tx88999dh
++ 	4zT#)__333''// 4DM!4D4I4I1133333	4 	4334 44I4I33r   c                 V    |j         |j         k    rdS ||k                                    S )NF)shapeall)rC   arr1arr2s      r   r   zArray.arr_equalc  s,    :##5!!###r   c                 *    t          | j                  S rY   )strr$   rP   s    r   rQ   zArray.__str__h  s    48}}r   c                     | j         | j        u rdS t          | j         t          j                  sdS t
                              | j                   }|d         | j        d         k    S )z6Check that created array shares data with input array.TFr   )r   r$   rz   r{   r   r   r"   r   )rC   obj_attrs     r   r   zArray.has_shared_memoryk  s\    8tx4$(BJ// 	5##DH--{dmA...r   N)r\   r]   r^   rT   rE   r   rQ   r   r_   r   r   r   r     sc        0 0 0U4 U4 U4n$ $ $
  / / / / /r   r   c                       e Zd Zd ZdS )
TestIntentc                    t          t          j        j                  dk    sJ t          j        j                            d          sJ t          j        j                            d          rJ t          j        j                            dd          sJ t          j        j                            dd          sJ t          j                            d          rJ d S )Nzintent(in,out)r
   rH   )r   r   rG   outr
   rW   r[   rP   s    r   test_in_outzTestIntent.test_in_outv  s    6:>""&66666z|%%c*****:<//44444z|++C66666z|++D#66666:'',,,,,,,r   N)r\   r]   r^   r   r_   r   r   r   r   u  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                            d	d
dg          ej                            dddg          e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!d&S )'TestSharedMemoryTclass)autousescopeparamsc                 b    t          j                  j        _        fdj        _        d S )Nc                 L    t          t          j                  |||          S rY   )r   rx   param)rC   r   r   r   requests       r   <lambda>z-TestSharedMemory.setup_type.<locals>.<lambda>  s$    Evs=4 =4 r   )rx   r   r   r~   r   )rC   r   s    `r   
setup_typezTestSharedMemory.setup_type  s8    ..4 4 4 4r   c                 t    | j         j                            d          r| j         j        }d|z  d|z  gS ddgS )Nr   12r   r   r~   r   r   r   rC   r   s     r   num2seqzTestSharedMemory.num2seq  sB    9>$$X.. 	0Y%F&L#,//1vr   c                     | j         j                            d          r(| 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  sr    9>$$X.. 	@Y%F6\3<v>6\3<v>@ @		999%%r   c                     |                      dgt          j        | j                  }|                                rJ d S )Nr   )r   r   rG   r   r   rC   as     r   test_in_from_2seqz"TestSharedMemory.test_in_from_2seq  s;    JJsFJ55&&(((((((r   c                    | j                                         D ]}t          j        | j        |j                  }|                     t          | j                  gt          j        |          }|j	        | j         j	        k    r=|
                                s(J t          | j         j        |j        f                      |
                                rJ d S Nr   )r~   r   r{   r   r   r|   rZ   r   rG   r   r   r   rC   tr   r   s       r   test_in_from_2casttypez'TestSharedMemory.test_in_from_2casttype  s    %%'' 	1 	1A(4<qw777C

C--.
C@@Ax49+++**,,NNdDIOQW3M.N.NNNNN..000000	1 	1r   r   wror   r   r   inp2seq23seqc                 H   t          | d|z             }t          j        || j        j        |          }|                    |dk               |                     |j        |dk    rt          j        j	        pt          j        |          }|
                                sJ dS )z5Test if intent(in) array can be passed without copiesr   r|   r   r   r   r   N)r7   r{   r   r~   r|   r   r   r   rG   r
   r   )rC   r   r   r  seqr   r   s          r   test_in_nocopyzTestSharedMemory.test_in_nocopy  s    
 dECK((hs$)/???ESL***JJsy#6&*,E6:M M""$$$$$$$r   c                    t          j        | j        | j        j                  }|                     t          | j                  gt          j        |          }|                                sJ 	 |                     dgt          j	        j        | j                  }t          d          # t          $ r.}t          |                              d          s Y d }~d S 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   rG   SystemError	TypeErrorr   r   )rC   r   r   msgs       r   test_inout_2seqz TestSharedMemory.test_inout_2seq  s    ht|49?;;;JJDL))*FL#>>""$$$$$	N

A3
 0$,??A LMMM  	 	 	s88&&LN N      	s   1,B, ,
C$6#CC$c                    t          j        | j        | j        j        d          }t          | j                  t          | j        d                   f}|                     |t          j        j        |          }|	                                sJ t          j        | j        | j        j        d          }t          | j                  t          | j        d                   f}	 |                     |t          j        j        |          }t          d          # t          $ r.}t          |                              d          s Y d }~d S 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   rG   r	  r   r
  
ValueErrorr   r   )rC   r   r   r   r  s        r   test_f_inout_23seqz#TestSharedMemory.test_f_inout_23seq  sQ   ht}DIO3GGGT]##Sq)9%:%:;JJufj.44""$$$$$ht}DIO3GGGT]##Sq)9%:%:;	F

5&*"2C88A DF F F  	 	 	s88&&>@ @      	s   &&D 
E%#EEc                 .   t          j        | j        | j        j                  }t          | j                  t          | j        d                   f}|                     |t          j        j        j	        |          }|
                                sJ d S Nr   r   )r{   r   r   r~   r|   rZ   r   rG   r
   r	  r   rC   r   r   r   s       r   test_c_inout_23seqz#TestSharedMemory.test_c_inout_23seq  sy    ht}DIO<<<T]##Sq)9%:%:;JJufjl0#66""$$$$$$$r   c                    | j                                         D ]q}t          j        | j        |j                  }|                     t          | j                  gt          j        j	        |          }|
                                rJ rd S r   )r~   r   r{   r   r   r|   rZ   r   rG   r   r   r   s       r   test_in_copy_from_2casttypez,TestSharedMemory.test_in_copy_from_2casttype  s    %%'' 	- 	-A(4<qw777C

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

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

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

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

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

T]##Sq)9%:%:;VZ\=N A **,,,,,,	- 	-r   c           	      2   | j                                         D ]}|j        | j         j        k    rt          j        | j        |j                  }t          | j                  f}|                     |t          j	        j
        j        |          }|                                sJ |                     |t          j	        j        |          }|                                sJ t          j        | j        |j        d          }|                     |t          j	        j
        j        |          }|                                sJ |                     |t          j	        j        |          }|                                sJ t          |j                              	 |                     |t          j	        j        |d d d                   }t          d          # t          $ r.}t!          |                              d          s Y d }~d }~ww xY wd S )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   rG   r
   r   r   r   r
  r  r   r   )rC   r   r   r   r   r  s         r   test_in_cache_from_2casttypez-TestSharedMemory.test_in_cache_from_2casttype  s   $$&& 	P 	PAx49+++(4<qw777C&&)E

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

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

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

5&*"2C88A&&((77$qw--777PJJufj&6DDbD	BB "NP P P    3xx**BD D     )	P 	Ps   /G
H&#HHc                    | j                                         D ]}|j        dk    r|j        | j         j        k    r$t	          j        | j        |j                  }t          | j                  f}	 |                     |t          j
        j        |           t          d          # t          $ r-}t          |                              d          s Y d }~d }~ww xY wd S )Nr   r   z1intent(cache) should have failed on smaller arrayr'  )r~   r   r   r   r{   r   r   r|   rZ   r   rG   r   r
  r  r   r   )rC   r   r   r   r  s        r   $test_in_cache_from_2casttype_failurez5TestSharedMemory.test_in_cache_from_2casttype_failure)  s   $$&& 	I 	IAv!!x49+++(4<qw777C&&)EI

5&*"2C888 "GI I I    3xx**BD D     	I 	Is   4&B))
C 3#CC c                    d}|                      |t          j        j        d           }|j        j        |k    sJ d}|                      |t          j        j        d           }|j        j        |k    sJ d}	 |                      |t          j        j        d           }t          d          # t          $ r.}t          |          	                    d          s Y d }~d S 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   rC   r   r   r  s       r   test_cache_hiddenz"TestSharedMemory.test_cache_hidden<  s   JJufl/66u{e####JJufl/66u{e####	L

5&,"3T::A JL L L  	 	 	s88&&HJ J      	s   8&B- -
C%7#C  C%c                     d}|                      |t          j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ d}|                      |t          j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ |j        j
        d         r|j        j
        d         rJ d}|                      |t          j        j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ |j        j
        d         s|j        j
        d         sJ d}	 |                      |t          j        d           }t          d          # t          $ r.}t          |                              d          s Y d }~d S 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   r{   zerosr~   r|   r%   r
   r
  r  r   r   r1  s       r   test_hiddenzTestSharedMemory.test_hiddenP  s   JJufk400u{e####{{15"(5	"H"H"HIIIIIJJufk400u{e####{{15"(5	"H"H"HIIIIIu{9%Gaek,.GGGGJJufhmT22u{e####{{15"(5	"H"H"HIIIII5;y)Gaek,.GGGG	K

5&+t44A IK K K  	 	 	s88&&HJ J      	s   %!G 
H#HHc                 H   d}|                      |t          j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ d}|                      |t          j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ |j        j
        d         r|j        j
        d         rJ d}|                      |t          j        j        d           }|j        j        |k    sJ |                    |j        t          j        || j        j	                            sJ |j        j
        d         s|j        j
        d         sJ d S )Nr,  r   r-  r)   r(   )r   r   r>   r$   r   r   r{   r4  r~   r|   r%   r
   )rC   r   r   s      r   test_optional_nonez#TestSharedMemory.test_optional_nonem  sq   JJufot44u{e####{{15"(5	"H"H"HIIIIIJJufot44u{e####{{15"(5	"H"H"HIIIIIu{9%Gaek,.GGGGJJufh/66u{e####{{15"(5	"H"H"HIIIII5;y)Gaek,.GGGGGGr   c                     | j         }t          |          f}|                     |t          j        |          }|j        j        |k    sJ |                                rJ d S rY   )r   rZ   r   r   r>   r$   r   r   r  s       r   test_optional_from_2seqz(TestSharedMemory.test_optional_from_2seq  s`    lSJJufos33u{e####&&(((((((r   c                    | j         }t          |          t          |d                   f}|                     |t          j        |          }|j        j        |k    sJ |                                rJ |                     |t          j        j        |          }|j        j        |k    sJ |                                rJ d S r  )	r   rZ   r   r   r>   r$   r   r   r
   r  s       r   test_optional_from_23seqz)TestSharedMemory.test_optional_from_23seq  s    mS3s1v;;'JJufos33u{e####&&(((((JJufo/55u{e####&&(((((((r   c                 d   t          j        | j        | j        j                  }|j        d         s|j        d         s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n J |j	        |u sJ |j        d         sJ |j        d         rJ d S 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&   ht}DIO<<<9Y'CCIl,CCCC	JJufnc221vayAE!HQK'''sAEl););'''a1vayAE!HQKNNNN28Bdio+N+N+NNNNNNNu||||y####9\******r   c                 @   | 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        }|                     |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n J |j
        |u sJ |j        d         sJ |j        d         rJ |j        j         | j         j         u sJ d S r=  )r~   r   r{   r   r   r|   r%   r   r   r?  r$   r   )rC   r   r   r   r   s        r   test_inplace_from_casttypez+TestSharedMemory.test_inplace_from_casttype  s   %%'' 	4 	4ADI~~(4=888C9>QV++++9>7777y+G	,0GGGGIE

5&.#66Aq6!9a+++T3,-?-?+++AE!HQKq6!9a O O O Orx>Bio0O 0O 0O O O O O O O5C<<<<9Y''''y....9>TY^33333!	4 	4r   N)"r\   r]   r^   r   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     s=       V^DDDD4 4 ED4
   X & & X&) ) )1 1 1 [WsDk22[WsCj11[UVW$566% % 76 21 32%N N NF F F$% % %- - -) ) )- - -1 1 11 1 1- - -- - -P P P:I I I&L L L(K K K:H H H$) ) )	) 	) 	)
+ 
+ 
+4 4 4 4 4r   r   r_   )'r   sysr   platformr   numpyr{   numpy.testingr   r   numpy.core.multiarrayr   	_typeinfo r   r   _tidictr~   r   r   r   r&   r#   r<   r   r   r   intpr|   itemsizeclongdoublesystem	processorextendrx   r   r   r   r_   r   r   <module>rV     s{   				 



        / / / / / / / / 7 7 7 7 7 7       4  dd3iicgq#-BCC 
H H H6  
  .N N N N N N N NB 
  ( 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+FF
8 !'*hZ7
8 "
9 "
9 &-
;  RWYY_""nbn&6&6&<&F!&K&KLG##X_ 2 2 4 459JJJ???@@@)&1 5 5 5  J| !+< 8 < < < !J}
 'x0Hi3HHJyN N N N N N N Nbl/ l/ l/ l/ l/ l/ l/ l/^- - - - - - - -o4 o4 o4 o4 o4 o4 o4 o4 o4 o4r   