
    "
3j                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
Jr  S SKJrJrJr  S SKJrJrJrJr  S SKJr  S SKr\" SSS9rS	 rS
 rS rS rS rS rS rS r S r! " S S\5      r" " S S\5      r# " S S\#\5      r$ " S S\#5      r% " S S\%\5      r& " S S\&5      r' " S S\%\5      r( " S  S!\)5      r* " S" S#\*\5      r+ " S$ S%\+5      r, " S& S'\,5      r- " S( S)\*\5      r. " S* S+\"5      r/ " S, S-\"5      r0 " S. S/\5      r1 " S0 S1\"5      r2 " S2 S3\5      r3 " S4 S5\\"5      r4 " S6 S7\\5      r5\Rl                  " \7" \S85      S95       " S: S;\\5      5       r8S< r9\:S=:X  a  \Rv                  " 5         gg)>    N)TypingError)njit)typesutilsconfig)MemoryLeakMixinTestCasetagskip_if_32bit)	PYVERSIONT)_nrtnogilc                 2    [         R                  " XU45      $ Nnpconcatenateabcs      T/home/wildlama/miniconda3/lib/python3.13/site-packages/numba/tests/test_dyn_array.pynp_concatenate1r      s    >>1)$$    c                 0    [         R                  " XU4US9$ Naxisr   r   r   r   r   s       r   np_concatenate2r       s    >>1)$//r   c                 2    [         R                  " XU45      $ r   r   stackr   s      r   	np_stack1r$      s    88Q1Ir   c                 0    [         R                  " XU4US9$ r   r"   r   s       r   	np_stack2r&      s    88Q1ID))r   c                 2    [         R                  " XU45      $ r   )r   hstackr   s      r   	np_hstackr)           99aAYr   c                 2    [         R                  " XU45      $ r   )r   vstackr   s      r   	np_vstackr-   #   r*   r   c                 2    [         R                  " XU45      $ r   )r   	row_stackr   s      r   np_row_stackr0   &   s    <<q	""r   c                 2    [         R                  " XU45      $ r   )r   dstackr   s      r   	np_dstackr3   )   r*   r   c                 2    [         R                  " XU45      $ r   )r   column_stackr   s      r   np_column_stackr6   ,   s    ??A!9%%r   c                       \ rS rSrSS jrSrg)BaseTest0   c                    [        U5      nU H  nU" U6 nU" U6 nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R	                  Xv5        U(       a!  [
        R                  R                  Xg5        M  [
        R                  R                  Xg5        M     g r   )	nrtjitassertEqualsizedtypeassertStridesEqualr   testingassert_equalassert_allclose)selfpyfuncargslistexactcfuncargsexpectedrets           r   check_outputsBaseTest.check_outputs2   s    vDt}H,CSXXx}}5SYY7##C2

''6

**89 r    N)T)__name__
__module____qualname____firstlineno__rK   __static_attributes__rM   r   r   r8   r8   0   s    :r   r8   c                       \ rS rSrS rSrg)NrtRefCtTest@   c                 P    U R                  UR                  R                  U5        g r   )r<   baserefcount)rC   arrexpects      r   assert_array_nrt_refct#NrtRefCtTest.assert_array_nrt_refctA   s    **F3r   rM   N)rN   rO   rP   rQ   r[   rR   rM   r   r   rT   rT   @   s    4r   rT   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS r\S 5       rS rS rS rS rSrg)TestDynArrayE   c                    [         S 5       nU" 5       nU R                  US5        [        R                  R	                  SU5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        R                  " [        R                  5      5        U R                  UR                  S5        UR                  S5        [        R                  R	                  SU5        Ag )Nc                  <    [         R                  " S5      n SU S'   U $ )NrM   *   r   emptyrY   s    r   foo'TestDynArray.test_empty_0d.<locals>.fooH   s    ((2,CCGJr      rb   rM   {   )r;   r[   r   r@   rA   r<   r=   shaper>   float64stridesfill)rC   rf   rY   s      r   test_empty_0dTestDynArray.test_empty_0dG   s    		 
	
 e##C+


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


S)r   c                    [         S 5       nSnU" U5      nU R                  US5        [        R                  R	                  [        R
                  " U5      U5        U R                  UR                  U5        U R                  UR                  U45        U R                  UR                  [        R                  " [        R                  5      5        U R                  UR                  [        R                  " [        R                  5      R                  45        UR                  S5        [        R                  R	                  SU5        Ag )Nc                 ^    [         R                  " U 5      n[        U 5       H  nX!U'   M	     U$ r   )r   rd   range)nrY   is      r   rf   'TestDynArray.test_empty_1d.<locals>.fooZ   s+    ((1+C1XA  Jr      rh   ri   )r;   r[   r   r@   rA   aranger<   r=   rj   r>   rk   rl   itemsizerm   )rC   rf   rs   rY   s       r   test_empty_1dTestDynArray.test_empty_1dY   s    		 
	 !f##C+


		!c21%QD)BHHRZZ$89rxx

';'D'D&FG


S)r   c                    S n[        U5      nSnSnU" X45      nU" X45      nU R                  US5        [        R                  R	                  XV5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        Ag )Nc                     [         R                  " X4[         R                  5      n[        U 5       H  n[        U5       H  nX4-   X#U4'   M     M     U$ r   r   rd   int32rr   )mrs   rY   rt   js        r   rD   *TestDynArray.test_empty_2d.<locals>.pyfunco   sH    ((A6288,C1XqA !C1I "  Jr      rv   rh   	r;   r[   r   r@   rA   r<   r=   rj   rl   )rC   rD   rG   r   rs   expected_arrgot_arrs          r   test_empty_2dTestDynArray.test_empty_2dn   s    	 va|+##GQ/


6**GLL9++W]];--w?r   c                    S n[        U5      nSnSnSnU" X4U5      nU" X4U5      nU R                  US5        [        R                  R	                  Xg5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        Ag )Nc                     [         R                  " XU4[         R                  5      n[        U 5       H2  n[        U5       H   n[        U5       H  nXE-   U-   X4XV4'   M     M"     M4     U$ r   r}   )r   rs   prY   rt   r   ks          r   rD   *TestDynArray.test_empty_3d.<locals>.pyfunc   s\    ((A!9bhh/C1XqA"1X'(uqyqG & " 
 Jr   r   rv      rh   r   rC   rD   rG   r   rs   r   r   r   s           r   test_empty_3dTestDynArray.test_empty_3d   s    	 vaAa.##GQ/


6**GLL9++W]];--w?r   c                    S n[        U5      nSnSnSnU" X4U5      nU" X4U5      nU R                  US5        [        R                  R	                  Xg5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        Ag )Nc                     [         R                  " X4[         R                  5      n[        U 5       H  n[        U5       H  nXE-   X4U4'   M     M     X2   $ r   r}   )r   rs   r   rY   rt   r   s         r   rD   1TestDynArray.test_empty_2d_sliced.<locals>.pyfunc   sJ    ((A6288,C1XqA !C1I "  6Mr   r   rv   r   rh   r   r   s           r   test_empty_2d_sliced!TestDynArray.test_empty_2d_sliced   s    	 vaAa.##GQ/


6**GLL9++W]];--w?r   c                 4  ^ [         R                  " S[         R                  S9m[        R                  " T5      nU4S jn[        U5      nU" 5       nU R                  US-   [        R                  " T5      5        [         R                  R                  TU5        [         R                  R                  T[         R                  " S[         R                  S95        [         R                  R                  U[         R                  " S[         R                  S95        A[        R                  " 5         U R                  US-   [        R                  " T5      5        A[        R                  " 5         U R                  U[        R                  " T5      5        g )Nr   r>   c                     > T $ r   rM   ys   r   return_external_arrayDTestDynArray.test_return_global_array.<locals>.return_external_array   s    Hr   rh   )r   onesfloat32sysgetrefcountr;   r<   r@   rA   gccollect)rC   	initrefctr   rG   outr   s        @r   test_return_global_array%TestDynArray.test_return_global_array   s   GGARZZ(OOA&		 ,-g 	Q(:;


3'


2771BJJ#?@


RWWQbjj%AB


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


COOA$67r   c                   ^ [         R                  " S[         R                  S9mU4S jn[        U5      nU" 5       nU R	                  UR
                  5        TSS  n[         R                  R                  XC5        [         R                  R                  U[         R                  " S[         R                  S95        [         R                  R                  U[         R                  " S[         R                  S95        g )Nr   r   c                     > T SS  $ Nr   rM   r   s   r   r   KTestDynArray.test_return_global_array_sliced.<locals>.return_external_array   s    QR5Lr   r   )r   r   r   r;   assertIsNonerW   r@   rA   )rC   r   rG   r   yyr   s        @r   test_return_global_array_sliced,TestDynArray.test_return_global_array_sliced   s    GGARZZ(	 ,-g#((#qrU


(


BGGARZZ$@A


RWWQbjj%ABr   c                 F   S n[         R                  " S[         R                  S9n[        U5      nU" U5      nU" U5      n[         R                  R                  XB5        [         R                  R                  XE5        U R                  XB5        U R                  XE5        g )Nc                     U $ r   rM   r   s    r   rD   4TestDynArray.test_array_pass_through.<locals>.pyfunc   s    Hr   r   r   )r   r   r   r;   r@   rA   assertIs)rC   rD   rY   rG   rI   gots         r   test_array_pass_through$TestDynArray.test_array_pass_through   st    	 ggarzz*v:Sk


.


.h$h$r   c                    S n[         R                  " S[         R                  S9n[        R                  " U5      n[        U5      nU" U5      nU R                  US-   [        R                  " U5      5        U" U5      nU R                  US-   [        R                  " U5      5        [         R                  R                  XbUR                  S-     5        [         R                  R                  Xe5        AU R                  US-   [        R                  " U5      5        AU R                  U[        R                  " U5      5        g )Nc                 $    X R                   S-  S  $ r   )r=   r   s    r   rD   ;TestDynArray.test_array_pass_through_sliced.<locals>.pyfunc   s    VVq[\?"r   r   r   rh   r   )
r   r   r   r   r   r;   r<   r@   rA   r=   )rC   rD   rY   r   rG   r   rI   s          r   test_array_pass_through_sliced+TestDynArray.test_array_pass_through_sliced   s    	# ggarzz*OOC(	vCjQ(<=#;Q(<=


chh!m*<=


.Q(<=COOC$89r   c                    S n[        U5      n[        R                  R                  S5      n[        R                  R                  S5      n[        R                  R	                  U" X45      U" X45      5        U R                  U" X45      S5        [        R                  R                  S5      R                  SS5      n[        R                  R                  S5      R                  SS5      n[        R                  R	                  U" X45      U" X45      5        U R                  U" X45      S5        [        R                  R                  S5      R                  SSS5      n[        R                  R                  S5      R                  SSS5      n[        R                  R	                  U" X45      U" X45      5        U R                  U" X45      S5        g )Nc                 t    [         R                  " U R                  5      n[         R                  " XU5        U$ r   )r   rd   rj   add)r   r   r   s      r   rD   =TestDynArray.test_ufunc_with_allocated_output.<locals>.pyfunc  s'    ((177#CFF1Jr   
   rh   r      F      )r;   r   randomr@   rA   r[   reshape)rC   rD   rG   arr_aarr_bs        r    test_ufunc_with_allocated_output-TestDynArray.test_ufunc_with_allocated_output  sp   	
 v 		  $		  $


u 4 %e 3	5 	##E%$7; 		  $,,Q2		  $,,Q2


u 4 %e 3	5 	##E%$7; 		  $,,Q15		  $,,Q15


u 4 %e 3	5 	##E%$7;r   c                 R  ^ S n[        U5      mSn[        R                  R                  SSU5      nUR	                  5       n[        R
                  R                  U" U5      T" U5      5        [        R
                  R                  XC5        / n/ n/ nU4S jn[        S5       H  n	[        R                  R                  SSU5      n[        R                  " U5      n
[        R                  " UX:4SR                  U	5      S9nUR                  U5        UR                  U5        UR                  U
5        M     U H  nUR                  5         M     U H  nUR                  5         M     [        Xg5       H+  u  p[        R
                  R                  U" U5      U
5        M-     g)	zi
This test exercises the array allocation in multithreaded usecase.
This stress the freelist inside NRT.
c                    [         R                  " U R                  5      n[        UR                  5       H  nSX'   M	     [        U S   5       Hr  n[         R                  " U R                  5      n[        UR                  5       H	  nX   X4'   M     [        UR                  5       H  nX==   X4   U-   -  ss'   M     Mt     U$ )Nr   r   rd   r=   rr   )inpr   rt   tmpr   s        r   rD   /TestDynArray.test_allocation_mt.<locals>.pyfunc/  s    ((388$C 388_ % 3q6]hhsxx(sxxA VCF ) sxxAFcfqj(F ) # Jr   r   rh   c                    > T" U 5      US S & g r   rM   )r   r   rG   s     r   wrapped0TestDynArray.test_allocation_mt.<locals>.wrappedP  s    3ZCFr   d   	worker{0}targetrH   nameN)r;   r   r   randintcopyr@   rA   rr   
empty_like	threadingThreadformatappendstartjoinzip)rC   rD   r=   rY   
frozen_arrworkersinputsoutputsr   rt   r   threadr   rG   s                @r   test_allocation_mtTestDynArray.test_allocation_mt)  sT   	& vii2t,XXZ



sU3Z8



0	  sA))##Ar40C--$C%%W,/:+6+=+=a+@BF NN6"MM#NN3  FLLN  FKKM  F,HCJJ##F3K5 -r   c                   ^ S n[        U5      mSn[        R                  " U[        S9n[        R
                  " U5      n[        R                  " S5      nU" XS5      n[        R                  R                  UT" XS5      5        AU R                  U[        R
                  " U5      5        / n/ n/ n	U4S jn
[        S5       H  n[        R                  " U5      n[        R                  " S5      n[        R                  " U
XSU4SR                  U5      S9nUR!                  U5        UR!                  U5        U	R!                  U5        M     U H  nUR#                  5         M     U H  nUR%                  5         M     ['        X5       H+  u  p\[        R                  R                  U" XS5      U5        M-     AAU R                  U[        R
                  " U5      5        g	)
z5
This test exercises the refct in multithreaded code
c                     [         R                  " UR                  5      n[        UR                  5       H  nX   S-   X#'   M     [        U 5       H  nXpM     U$ Nrh   r   )rs   r   r   rt   s       r   rD   *TestDynArray.test_refct_mt.<locals>.pyfunco  sM    ((388$C388_! % 1XS Jr   r   r   i  c                    > T" X5      US S & g r   rM   )rs   inputr   rG   s      r   r   +TestDynArray.test_refct_mt.<locals>.wrapped  s    1_CFr   r   r   r   N)r;   r   rw   floatr   r   r   	randranger@   rA   r<   rr   rd   r   r   r   r   r   r   r   )rC   rD   r=   r   expected_refctswapctrI   r   r   swapctsr   rt   r   r   rG   s                 @r   test_refct_mtTestDynArray.test_refct_mtj  s   
	 v		$e,/!!$'&(


%*>?)?@	% sA((4.C%%d+F%%W,23+?+6+=+=a+@BF NN6"NN3NN6"  FLLN  FKKM  w0KFJJ##F6$93? 1 W)?@r   c                 0   [         S 5       nU R                  5         U R                  [        5       nU" [        R
                  R                  S-  S-  5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 0    [         R                  " U 5        g r   rc   )xs    r   rf   1TestDynArray.test_invalid_size_array.<locals>.foo  s    HHQKr      r   zAllocation failed)
r   disable_leak_checkassertRaisesMemoryErrorr   size_tmaxvalassertInstr	exception)rC   rf   raisess      r   test_invalid_size_array$TestDynArray.test_invalid_size_array  sz     
	 
	 	!{+v##q(A-. , 	)3v/?/?+@A ,+s   'B
Bc                 L   S n[        U5      n[        R                  R                  S5      n[        R                  R                  S5      nSn[        R                  " U5      [        R                  " U5      4nU" X4U5      U" X4U5      pU R                  US   R                  5        U R                  US   R                  5        [        R                  R                  Xx5        AAU R                  U[        R                  " U5      [        R                  " U5      45        g )Nc                 0    [        U5       H  nXpM     X4$ )z5Swap array x and y for t number of times
            rr   r   r   trt   s       r   rD   &TestDynArray.test_swap.<locals>.pyfunc  s      1X1  4Kr   r   r   rh   )
r;   r   r   r   r   r   rW   r@   rA   r<   )	rC   rD   rG   r   r   r
  r   rZ   r   s	            r   	test_swapTestDynArray.test_swap  s    	 vIIS!IIS!OOA&(::	Q1ouQ1~#a&++&#a&++&


,CS__Q%79K$LMr   c                 6   S n[        U5      n[        R                  R                  S5      n[        R                  " U5      nU" U5      u  pVU" U5      u  pxU R                  X55        U R                  X75        [        R                  R                  XW5        [        R                  R                  Xh5        AAU R                  U[        R                  " U5      5        U R                  [        R                  " U5      [        R                  " U5      5        g )Nc                     [         R                  " U R                  5      n[        UR                  5       H  nX   S-   X'   M     X4$ r   r   )r   r   rt   s      r   rD   7TestDynArray.test_return_tuple_of_array.<locals>.pyfunc  s:     A166]tax #4Kr   r   )	r;   r   r   r   r   r   r@   rA   r<   )	rC   rD   rG   r   r   
expected_x
expected_ygot_xgot_ys	            r   test_return_tuple_of_array'TestDynArray.test_return_tuple_of_array  s    	 vIIQOOA&	!'
Qxa$a



2



2COOA$674cooe6LMr   c                    S n[        U5      n[        R                  R                  S5      nU" U5      u  pEU" U5      u  pg[        R                  R	                  XF5        [        R                  R	                  XW5        [
        S;   a  SnO[
        S;   a  SnO[        [
        5      eU R                  U[        R                  " U5      5        U R                  U[        R                  " U5      5        g )Nc                     [         R                  " U R                  5      n[        UR                  5       H  nX   S-   X'   M     X4nU$ r   r   )r   r   rt   r   s       r   rD   ?TestDynArray.test_return_tuple_of_array_created.<locals>.pyfunc  s?     A166]tax #$CJr   r   )rv      rh   )rv   r   )rv      )rv      )rv      r   )
r;   r   r   r@   rA   r   NotImplementedErrorr<   r   r   )	rC   rD   rG   r   r  r  r  r  expected_refcounts	            r   "test_return_tuple_of_array_created/TestDynArray.test_return_tuple_of_array_created  s    	 vIIQ!'
Qx



2



2# !>> !%i00*COOE,BC*COOE,BCr   c                   ^ [         S 5       mU4S jn[        U5      n[        R                  " S5      n[        R                  " U5      n[
        S;   aY  U R                  S[        R                  " U" U5      5      5        U R                  S[        R                  " U" U5      5      5        Or[
        S;   aY  U R                  U[        R                  " U" U5      5      5        U R                  U[        R                  " U" U5      5      5        O[        [
        5      eU R                  U[        R                  " U5      5        g)zG
Dispatcher returns a new reference.
It need to workaround it for now.
c                     U $ r   rM   )r   s    r   inner7TestDynArray.test_issue_with_return_leak.<locals>.inner  s    Jr   c                    > T" U 5      $ r   rM   )r   r&  s    r   rD   8TestDynArray.test_issue_with_return_leak.<locals>.pyfunc  s    8Or   r   r  r   r  N)r;   r   rw   r   r   r   r<   r   )rC   rD   rG   rY   	old_refctr&  s        @r   test_issue_with_return_leak(TestDynArray.test_issue_with_return_leak  s    
 
	 
		 viimOOC(	#Qs <=Qc
 ;<>>Ys(DEYc
(CD%i00COOC$89r   rM   N)rN   rO   rP   rQ   rn   ry   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r+  rR   rM   r   r   r^   r^   E   sp    $*.2086C%:,"<H?6B;Az B BN4N.D6:r   r^   c                   ,    \ rS rSrS rS rS rS rSrg)ConstructorBaseTesti  c                 Z   [        U5      nU" 5       nU" 5       nU R                  US5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  UR                  UR                  5        U R                  XC5        [        R                  " U5      nUR                  S5        UR                  S5        [        R                  R                  XC5        g )Nrh   ri   )r;   r[   r<   r=   rj   r>   rl   check_result_valuer   r   rm   r@   rA   )rC   rD   rG   rI   rJ   s        r   check_0dConstructorBaseTest.check_0d!  s    v8g##C+8==1HNN3HNN3h&6&67.==%c


.r   c                    [        U5      nSnU" U5      nU" U5      nU R                  US5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  UR                  UR                  5        U R                  XT5        [        R                  " U5      nUR                  S5        UR                  S5        [        R                  R                  XT5        U R                  [        5       nU" S5        S S S 5        U R                  [        WR                   5      S5        g ! , (       d  f       N4= f)Nrv   rh   ri   negative dimensions not allowedr;   r[   r<   r=   rj   r>   rl   r0  r   r   rm   r@   rA   r   
ValueErrorr  r  )rC   rD   rG   rs   rI   rJ   cms          r   check_1dConstructorBaseTest.check_1d1  s   v!9Ah##C+8==1HNN3HNN3h&6&67.==%c


.z*b"I +R\\*,MN +*s   	E<<
F
c                     [        U5      nSu  p4U" X45      nU" X45      nU R                  US5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  UR                  UR                  5        U R                  Xe5        [        R                  " U5      nUR                  S5        UR                  S5        [        R                  R                  Xe5        U R                  [        5       nU" SS5        S S S 5        U R                  [        WR                   5      S5        g ! , (       d  f       N4= f)Nr   rv   rh   ri   r   r4  r5  r6  )rC   rD   rG   r   rs   rI   rJ   r8  s           r   check_2dConstructorBaseTest.check_2dF  s   v!<Ak##C+8==1HNN3HNN3h&6&67.==%c


.z*b!RL +R\\*,MN +*s   
E??
Fc                     [        U5      nU R                  [        5       nU" 5         SSS5        U R                  S[	        WR
                  5      5        g! , (       d  f       N4= f)zAChecks that pyfunc will error, not segfaulting due to array size.Nzarray is too big)r;   r   r7  r   r  r  )rC   rD   rG   es       r   check_alloc_size$ConstructorBaseTest.check_alloc_size[  sI    vz*aG +	
 +*s   A
A%rM   N)	rN   rO   rP   rQ   r1  r9  r=  rA  rR   rM   r   r   r.  r.    s    / O*O*
r   r.  c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrU =r$ )TestNdZerosif  c                 T   > [         [        U ]  5         [        R                  U l        g r   )superrD  setUpr   zerosrD   rC   	__class__s    r   rG  TestNdZeros.setUph  s    k4&(hhr   c                 B    [         R                  R                  X5        g r   r   r@   rA   rC   rJ   rI   s      r   r0  TestNdZeros.check_result_valuel      


.r   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                     > T " S5      $ NrM   rM   rD   s   r   func!TestNdZeros.test_0d.<locals>.funcq  s    ":r   )rD   r1  rC   rU  rD   s     @r   test_0dTestNdZeros.test_0do  s    	dr   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                    > T" U 5      $ r   rM   rs   rD   s    r   rU  !TestNdZeros.test_1d.<locals>.funcw  s    !9r   rD   r9  rW  s     @r   test_1dTestNdZeros.test_1du  s    	dr   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                 2   > T" U [         R                  5      $ r   r   r~   r\  s    r   rU  'TestNdZeros.test_1d_dtype.<locals>.func}  s    !RXX&&r   r^  rW  s     @r   test_1d_dtypeTestNdZeros.test_1d_dtype{  s    	'dr   c                 |   ^^ U R                   m[        R                  " S5      mUU4S jnU R                  U5        g )Nr~   c                    > T" U T5      $ r   rM   rs   _dtyperD   s    r   rU  0TestNdZeros.test_1d_dtype_instance.<locals>.func      !V$$r   )rD   r   r>   r9  rC   rU  rj  rD   s     @@r   test_1d_dtype_instance"TestNdZeros.test_1d_dtype_instance  s+    '"	%dr   c                    ^^ U R                   mSmUU4S jnU R                  U5        U4S jnU R                  U5        g )Nr~   c                    > T" U T5      $ r   rM   ri  s    r   rU  +TestNdZeros.test_1d_dtype_str.<locals>.func  rl  r   c                    > T" U S5      $ )N
complex128rM   r\  s    r   rU  rr    s    !\**r   r^  rm  s     @@r   test_1d_dtype_strTestNdZeros.test_1d_dtype_str  s3    	%d	+dr   c                    ^^ U R                   mSmUU4S jnU R                  U5        U4S jnU R                  U5        g )Ni4c                    > T" U T5      $ r   rM   ri  s    r   rU  @TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func  rl  r   c                    > T" U S5      $ )Nc8rM   r\  s    r   rU  rz    s    !T?"r   r^  rm  s     @@r   &test_1d_dtype_str_alternative_spelling2TestNdZeros.test_1d_dtype_str_alternative_spelling  s3    	%d	#dr   c                 T   ^^ U R                   mSmUU4S jnU R                  U5        g )Nzi4, (2,3)f8c                    > T" U T5      $ r   rM   ri  s    r   rU  <TestNdZeros.test_1d_dtype_str_structured_dtype.<locals>.func  rl  r   r^  rm  s     @@r   "test_1d_dtype_str_structured_dtype.TestNdZeros.test_1d_dtype_str_structured_dtype  s"    	%dr   c                 ,  ^ U R                   m[        U4S j5       nU R                  [        5       nU" SS5        S S S 5        [	        WR
                  5      nSU R                   R                   S3nU R                  XC5        g ! , (       d  f       NO= f)Nc                    > T" X5      $ r   rM   rs   dtrD   s     r   rU  5TestNdZeros.test_1d_dtype_non_const_str.<locals>.func      != r   r   r~   If np.0 dtype is a string it must be a string constant.)rD   r   r   r   r  r  rN   r   rC   rU  r  excstrmsgrD   s        @r   test_1d_dtype_non_const_str'TestNdZeros.test_1d_dtype_non_const_str  s    		! 
	! {+vG , V%%&,,- ." "c" ,+s   
B
Bc                    ^ U R                   m[        U4S j5       nU R                  [        5       nU" S5        S S S 5        [	        WR
                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                    > T" U S5      $ NABCDEFrM   r\  s    r   rU  3TestNdZeros.test_1d_dtype_invalid_str.<locals>.func      !X&&r   r   'Invalid NumPy dtype specified: 'ABCDEF')rD   r   r   r   r  r  r   rC   rU  r  r  rD   s       @r   test_1d_dtype_invalid_str%TestNdZeros.test_1d_dtype_invalid_str  sf    		' 
	' {+vG , V%%&?H	 ,+s   	A++
A9c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                    > T" X45      $ r   rM   r   rs   rD   s     r   rU  !TestNdZeros.test_2d.<locals>.func  s    1&>!r   rD   r=  rW  s     @r   test_2dTestNdZeros.test_2d  s    	"dr   c                 \  ^ U R                   mU4S jnU R                  U5        U4S jnU R                  U5        [        R                  (       aK  [	        U4S j5      nU R                  [        5         U" [        R                  " S5      S5        S S S 5        g g ! , (       d  f       g = f)Nc                 h   > T" [         R                  " U 5      [         R                  " U5      45      $ r   )r   int16r~   r  s     r   func1/TestNdZeros.test_2d_shape_dtypes.<locals>.func1  s#    288A;455r   c                 h   > T" [         R                  " U 5      [         R                  " U5      45      $ r   )r   int64int8r  s     r   func2/TestNdZeros.test_2d_shape_dtypes.<locals>.func2  s#    288A;
344r   c                    > T" X45      $ r   rM   r  s     r   <lambda>2TestNdZeros.test_2d_shape_dtypes.<locals>.<lambda>  s    vr           rh   )	rD   r=  r   	IS_32BITSr;   r   r7  r   r  )rC   r  r  rG   rD   s       @r   test_2d_shape_dtypes TestNdZeros.test_2d_shape_dtypes  sw    	6e	5e67E"":.bhh}-q1 /. ..s   5B
B+c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                 0   > T" X4[         R                  S9$ Nr   )r   	complex64r  s     r   rU  -TestNdZeros.test_2d_dtype_kwarg.<locals>.func  s    1&55r   r  rW  s     @r   test_2d_dtype_kwargTestNdZeros.test_2d_dtype_kwarg  s    	6dr   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                    > T" X4SS9$ )Nr  r   rM   r  s     r   rU  1TestNdZeros.test_2d_dtype_str_kwarg.<locals>.func  s    1&44r   r  rW  s     @r   test_2d_dtype_str_kwarg#TestNdZeros.test_2d_dtype_str_kwarg  s    	5dr   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                    > T" X4SS9$ )Nr|  r   rM   r  s     r   rU  FTestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling.<locals>.func  s    1&--r   r  rW  s     @r   ,test_2d_dtype_str_kwarg_alternative_spelling8TestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling  s    	.dr   c                   ^ U R                   m[        R                  R                  nU4S jnU R	                  U" SUS-
  -  [
        R                  5      5        U R	                  U" SUS-
  -  S4[
        R                  5      5        g )Nc                    >^ ^ UUU 4S j$ )Nc                     > T" TT 5      $ r   rM   )r>   rD   rj   s   r   r  ?TestNdZeros.test_alloc_size.<locals>.gen_func.<locals>.<lambda>  s    F5%0r   rM   )rj   r>   rD   s   ``r   gen_func-TestNdZeros.test_alloc_size.<locals>.gen_func  s	    00r   rh   r   r   rU   )rD   r   intpbitwidthrA  r   )rC   widthr  rD   s      @r   test_alloc_sizeTestNdZeros.test_alloc_size  si    

##	1 	hqEAI~rww?@hUQY';RWWEFr   rT  )rN   rO   rP   rQ   rG  r0  rX  r_  re  rn  ru  r}  r  r  r  r  r  r  r  r  r  rR   __classcell__rJ  s   @r   rD  rD  f  s`    /	
#I2 G Gr   rD  c                   R   ^  \ rS rSrU 4S jr\R                  U 4S j5       rSrU =r	$ )
TestNdOnesi  c                 T   > [         [        U ]  5         [        R                  U l        g r   )rF  r  rG  r   r   rD   rI  s    r   rG  TestNdOnes.setUp  s    j$%'ggr   c                 "   > [         TU ]  5         g r   )rF  r  rI  s    r   r  -TestNdOnes.test_1d_dtype_str_structured_dtype  s    24r   rT  )
rN   rO   rP   rQ   rG  unittestexpectedFailurer  rR   r  r  s   @r   r  r    s"     5 5r   r  c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)
TestNdFulli  c                 B    [         R                  R                  X5        g r   rM  rN  s      r   r0  TestNdFull.check_result_value  rP  r   c                 ,    S nU R                  U5        g )Nc                  0    [         R                  " SS5      $ )NrM         @r   fullrM   r   r   rU   TestNdFull.test_0d.<locals>.func  s    772s##r   )r1  rC   rU  s     r   rX  TestNdFull.test_0d  s    	$dr   c                 ,    S nU R                  U5        g )Nc                 0    [         R                  " U S5      $ Nr  r  rs   s    r   rU   TestNdFull.test_1d.<locals>.func  s    771c?"r   r9  r  s     r   r_  TestNdFull.test_1d  s    	#dr   c                 ,    S nU R                  U5        g )Nc                 N    [         R                  " U S[         R                  5      $ r  )r   r  bool_r  s    r   rU  &TestNdFull.test_1d_dtype.<locals>.func  s    771c288,,r   r  r  s     r   re  TestNdFull.test_1d_dtype  s    	-dr   c                 `   ^ [         R                  " S5      mU4S jnU R                  U5        g )Nboolc                 4   > [         R                  " U ST5      $ r  r  rs   r>   s    r   rU  /TestNdFull.test_1d_dtype_instance.<locals>.func  s    771c5))r   )r   r>   r9  rC   rU  r>   s     @r   rn  !TestNdFull.test_1d_dtype_instance  s"     	*dr   c                 ,    S nU R                  U5        g )Nc                 2    [         R                  " U SS5      $ Nr  r  r  r  s    r   rU  *TestNdFull.test_1d_dtype_str.<locals>.func  s    771c7++r   r  r  s     r   ru  TestNdFull.test_1d_dtype_str  s    	,dr   c                 ,    S nU R                  U5        g )Nc                 2    [         R                  " U SS5      $ )Nr  ?r  r  s    r   rU  ?TestNdFull.test_1d_dtype_str_alternative_spelling.<locals>.func#  s    771c3''r   r  r  s     r   r}  1TestNdFull.test_1d_dtype_str_alternative_spelling!  s    	(dr   c                     [         S 5       nU R                  [        5       nU" SSS5        S S S 5        [        WR                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)Nc                 0    [         R                  " XU5      $ r   r  )rs   fvr  s      r   rU  4TestNdFull.test_1d_dtype_non_const_str.<locals>.func)  s    771"%%r   r   r  r~   z:If np.full dtype is a string it must be a string constant.r   r   r   r  r  r   rC   rU  r  r  r  s        r   r  &TestNdFull.test_1d_dtype_non_const_str'  se    		& 
	& {+vsG$ , V%%&"c" ,+s   A
A,c                     [         S 5       nU R                  [        5       nU" SS5        S S S 5        [        WR                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                 0    [         R                  " XS5      $ r  r  )rs   r  s     r   rU  2TestNdFull.test_1d_dtype_invalid_str.<locals>.func7  s    771(++r   r  r  r  r  rC   rU  r  r  s       r   r  $TestNdFull.test_1d_dtype_invalid_str5  s^    		, 
	, {+vsO , V%%&?H	 ,+s   
A
A*c                 ,    S nU R                  U5        g )Nc                 2    [         R                  " X4S5      $ r  r  r   rs   s     r   rU   TestNdFull.test_2d.<locals>.funcB  s    77A63''r   r=  r  s     r   r  TestNdFull.test_2dA  s    	(dr   c                 ,    S nU R                  U5        g )Nc                 L    [         R                  " X4S[         R                  S9$ )Ny      ?      @r   )r   r  r  r  s     r   rU  ,TestNdFull.test_2d_dtype_kwarg.<locals>.funcG  s    77A682<<@@r   r  r  s     r   r  TestNdFull.test_2d_dtype_kwargF  s    	Adr   c                 |    S nU R                  U5        S nU R                  U5        S nU R                  U5        g )Nc                 Z    [         R                  " X4[         R                  " S5      5      $ r   )r   r  r~   r  s     r   rU  0TestNdFull.test_2d_dtype_from_type.<locals>.funcM  s    77A6288A;//r   c                 Z    [         R                  " X4[         R                  " S5      5      $ r   )r   r  rt  r  s     r   rU  r  R  s    77A62==#344r   c                 L    [         R                  " X4S[         R                  S9$ )Nrh   r   )r   r  r  r  s     r   rU  r  W  s    77A61BGG44r   r  r  s     r   test_2d_dtype_from_type"TestNdFull.test_2d_dtype_from_typeK  s5    	0d	5d	5dr   c                 0   S nU R                  U5        S nU R                  U5        [        R                  (       aH  [        S 5      nU R	                  [
        5         U" [        R                  " S5      S5        S S S 5        g g ! , (       d  f       g = f)Nc                     [         R                  " [         R                  " U 5      [         R                  " U5      4S5      $ r  )r   r  r  r~   r  s     r   r  .TestNdFull.test_2d_shape_dtypes.<locals>.func1]  s(    77BHHQK!5s;;r   c                     [         R                  " [         R                  " U 5      [         R                  " U5      4S5      $ r  )r   r  r  r  r  s     r   r  .TestNdFull.test_2d_shape_dtypes.<locals>.func2a  s(    77BHHQK4c::r   c                 2    [         R                  " X4S5      $ r  r  r  s     r   r  1TestNdFull.test_2d_shape_dtypes.<locals>.<lambda>f  s    (<r   r  rh   )r=  r   r  r;   r   r7  r   r  )rC   r  r  rG   s       r   r  TestNdFull.test_2d_shape_dtypes[  sm    	<e	;e<=E"":.bhh}-q1 /. ..s   B
Bc                     [         R                  R                  nS nU R                  U" SUS-
  -  S5      5        U R                  U" SUS-
  -  S4S5      5        g )Nc                    ^ ^ U U4S j$ )Nc                  2   > [         R                  " T T5      $ r   r  rj   values   r   r  >TestNdFull.test_alloc_size.<locals>.gen_func.<locals>.<lambda>m  s    BGGE51r   rM   r+  s   ``r   r  ,TestNdFull.test_alloc_size.<locals>.gen_funcl  s	    11r   rh   r   r   rU   )r   r  r  rA  )rC   r  r  s      r   r  TestNdFull.test_alloc_sizej  sW    

##	2 	hqEAI~q9:hUQY';Q?@r   rM   N)rN   rO   rP   rQ   r0  rX  r_  re  rn  ru  r}  r  r  r  r  r  r  r  rR   rM   r   r   r  r    sJ    /



#
I

 2Ar   r  c                        \ rS rSrS rS rSrg)ConstructorLikeBaseTestis  c                      UR                  S5        g ! [        [        4 a-    SUR                  R                  -  nUR                  U5         g f = f)Nrb      x)rm   	TypeErrorr7  r>   rx   )rC   rY   
fill_values      r   mutate_array$ConstructorLikeBaseTest.mutate_arrayu  sF    	!HHRL:& 	!		 2 22JHHZ 	!s    :AAc                   ^ ^^ UUU 4S jn[         R                  " SSS5      R                  U5      n[        T5      mS H  nUS:X  a  USS  R	                  S5      nOUR	                  U5      nU" U5        UR
                  S:  a  U" US S S2   5        S	UR                  S
'   T R                  [        5         SUS'   S S S 5        U" U5        M     U" US   5        g ! , (       d  f       N&= f)Nc                   > T" U 5      nT" U 5      nTR                  UR                  UR                  5        TR                  UR                  UR                  5        TR                  X!5        TR	                  X!5        TR                  U5        TR                  U5        [        R                  R                  X!5        g r   )	r<   r=   r>   r?   r0  r6  r   r@   rA   )rY   rI   rJ   rG   rD   rC   s      r   	check_arr5ConstructorLikeBaseTest.check_like.<locals>.check_arr~  s    c{H*CSXXx}}5SYY7##C2##C2c"h'JJ##C2r   r   r      )r<  r<  rh   r   rv   )rv   rh   r   rM   rM   r4  r   F	WRITEABLErh   )	r   linspaceastyper;   r   ndimflagsr   r7  )rC   rD   r>   r:  origrj   rY   rG   s   ``     @r   
check_like"ConstructorLikeBaseTest.check_like}  s    
	3 {{1a#**51v:E{23i''+ll5)cNxx!|#cc(#%*CIIk""":.A /cN ;" 	$q' /.s   9C
C-	rM   N)rN   rO   rP   rQ   r6  rD  rR   rM   r   r   r1  r1  s  s    !!r   r1  c                   j   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrU =r$ )TestNdEmptyLikei  c                 T   > [         [        U ]  5         [        R                  U l        g r   )rF  rG  rG  r   r   rD   rI  s    r   rG  TestNdEmptyLike.setUp      ot*,mmr   c                     g r   rM   rN  s      r   r0  "TestNdEmptyLike.check_result_value  s    r   c                 j   ^ U R                   mU4S jnU R                  U[        R                  5        g )Nc                    > T" U 5      $ r   rM   rY   rD   s    r   rU  'TestNdEmptyLike.test_like.<locals>.func      #;r   rD   rD  r   rk   rW  s     @r   	test_likeTestNdEmptyLike.test_like  s#    	bjj)r   c                    ^ [         R                  " S[         R                  4S[         R                  4/5      nU R                  mU4S jnU R                  X!5        g )Nr   r   c                    > T" U 5      $ r   rM   rO  s    r   rU  2TestNdEmptyLike.test_like_structured.<locals>.func  rQ  r   )r   r>   r  r   rD   rD  )rC   r>   rU  rD   s      @r   test_like_structured$TestNdEmptyLike.test_like_structured  sA    3/C+<=>	$r   c                 j   ^ U R                   mU4S jnU R                  U[        R                  5        g )Nc                 2   > T" U [         R                  5      $ r   rc  rO  s    r   rU  -TestNdEmptyLike.test_like_dtype.<locals>.func  s    #rxx((r   rR  rW  s     @r   test_like_dtypeTestNdEmptyLike.test_like_dtype  s#    	)bjj)r   c                    ^^ [         R                  " S5      mU R                  mUU4S jnU R                  U[         R                  5        g )Nr~   c                    > T" U T5      $ r   rM   rY   r>   rD   s    r   rU  6TestNdEmptyLike.test_like_dtype_instance.<locals>.func      #u%%r   )r   r>   rD   rD  rk   rC   rU  r>   rD   s     @@r   test_like_dtype_instance(TestNdEmptyLike.test_like_dtype_instance  s1    !	&bjj)r   c                    ^^ [         R                  " S[         R                  4S[         R                  4/5      mU R                  mUU4S jnU R                  U[         R                  5        g )Nr   r   c                    > T" U T5      $ r   rM   ra  s    r   rU  8TestNdEmptyLike.test_like_dtype_structured.<locals>.func  rc  r   )r   r>   r  r   rD   rD  rk   rd  s     @@r   test_like_dtype_structured*TestNdEmptyLike.test_like_dtype_structured  sG    3/C+<=>	&bjj)r   c                 j   ^ U R                   mU4S jnU R                  U[        R                  5        g )Nc                 .   > T" U [         R                  S9$ r  rc  rO  s    r   rU  3TestNdEmptyLike.test_like_dtype_kwarg.<locals>.func  s    #RXX..r   rR  rW  s     @r   test_like_dtype_kwarg%TestNdEmptyLike.test_like_dtype_kwarg  s#    	/bjj)r   c                 j   ^ U R                   mU4S jnU R                  U[        R                  5        g )Nc                    > T" U SS9$ )Nr~   r   rM   rO  s    r   rU  7TestNdEmptyLike.test_like_dtype_str_kwarg.<locals>.func  s    #W--r   rR  rW  s     @r   test_like_dtype_str_kwarg)TestNdEmptyLike.test_like_dtype_str_kwarg  s#    	.bjj)r   c                 j   ^ U R                   mU4S jnU R                  U[        R                  5        g )Nc                    > T" U SS9$ )Nrx  r   rM   rO  s    r   rU  LTestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.func  s    #T**r   rR  rW  s     @r   .test_like_dtype_str_kwarg_alternative_spelling>TestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling  s#    	+bjj)r   c                   ^ U R                   m[        U4S j5       nU R                  [        5       nU" [        R
                  " S5      S5        S S S 5        [        WR                  5      nSU R                   R                   S3nU R                  XC5        U R                  SR                  TR                  5      U5        g ! , (       d  f       Nz= f)Nc                    > T" X5      $ r   rM   r  s     r   rU  ;TestNdEmptyLike.test_like_dtype_non_const_str.<locals>.func  r  r   r   r~   r  r  z'{}(array(float64, 1d, C), unicode_type))rD   r   r   r   r   r   r  r  rN   r   r   r  s        @r   test_like_dtype_non_const_str-TestNdEmptyLike.test_like_dtype_non_const_str  s    		! 
	! {+vW% , V%%&,,- ." "c"5<<V__M	 ,+s   C
Cc                    ^ U R                   m[        U4S j5       nU R                  [        5       nU" [        R
                  " S5      5        S S S 5        [        WR                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                    > T" U S5      $ r  rM   r\  s    r   rU  9TestNdEmptyLike.test_like_dtype_invalid_str.<locals>.func  r  r   r   r  )	rD   r   r   r   r   r   r  r  r   r  s       @r   test_like_dtype_invalid_str+TestNdEmptyLike.test_like_dtype_invalid_str  so    		' 
	' {+v , V%%&?H	 ,+s   A??
BrT  )rN   rO   rP   rQ   rG  r0  rS  rX  r]  re  rj  ro  rt  ry  r~  r  rR   r  r  s   @r   rG  rG    sF    $*%******$I Ir   rG  c                   F   ^  \ rS rSrU 4S jrS rU 4S jrU 4S jrSrU =r	$ )TestNdZerosLikei  c                 T   > [         [        U ]  5         [        R                  U l        g r   )rF  r  rG  r   
zeros_likerD   rI  s    r   rG  TestNdZerosLike.setUp  rJ  r   c                 B    [         R                  R                  X5        g r   rM  rN  s      r   r0  "TestNdZerosLike.check_result_value  rP  r   c                 *   > [         [        U ]  5         g r   )rF  r  rX  rI  s    r   rX  $TestNdZerosLike.test_like_structured  s    ot9;r   c                 *   > [         [        U ]  5         g r   )rF  r  rj  rI  s    r   rj  *TestNdZerosLike.test_like_dtype_structured	  s    ot?Ar   rT  )
rN   rO   rP   rQ   rG  r0  rX  rj  rR   r  r  s   @r   r  r    s    $/<B Br   r  c                   |   ^  \ rS rSrU 4S jr\R                  U 4S j5       r\R                  U 4S j5       rSr	U =r
$ )TestNdOnesLikei  c                 b   > [         [        U ]  5         [        R                  U l        SU l        g r   )rF  r  rG  r   	ones_likerD   expected_valuerI  s    r   rG  TestNdOnesLike.setUp  s#    nd)+llr   c                 *   > [         [        U ]  5         g r   )rF  r  rX  rI  s    r   rX  #TestNdOnesLike.test_like_structured  s    nd8:r   c                 *   > [         [        U ]  5         g r   )rF  r  rj  rI  s    r   rj  )TestNdOnesLike.test_like_dtype_structured  s    nd>@r   )r  rD   )rN   rO   rP   rQ   rG  r  r  rX  rj  rR   r  r  s   @r   r  r    s>      ; ; A Ar   r  c                   n    \ rS rSrS rS r\R                  S 5       rS r	S r
S rS rS	 rS
 rS rSrg)TestNdFullLikei  c                 B    [         R                  R                  X5        g r   rM  rN  s      r   r0  !TestNdFullLike.check_result_value!  rP  r   c                 J    S nU R                  U[        R                  5        g )Nc                 0    [         R                  " U S5      $ )N      @r   	full_likere   s    r   rU  &TestNdFullLike.test_like.<locals>.func%      <<S))r   rD  r   rk   r  s     r   rS  TestNdFullLike.test_like$  s    	*bjj)r   c                     [         R                  " S[         R                  4S[         R                  4/5      nS nU R	                  X!5        g )Nr   r   c                 0    [         R                  " U S5      $ r  r  re   s    r   rU  1TestNdFullLike.test_like_structured.<locals>.func-  r  r   )r   r>   r  r   rD  )rC   r>   rU  s      r   rX  #TestNdFullLike.test_like_structured*  s7    3/C+<=>	*$r   c                 J    S nU R                  U[        R                  5        g )Nc                 N    [         R                  " U S[         R                  5      $ r  r   r  r  re   s    r   rU  ,TestNdFullLike.test_like_dtype.<locals>.func2  s    <<S"((33r   r  r  s     r   r]  TestNdFullLike.test_like_dtype1  s    	4bjj)r   c                 ~   ^ [         R                  " S5      mU4S jnU R                  U[         R                  5        g )Nr  c                 4   > [         R                  " U ST5      $ r  r  )rY   r>   s    r   rU  5TestNdFullLike.test_like_dtype_instance.<locals>.func8  s    <<S%00r   )r   r>   rD  rk   r  s     @r   re  'TestNdFullLike.test_like_dtype_instance6  s(     	1bjj)r   c                 J    S nU R                  U[        R                  5        g )Nc                 J    [         R                  " U S[         R                  S9$ )Nr  r   r  re   s    r   rU  2TestNdFullLike.test_like_dtype_kwarg.<locals>.func=  s    <<S99r   r  r  s     r   ro  $TestNdFullLike.test_like_dtype_kwarg<  s    	:bjj)r   c                 J    S nU R                  U[        R                  5        g )Nc                 2    [         R                  " U SS5      $ r  r  re   s    r   rU  6TestNdFullLike.test_like_dtype_str_kwarg.<locals>.funcB  s    <<S'22r   r  r  s     r   rt  (TestNdFullLike.test_like_dtype_str_kwargA  s    	3bjj)r   c                 J    S nU R                  U[        R                  5        g )Nc                 .    [         R                  " U SSS9$ )Nr  r  r   r  re   s    r   rU  KTestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.funcG  s    <<S44r   r  r  s     r   ry  =TestNdFullLike.test_like_dtype_str_kwarg_alternative_spellingF  s    	5bjj)r   c                    [         S 5       nU R                  [        5       nU" [        R                  " S5      SS5        S S S 5        [        WR                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)Nc                 0    [         R                  " XU5      $ r   r  )rY   r  r  s      r   rU  @TestNdFullLike.test_like_dtype_non_const_str_kwarg.<locals>.funcM  s    <<,,r   rv   r  r~   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_kwarg2TestNdFullLike.test_like_dtype_non_const_str_kwargK  sm    		- 
	- {+vc7+ , V%%&"c" ,+s   A22
B c                    [         S 5       nU R                  [        5       nU" [        R                  " S5      S5        S S S 5        [        WR                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                 0    [         R                  " XS5      $ r  r  )rY   r  s     r   rU  8TestNdFullLike.test_like_dtype_invalid_str.<locals>.func[  s    <<22r   r   g333333@r  r  r  s       r   r  *TestNdFullLike.test_like_dtype_invalid_strY  sg    		3 
	3 {+vS! , V%%&?H	 ,+s   A00
A>rM   N)rN   rO   rP   rQ   r0  rS  r  r  rX  r]  re  ro  rt  ry  r  r  rR   rM   r   r   r  r    sJ    /* % %*
**
*
*
#
Ir   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestNdIdentityif  c                 *    U R                  US/5        g )Nrv   rK   rC   rD   s     r   check_identityTestNdIdentity.check_identityh  s    6D6*r   c                 ,    S nU R                  U5        g )Nc                 .    [         R                  " U 5      $ r   r   identityr  s    r   rU  *TestNdIdentity.test_identity.<locals>.funcl  s    ;;q>!r   )r  r  s     r   test_identityTestNdIdentity.test_identityk  s    	"D!r   c                    ^ [         R                  [         R                  [         R                  [         R                  " S5      S4 H  mU4S jnU R                  U5        M     g )Nr  r  c                 2   > [         R                  " U T5      $ r   r  r  s    r   rU  0TestNdIdentity.test_identity_dtype.<locals>.funcs  s    {{1e,,r   )r   r  r  r  r>   r  r  s     @r   test_identity_dtype"TestNdIdentity.test_identity_dtypep  sC    llBHHbhh8HE-%	r   c                     [         S 5       nU R                  [        5       nU" SS5        S S S 5        [        WR                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)Nc                 .    [         R                  " X5      $ r   r  )rs   r  s     r   rU  @TestNdIdentity.test_like_dtype_non_const_str_kwarg.<locals>.funcy  s    ;;q%%r   r   r~   z>If np.identity dtype is a string it must be a string constant.r  r  s        r   r  2TestNdIdentity.test_like_dtype_non_const_str_kwargw  sc    		& 
	& {+vG , V%%&"c" ,+   
A
A+rM   N)	rN   rO   rP   rQ   r  r  r  r  rR   rM   r   r   r  r  f  s    +"
&#r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)	TestNdEyei  c                 2    S nU R                  USS/5        g )Nc                 .    [         R                  " U 5      $ r   r   eyer  s    r   rU  "TestNdEye.test_eye_n.<locals>.func  s    66!9r   rh   r  r  r  s     r   
test_eye_nTestNdEye.test_eye_n  s    	4$.r   c                     S [         R                  [         R                  " S5      4 H  nU4S jnU R                  USS/5        M     g )Nrh   c                 *    [         R                  " XS9$ r  r  r  s     r   rU  (TestNdEye.test_eye_n_dtype.<locals>.func  s    vva--r   r  r  )r   rt  r  rK   )rC   r  rU  s      r   test_eye_n_dtypeTestNdEye.test_eye_n_dtype  s;    Q8B  .tdD\2 9r   c                 2    S nU R                  U/ SQ5        g )Nc                 .    [         R                  " X5      $ r   r  rs   r   s     r   rU  $TestNdEye.test_eye_n_m.<locals>.func  s    66!<r   )rh   r   rv   r   )r   rv   r  r  s     r   test_eye_n_mTestNdEye.test_eye_n_m  s    	 4!9:r   c                 ,    U R                  U/ SQ5        g )N))rh   r   r   )rv   r   rh   )rv   r   r4  )r   rv   )r   rv   )r   rv   r   r  r  s     r   check_eye_n_m_kTestNdEye.check_eye_n_m_k  s    4 "- 	.r   c                 ,    S nU R                  U5        g )Nc                 0    [         R                  " XU5      $ r   r  rs   r   r   s      r   rU  &TestNdEye.test_eye_n_m_k.<locals>.func  s    66!?"r   r  r  s     r   test_eye_n_m_kTestNdEye.test_eye_n_m_k  s    	#T"r   c                 ,    S nU R                  U5        g )Nc                 J    [         R                  " XU[         R                  S9$ N)NMr   r>   )r   r  r  r  s      r   rU  ,TestNdEye.test_eye_n_m_k_dtype.<locals>.func  s    66Aarxx88r   r  r  s     r   test_eye_n_m_k_dtypeTestNdEye.test_eye_n_m_k_dtype  s    	9T"r   c                 `   ^ [         R                  " S5      mU4S jnU R                  U5        g )Nr  c                 0   > [         R                  " XUTS9$ r  r  )rs   r   r   r>   s      r   rU  5TestNdEye.test_eye_n_m_k_dtype_instance.<locals>.func  s    66Aau55r   )r   r>   r  r  s     @r   test_eye_n_m_k_dtype_instance'TestNdEye.test_eye_n_m_k_dtype_instance  s$    !	6T"r   rM   N)rN   rO   rP   rQ   r  r  r  r  r  r  r  rR   rM   r   r   r  r    s%    /
3;
.#
#
#r   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)
TestNdDiagi  c                    [         R                  " / SQ5      n[         R                  " / SQ/5      n[         R                  " U5      nXU/U l        [         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nXE/U l        S nX`l        [        U5      U l	        SS jnXpl
        [        U5      U l        g )Nr=  r  rv   r   c                 .    [         R                  " U 5      $ r   r   diag)qs    r   rU  TestNdDiag.setUp.<locals>.func  s    771:r   c                 *    [         R                  " XS9$ )Nr   r  )r  r   s     r   
func_kwarg$TestNdDiag.setUp.<locals>.func_kwarg  s    771?"r   )r   )r   array	transposevectorsrw   r   	matriciespyr;   jitpy_kwjit_kw)rC   vhvvva3x4a4x3rU  r  s           r   rG  TestNdDiag.setUp  s    HHYXXyk"\\"r{yy}$$Q*yy}$$Q*	$<	#
Z(r   c                     U" U0 UD6nU" U0 UD6nU R                  UR                  UR                  5        U R                  UR                  UR                  5        [        R                  R                  XV5        g r   )r<   r=   r>   r   r@   rA   )rC   rD   nrtfuncrH   kwargsrI   computeds          r   
check_diagTestNdDiag.check_diag  sb    4*6*D+F+68


3r   c                 x    U R                    H*  nU R                  U R                  U R                  U5        M,     g r   )r!  r1  r#  r$  rC   ds     r   test_diag_vect_create TestNdDiag.test_diag_vect_create  s(    AOODGGTXXq1 r   c           	          [        SS5       H;  nU R                   H(  nU R                  U R                  U R                  X!S9  M*     M=     g )Nir   r  )rr   r!  r1  r%  r&  rC   r   r5  s      r   test_diag_vect_create_kwarg&TestNdDiag.test_diag_vect_create_kwarg  s:    sBA\\

DKK@ "  r   c                 x    U R                    H*  nU R                  U R                  U R                  U5        M,     g r   )r"  r1  r#  r$  r4  s     r   test_diag_extractTestNdDiag.test_diag_extract  s(    AOODGGTXXq1  r   c           	          [        SS5       H;  nU R                   H(  nU R                  U R                  U R                  X!S9  M*     M=     g )Nr   r  )rr   r"  r1  r%  r&  r9  s      r   test_diag_extract_kwarg"TestNdDiag.test_diag_extract_kwarg  s:    r1A^^

DKK@ $ r   c                    [         R                  " S///5      n[        U R                  5      nU R	                  [
        5         U" 5         S S S 5        U R	                  [        5         U" U5        S S S 5        U R	                  [        5         [        U R                  5      nU" USS9  S S S 5        g ! , (       d  f       No= f! , (       d  f       NZ= f! , (       d  f       g = f)N      ?rv   r  )r   r  r;   r#  r   r4  r   r%  )rC   r5  rG   dfuncs       r   test_error_handlingTestNdDiag.test_error_handling  s    HHtfXtww y)G * {+!H ,{+4::&E!qM ,+ *) ,+++s$   B5)	CC5
C
C
C%c                     [        U R                  5      nSnU R                  [        U5       nU" S 5        S S S 5        g ! , (       d  f       g = f)Nz'.*The argument "v" must be array-like.*)r;   r#  assertRaisesRegexr   )rC   rG   r  r  s       r   test_bad_shapeTestNdDiag.test_bad_shape  s9    tww7##K5$K 655s   	A  
A)r$  r&  r"  r#  r%  r!  N)rN   rO   rP   rQ   rG  r1  r6  r:  r=  rA  rF  rJ  rR   rM   r   r   r  r    s,    )$42
A2
Ar   r  c                   &    \ rS rSrS rS rS rSrg)TestLinspacei  c                 2    S nU R                  U/ SQ5        g )Nc                 .    [         R                  " X5      $ r   r   r?  r  s     r   rD   ,TestLinspace.test_linspace_2.<locals>.pyfunc  s    ;;q$$r   ))r   r   )rh   r   )            @)                    @      @)r   rh   )      ?      ?              ?r  r  s     r   test_linspace_2TestLinspace.test_linspace_2  s    	%64	5r   c                 2    S nU R                  U/ SQ5        g )Nc                 0    [         R                  " XU5      $ r   rP  rs   r   r   s      r   rD   ,TestLinspace.test_linspace_3.<locals>.pyfunc  s    ;;qQ''r   ))r   r   	   )rh   r   rv   )rR  rS  r   )rT  rU  r   )r   rh   r   )rV  rW  r   )rh   g}Ô%ITrh   r  r  s     r   test_linspace_3TestLinspace.test_linspace_3  s    	(6>	?r   c                 x    [         S 5       nSu  p#nU R                  U" X#U5      UR                  X#U5      5        g )Nc                 0    [         R                  " XU5      $ r   rP  r\  s      r   rf   0TestLinspace.test_linspace_accuracy.<locals>.foo  s    ;;qQ''r   )g        rD  r   )r;   assertPreciseEqualpy_func)rC   rf   rs   r   r   s        r   test_linspace_accuracy#TestLinspace.test_linspace_accuracy  sB     
	( 
	(  aA!ckk!.BCr   rM   N)rN   rO   rP   rQ   rX  r_  rf  rR   rM   r   r   rM  rM    s    5?Dr   rM  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestNpyEmptyKeywordi  c                    ^ U4S jn/ SQn[        U5      nU H_  nU" U5      nU" U5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        Ma     g )Nc                 .   > [         R                  " U TS9$ r  rc   rj   r>   s    r   rD   7TestNpyEmptyKeyword._test_with_dtype_kw.<locals>.pyfunc  s    88E//r   rh   r   r^  r;   r<   r>   rj   rC   r>   rD   shapesrG   srI   r   s    `      r   _test_with_dtype_kw'TestNpyEmptyKeyword._test_with_dtype_kw  sd    	0 vAayH(CX^^SYY7X^^SYY7	 r   c                     [         R                  [         R                  [         R                  [         R                  " S5      4 H  nU R                  U5        M     g Nr  )r   r~   r   r  r>   rs  rC   r>   s     r   test_with_dtype_kws'TestNpyEmptyKeyword.test_with_dtype_kws%  s9    hh

BLL"((;:OPE$$U+ Qr   c                    ^ U4S jn/ SQn[        U5      nU H_  nU" U5      nU" U5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        Ma     g )Nc                 .   > [         R                  " U TS9$ )Nrl  rc   rl  s    r   rD   ATestNpyEmptyKeyword._test_with_shape_and_dtype_kw.<locals>.pyfunc*  s    88%u55r   rn  ro  rp  s    `      r   _test_with_shape_and_dtype_kw1TestNpyEmptyKeyword._test_with_shape_and_dtype_kw)  sd    	6 vAayH(CX^^SYY7X^^SYY7	 r   c                     [         R                  [         R                  [         R                  [         R                  " S5      4 H  nU R                  U5        M     g rv  )r   r~   r   r  r>   r}  rw  s     r   test_with_shape_and_dtype_kws1TestNpyEmptyKeyword.test_with_shape_and_dtype_kws6  s9    hh

BLL"((;:OPE..u5 Qr   c                     S n[        U5      nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  ,    [         R                  " 5       $ r   rc   rM   r   r   rD   6TestNpyEmptyKeyword.test_empty_no_args.<locals>.pyfunc<  s    88:r   )r;   r   r   )rC   rD   rG   s      r   test_empty_no_args&TestNpyEmptyKeyword.test_empty_no_args:  s3    	 v {+G ,++s	   5
ArM   N)
rN   rO   rP   rQ   rs  rx  r}  r  r  rR   rM   r   r   ri  ri    s    8,86
r   ri  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestNpArrayiG  c                     S n[        U5      nU" S5      nU R                  U[        R                  " S[        R                  S95        U" S5      nU R                  U[        R                  " S5      5        g )Nc                 .    [         R                  " U 5      $ r   r   r  args    r   rD   #TestNpArray.test_0d.<locals>.pyfuncJ      88C= r   rb   r   rS  )r;   rd  r   r  r  rC   rD   rG   r   s       r   rX  TestNpArray.test_0dI  s[    	! vBiRXXb%@ACjRXXc]3r   c                 2    S nU R                  USS/5        g )Nc                 H    [         R                  " U [         R                  S9$ r  )r   r  r  r  s    r   rD   .TestNpArray.test_0d_with_dtype.<locals>.pyfuncT      88Crxx00r   )rb   )r  r  r  s     r   test_0d_with_dtypeTestNpArray.test_0d_with_dtypeS  s    	1 	6E6?3r   c                 @   S n[        U5      nU" / SQ5      nU R                  U[        R                  " / SQ5      5        U" S5      nU R                  U[        R                  " / SQ5      5        U" S5      nU R                  U[        R
                  " S5      5        g )Nc                 .    [         R                  " U 5      $ r   r  r  s    r   rD   #TestNpArray.test_1d.<locals>.pyfuncZ  r  r   )r   rv   rb   )rD  y              @rb   rM   )r;   rd  r   r  r  rk   r  s       r   r_  TestNpArray.test_1dY  sy    	! vJRWWZ%89O$RXXo%>?BiRZZ^4r   c                 B    S nU R                  USS/4SS/4SS/5        g )Nc                 H    [         R                  " U [         R                  S9$ r  )r   r  r   r  s    r   rD   .TestNpArray.test_1d_with_dtype.<locals>.pyfunci  s    88Crzz22r   r   rb   r  rD  )rh   r  rb   rM   r  r  s     r   test_1d_with_dtypeTestNpArray.test_1d_with_dtypeh  s6    	3 	6WJ!3ZM+!	r   c                 B    S nU R                  USS/4SS/4SS/5        g )Nc                 ,    [         R                  " U SS9$ )Nr   r   r  r  s    r   rD   2TestNpArray.test_1d_with_str_dtype.<locals>.pyfunct  s    88Cy11r   r   rb   r  rD  r  r  r  r  s     r   test_1d_with_str_dtype"TestNpArray.test_1d_with_str_dtypes  s6    	2 	6WJ!3ZM+!	r   c                     [         S 5       nU R                  [        5       nU" SS5        S S S 5        [        WR                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)Nc                 *    [         R                  " XS9$ r  r  )r  r  s     r   rU  :TestNpArray.test_1d_with_non_const_str_dtype.<locals>.func  s    88C**r   )r   rv   r~   z;If np.array dtype is a string it must be a string constant.r  r  s        r    test_1d_with_non_const_str_dtype,TestNpArray.test_1d_with_non_const_str_dtype~  sc    		+ 
	+ {+v! , V%%&"c" ,+r  c                    S n[        U5      nU" SS/5      nU R                  U[        R                  " SS/SS//5      5        U" SS	/5      nU R                  U[        R                  " SS
/SS//5      5        U" SS/SS/45      nU R                  U[        R                  " SS/SS//5      5        U" SS/SS/45      nU R                  U[        R                  " SS/SS//5      5        U" S5      nU R                  U[        R                  " SS/SS//5      5        U" S5      nU R                  U[        R                  " S5      5        g )Nc                 .    [         R                  " U 5      $ r   r  r  s    r   rD   #TestNpArray.test_2d.<locals>.pyfunc  r  r   r  rv   r   rh   r   rv   r   rh   rS  rv   r  rS  r  r  ))      ?r   )r  r  r  )rM   rM   )r;   rd  r   r  rk   r  s       r   r  TestNpArray.test_2d  sI   	! vVV$%RWWq!fq!f-=%>?Xx()RZZ!SAs80D%EFaVaV$%RWWq!fq!f-=%>?aVc3Z()RZZ!Q#s0D%EF*+RZZ#qC:0F%GHHoRZZ%9:r   c                     S n[        U5      nU" SS/5      nU R                  U[        R                  " SS/SS//5      5        g )Nc                 H    [         R                  " U [         R                  S9$ r  )r   r  r~   r  s    r   rD   .TestNpArray.test_2d_with_dtype.<locals>.pyfunc  r  r   r  r  rh   r   rv   r   )r;   rd  r   r~   r  s       r   test_2d_with_dtypeTestNpArray.test_2d_with_dtype  sG    	1 vXx()RXX1v1v.>%?@r   c                 `  ^  S n[        U5      n[        R                  U 4S j5       nU" S5         U" [        R                  " S/5      5        S S S 5        U" S5         U" [        R
                  " S5      [        R
                  " S5      /45        S S S 5        U" S5         [        R                  " S	S
/5      n[        R                  " SUS9S   nU" S[        R
                  " S5      U445        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                 .    [         R                  " U 5      $ r   r  r  s    r   rD   'TestNpArray.test_raises.<locals>.pyfunc  r  r   c              3      >#    TR                  [        5       nS v   S S S 5        TR                  U [        WR                  5      5        g ! , (       d  f       N4= f7fr   )r   r   r   r  r  )r  r  rC   s     r   check_raises-TestNpArray.test_raises.<locals>.check_raises  s?     "";/6 0MM#s6#3#345 0/s   AA.A
AAz;array(float64, 1d, C) not allowed in a homogeneous sequencerD  zOtype Tuple(int64, reflected list(int64)<iv=None>) does not have a regular shaperh   r   zrcannot convert Tuple(int64, Record(a[type=int32;offset=0],b[type=float32;offset=4];8;False)) to a homogeneous type)r   rx  )r   f4r   r   r  )r;   
contextlibcontextmanagerr   r  r  r>   rH  )rC   rD   rG   r  stvals   `     r   test_raisesTestNpArray.test_raises  s   	! v		"	"	6 
#	6
  2 4"((B4.!4  : <288A;!./< K ;45B((1B'*C6BHHQK-./ 4 4< < s$   C=4D#AD=
D
D
D-c                     [         S 5       nSnU R                  [        U5       nU" S 5        S S S 5        g ! , (       d  f       g = f)Nc                 .    [         R                  " U 5      $ r   r  )objs    r   rU  (TestNpArray.test_bad_array.<locals>.func  s    88C= r   z,.*The argument "object" must be array-like.*r   rI  r   rC   rU  r  r  s       r   test_bad_arrayTestNpArray.test_bad_array  s@    		! 
	! =##K5J 655s	   	7
Ac                     [         S 5       nSnU R                  [        U5       nU" SS5        S S S 5        g ! , (       d  f       g = f)Nc                 .    [         R                  " X5      $ r   r  )r  r  s     r   rU  (TestNpArray.test_bad_dtype.<locals>.func  s    88C$$r   z>.*The argument "dtype" must be a data-type if it is provided.*r   r   r  r  s       r   test_bad_dtypeTestNpArray.test_bad_dtype  sC    		% 
	% O##K5AJ 655s	   
8
ArM   N)rN   rO   rP   rQ   rX  r  r_  r  r  r  r  r  r  r  r  rR   rM   r   r   r  r  G  s:    445		#;*A0:r   r  c                   T    \ rS rSrSrS r\R                  S 5       rS r	S r
S rSrg	)
TestNpConcatenatei  z
Tests for np.concatenate().
c                     [         R                  " S5      R                  S5      nUS-   nUS-   R                  SS9nUS-   S S S2   nUS-   SS S S24   nXX4U4$ N   )r   rv   r   r   F)orderr4  .r   rw   r   r   rC   r   r   r   r5  r@  s         r   
_3d_arraysTestNpConcatenate._3d_arrays  j    IIbM!!),FVMMM$VTrTNVS2XQ1}r   c              #      #    U R                  [        5       nS v   S S S 5        U R                  SU-  [        WR                  5      5        g ! , (       d  f       N7= f7f)Nz*input sizes over dimension %d do not matchr   r7  r   r  r  )rC   r   r  s      r   assert_invalid_sizes_over_dim/TestNpConcatenate.assert_invalid_sizes_over_dim  sG     z*f +BTI&**+	- +*s   AA1A
AAc           	        ^ ^^	^
 [         m
[        T
5      mUU
U 4S jm	U	4S jnT R                  5       u  p#pEnU" X#U5        U" X#U5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        T	" USS  X4S S S2   SS9  T	" X#S S 2SS 24   USS9  T	" X#US S 2S S 2SS 24   SS9  U" X#R	                  [
        R                  5      U5        T R                  5         S H*  nT R                  S5         T" USS  X3U5        S S S 5        M,     S	 H/  nT R                  S5         T" X#S S 2SS 24   X75        S S S 5        M1     g ! , (       d  f       Ms  = f! , (       d  f       MU  = f)
Nc                 `   > USU-   4 H"  nT" XX$S9nT" XX$S9nT	R                  Xe5        M$     g )Nr   rd  )
r   r   r   r   axrI   r   rG   rD   rC   s
          r   check(TestNpConcatenate.test_3d.<locals>.check  s<    R$Y'!!3A!-''6 (r   c                 <   > [        S5       H  nT" XX#5        M     g )Nrv   r  )r   r   r   r   r  s       r   check_all_axes1TestNpConcatenate.test_3d.<locals>.check_all_axes  s    aaA$ !r   rh   r4  r   r   r   )rh   r   r  r4  )r   r   r  r4  )	r    r;   r  Tr@  r   rk   r   r  )rC   r  r   r   r   r5  r@  r   rG   r  rD   s   `       @@@r   test_3dTestNpConcatenate.test_3d  s    v	7	% )aA 	qQqQqssACC%qssACC%qssACC% 	qssACC% 	aeQ$B$a(a1QR4!!$aAa!"fIA& 	q((2::.2 	! #D33A6aeQ4( 76 # #D33A6a1QR4!* 76 # 76 76s   ,F<G<
G	
G	c                   ^ ^^ [         m[        T5      mUUU 4S jnT R                  5       u  p#pEnU" X#U5        U" X#U5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" USS  X4S S S2   5        T R	                  5         T R                  S5         T" X#S S 2SS 24   U5        S S S 5        g ! , (       d  f       g = f)Nc                 L   > T" XU5      nT" XU5      nTR                  XC5        g r   r  )r   r   r   rI   r   rG   rD   rC   s        r   r  0TestNpConcatenate.test_3d_no_axis.<locals>.check#  s'    aAHa.C##C2r   rh   r4  )r   r;   r  r  r   r  )	rC   r  r   r   r   r5  r@  rG   rD   s	   `      @@r   test_3d_no_axis!TestNpConcatenate.test_3d_no_axis  s     v	3
 )aA 	aAaAacc133acc133acc133 	acc133 	aeQ$B$  	! //2!qtWa  322s   D22
E c                    [         n[        U5      n[        R                  " S5      nUR	                  S5      nUR                  [        R                  " S[        R                  4/5      5      n[        R                  " S5      nU R                  5        nU" X4U5        S S S 5        U R                  S[        WR                  5      5        U R                  5        nU" X5U5        S S S 5        U R                  S[        UR                  5      5        U R                  5        nU" XfU5        S S S 5        U R                  S[        UR                  5      5        U R                  5        nU" USU5        S S S 5        U R                  S	[        UR                  5      5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nh= f)
N   )rv   r   r   rb   z8all the input arrays must have same number of dimensionsz(input arrays must have compatible dtypesz.zero-dimensional arrays cannot be concatenatedrh   %expecting a non-empty tuple of arrays)r   r;   r   rw   r   r@  r>   r  r  assertTypingErrorr   r  r  )rC   rD   rG   r   r   r   r5  r  s           r   test_typing_errors$TestNpConcatenate.test_typing_errorsC  si    vIIbMIIfHHRXXRWW~./0HHRL ##%!N &P&**+	- ##%!N &@&**+	- ##%!N &F&**+	- ##%!QN &=s6CSCS?TU) &% &% &% &%s0   
F#
F5#
G*G#
F25
G
G
G%rM   N)rN   rO   rP   rQ   __doc__r  r  r  r  r  r  r  rR   rM   r   r   r  r    s8     - -0+d"!HVr   r  r#   z"this Numpy doesn't have np.stack()c                       \ rS rSrSrS r\R                  S 5       rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rSrg)TestNpStackid  z
Tests for np.stack().
c                     [         R                  " S5      R                  S5      nUS-   nUS-   R                  SS9nUS-   S S S2   nUS-   SS S S24   nXX4U4$ r  r  r  s         r   r  TestNpStack._3d_arraysj  r  r   c              #      #    U R                  [        5       nS v   S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f7f)Nz)all input arrays must have the same shaper  )rC   r  s     r   assert_invalid_sizes TestNpStack.assert_invalid_sizesr  sB     z*f +A&**+	- +*s   AA.A
AAc                     U" U6 nU" U6 nU R                  UR                  UR                  5        U R                  UR                  5       UR                  5       5        g r   )r<   rj   rd  flatten)rC   rD   rG   rH   rI   r   s         r   check_stackTestNpStack.check_stacky  sM    4=Tl
 	HNN3x/?/?/ABr   c                   ^ ^^^^
 UUU 4S jm
U
U4S jnT R                  5       u  pVpxn	U" XVU5        U" XVU5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  UR                  UR                  5        U" UR                  U	R                  UR                  5        U" XVR                  [        R                  5      U5        g )Nc                 6   > TR                  TTXU4U-   5        g r   )r  )r   r   r   rH   rG   rD   rC   s       r   r  #TestNpStack.check_3d.<locals>.check  s    VUQ1I,<=r   c                 4   > T" 5        H  nT" XX#5        M     g r   rM   )r   r   r   rH   r  generate_starargss       r   r  ,TestNpStack.check_3d.<locals>.check_all_axes  s    )+aA$ ,r   )r  r  r@  r   rk   )rC   rD   rG   r  r  r   r   r   r5  r@  r  s   ````      @r   check_3dTestNpStack.check_3d  s    	>	% )aA 	qQqQqssACC%qssACC%qssACC%qssACC% 	q((2::.2r   c                     U R                  5         U R                  5         U R                  5       u  p4pVnU R                  5          [	        U" 5       5      nU" US S XE/UQ76   S S S 5        g ! , (       d  f       g = f)Nr4  )assert_no_memory_leakr   r  r  next)	rC   rG   r  r   r   r   r5  r@  rH   s	            r   check_runtime_errors TestNpStack.check_runtime_errors  si    ""$! )aA&&()+,D!CR&!&& )((s   A,,
A:c                 r    [         n[        U5      nS nU R                  XU5        U R                  X#5        g)z
stack(3d arrays, axis)
c               3   J   #    [        S5       H  n U 4v   SU -   4v   M     g 7f)Nrv   r  r  r   s    r   r  .TestNpStack.test_3d.<locals>.generate_starargs  s&     agDyl" !s   !#N)r&   r;   r  r  rC   rD   rG   r  s       r   r  TestNpStack.test_3d  s6     v	#
 	f%67!!%;r   c                 r    [         n[        U5      nS nU R                  XU5        U R                  X#5        g)z
stack(3d arrays)
c               3      #    Sv   g 7frS  rM   rM   r   r   r  6TestNpStack.test_3d_no_axis.<locals>.generate_starargs  
     G   N)r$   r;   r  r  r  s       r   r  TestNpStack.test_3d_no_axis  s6     v	 	f%67!!%;r   c                     [         n[        U5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      nU R	                  XX4U45        g)z
stack(0d arrays)
rb                TN)r$   r;   r   r  r  rC   rD   rG   r   r   r   s         r   rX  TestNpStack.test_0d  sM     vHHRLHHSMHHTNq	2r   c                     S nU R                  XU5        [        R                  " S5      n[        R                  " S5      n[        R                  " S5      nU R                  XXEU45        g)z3
3d and 0d tests for hstack(), vstack(), dstack().
c               3      #    Sv   g 7frS  rM   rM   r   r   r  4TestNpStack.check_xxstack.<locals>.generate_starargs  r  r  rb   r!  TN)r  r   r  r  )rC   rD   rG   r  r   r   r   s          r   check_xxstackTestNpStack.check_xxstack  sS    	 	f%67HHRLHHSMHHTNq	2r   c                    [         n[        U5      nU R                  X5        [        R                  " S5      n[        R                  " S5      S-   nU R                  XX4U45        [        R                  " S5      R                  S5      n[        R                  " S5      R                  S5      S-   nU R                  XX4U45        g )Nr   r<  r   r<  r   )r   r   r   )r)   r;   r'  r   rw   r  r   rC   rD   rG   r   r   s        r   test_hstackTestNpStack.test_hstack  s    v6)IIaLIIaL2q	2IIaL  (IIaL  (3.q	2r   c                    [         [        /nU H  n[        U5      nU R                  X#5        [        R
                  " S5      nUS-   nU R                  X#XEU45        [        R
                  " S5      R                  S5      n[        R
                  " S5      R                  S5      S-   nU R                  X#XEU45        M     g )Nr   r   r<  r  r   )r   r   r   )r-   r0   r;   r'  r   rw   r  r   )rC   	functionsrD   rG   r   r   s         r   test_vstackTestNpStack.test_vstack  s     -	F6NEv-		!ABAVQ1I6		!$$V,A		!$$V,s2AVQ1I6  r   c                 "   [         n[        U5      nU R                  X5        [        R                  " S5      nUS-   nU R                  XX4U45        [        R                  " S5      R                  S5      nUS-   nU R                  XX4U45        g )Nr   r   r  r  r   )r3   r;   r'  r   rw   r  r   r*  s        r   test_dstackTestNpStack.test_dstack  s}    v6)IIaLFq	2IIbM!!&)Gq	2r   c                 ,   [         n[        U5      n[        R                  " S5      nUS-   n[        R                  " S5      R	                  S5      nU R                  XX4U45        U R                  5         U R                  5         [        R                  " S5      nU R                  5          U" X3U45        S S S 5        UR	                  S5      nU R                  5          U" X3U45        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nr   r   r  r   rv   rb   )rh   rh   rh   )
r6   r;   r   rw   r   r  r  r   r  r  r"  s         r   test_column_stackTestNpStack.test_column_stack  s     vIIaLFIIbM!!&)q	2 	""$! HHRL##%1) &IIi ##%1) &% &% &%s   ,C4 D4
D
Dc                 Z   [         [        [        [        [        4 H{  n[        U5      n[        R                  " S5      R                  S5      nU R                  5        nU" USU5        S S S 5        U R                  S[        WR                  5      5        M}     g ! , (       d  f       N8= f)Nr  r5  rh   r  )r$   r)   r-   r3   r6   r;   r   rw   r   r  r   r  r  )rC   rD   rG   r   r  s        r   test_bad_arraysTestNpStack.test_bad_arrays"  s|     )Y	?SF6NE		"%%f-A '')VaA *MMA3vGWGWCXY T
 *)s   B
B*	rM   N)rN   rO   rP   rQ   r  r  r  r  r  r  r  r  r  r  rX  r'  r+  r/  r2  r6  r9  rR   rM   r   r   r  r  d  sd     - -C34	'<<3337$3*Zr   r  c                  R  ^^^^^ S m[        T5      m[        R                  R                  S5      m[        R                  R                  S5      mSmUUUU4S jn UUUU4S jn[        R                  " U 5      n[        R                  " U5      n[        U5        [        U5        g )Nc                 0    [        U5       H  nXpM     X4$ )z1Swap array x and y for t number of times
        r  r	  s       r   rD   %benchmark_refct_speed.<locals>.pyfunc.  s     qAq tr   r   i'  c                     > T " TTT5        g r   rM   )rD   r
  r   r   s   r   bench_pyfunc+benchmark_refct_speed.<locals>.bench_pyfunc;  s    q!Qr   c                     > T " TTT5        g r   rM   )rG   r
  r   r   s   r   bench_cfunc*benchmark_refct_speed.<locals>.bench_cfunc>  s    aAr   )r;   r   r   r   	benchmarkprint)	r?  rB  python_time
numba_timerG   rD   r
  r   r   s	       @@@@@r   benchmark_refct_speedrH  -  s     6NE
		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   numba.core.utilsr   r  r;   r   r    r$   r&   r)   r-   r0   r3   r6   r8   rT   r^   r.  rD  r  r  objectr1  rG  r  r  r  r  r  r  rM  ri  r  r  
skipUnlesshasattrr  rH  rN   mainrM   r   r   <module>rU     s    
   	  	 )  + + M M &  
4t	$%0*  # &:x : 4? 4
W:< W:tD
, D
NNG%x NGb5 5nA$h nAb+f +\YI-x YIxBo B A_ A$DI,h DIN#X #B)# )#XF FPD8 D8-( -`O/8 OdHV HVV 
WR)+OPEZ/8 EZ QEZP4 zMMO r   