
    J/Ph                        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Zd dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZmZmZ d dlZ edd          Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Z G d de          Z  G d de          Z! G d de!e          Z" G d de!          Z# G d de#e          Z$ G d de$          Z% G d de#e          Z& G d d e'          Z( G d! d"e(e          Z) G d# d$e)          Z* G d% d&e*          Z+ G d' d(e(e          Z, G d) d*e           Z- G d+ d,e           Z. G d- d.e          Z/ G d/ d0e           Z0 G d1 d2e          Z1 G d3 d4ee           Z2 G d5 d6ee          Z3 ej4         e5ed7          d8           G d9 d:ee                      Z6d; Z7e8d<k    r ej9                     dS dS )=    N)TypingError)njit)typesutilsconfig)MemoryLeakMixinTestCasetagskip_if_32bitT)_nrtnogilc                 0    t          j        | ||f          S Nnpconcatenateabcs      Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_dyn_array.pynp_concatenate1r      s    >1a)$$$    c                 4    t          j        | ||f|          S Naxisr   r   r   r   r   s       r   np_concatenate2r      s    >1a)$////r   c                 0    t          j        | ||f          S r   r   stackr   s      r   	np_stack1r#      s    8Q1Ir   c                 4    t          j        | ||f|          S r   r!   r   s       r   	np_stack2r%      s    8Q1ID))))r   c                 0    t          j        | ||f          S r   )r   hstackr   s      r   	np_hstackr(          9aAYr   c                 0    t          j        | ||f          S r   )r   vstackr   s      r   	np_vstackr,   "   r)   r   c                 0    t          j        | ||f          S r   )r   	row_stackr   s      r   np_row_stackr/   %   s    <Aq	"""r   c                 0    t          j        | ||f          S r   )r   dstackr   s      r   	np_dstackr2   (   r)   r   c                 0    t          j        | ||f          S r   )r   column_stackr   s      r   np_column_stackr5   +   s    ?Aq!9%%%r   c                       e Zd ZddZdS )BaseTestTc                 t   t          |          }|D ]} || } || }|                     |j        |j                   |                     |j        |j                   |                     ||           |r!t
          j                            ||           t
          j                            ||           d S r   )	nrtjitassertEqualsizedtypeassertStridesEqualr   testingassert_equalassert_allclose)selfpyfuncargslistexactcfuncargsexpectedrets           r   check_outputszBaseTest.check_outputs1   s    v 		: 		:Dvt}H%,CSXx}555SY777##C222 :
''#6666
**8S9999		: 		:r   N)T)__name__
__module____qualname__rI    r   r   r7   r7   /   s(        : : : : : :r   r7   c                       e Zd Zd ZdS )NrtRefCtTestc                 F    |                      |j        j        |           d S r   )r:   baserefcount)rA   arrexpects      r   assert_array_nrt_refctz#NrtRefCtTest.assert_array_nrt_refct@   s#    *F33333r   N)rJ   rK   rL   rU   rM   r   r   rO   rO   ?   s#        4 4 4 4 4r   rO   c                       e 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ed             Zd Zd Zd Zd ZdS )TestDynArrayc                 "   t           d             } |            }|                     |d           t          j                            d|           |                     |j        d           |                     |j        d           |                     |j        t          j        t          j	                             |                     |j
        d           |                    d           t          j                            d|           ~d S )Nc                  8    t          j        d          } d| d<   | S )NrM   *   r   emptyrS   s    r   fooz'TestDynArray.test_empty_0d.<locals>.fooG   s    (2,,CCGJr      rZ   rM   {   )r9   rU   r   r>   r?   r:   r;   shaper<   float64stridesfill)rA   r^   rS   s      r   test_empty_0dzTestDynArray.test_empty_0dF   s    		 	 
	
 cee##C+++

C(((1%%%B'''BHRZ$8$8999b)))

S)))CCr   c                    t           d             }d} ||          }|                     |d           t          j                            t          j        |          |           |                     |j        |           |                     |j        |f           |                     |j	        t          j	        t          j
                             |                     |j        t          j	        t          j
                  j        f           |                    d           t          j                            d|           ~d S )Nc                 \    t          j        |           }t          |           D ]}|||<   |S r   )r   r\   range)nrS   is      r   r^   z'TestDynArray.test_empty_1d.<locals>.fooY   s4    (1++C1XX  AJr      r_   r`   )r9   rU   r   r>   r?   aranger:   r;   ra   r<   rb   rc   itemsizerd   )rA   r^   ri   rS   s       r   test_empty_1dzTestDynArray.test_empty_1dX   s   		 	 
	 c!ff##C+++

	!c2221%%%QD)))BHRZ$8$8999rx
';';'D&FGGG

S)))CCr   c                    d }t          |          }d}d} |||          } |||          }|                     |d           t          j                            ||           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   ~d S )Nc                     t          j        | |ft           j                  }t          |           D ]}t          |          D ]}||z   |||f<   |S r   r   r\   int32rh   )mri   rS   rj   js        r   rB   z*TestDynArray.test_empty_2d.<locals>.pyfuncn   sb    (Aq628,,C1XX & &q & &A !AC1II& Jr      rk   r_   	r9   rU   r   r>   r?   r:   r;   ra   rc   )rA   rB   rE   rs   ri   expected_arrgot_arrs          r   test_empty_2dzTestDynArray.test_empty_2dm   s    	 	 	 vva||%1++##GQ///

g666*GL999+W];;;-w???GGr   c                    d }t          |          }d}d}d} ||||          } ||||          }|                     |d           t          j                            ||           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   ~d S )Nc                     t          j        | ||ft           j                  }t          |           D ]4}t          |          D ]"}t          |          D ]}||z   |z   ||||f<   #5|S r   rq   )rs   ri   prS   rj   rt   ks          r   rB   z*TestDynArray.test_empty_3d.<locals>.pyfunc   s    (Aq!9bh//C1XX 1 1q 1 1A"1XX 1 1'(1uqyAq!G11 Jr   ru   rk      r_   rv   rA   rB   rE   rs   ri   r|   rw   rx   s           r   test_empty_3dzTestDynArray.test_empty_3d   s    	 	 	 vvaA%1a..##GQ///

g666*GL999+W];;;-w???GGr   c                    d }t          |          }d}d}d} ||||          } ||||          }|                     |d           t          j                            ||           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   ~d S )Nc                     t          j        | |ft           j                  }t          |           D ]}t          |          D ]}||z   |||f<   ||         S r   rq   )rs   ri   r|   rS   rj   rt   s         r   rB   z1TestDynArray.test_empty_2d_sliced.<locals>.pyfunc   sf    (Aq628,,C1XX & &q & &A !AC1II& q6Mr   ru   rk   r~   r_   rv   r   s           r   test_empty_2d_slicedz!TestDynArray.test_empty_2d_sliced   s    	 	 	 vvaA%1a..##GQ///

g666*GL999+W];;;-w???GGr   c                 0   t          j        dt           j                  t          j                  }fd}t          |          } |            }|                     |dz   t          j                             t           j                            |           t           j                            t          j        dt           j                             t           j                            |t          j        dt           j                             ~t          j
                     |                     |dz   t          j                             ~t          j
                     |                     |t          j                             d S )Nru   r<   c                       S r   rM   ys   r   return_external_arrayzDTestDynArray.test_return_global_array.<locals>.return_external_array   s    Hr   r_   )r   onesfloat32sysgetrefcountr9   r:   r>   r?   gccollect)rA   	initrefctr   rE   outr   s        @r   test_return_global_arrayz%TestDynArray.test_return_global_array   sR   GARZ(((OA&&		 	 	 	 	 ,--egg 	Q(:(:;;;

3'''

271BJ#?#?#?@@@

RWQbj%A%A%ABBB

Q(:(:;;;

COA$6$677777r   c                    t          j        dt           j                  fd}t          |          } |            }|                     |j                   dd          }t           j                            ||           t           j                            |t          j        dt           j                             t           j                            |t          j        dt           j                             d S )Nru   r   c                       dd          S Nr~   rM   r   s   r   r   zKTestDynArray.test_return_global_array_sliced.<locals>.return_external_array   s    QRR5Lr   r~   )r   r   r   r9   assertIsNonerQ   r>   r?   )rA   r   rE   r   yyr   s        @r   test_return_global_array_slicedz,TestDynArray.test_return_global_array_sliced   s    GARZ(((	 	 	 	 	 ,--egg#(###qrrU

C(((

BGARZ$@$@$@AAA

RWQbj%A%A%ABBBBBr   c                 n   d }t          j        dt           j                  }t          |          } ||          } ||          }t           j                            ||           t           j                            ||           |                     ||           |                     ||           d S )Nc                     | S r   rM   r   s    r   rB   z4TestDynArray.test_array_pass_through.<locals>.pyfunc   s    Hr   ru   r   )r   r   r   r9   r>   r?   assertIs)rA   rB   rS   rE   rG   gots         r   test_array_pass_throughz$TestDynArray.test_array_pass_through   s    	 	 	 garz***v5::fSkk

#...

#...h$$$h$$$$$r   c                    d }t          j        dt           j                  }t          j        |          }t          |          } ||          }|                     |dz   t          j        |                      ||          }|                     |dz   t          j        |                     t           j                            |||j	        dz                      t           j                            ||           ~|                     |dz   t          j        |                     ~|                     |t          j        |                     d S )Nc                 &    | | j         dz  d          S r   )r;   r   s    r   rB   z;TestDynArray.test_array_pass_through_sliced.<locals>.pyfunc   s    QVq[\\?"r   ru   r   r_   r~   )
r   r   r   r   r   r9   r:   r>   r?   r;   )rA   rB   rS   r   rE   r   rG   s          r   test_array_pass_through_slicedz+TestDynArray.test_array_pass_through_sliced   s0   	# 	# 	# garz***OC((	veCjjQ(<(<===6#;;Q(<(<===

#ch!m*<===

#...Q(<(<===COC$8$899999r   c                 :   d }t          |          }t          j                            d          }t          j                            d          }t          j                             |||           |||                     |                      |||          d           t          j                            d                              dd          }t          j                            d                              dd          }t          j                             |||           |||                     |                      |||          d           t          j                            d                              ddd          }t          j                            d                              ddd          }t          j                             |||           |||                     |                      |||          d           d S )Nc                 d    t          j        | j                  }t          j        | ||           |S r   )r   r\   ra   add)r   r   r   s      r   rB   z=TestDynArray.test_ufunc_with_allocated_output.<locals>.pyfunc  s,    (17##CF1aJr   
   r_   r~      F      )r9   r   randomr>   r?   rU   reshape)rA   rB   rE   arr_aarr_bs        r    test_ufunc_with_allocated_outputz-TestDynArray.test_ufunc_with_allocated_output  s   	 	 	
 v 	  $$	  $$

ue 4 4 %eU 3 3	5 	5 	5 	##EE%$7$7;;; 	  $$,,Q22	  $$,,Q22

ue 4 4 %eU 3 3	5 	5 	5 	##EE%$7$7;;; 	  $$,,Q155	  $$,,Q155

ue 4 4 %eU 3 3	5 	5 	5 	##EE%$7$7;;;;;r   c                    d }t          |          d}t          j                            dd|          }|                                }t          j                             ||           |                     t          j                            ||           g }g }g }fd}t          d          D ]}	t          j                            dd|          }t          j        |          }
t          j
        |||
fd                    |	                    }|                    |           |                    |           |                    |
           |D ]}|                                 |D ]}|                                 t          ||          D ].\  }}
t          j                             ||          |
           /dS )	z
        This test exercises the array allocation in multithreaded usecase.
        This stress the freelist inside NRT.
        c                 v   t          j        | j                  }t          |j                  D ]}d||<   t          | d                   D ]m}t          j        | j                  }t          |j                  D ]}| |         ||<   t          |j                  D ]}||xx         ||         |z   z  cc<   n|S )Nr   r   r\   r;   rh   )inpr   rj   tmprt   s        r   rB   z/TestDynArray.test_allocation_mt.<locals>.pyfunc.  s    (38$$C 38__  A3q6]] ) )hsx((sx $ $A VCFFsx ) )AFFFc!fqj(FFFF) Jr   r   r_   c                 (     |           |d d <   d S r   rM   )r   r   rE   s     r   wrappedz0TestDynArray.test_allocation_mt.<locals>.wrappedO  s    U3ZZCFFFr   d   	worker{0}targetrF   nameN)r9   r   r   randintcopyr>   r?   rh   
empty_like	threadingThreadformatappendstartjoinzip)rA   rB   r;   rS   
frozen_arrworkersinputsoutputsr   rj   r   threadr   rE   s                @r   test_allocation_mtzTestDynArray.test_allocation_mt(  s   	 	 	& vi2t,,XXZZ


sUU3ZZ888


C000	  	  	  	  	  s 	  	 A)##Ar400C-$$C%W,/:+6+=+=a+@+@B B BF NN6"""MM#NN3  	 	FLLNNNN  	 	FKKMMMM FG,, 	6 	6HCJ##FF3KK5555	6 	6r   c                    d }t          |          d}t          j        |t                    }t	          j        |          }t          j        d          } |||          }t          j        	                    | ||                     ~| 
                    |t	          j        |                     g }g }g }	fd}
t          d          D ]}t          j        |          }t          j        d          }t          j        |
|||fd                    |                    }|                    |           |                    |           |	                    |           |D ]}|                                 |D ]}|                                 t'          |	|          D ]/\  }}t          j        	                     |||          |           0~~| 
                    |t	          j        |                     d	S )
zE
        This test exercises the refct in multithreaded code
        c                     t          j        |j                  }t          |j                  D ]}||         dz   ||<   t          |           D ]}||}}|S Nr_   r   )ri   r   r   rj   s       r   rB   z*TestDynArray.test_refct_mt.<locals>.pyfuncn  sb    (38$$C38__ $ $Q!A1XX $ $SJr   r   r   i  c                 *     | |          |d d <   d S r   rM   )ri   inputr   rE   s      r   r   z+TestDynArray.test_refct_mt.<locals>.wrapped  s    U1e__CFFFr   r   r   r   N)r9   r   rl   floatr   r   r   	randranger>   r?   r:   rh   r\   r   r   r   r   r   r   r   )rA   rB   r;   r   expected_refctswapctrG   r   r   swapctsr   rj   r   r   rE   s                 @r   test_refct_mtzTestDynArray.test_refct_mti  s0   
	 	 	 v	$e,,,//!$''6&%((

%%*>*>???)?)?@@@	% 	% 	% 	% 	% s 		# 		#A(4..C%d++F%W,2E3+?+6+=+=a+@+@B B BF NN6"""NN3NN6""""  	 	FLLNNNN  	 	FKKMMMM w00 	@ 	@KFCJ##FF65$9$93????W)?)?@@@@@r   c                 B   t           d             }|                                  |                     t                    5 } |t          j        j        dz  dz             d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )Nc                 .    t          j        |            d S r   r[   )xs    r   r^   z1TestDynArray.test_invalid_size_array.<locals>.foo  s    HQKKKKKr      r~   zAllocation failed)
r   disable_leak_checkassertRaisesMemoryErrorr   size_tmaxvalassertInstr	exception)rA   r^   raisess      r   test_invalid_size_arrayz$TestDynArray.test_invalid_size_array  s     
	 	 
	 	!!!{++ 	/vC#q(A-...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	)3v/?+@+@AAAAAs   !A,,A03A0c                 j   d }t          |          }t          j                            d          }t          j                            d          }d}t          j        |          t          j        |          f} ||||           ||||          }}|                     |d         j                   |                     |d         j                   t          j                            ||           ~~| 	                    |t          j        |          t          j        |          f           d S )Nc                 6    t          |          D ]}|| }} | |fS )z5Swap array x and y for t number of times
            rh   r   r   trj   s       r   rB   z&TestDynArray.test_swap.<locals>.pyfunc  s-     1XX  !1a4Kr   r   r   r_   )
r9   r   r   r   r   r   rQ   r>   r?   r:   )	rA   rB   rE   r   r   r   r   rT   r   s	            r   	test_swapzTestDynArray.test_swap  s   	 	 	 vIS!!IS!!OA&&(:(::	fQ1oouuQ1~~#a&+&&&#a&+&&&

,,,CS_Q%7%79K9K$LMMMMMr   c                 h   d }t          |          }t          j                            d          }t          j        |          } ||          \  }} ||          \  }}|                     ||           |                     ||           t          j                            ||           t          j                            ||           ~~|                     |t          j        |                     |                     t          j        |          t          j        |                     d S )Nc                     t          j        | j                  }t          |j                  D ]}| |         dz   ||<   | |fS r   r   )r   r   rj   s      r   rB   z7TestDynArray.test_return_tuple_of_array.<locals>.pyfunc  sF      A16]]    tax!a4Kr   r   )	r9   r   r   r   r   r   r>   r?   r:   )	rA   rB   rE   r   r   
expected_x
expected_ygot_xgot_ys	            r   test_return_tuple_of_arrayz'TestDynArray.test_return_tuple_of_array  s   	 	 	 vIQOA&&	!'
JuQxxua$$$a


E222


E222COA$6$677744coe6L6LMMMMMr   c                    d }t          |          }t          j                            d          } ||          \  }} ||          \  }}t          j                            ||           t          j                            ||           |                     dt          j        |                     |                     dt          j        |                     d S )Nc                     t          j        | j                  }t          |j                  D ]}| |         dz   ||<   ||f}|S r   r   )r   r   rj   r   s       r   rB   z?TestDynArray.test_return_tuple_of_array_created.<locals>.pyfunc  sK      A16]]    tax!Q$CJr   r   r~   )r9   r   r   r>   r?   r:   r   r   )rA   rB   rE   r   r   r   r   r   s           r   "test_return_tuple_of_array_createdz/TestDynArray.test_return_tuple_of_array_created  s    	 	 	 vIQ!'
JuQxxu


E222


E222COE22333COE2233333r   c                    t           d             fd}t          |          }t          j        d          }t          j        |          }|                     |t          j         ||                               |                     |t          j         ||                               |                     |t          j        |                     dS )z_
        Dispatcher returns a new reference.
        It need to workaround it for now.
        c                     | S r   rM   )r   s    r   innerz7TestDynArray.test_issue_with_return_leak.<locals>.inner   s    Jr   c                      |           S r   rM   )r   r   s    r   rB   z8TestDynArray.test_issue_with_return_leak.<locals>.pyfunc  s    588Or   r   N)r9   r   rl   r   r   r:   )rA   rB   rE   rS   	old_refctr   s        @r   test_issue_with_return_leakz(TestDynArray.test_issue_with_return_leak  s    
 
	 	 
		 	 	 	 	 vimmOC((	COFF3KK$@$@AAACOEE#JJ$?$?@@@COC$8$899999r   N)rJ   rK   rL   re   rn   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r   r   rW   rW   D   s1         $  *  .  2  08 8 86C C C% % %: : :,"< "< "<H?6 ?6 ?6B;A ;A ;Az B B ]BN N N4N N N.4 4 4*: : : : :r   rW   c                   &    e Zd Zd Zd Zd Zd ZdS )ConstructorBaseTestc                 `   t          |          } |            } |            }|                     |d           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           t          j	        |          }|
                    d           |
                    d           t          j                            ||           d S )Nr_   r`   )r9   rU   r:   r;   ra   r<   rc   check_result_valuer   r   rd   r>   r?   )rA   rB   rE   rG   rH   s        r   check_0dzConstructorBaseTest.check_0d  s   v688egg##C+++8=111HN333HN333h&6777X...=%%c

X.....r   c                 2   t          |          }d} ||          } ||          }|                     |d           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           t          j	        |          }|
                    d           |
                    d           t          j                            ||           |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     t          |j                  d           d S )Nrk   r_   r`   negative dimensions not allowedr9   rU   r:   r;   ra   r<   rc   r   r   r   rd   r>   r?   r   
ValueErrorr   r   )rA   rB   rE   ri   rG   rH   cms          r   check_1dzConstructorBaseTest.check_1d#  s   v6!99eAhh##C+++8=111HN333HN333h&6777X...=%%c

X...z** 	bE"III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	R\**,MNNNNNs   E$$E(+E(c                 >   t          |          }d\  }} |||          } |||          }|                     |d           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     ||           t          j	        |          }|
                    d           |
                    d           t          j                            ||           |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     t          |j                  d           d S )Nr~   rk   r_   r`   r~   r   r   r   )rA   rB   rE   rs   ri   rG   rH   r  s           r   check_2dzConstructorBaseTest.check_2d8  s   v16!Q<<eAqkk##C+++8=111HN333HN333h&6777X...=%%c

X...z** 	bE!RLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	R\**,MNNNNNs   E**E.1E.c                     t          |          }|                     t                    5 } |             ddd           n# 1 swxY w Y   |                     dt	          |j                             dS )zAChecks that pyfunc will error, not segfaulting due to array size.Nzarray is too big)r9   r   r  r   r   r   )rA   rB   rE   es       r   check_alloc_sizez$ConstructorBaseTest.check_alloc_sizeM  s    vz** 	aEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 		
 	
 	
 	
 	
s   AAAN)rJ   rK   rL   r   r  r  r	  rM   r   r   r   r     sV        / / / O O O*O O O*
 
 
 
 
r   r   c                   ~     e Zd Z f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 xZS )TestNdZerosc                 x    t          t          |                                            t          j        | _        d S r   )superr  setUpr   zerosrB   rA   	__class__s    r   r  zTestNdZeros.setUpZ  s,    k4  &&(((hr   c                 F    t           j                            ||           d S r   r   r>   r?   rA   rH   rG   s      r   r   zTestNdZeros.check_result_value^       

X.....r   c                 J    | j         fd}|                     |           d S )Nc                        d          S NrM   rM   )rB   s   r   funcz!TestNdZeros.test_0d.<locals>.funcc  s    6"::r   )rB   r   rA   r  rB   s     @r   test_0dzTestNdZeros.test_0da  s;    	 	 	 	 	dr   c                 J    | j         fd}|                     |           d S )Nc                      |           S r   rM   ri   rB   s    r   r  z!TestNdZeros.test_1d.<locals>.funci  s    6!99r   rB   r  r  s     @r   test_1dzTestNdZeros.test_1dg  s;    	 	 	 	 	dr   c                 J    | j         fd}|                     |           d S )Nc                 0     | t           j                  S r   r   rr   r  s    r   r  z'TestNdZeros.test_1d_dtype.<locals>.funco  s    6!RX&&&r   r  r  s     @r   test_1d_dtypezTestNdZeros.test_1d_dtypem  s;    	' 	' 	' 	' 	'dr   c                 v    | j         t          j        d          fd}|                     |           d S )Nrr   c                      |           S r   rM   ri   _dtyperB   s    r   r  z0TestNdZeros.test_1d_dtype_instance.<locals>.funcw      6!V$$$r   )rB   r   r<   r  rA   r  r(  rB   s     @@r   test_1d_dtype_instancez"TestNdZeros.test_1d_dtype_instances  sP    '""	% 	% 	% 	% 	% 	%dr   c                     | j         dfd}|                     |           fd}|                     |           d S )Nrr   c                      |           S r   rM   r'  s    r   r  z+TestNdZeros.test_1d_dtype_str.<locals>.func~  r)  r   c                      | d          S )N
complex128rM   r  s    r   r  z+TestNdZeros.test_1d_dtype_str.<locals>.func  s    6!\***r   r  r*  s     @@r   test_1d_dtype_strzTestNdZeros.test_1d_dtype_str{  sq    	% 	% 	% 	% 	% 	%d	+ 	+ 	+ 	+ 	+dr   c                     | j         dfd}|                     |           fd}|                     |           d S )Ni4c                      |           S r   rM   r'  s    r   r  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func  r)  r   c                      | d          S )Nc8rM   r  s    r   r  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func  s    6!T??"r   r  r*  s     @@r   &test_1d_dtype_str_alternative_spellingz2TestNdZeros.test_1d_dtype_str_alternative_spelling  sq    	% 	% 	% 	% 	% 	%d	# 	# 	# 	# 	#dr   c                 R    | j         dfd}|                     |           d S )Nzi4, (2,3)f8c                      |           S r   rM   r'  s    r   r  z<TestNdZeros.test_1d_dtype_str_structured_dtype.<locals>.func  r)  r   r  r*  s     @@r   "test_1d_dtype_str_structured_dtypez.TestNdZeros.test_1d_dtype_str_structured_dtype  sF    	% 	% 	% 	% 	% 	%dr   c                 *   | j         t          fd            }|                     t                    5 } |dd           d d d            n# 1 swxY w Y   t	          |j                  }d| j         j         d}|                     ||           d S )Nc                      | |          S r   rM   ri   dtrB   s     r   r  z5TestNdZeros.test_1d_dtype_non_const_str.<locals>.func      6!R== r   r   rr   If np.0 dtype is a string it must be a string constant.)rB   r   r   r   r   r   rJ   r   rA   r  r   excstrmsgrB   s        @r   test_1d_dtype_non_const_strz'TestNdZeros.test_1d_dtype_non_const_str  s    		! 	! 	! 	! 
	! {++ 	vDG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&", " " "c6"""""s   AAAc                    | j         t          fd            }|                     t                    5 } |d           d d d            n# 1 swxY w Y   t	          |j                  }|                     d|           d S )Nc                      | d          S NABCDEFrM   r  s    r   r  z3TestNdZeros.test_1d_dtype_invalid_str.<locals>.func      6!X&&&r   r   'Invalid NumPy dtype specified: 'ABCDEF')rB   r   r   r   r   r   r   rA   r  r   rB  rB   s       @r   test_1d_dtype_invalid_strz%TestNdZeros.test_1d_dtype_invalid_str  s    		' 	' 	' 	' 
	' {++ 	vDGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&?HHHHHs   AAAc                 J    | j         fd}|                     |           d S )Nc                      | |f          S r   rM   rs   ri   rB   s     r   r  z!TestNdZeros.test_2d.<locals>.func  s    61a&>>!r   rB   r  r  s     @r   test_2dzTestNdZeros.test_2d  s;    	" 	" 	" 	" 	"dr   c                 `   | j         fd}|                     |           fd}|                     |           t          j        ret	          fd          }|                     t                    5   |t          j        d          d           d d d            d S # 1 swxY w Y   d S d S )Nc                 f     t          j        |           t          j        |          f          S r   )r   int16rr   rO  s     r   func1z/TestNdZeros.test_2d_shape_dtypes.<locals>.func1  s(    628A;;4555r   c                 f     t          j        |           t          j        |          f          S r   )r   int64int8rO  s     r   func2z/TestNdZeros.test_2d_shape_dtypes.<locals>.func2  s(    628A;;

3444r   c                      | |f          S r   rM   rO  s     r   <lambda>z2TestNdZeros.test_2d_shape_dtypes.<locals>.<lambda>  s    1v r           r_   )	rB   r  r   	IS_32BITSr9   r   r  r   rW  )rA   rU  rY  rE   rB   s       @r   test_2d_shape_dtypesz TestNdZeros.test_2d_shape_dtypes  s    	6 	6 	6 	6 	6e	5 	5 	5 	5 	5e 	2666677E"":.. 2 2bh}--q1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2s   5B!!B%(B%c                 J    | j         fd}|                     |           d S )Nc                 6     | |ft           j                  S Nr   )r   	complex64rO  s     r   r  z-TestNdZeros.test_2d_dtype_kwarg.<locals>.func  s    61a&5555r   rP  r  s     @r   test_2d_dtype_kwargzTestNdZeros.test_2d_dtype_kwarg  s;    	6 	6 	6 	6 	6dr   c                 J    | j         fd}|                     |           d S )Nc                 "     | |fd          S )Nrb  r   rM   rO  s     r   r  z1TestNdZeros.test_2d_dtype_str_kwarg.<locals>.func  s    61a&4444r   rP  r  s     @r   test_2d_dtype_str_kwargz#TestNdZeros.test_2d_dtype_str_kwarg  s;    	5 	5 	5 	5 	5dr   c                 J    | j         fd}|                     |           d S )Nc                 "     | |fd          S )Nr5  r   rM   rO  s     r   r  zFTestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling.<locals>.func  s    61a&----r   rP  r  s     @r   ,test_2d_dtype_str_kwarg_alternative_spellingz8TestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling  s;    	. 	. 	. 	. 	.dr   c                    | j         t          j        j        }fd}|                      |d|dz
  z  t
          j                             |                      |d|dz
  z  dft
          j                             d S )Nc                       fdS )Nc                                  S r   rM   )r<   rB   ra   s   r   r[  z?TestNdZeros.test_alloc_size.<locals>.gen_func.<locals>.<lambda>  s    FF5%00 r   rM   )ra   r<   rB   s   ``r   gen_funcz-TestNdZeros.test_alloc_size.<locals>.gen_func  s    0000000r   r_   r~   r   @   )rB   r   intpbitwidthr	  r   )rA   widthrm  rB   s      @r   test_alloc_sizezTestNdZeros.test_alloc_size  s    
#	1 	1 	1 	1 	1 	hhqEAI~rw??@@@hhUQY';RWEEFFFFFr   )rJ   rK   rL   r  r   r  r   r$  r+  r0  r6  r9  rD  rL  rQ  r^  rc  rf  ri  rr  __classcell__r  s   @r   r  r  X  s2           / / /        	 	 	
 
 
  # # #I I I  2 2 2       G G G G G G Gr   r  c                   B     e Zd Z fdZej         fd            Z xZS )
TestNdOnesc                 x    t          t          |                                            t          j        | _        d S r   )r  rv  r  r   r   rB   r  s    r   r  zTestNdOnes.setUp  s,    j$%%'''gr   c                 H    t                                                       d S r   )r  r9  r  s    r   r9  z-TestNdOnes.test_1d_dtype_str_structured_dtype  s    2244444r   )rJ   rK   rL   r  unittestexpectedFailurer9  rs  rt  s   @r   rv  rv    sa             5 5 5 5 5 5 5 5 5r   rv  c                   b    e 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 )
TestNdFullc                 F    t           j                            ||           d S r   r  r  s      r   r   zTestNdFull.check_result_value  r  r   c                 6    d }|                      |           d S )Nc                  ,    t          j        dd          S )NrM         @r   fullrM   r   r   r  z TestNdFull.test_0d.<locals>.func  s    72s###r   )r   rA   r  s     r   r  zTestNdFull.test_0d  s)    	$ 	$ 	$dr   c                 6    d }|                      |           d S )Nc                 ,    t          j        | d          S Nr  r  ri   s    r   r  z TestNdFull.test_1d.<locals>.func  s    71c??"r   r  r  s     r   r   zTestNdFull.test_1d  s)    	# 	# 	#dr   c                 6    d }|                      |           d S )Nc                 B    t          j        | dt           j                  S r  )r   r  bool_r  s    r   r  z&TestNdFull.test_1d_dtype.<locals>.func  s    71c28,,,r   r  r  s     r   r$  zTestNdFull.test_1d_dtype  s)    	- 	- 	-dr   c                 d    t          j        d          fd}|                     |           d S )Nboolc                 0    t          j        | d          S r  r  ri   r<   s    r   r  z/TestNdFull.test_1d_dtype_instance.<locals>.func
  s    71c5)))r   )r   r<   r  rA   r  r<   s     @r   r+  z!TestNdFull.test_1d_dtype_instance  sC      	* 	* 	* 	* 	*dr   c                 6    d }|                      |           d S )Nc                 .    t          j        | dd          S Nr  r  r  r  s    r   r  z*TestNdFull.test_1d_dtype_str.<locals>.func  s    71c7+++r   r  r  s     r   r0  zTestNdFull.test_1d_dtype_str  s)    	, 	, 	,dr   c                 6    d }|                      |           d S )Nc                 .    t          j        | dd          S )Nr  ?r  r  s    r   r  z?TestNdFull.test_1d_dtype_str_alternative_spelling.<locals>.func  s    71c3'''r   r  r  s     r   r6  z1TestNdFull.test_1d_dtype_str_alternative_spelling  s)    	( 	( 	(dr   c                     t           d             }|                     t                    5 } |ddd           d d d            n# 1 swxY w Y   t          |j                  }d}|                     ||           d S )Nc                 .    t          j        | ||          S r   r  )ri   fvr=  s      r   r  z4TestNdFull.test_1d_dtype_non_const_str.<locals>.func  s    71b"%%%r   r   r  rr   z:If np.full dtype is a string it must be a string constant.r   r   r   r   r   r   rA   r  r   rB  rC  s        r   rD  z&TestNdFull.test_1d_dtype_non_const_str  s    		& 	& 
	& {++ 	%vDsG$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% V%&&"c6"""""s   AA	A	c                     t           d             }|                     t                    5 } |dd           d d d            n# 1 swxY w Y   t          |j                  }|                     d|           d S )Nc                 .    t          j        | |d          S rG  r  )ri   r  s     r   r  z2TestNdFull.test_1d_dtype_invalid_str.<locals>.func)  s    71b(+++r   r  r  rJ  r  rA   r  r   rB  s       r   rL  z$TestNdFull.test_1d_dtype_invalid_str'  s    		, 	, 
	, {++ 	vDsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&?HHHHH   AAAc                 6    d }|                      |           d S )Nc                 0    t          j        | |fd          S r  r  rs   ri   s     r   r  z TestNdFull.test_2d.<locals>.func4  s    7Aq63'''r   r  r  s     r   rQ  zTestNdFull.test_2d3  s)    	( 	( 	(dr   c                 6    d }|                      |           d S )Nc                 H    t          j        | |fdt           j                  S )Ny      ?      @r   )r   r  rb  r  s     r   r  z,TestNdFull.test_2d_dtype_kwarg.<locals>.func9  s    7Aq682<@@@@r   r  r  s     r   rc  zTestNdFull.test_2d_dtype_kwarg8  s,    	A 	A 	Adr   c                     d }|                      |           d }|                      |           d }|                      |           d S )Nc                 T    t          j        | |ft          j        d                    S r   )r   r  rr   r  s     r   r  z0TestNdFull.test_2d_dtype_from_type.<locals>.func?  s     7Aq628A;;///r   c                 T    t          j        | |ft          j        d                    S r   )r   r  r/  r  s     r   r  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcD  s"    7Aq62=#3#3444r   c                 H    t          j        | |fdt           j                  S )Nr_   r   )r   r  rX  r  s     r   r  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcI  s    7Aq61BG4444r   r  r  s     r   test_2d_dtype_from_typez"TestNdFull.test_2d_dtype_from_type=  sk    	0 	0 	0d	5 	5 	5d	5 	5 	5dr   c                 D   d }|                      |           d }|                      |           t          j        rct          d           }|                     t
                    5   |t          j        d          d           d d d            d S # 1 swxY w Y   d S d S )Nc                 x    t          j        t          j        |           t          j        |          fd          S r  )r   r  rT  rr   r  s     r   rU  z.TestNdFull.test_2d_shape_dtypes.<locals>.func1O  s)    7BHQKK!5s;;;r   c                 x    t          j        t          j        |           t          j        |          fd          S r  )r   r  rW  rX  r  s     r   rY  z.TestNdFull.test_2d_shape_dtypes.<locals>.func2S  s)    7BHQKK4c:::r   c                 0    t          j        | |fd          S r  r  r  s     r   r[  z1TestNdFull.test_2d_shape_dtypes.<locals>.<lambda>X  s    A(<(< r   r\  r_   )r  r   r]  r9   r   r  r   rW  )rA   rU  rY  rE   s       r   r^  zTestNdFull.test_2d_shape_dtypesM  s    	< 	< 	<e	; 	; 	;e 	2<<==E"":.. 2 2bh}--q1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2s   'BBBc                     t           j        j        }d }|                      |d|dz
  z  d                     |                      |d|dz
  z  dfd                     d S )Nc                       fdS )Nc                  .    t          j                   S r   r  ra   values   r   r[  z>TestNdFull.test_alloc_size.<locals>.gen_func.<locals>.<lambda>_  s    BGE511 r   rM   r  s   ``r   rm  z,TestNdFull.test_alloc_size.<locals>.gen_func^  s    111111r   r_   r~   r   rn  )r   ro  rp  r	  )rA   rq  rm  s      r   rr  zTestNdFull.test_alloc_size\  sx    
#	2 	2 	2 	hhqEAI~q99:::hhUQY';Q??@@@@@r   N)rJ   rK   rL   r   r  r   r$  r+  r0  r6  rD  rL  rQ  rc  r  r^  rr  rM   r   r   r|  r|    s        / / /  
  
  
    
  # # #
I 
I 
I  
  
   2 2 2A A A A Ar   r|  c                       e Zd Zd Zd ZdS )ConstructorLikeBaseTestc                     	 |                     d           d S # t          t          f$ r( d|j        j        z  }|                     |           Y d S w xY w)NrZ      x)rd   	TypeErrorr  r<   rm   )rA   rS   
fill_values      r   mutate_arrayz$ConstructorLikeBaseTest.mutate_arrayg  sd    	!HHRLLLLL:& 	! 	! 	!	 22JHHZ      	!s    5AAc                      fd}t          j        ddd                              |          }t                    dD ]}|dk    r|dd                              d          }n|                    |          } ||           |j        dk    r ||d d d                    d	|j        d
<                        t                    5  d|d<   d d d            n# 1 swxY w Y    ||            ||d                    d S )Nc                     |           } |           }                     |j        |j                                        |j        |j                                       ||                               ||                               |                               |           t          j                            ||           d S r   )	r:   r;   r<   r=   r   r  r   r>   r?   )rS   rG   rH   rE   rB   rA   s      r   	check_arrz5ConstructorLikeBaseTest.check_like.<locals>.check_arrp  s    vc{{H%**CSXx}555SY777##C222##C222c"""h'''J##C22222r   r   r      )r  r  r_   r~   rk   )rk   r_   r~   rM   rM   r   r~   F	WRITEABLEr_   )	r   linspaceastyper9   r   ndimflagsr   r  )rA   rB   r<   r  origra   rS   rE   s   ``     @r   
check_likez"ConstructorLikeBaseTest.check_likeo  sw   
	3 
	3 
	3 
	3 
	3 
	3 
	3 {1a##**511v: 	 	E{{233i''++ll5))IcNNNx!||	#ccc(###%*CIk""":..  A              IcNNNN 		$q's   C  C$	'C$	N)rJ   rK   rL   r  r  rM   r   r   r  r  e  s2        ! ! !! ! ! ! !r   r  c                   `     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z xZS )TestNdEmptyLikec                 x    t          t          |                                            t          j        | _        d S r   )r  r  r  r   r   rB   r  s    r   r  zTestNdEmptyLike.setUp  ,    ot$$**,,,mr   c                     d S r   rM   r  s      r   r   z"TestNdEmptyLike.check_result_value  s    r   c                 `    | j         fd}|                     |t          j                   d S )Nc                      |           S r   rM   rS   rB   s    r   r  z'TestNdEmptyLike.test_like.<locals>.func      6#;;r   rB   r  r   rb   r  s     @r   	test_likezTestNdEmptyLike.test_like  s?    	 	 	 	 	bj)))))r   c                     t          j        dt           j        fdt           j        fg          }| j        fd}|                     ||           d S )Nr   r   c                      |           S r   rM   r  s    r   r  z2TestNdEmptyLike.test_like_structured.<locals>.func  r  r   )r   r<   rT  r   rB   r  )rA   r<   r  rB   s      @r   test_like_structuredz$TestNdEmptyLike.test_like_structured  s^    3/C+<=>>	 	 	 	 	e$$$$$r   c                 `    | j         fd}|                     |t          j                   d S )Nc                 0     | t           j                  S r   r#  r  s    r   r  z-TestNdEmptyLike.test_like_dtype.<locals>.func  s    6#rx(((r   r  r  s     @r   test_like_dtypezTestNdEmptyLike.test_like_dtype  s?    	) 	) 	) 	) 	)bj)))))r   c                     t          j        d          | j        fd}|                     |t           j                   d S )Nrr   c                      |           S r   rM   rS   r<   rB   s    r   r  z6TestNdEmptyLike.test_like_dtype_instance.<locals>.func      6#u%%%r   )r   r<   rB   r  rb   rA   r  r<   rB   s     @@r   test_like_dtype_instancez(TestNdEmptyLike.test_like_dtype_instance  sT    !!	& 	& 	& 	& 	& 	&bj)))))r   c                     t          j        dt           j        fdt           j        fg          | j        fd}|                     |t           j                   d S )Nr   r   c                      |           S r   rM   r  s    r   r  z8TestNdEmptyLike.test_like_dtype_structured.<locals>.func  r  r   )r   r<   rT  r   rB   r  rb   r  s     @@r   test_like_dtype_structuredz*TestNdEmptyLike.test_like_dtype_structured  sf    3/C+<=>>	& 	& 	& 	& 	& 	&bj)))))r   c                 `    | j         fd}|                     |t          j                   d S )Nc                 2     | t           j                  S ra  r#  r  s    r   r  z3TestNdEmptyLike.test_like_dtype_kwarg.<locals>.func  s    6#RX....r   r  r  s     @r   test_like_dtype_kwargz%TestNdEmptyLike.test_like_dtype_kwarg  s?    	/ 	/ 	/ 	/ 	/bj)))))r   c                 `    | j         fd}|                     |t          j                   d S )Nc                      | d          S )Nrr   r   rM   r  s    r   r  z7TestNdEmptyLike.test_like_dtype_str_kwarg.<locals>.func  s    6#W----r   r  r  s     @r   test_like_dtype_str_kwargz)TestNdEmptyLike.test_like_dtype_str_kwarg  s?    	. 	. 	. 	. 	.bj)))))r   c                 `    | j         fd}|                     |t          j                   d S )Nc                      | d          S )Nr2  r   rM   r  s    r   r  zLTestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.func  s    6#T****r   r  r  s     @r   .test_like_dtype_str_kwarg_alternative_spellingz>TestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling  s?    	+ 	+ 	+ 	+ 	+bj)))))r   c                    | j         t          fd            }|                     t                    5 } |t	          j        d          d           d d d            n# 1 swxY w Y   t          |j                  }d| j         j         d}| 	                    ||           | 	                    d
                    j                  |           d S )Nc                      | |          S r   rM   r<  s     r   r  z;TestNdEmptyLike.test_like_dtype_non_const_str.<locals>.func  r>  r   ru   rr   r?  r@  z'{}(array(float64, 1d, C), unicode_type))rB   r   r   r   r   r   r   r   rJ   r   r   rA  s        @r   test_like_dtype_non_const_strz-TestNdEmptyLike.test_like_dtype_non_const_str  s(   		! 	! 	! 	! 
	! {++ 	&vDW%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& V%&&", " " "c6"""5<<V_MM	 	 	 	 	s   A  A$'A$c                 ,   | j         t          fd            }|                     t                    5 } |t	          j        d                     d d d            n# 1 swxY w Y   t          |j                  }|                     d|           d S )Nc                      | d          S rG  rM   r  s    r   r  z9TestNdEmptyLike.test_like_dtype_invalid_str.<locals>.func  rI  r   ru   rJ  )	rB   r   r   r   r   r   r   r   r   rK  s       @r   test_like_dtype_invalid_strz+TestNdEmptyLike.test_like_dtype_invalid_str  s    		' 	' 	' 	' 
	' {++ 	vD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&?HHHHHs   AA#&A#)rJ   rK   rL   r  r   r  r  r  r  r  r  r  r  r  r  rs  rt  s   @r   r  r    s        $ $ $ $ $  * * *% % %* * ** * ** * ** * ** * ** * *  $I I I I I I Ir   r  c                   8     e Zd Z fdZd Z fdZ fdZ xZS )TestNdZerosLikec                 x    t          t          |                                            t          j        | _        d S r   )r  r  r  r   
zeros_likerB   r  s    r   r  zTestNdZerosLike.setUp  r  r   c                 F    t           j                            ||           d S r   r  r  s      r   r   z"TestNdZerosLike.check_result_value  r  r   c                 V    t          t          |                                            d S r   )r  r  r  r  s    r   r  z$TestNdZerosLike.test_like_structured  s%    ot$$99;;;;;r   c                 V    t          t          |                                            d S r   )r  r  r  r  s    r   r  z*TestNdZerosLike.test_like_dtype_structured  s%    ot$$??AAAAAr   )rJ   rK   rL   r  r   r  r  rs  rt  s   @r   r  r    s        $ $ $ $ $/ / /< < < < <B B B B B B B B Br   r  c                   f     e Zd Z fdZej         fd            Zej         fd            Z xZS )TestNdOnesLikec                     t          t          |                                            t          j        | _        d| _        d S r   )r  r  r  r   	ones_likerB   expected_valuer  s    r   r  zTestNdOnesLike.setUp  s6    nd##))+++lr   c                 V    t          t          |                                            d S r   )r  r  r  r  s    r   r  z#TestNdOnesLike.test_like_structured  s%    nd##88:::::r   c                 V    t          t          |                                            d S r   )r  r  r  r  s    r   r  z)TestNdOnesLike.test_like_dtype_structured  s%    nd##>>@@@@@r   )	rJ   rK   rL   r  ry  rz  r  r  rs  rt  s   @r   r  r    s                  ; ; ; ; ; A A A A A A A A Ar   r  c                   d    e Zd Zd Zd Zej        d             Zd Zd Z	d Z
d Zd Zd	 Zd
 ZdS )TestNdFullLikec                 F    t           j                            ||           d S r   r  r  s      r   r   z!TestNdFullLike.check_result_value  r  r   c                 L    d }|                      |t          j                   d S )Nc                 ,    t          j        | d          S )N      @r   	full_liker]   s    r   r  z&TestNdFullLike.test_like.<locals>.func      <S)))r   r  r   rb   r  s     r   r  zTestNdFullLike.test_like  s-    	* 	* 	*bj)))))r   c                     t          j        dt           j        fdt           j        fg          }d }|                     ||           d S )Nr   r   c                 ,    t          j        | d          S r  r  r]   s    r   r  z1TestNdFullLike.test_like_structured.<locals>.func  r  r   )r   r<   rT  r   r  )rA   r<   r  s      r   r  z#TestNdFullLike.test_like_structured  sL    3/C+<=>>	* 	* 	*e$$$$$r   c                 L    d }|                      |t          j                   d S )Nc                 B    t          j        | dt           j                  S r  r   r  r  r]   s    r   r  z,TestNdFullLike.test_like_dtype.<locals>.func$  s    <S"(333r   r  r  s     r   r  zTestNdFullLike.test_like_dtype#  s-    	4 	4 	4bj)))))r   c                 z    t          j        d          fd}|                     |t           j                   d S )Nr  c                 0    t          j        | d          S r  r  )rS   r<   s    r   r  z5TestNdFullLike.test_like_dtype_instance.<locals>.func*  s    <S%000r   )r   r<   r  rb   r  s     @r   r  z'TestNdFullLike.test_like_dtype_instance(  sG      	1 	1 	1 	1 	1bj)))))r   c                 L    d }|                      |t          j                   d S )Nc                 D    t          j        | dt           j                  S )Nr  r   r  r]   s    r   r  z2TestNdFullLike.test_like_dtype_kwarg.<locals>.func/  s    <S9999r   r  r  s     r   r  z$TestNdFullLike.test_like_dtype_kwarg.  s-    	: 	: 	:bj)))))r   c                 L    d }|                      |t          j                   d S )Nc                 .    t          j        | dd          S r  r  r]   s    r   r  z6TestNdFullLike.test_like_dtype_str_kwarg.<locals>.func4  s    <S'222r   r  r  s     r   r  z(TestNdFullLike.test_like_dtype_str_kwarg3  s-    	3 	3 	3bj)))))r   c                 L    d }|                      |t          j                   d S )Nc                 0    t          j        | dd          S )Nr  r  r   r  r]   s    r   r  zKTestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.func9  s    <S4444r   r  r  s     r   r  z=TestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling8  s-    	5 	5 	5bj)))))r   c                     t           d             }|                     t                    5 } |t          j        d          dd           d d d            n# 1 swxY w Y   t          |j                  }d}|                     ||           d S )Nc                 .    t          j        | ||          S r   r  )rS   r  r=  s      r   r  z@TestNdFullLike.test_like_dtype_non_const_str_kwarg.<locals>.func?  s    <R,,,r   rk   r  rr   z?If np.full_like dtype is a string it must be a string constant.r   r   r   r   r   r   r   r   r  s        r   #test_like_dtype_non_const_str_kwargz2TestNdFullLike.test_like_dtype_non_const_str_kwarg=  s    		- 	- 
	- {++ 	,vDc7+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, V%&&"c6"""""s    AAAc                    t           d             }|                     t                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   t          |j                  }|                     d|           d S )Nc                 .    t          j        | |d          S rG  r  )rS   r  s     r   r  z8TestNdFullLike.test_like_dtype_invalid_str.<locals>.funcM  s    <R222r   ru   g333333@rJ  r  r  s       r   r  z*TestNdFullLike.test_like_dtype_invalid_strK  s    		3 	3 
	3 {++ 	"vDS!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" V%&&?HHHHHs   AAAN)rJ   rK   rL   r   r  ry  rz  r  r  r  r  r  r  r  r  rM   r   r   r   r     s        / / /* * * % % %* * *
* * ** * *
* * *
* * *
# # #
I 
I 
I 
I 
Ir   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestNdIdentityc                 4    |                      |dg           d S )Nrk   rI   rA   rB   s     r   check_identityzTestNdIdentity.check_identityZ  s     6D6*****r   c                 6    d }|                      |           d S )Nc                 *    t          j        |           S r   r   identityr  s    r   r  z*TestNdIdentity.test_identity.<locals>.func^  s    ;q>>!r   )r"  r  s     r   test_identityzTestNdIdentity.test_identity]  s+    	" 	" 	"D!!!!!r   c                     t           j        t           j        t           j        t          j        d          dfD ]fd}|                     |           d S )Nr  r  c                 .    t          j        |           S r   r%  r  s    r   r  z0TestNdIdentity.test_identity_dtype.<locals>.funce  s    {1e,,,r   )r   rb  rT  r  r<   r"  r  s     @r   test_identity_dtypez"TestNdIdentity.test_identity_dtypeb  sj    lBHbh8H8H 	& 	&E- - - - -%%%%		& 	&r   c                     t           d             }|                     t                    5 } |dd           d d d            n# 1 swxY w Y   t          |j                  }d}|                     ||           d S )Nc                 ,    t          j        | |          S r   r%  )ri   r=  s     r   r  z@TestNdIdentity.test_like_dtype_non_const_str_kwarg.<locals>.funck  s    ;q"%%%r   ru   rr   z>If np.identity dtype is a string it must be a string constant.r  r  s        r   r  z2TestNdIdentity.test_like_dtype_non_const_str_kwargi  s    		& 	& 
	& {++ 	vDG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&"c6"""""r  N)rJ   rK   rL   r"  r'  r*  r  rM   r   r   r  r  X  sP        + + +" " "
& & &# # # # #r   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )		TestNdEyec                 <    d }|                      |ddg           d S )Nc                 *    t          j        |           S r   r   eyer  s    r   r  z"TestNdEye.test_eye_n.<locals>.func|  s    6!99r   r_   r  r   r  s     r   
test_eye_nzTestNdEye.test_eye_n{  s1    	 	 	4$.....r   c                     d t           j        t          j        d          fD ]}|fd}|                     |ddg            d S )Nr_   c                 .    t          j        | |          S ra  r1  r  s     r   r  z(TestNdEye.test_eye_n_dtype.<locals>.func  s    vau----r   r3  r  )r   r/  rb  rI   )rA   r=  r  s      r   test_eye_n_dtypezTestNdEye.test_eye_n_dtype  s`    Q8 	3 	3B  . . . .tdD\2222	3 	3r   c                 <    d }|                      |g d           d S )Nc                 ,    t          j        | |          S r   r1  ri   rs   s     r   r  z$TestNdEye.test_eye_n_m.<locals>.func  s    6!Q<<r   )r_   r~   rk   r~   )r   rk   r   r  s     r   test_eye_n_mzTestNdEye.test_eye_n_m  s4    	  	  	 4!9!9!9:::::r   c                 6    |                      |g d           d S )N))r_   r~   r   )rk   ru   r_   )rk   ru   r   )ru   rk   )ru   rk   )ru   rk   r   r   r  s     r   check_eye_n_m_kzTestNdEye.check_eye_n_m_k  s5    4 "- "- "- 	. 	. 	. 	. 	.r   c                 6    d }|                      |           d S )Nc                 .    t          j        | ||          S r   r1  ri   rs   r}   s      r   r  z&TestNdEye.test_eye_n_m_k.<locals>.func  s    6!Q??"r   rA  r  s     r   test_eye_n_m_kzTestNdEye.test_eye_n_m_k  s+    	# 	# 	#T"""""r   c                 6    d }|                      |           d S )Nc                 F    t          j        | ||t           j                  S N)NMr}   r<   )r   r2  rT  rD  s      r   r  z,TestNdEye.test_eye_n_m_k_dtype.<locals>.func  s    6Aarx8888r   rE  r  s     r   test_eye_n_m_k_dtypezTestNdEye.test_eye_n_m_k_dtype  s+    	9 	9 	9T"""""r   c                 d    t          j        d          fd}|                     |           d S )NrT  c                 4    t          j        | ||          S rI  r1  )ri   rs   r}   r<   s      r   r  z5TestNdEye.test_eye_n_m_k_dtype_instance.<locals>.func  s    6Aau5555r   )r   r<   rA  r  s     @r   test_eye_n_m_k_dtype_instancez'TestNdEye.test_eye_n_m_k_dtype_instance  sE    !!	6 	6 	6 	6 	6T"""""r   N)
rJ   rK   rL   r4  r7  r=  rA  rF  rL  rO  rM   r   r   r.  r.  y  s}        / / /
3 3 3; ; ;
. . .# # #
# # #
# # # # #r   r.  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

TestNdDiagc                    t          j        g d          }t          j        g dg          }t          j        |          }|||g| _        t          j        d                              dd          }t          j        d                              dd          }||g| _        d }|| _        t          |          | _	        dd}|| _
        t          |          | _        d S )	Nr     rk   ru   c                 *    t          j        |           S r   r   diag)qs    r   r  zTestNdDiag.setUp.<locals>.func  s    71::r   r   c                 .    t          j        | |          S )Nr}   rU  )rW  r}   s     r   
func_kwargz$TestNdDiag.setUp.<locals>.func_kwarg  s    71???"r   )r   )r   array	transposevectorsrl   r   	matriciespyr9   jitpy_kwjit_kw)rA   vhvvva3x4a4x3r  rZ  s           r   r  zTestNdDiag.setUp  s    HYYYXyyyk""\"2r{y}}$$Q**y}}$$Q**	 	 	$<<	# 	# 	# 	#
Z((r   c                      ||i |} ||i |}|                      |j        |j                   |                      |j        |j                   t          j                            ||           d S r   )r:   r;   r<   r   r>   r?   )rA   rB   nrtfuncrF   kwargsrG   computeds          r   
check_diagzTestNdDiag.check_diag  s|    64*6**7D+F++666888

(33333r   c                 \    | j         D ]#}|                     | j        | j        |           $d S r   )r]  rl  r_  r`  rA   ds     r   test_diag_vect_createz TestNdDiag.test_diag_vect_create  s:     	2 	2AOODGTXq1111	2 	2r   c                     t          dd          D ]/}| j        D ]%}|                     | j        | j        ||           &0d S )Nir   rY  )rh   r]  rl  ra  rb  rA   r}   ro  s      r   test_diag_vect_create_kwargz&TestNdDiag.test_diag_vect_create_kwarg  sa    sB 	A 	AA\ A A
DKa@@@@A	A 	Ar   c                 \    | j         D ]#}|                     | j        | j        |           $d S r   )r^  rl  r_  r`  rn  s     r   test_diag_extractzTestNdDiag.test_diag_extract  s:     	2 	2AOODGTXq1111	2 	2r   c                     t          dd          D ]/}| j        D ]%}|                     | j        | j        ||           &0d S )Nru   rY  )rh   r^  rl  ra  rb  rr  s      r   test_diag_extract_kwargz"TestNdDiag.test_diag_extract_kwarg  sa    r1 	A 	AA^ A A
DKa@@@@A	A 	Ar   c                    t          j        dggg          }t          | j                  }|                     t
                    5   |             d d d            n# 1 swxY w Y   |                     t                    5   ||           d d d            n# 1 swxY w Y   |                     t                    5  t          | j                  } ||d           d d d            d S # 1 swxY w Y   d S )N      ?rk   rY  )r   r[  r9   r_  r   r  r   ra  )rA   ro  rE   dfuncs       r   test_error_handlingzTestNdDiag.test_error_handling  s   HtfXtw y)) 	 	EGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 {++ 	 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	{++ 	 	4:&&EE!qMMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   AA!$A!BB!B?"C..C25C2c                     t          | j                  }d}|                     t          |          5 } |d            d d d            d S # 1 swxY w Y   d S )Nz'.*The argument "v" must be array-like.*)r9   r_  assertRaisesRegexr   )rA   rE   rC  r   s       r   test_bad_shapezTestNdDiag.test_bad_shape  s    tw7##K55 	E$KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)rJ   rK   rL   r  rl  rp  rs  ru  rx  r|  r  rM   r   r   rQ  rQ    s        ) ) )$4 4 42 2 2
A A A2 2 2
A A A      r   rQ  c                        e Zd Zd Zd Zd ZdS )TestLinspacec                 <    d }|                      |g d           d S )Nc                 ,    t          j        | |          S r   r   r  r:  s     r   rB   z,TestLinspace.test_linspace_2.<locals>.pyfunc  s    ;q!$$$r   ))r   ru   )r_   r   )            @)                    @      @)r~   r_   )      ?      ?              ?r   r!  s     r   test_linspace_2zTestLinspace.test_linspace_2  sD    	% 	% 	%64 4 4	5 	5 	5 	5 	5r   c                 <    d }|                      |g d           d S )Nc                 .    t          j        | ||          S r   r  ri   rs   r|   s      r   rB   z,TestLinspace.test_linspace_3.<locals>.pyfunc  s    ;q!Q'''r   ))r   ru   	   )r_   ru   rk   )r  r  r   )r  r  r   )r~   r_   r   )r  r  r   )r_   g}Ô%ITr_   r   r!  s     r   test_linspace_3zTestLinspace.test_linspace_3  sD    	( 	( 	(6> > >	? 	? 	? 	? 	?r   c                     t           d             }d\  }}}|                      ||||          |                    |||                     d S )Nc                 .    t          j        | ||          S r   r  r  s      r   r^   z0TestLinspace.test_linspace_accuracy.<locals>.foo  s    ;q!Q'''r   )g        rz  r   )r9   assertPreciseEqualpy_func)rA   r^   ri   rs   r|   s        r   test_linspace_accuracyz#TestLinspace.test_linspace_accuracy  sb     
	( 	( 
	(  1aAq!ckk!Q.B.BCCCCCr   N)rJ   rK   rL   r  r  r  rM   r   r   r  r    sF        5 5 5? ? ?D D D D Dr   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestNpyEmptyKeywordc                     fd}g d}t          |          }|D ]X} ||          } ||          }|                     |j        |j                   |                     |j        |j                   Yd S )Nc                 0    t          j        |           S ra  r[   ra   r<   s    r   rB   z7TestNpyEmptyKeyword._test_with_dtype_kw.<locals>.pyfunc  s    8E////r   r_   r   r  r9   r:   r<   ra   rA   r<   rB   shapesrE   srG   r   s    `      r   _test_with_dtype_kwz'TestNpyEmptyKeyword._test_with_dtype_kw
  s    	0 	0 	0 	0 	0 v 	8 	8AvayyH%((CX^SY777X^SY7777		8 	8r   c                     t           j        t           j        t           j        t          j        d          fD ]}|                     |           d S Nrb  )r   rr   r   rb  r<   r  rA   r<   s     r   test_with_dtype_kwsz'TestNpyEmptyKeyword.test_with_dtype_kws  sK    h
BL"(;:O:OP 	, 	,E$$U++++	, 	,r   c                     fd}g d}t          |          }|D ]X} ||          } ||          }|                     |j        |j                   |                     |j        |j                   Yd S )Nc                 0    t          j        |           S )Nr  r[   r  s    r   rB   zATestNpyEmptyKeyword._test_with_shape_and_dtype_kw.<locals>.pyfunc  s    8%u5555r   r  r  r  s    `      r   _test_with_shape_and_dtype_kwz1TestNpyEmptyKeyword._test_with_shape_and_dtype_kw  s    	6 	6 	6 	6 	6 v 	8 	8AvayyH%((CX^SY777X^SY7777		8 	8r   c                     t           j        t           j        t           j        t          j        d          fD ]}|                     |           d S r  )r   rr   r   rb  r<   r  r  s     r   test_with_shape_and_dtype_kwsz1TestNpyEmptyKeyword.test_with_shape_and_dtype_kws(  sK    h
BL"(;:O:OP 	6 	6E..u5555	6 	6r   c                     d }t          |          }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                  (    t          j                    S r   r[   rM   r   r   rB   z6TestNpyEmptyKeyword.test_empty_no_args.<locals>.pyfunc.  s    8::r   )r9   r   r   )rA   rB   rE   s      r   test_empty_no_argsz&TestNpyEmptyKeyword.test_empty_no_args,  s    	 	 	 v {++ 	 	EGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA	A	N)rJ   rK   rL   r  r  r  r  r  rM   r   r   r  r  	  s_        8 8 8, , ,8 8 86 6 6
 
 
 
 
r   r  c                   P    e 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 )TestNpArrayc                    d }t          |          } |d          }|                     |t          j        dt          j                              |d          }|                     |t          j        d                     d S )Nc                 *    t          j        |           S r   r   r[  args    r   rB   z#TestNpArray.test_0d.<locals>.pyfunc<      8C== r   rZ   r   r  )r9   r  r   r[  ro  rA   rB   rE   r   s       r   r  zTestNpArray.test_0d;  s    	! 	! 	! veBiiRXb%@%@%@AAAeCjjRXc]]33333r   c                 <    d }|                      |ddg           d S )Nc                 B    t          j        | t           j                  S ra  )r   r[  rT  r  s    r   rB   z.TestNpArray.test_0d_with_dtype.<locals>.pyfuncF      8Crx0000r   )rZ   )r  r   r!  s     r   test_0d_with_dtypezTestNpArray.test_0d_with_dtypeE  s3    	1 	1 	1 	6E6?33333r   c                 h   d }t          |          } |g d          }|                     |t          j        g d                      |d          }|                     |t          j        g d                      |d          }|                     |t          j        d                     d S )Nc                 *    t          j        |           S r   r  r  s    r   rB   z#TestNpArray.test_1d.<locals>.pyfuncL  r  r   )r~   rk   rZ   )rz  y              @rZ   rM   )r9   r  r   ro  r[  rb   r  s       r   r   zTestNpArray.test_1dK  s    	! 	! 	! veJJJRWZZZ%8%8999eO$$RXooo%>%>???eBiiRZ^^44444r   c                 L    d }|                      |ddgfddgfddg           d S )Nc                 B    t          j        | t           j                  S ra  )r   r[  r   r  s    r   rB   z.TestNpArray.test_1d_with_dtype.<locals>.pyfunc[  s    8Crz2222r   r~   rZ   r  rz  )r_   r  rZ   rM   r   r!  s     r   test_1d_with_dtypezTestNpArray.test_1d_with_dtypeZ  sT    	3 	3 	3 	6WJ!3ZM+!	 	 	 	 	r   c                 L    d }|                      |ddgfddgfddg           d S )Nc                 .    t          j        | d          S )Nr   r   r  r  s    r   rB   z2TestNpArray.test_1d_with_str_dtype.<locals>.pyfuncf  s    8Cy1111r   r~   rZ   r  rz  r  r  r   r!  s     r   test_1d_with_str_dtypez"TestNpArray.test_1d_with_str_dtypee  sT    	2 	2 	2 	6WJ!3ZM+!	 	 	 	 	r   c                     t           d             }|                     t                    5 } |dd           d d d            n# 1 swxY w Y   t          |j                  }d}|                     ||           d S )Nc                 .    t          j        | |          S ra  r  )r  r=  s     r   r  z:TestNpArray.test_1d_with_non_const_str_dtype.<locals>.funcr  s    8Cr****r   )r   rk   rr   z;If np.array dtype is a string it must be a string constant.r  r  s        r    test_1d_with_non_const_str_dtypez,TestNpArray.test_1d_with_non_const_str_dtypep  s    		+ 	+ 
	+ {++ 	"vD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" V%&&"c6"""""r  c                    d }t          |          } |ddg          }|                     |t          j        ddgddgg                      |dd	g          }|                     |t          j        dd
gddgg                      |ddgddgf          }|                     |t          j        ddgddgg                      |ddgddgf          }|                     |t          j        ddgddgg                      |d          }|                     |t          j        ddgddgg                      |d          }|                     |t          j        d                     d S )Nc                 *    t          j        |           S r   r  r  s    r   rB   z#TestNpArray.test_2d.<locals>.pyfunc  r  r   r;  rk   ru   r_   r~   rk   ru   r_   r  rk   r  r  r  r  ))      ?r~   )r  r  r  )rM   rM   )r9   r  r   ro  rb   r  s       r   rQ  zTestNpArray.test_2d~  s   	! 	! 	! veVV$%%RWq!fq!f-=%>%>???eXx())RZ!SAs80D%E%EFFFeaVaV$%%RWq!fq!f-=%>%>???eaVc3Z())RZ!Q#s0D%E%EFFFe*++RZ#qC:0F%G%GHHHeHooRZ%9%9:::::r   c                     d }t          |          } |ddg          }|                     |t          j        ddgddgg                     d S )Nc                 B    t          j        | t           j                  S ra  )r   r[  rr   r  s    r   rB   z.TestNpArray.test_2d_with_dtype.<locals>.pyfunc  r  r   r  r  r_   r~   rk   ru   )r9   r  r   rr   r  s       r   test_2d_with_dtypezTestNpArray.test_2d_with_dtype  se    	1 	1 	1 veXx())RX1v1v.>%?%?@@@@@r   c                 t    d }t          |          }t          j         fd            } |d          5   |t          j        dg                     d d d            n# 1 swxY w Y    |d          5   |t          j        d          t          j        d          gf           d d d            n# 1 swxY w Y    |d          5  t          j        d	d
g          }t          j        d|          d         } |dt          j        d          |ff           d d d            d S # 1 swxY w Y   d S )Nc                 *    t          j        |           S r   r  r  s    r   rB   z'TestNpArray.test_raises.<locals>.pyfunc  r  r   c              3      K                        t                    5 }d V  d d d            n# 1 swxY w Y                       | t          |j                             d S r   )r   r   r   r   r   )rC  r   rA   s     r   check_raisesz-TestNpArray.test_raises.<locals>.check_raises  s      "";// 6              MM#s6#34455555s   /33z;array(float64, 1d, C) not allowed in a homogeneous sequencerz  zOtype Tuple(int64, reflected list(int64)<iv=None>) does not have a regular shaper_   r~   zrcannot convert Tuple(int64, Record(a[type=int32;offset=0],b[type=float32;offset=4];8;False)) to a homogeneous type)r   r2  )r   f4r   r   r;  )r9   
contextlibcontextmanagerr   r[  rW  r<   r  )rA   rB   rE   r  stvals   `     r   test_raiseszTestNpArray.test_raises  s2   	! 	! 	! v		"	6 	6 	6 	6 
#	"	6
 \ 2 4 4 	" 	"E"(B4..!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" \ : < < 	0 	0E28A;;!.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 \K  	0 	0 ;455B(1B'''*CE6BHQKK-.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s6   A!!A%(A%73B66B:=B:AD--D14D1c                     t           d             }d}|                     t          |          5 } |d            d d d            d S # 1 swxY w Y   d S )Nc                 *    t          j        |           S r   r  )objs    r   r  z(TestNpArray.test_bad_array.<locals>.func  s    8C== r   z,.*The argument "object" must be array-like.*r   r~  r   rA   r  rC  r   s       r   test_bad_arrayzTestNpArray.test_bad_array  s    		! 	! 
	! =##K55 	DJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     t           d             }d}|                     t          |          5 } |dd           d d d            d S # 1 swxY w Y   d S )Nc                 ,    t          j        | |          S r   r  )r  r=  s     r   r  z(TestNpArray.test_bad_dtype.<locals>.func  s    8C$$$r   z>.*The argument "dtype" must be a data-type if it is provided.*r   ru   r  r  s       r   test_bad_dtypezTestNpArray.test_bad_dtype  s    		% 	% 
	% O##K55 	DAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)rJ   rK   rL   r  r  r   r  r  r  rQ  r  r  r  r  rM   r   r   r  r  9  s        4 4 44 4 45 5 5	 	 		 	 	# # #; ; ;*A A A0 0 0:      r   r  c                   J    e Zd ZdZd Zej        d             Zd Zd Z	d Z
dS )TestNpConcatenatez%
    Tests for np.concatenate().
    c                     t          j        d                              d          }|dz   }|dz                       d          }|dz   d d d         }|dz   dd d df         }|||||fS N   )ru   rk   r~   r   F)orderr   .r   rl   r   r   rA   r   r   r   ro  r  s         r   
_3d_arrayszTestNpConcatenate._3d_arrays  x    IbMM!!),,FVMMM$$VTTrTNVS2X!Q1}r   c              #      K   |                      t                    5 }d V  d d d            n# 1 swxY w Y   |                     d|z  t          |j                             d S )Nz*input sizes over dimension %d do not matchr   r  r   r   r   )rA   r   r   s      r   assert_invalid_sizes_over_dimz/TestNpConcatenate.assert_invalid_sizes_over_dim  s      z** 	fEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	BTI&*++	- 	- 	- 	- 	-   .22c           	         	
 t           
t          
          
 fd		fd}                                 \  }}}}} ||||            ||||            ||j        |j        |j                    ||j        |j        |j                    ||j        |j        |j                    ||j        |j        |j                    	|dd          ||d d d         d            	||d d dd f         |d            	|||d d d d dd f         d            |||                    t
          j                  |                                             dD ]E}                     d          5   |dd          |||           d d d            n# 1 swxY w Y   Fd	D ]I}                     d          5   ||d d dd f         ||           d d d            n# 1 swxY w Y   Jd S )
Nc                     |d|z   fD ]6} | |||          } | |||          }	                     ||           7d S )Nr   r  )
r   r   r   r   axrG   r   rE   rB   rA   s
          r   checkz(TestNpConcatenate.test_3d.<locals>.check  sn    R$Y' 7 7!6!Q333eAq!"---''X66667 7r   c                 H    t          d          D ]} | |||           d S )Nrk   r   )r   r   r   r   r  s       r   check_all_axesz1TestNpConcatenate.test_3d.<locals>.check_all_axes  s;    a % %aAt$$$$% %r   r_   r   r   r   r~   )r_   r~   r?  r   )r   r~   r  r   )	r   r9   r  Tr  r   rb   r   r  )rA   r  r   r   r   ro  r  r   rE   r  rB   s   `       @@@r   test_3dzTestNpConcatenate.test_3d  s     v	7 	7 	7 	7 	7 	7 	7	% 	% 	% 	% 	% ))1aA 	q!Qq!QqsAC%%%qsAC%%%qsAC%%% 	qsAC%%% 	aeQ$$B$a((((a111QRR4!!$$$$aAaaa!""fIA&&&& 	q!((2:..222 	!!! # 	) 	)D33A66 ) )aeQ4((() ) ) ) ) ) ) ) ) ) ) ) ) ) )" 	+ 	+D33A66 + +a111QRR4!T***+ + + + + + + + + + + + + + +	+ 	+s$   ;FF"	%F"	G**G.	1G.	c                     t           t                     fd}                                 \  }}}}} ||||            ||||            ||j        |j        |j                    ||j        |j        |j                    ||j        |j        |j                    ||j        |j        |j                    ||dd          ||d d d                                                                           d          5   ||d d dd f         |           d d d            d S # 1 swxY w Y   d S )Nc                 h     | ||          } | ||          }                     ||           d S r   r  )r   r   r   rG   r   rE   rB   rA   s        r   r  z0TestNpConcatenate.test_3d_no_axis.<locals>.check  sA    vaAH%1a..C##C22222r   r_   r   )r   r9   r  r  r   r  )	rA   r  r   r   r   ro  r  rE   rB   s	   `      @@r   test_3d_no_axisz!TestNpConcatenate.test_3d_no_axis  s    v	3 	3 	3 	3 	3 	3 	3
 ))1aA 	aAaAac13ac13ac13 	ac13 	aeQ$$B$    	!!! //22 	! 	!E!QqqqtWa   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   D33D7:D7c                    t           }t          |          }t          j        d          }|                    d          }|                    t          j        dt          j        fg                    }t          j        d          }| 	                                5 } ||||           d d d            n# 1 swxY w Y   | 
                    dt          |j                             | 	                                5 } ||||           d d d            n# 1 swxY w Y   | 
                    dt          |j                             | 	                                5 } ||||           d d d            n# 1 swxY w Y   | 
                    dt          |j                             | 	                                5 } ||d|           d d d            n# 1 swxY w Y   | 
                    d	t          |j                             d S )
N   )rk   r   r   rZ   z8all the input arrays must have same number of dimensionsz(input arrays must have compatible dtypesz.zero-dimensional arrays cannot be concatenatedr_   %expecting a non-empty tuple of arrays)r   r9   r   rl   r   r  r<   rX  r[  assertTypingErrorr   r   r   )rA   rB   rE   r   r   r   ro  r   s           r   test_typing_errorsz$TestNpConcatenate.test_typing_errors5  s    vIbMMIIfHHRXRW~.//00HRLL ##%% 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	P&*++	- 	- 	- ##%% 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	@&*++	- 	- 	- ##%% 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	F&*++	- 	- 	- ##%% 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	=s6CS?T?TUUUUUsH   B66B:=B:=DDDE88E<?E<?GG GN)rJ   rK   rL   __doc__r  r  r  r  r  r  r  rM   r   r   r  r    s            - - -0+ 0+ 0+d"! "! "!HV V V V Vr   r  r"   z"this Numpy doesn't have np.stack()c                       e Zd ZdZd Zej        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 )TestNpStackz
    Tests for np.stack().
    c                     t          j        d                              d          }|dz   }|dz                       d          }|dz   d d d         }|dz   dd d df         }|||||fS r  r  r  s         r   r  zTestNpStack._3d_arrays\  r  r   c              #      K   |                      t                    5 }d V  d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nz)all input arrays must have the same shaper  )rA   r   s     r   assert_invalid_sizesz TestNpStack.assert_invalid_sizesd  s      z** 	fEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	A&*++	- 	- 	- 	- 	-r  c                      || } || }|                      |j        |j                   |                     |                                |                                           d S r   )r:   ra   r  flatten)rA   rB   rE   rF   rG   r   s         r   check_stackzTestNpStack.check_stackk  sd    64=eTl
 	HN333x/?/?/A/ABBBBBr   c                    
  fd

fd}                                  \  }}}}}	 ||||            ||||            ||j        |j        |j                    ||j        |j        |j                    ||j        |j        |j                    ||j        |	j        |j                    |||                    t          j                  |           d S )Nc                 B                         | ||f|z              d S r   )r  )r   r   r   rF   rE   rB   rA   s       r   r  z#TestNpStack.check_3d.<locals>.checkv  s,    VUQ1I,<=====r   c                 >                 D ]} | |||           d S r   rM   )r   r   r   rF   r  generate_starargss       r   r  z,TestNpStack.check_3d.<locals>.check_all_axesy  s>    ))++ % %aAt$$$$% %r   )r  r  r  r   rb   )rA   rB   rE   r  r  r   r   r   ro  r  r  s   ````      @r   check_3dzTestNpStack.check_3du  s   	> 	> 	> 	> 	> 	> 	>	% 	% 	% 	% 	% 	% ))1aA 	q!Qq!QqsAC%%%qsAC%%%qsAC%%%qsAC%%% 	q!((2:..22222r   c                 8   |                                   |                                  |                                 \  }}}}}|                                 5  t	           |                      } ||d d         ||g|R   d d d            d S # 1 swxY w Y   d S )Nr   )assert_no_memory_leakr   r  r	  next)	rA   rE   r  r   r   r   ro  r  rF   s	            r   check_runtime_errorsz TestNpStack.check_runtime_errors  s    ""$$$!!! ))1aA&&(( 	' 	'))++,,DE!CRC&!Q&&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   +BBBc                     t           }t          |          }d }|                     |||           |                     ||           dS )z(
        stack(3d arrays, axis)
        c               3   H   K   t          d          D ]} | fV  d| z   fV  d S )Nrk   r  r   r   s    r   r  z.TestNpStack.test_3d.<locals>.generate_starargs  sE      a # #gDyl""""# #r   N)r%   r9   r  r  rA   rB   rE   r  s       r   r  zTestNpStack.test_3d  sY     v	# 	# 	#
 	fe%6777!!%):;;;;;r   c                     t           }t          |          }d }|                     |||           |                     ||           dS )z"
        stack(3d arrays)
        c               3      K   dV  d S r  rM   rM   r   r   r  z6TestNpStack.test_3d_no_axis.<locals>.generate_starargs        GGGGGr   N)r#   r9   r  r  r  s       r   r  zTestNpStack.test_3d_no_axis  sY     v	 	 	 	fe%6777!!%):;;;;;r   c                     t           }t          |          }t          j        d          }t          j        d          }t          j        d          }|                     |||||f           dS )z"
        stack(0d arrays)
        rZ                TN)r#   r9   r   r[  r  rA   rB   rE   r   r   r   s         r   r  zTestNpStack.test_0d  s_     vHRLLHSMMHTNNAq	22222r   c                     d }|                      |||           t          j        d          }t          j        d          }t          j        d          }|                     |||||f           dS )zC
        3d and 0d tests for hstack(), vstack(), dstack().
        c               3      K   dV  d S r  rM   rM   r   r   r  z4TestNpStack.check_xxstack.<locals>.generate_starargs  r  r   rZ   r  TN)r  r   r[  r  )rA   rB   rE   r  r   r   r   s          r   check_xxstackzTestNpStack.check_xxstack  su    	 	 	 	fe%6777HRLLHSMMHTNNAq	22222r   c                    t           }t          |          }|                     ||           t          j        d          }t          j        d          dz   }|                     |||||f           t          j        d                              d          }t          j        d                              d          dz   }|                     |||||f           d S )Nr   r  r   r  r   )r~   ru   r   )r(   r9   r!  r   rl   r  r   rA   rB   rE   r   r   s        r   test_hstackzTestNpStack.test_hstack  s    v65)))IaLLIaLL2Aq	222IaLL  ((IaLL  ((3.Aq	22222r   c                    t           t          g}|D ]}t          |          }|                     ||           t	          j        d          }|dz   }|                     |||||f           t	          j        d                              d          }t	          j        d                              d          dz   }|                     |||||f           d S )Nr   r   r  r<  r   )ru   r~   r   )r,   r/   r9   r!  r   rl   r  r   )rA   	functionsrB   rE   r   r   s         r   test_vstackzTestNpStack.test_vstack  s     -	 	7 	7F6NNEvu---	!ABAVUQ1I666	!$$V,,A	!$$V,,s2AVUQ1I6666	7 	7r   c                 P   t           }t          |          }|                     ||           t          j        d          }|dz   }|                     |||||f           t          j        d                              d          }|dz   }|                     |||||f           d S )Nr   r   rS  r  r   )r2   r9   r!  r   rl   r  r   r#  s        r   test_dstackzTestNpStack.test_dstack  s    v65)))IaLLFAq	222IbMM!!&))GAq	22222r   c                 r   t           }t          |          }t          j        d          }|dz   }t          j        d                              d          }|                     |||||f           |                                  |                                  t          j        d          }| 	                                5   ||||f           d d d            n# 1 swxY w Y   |                    d          }| 	                                5   ||||f           d d d            d S # 1 swxY w Y   d S )Nru   r   rS  ru   rk   rZ   )r_   r_   r_   )
r5   r9   r   rl   r   r  r  r   r[  r  r  s         r   test_column_stackzTestNpStack.test_column_stack  s    vIaLLFIbMM!!&))Aq	222 	""$$$!!! HRLL##%% 	 	E1a)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	IIi  ##%% 	 	E1a)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   CC #C D,,D03D0c                 z   t           t          t          t          t          fD ]}t          |          }t          j        d                              d          }| 	                                5 } ||d|           d d d            n# 1 swxY w Y   | 
                    dt          |j                             d S )NrS  r+  r_   r  )r#   r(   r,   r2   r5   r9   r   rl   r   r  r   r   r   )rA   rB   rE   r   r   s        r   test_bad_arrayszTestNpStack.test_bad_arrays  s     )Y	?S 	Z 	ZF6NNE	"%%f--A '')) VaA              MMA3vGWCXCXYYYY	Z 	Zs   -BB	B	N)rJ   rK   rL   r  r  r  r  r	  r  r  r  r  r  r  r!  r$  r'  r)  r,  r.  rM   r   r   r  r  V  s           - - -C C C3 3 34	' 	' 	'< < << < <3 3 33 3 33 3 37 7 7$3 3 3  *Z Z Z Z Zr   r  c                  `   d t                    t          j                            d          t          j                            d          dfd} fd}t          j        |           }t          j        |          }t          |           t          |           d S )Nc                 6    t          |          D ]}|| }} | |fS )z1Swap array x and y for t number of times
        r   r   s       r   rB   z%benchmark_refct_speed.<locals>.pyfunc   s-     q 	 	AaqAA!tr   r   i'  c                  "                 d S r   rM   )rB   r   r   r   s   r   bench_pyfuncz+benchmark_refct_speed.<locals>.bench_pyfunc-  s    q!Qr   c                  "                 d S r   rM   )rE   r   r   r   s   r   bench_cfuncz*benchmark_refct_speed.<locals>.bench_cfunc0  s    aAr   )r9   r   r   r   	benchmarkprint)	r2  r4  python_time
numba_timerE   rB   r   r   r   s	       @@@@@r   benchmark_refct_speedr9    s       6NNE
	A
	AA               /,//K--J	+	*r   __main__):r  r   numpyr   r   rer   r   numba.core.errorsr   numbar   
numba.corer   r   r   numba.tests.supportr   r	   r
   r   ry  r9   r   r   r#   r%   r(   r,   r/   r2   r5   r7   rO   rW   r   r  rv  r|  objectr  r  r  r  r   r  r.  rQ  r  r  r  r  
skipUnlesshasattrr  r9  rJ   mainrM   r   r   <module>rE     s       



      				     				 ) ) ) ) ) )       + + + + + + + + + + M M M M M M M M M M M M  
4t	$	$	$% % %0 0 0  * * *          # # #     & & &: : : : :x : : : 4 4 4 4 4? 4 4 4
J: J: J: J: J:< J: J: J:ZD
 D
 D
 D
 D
, D
 D
 D
NNG NG NG NG NG%x NG NG NGb5 5 5 5 5 5 5 5nA nA nA nA nA$h nA nA nAb+ + + + +f + + +\YI YI YI YI YI-x YI YI YIxB B B B Bo B B B A A A A A_ A A A$DI DI DI DI DI,h DI DI DIN# # # # #X # # #B)# )# )# )# )# )# )# )#XF F F F F F F FPD D D D D8 D D D8- - - - -( - - -`O O O O O/8 O O OdHV HV HV HV HV HV HV HVV WWR))+OPPEZ EZ EZ EZ EZ/8 EZ EZ QPEZP  4 zHMOOOOO r   