
    i                        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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      r. " S- S.\5      r/ " S/ S0\ 5      r0 " S1 S2\5      r1 " S3 S4\\ 5      r2 " S5 S6\\5      r3\Rh                  " \5" \S75      S85       " S9 S:\\5      5       r6S; r7\8S<:X  a  \Rr                  " 5         gg)=    N)TypingError)njit)typesutilsconfig)MemoryLeakMixinTestCasetagskip_if_32bitT)_nrtnogilc                 2    [         R                  " XU45      $ Nnpconcatenateabcs      U/var/www/html/trading/venv/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_stackr/   %   s    <<q	""r   c                 2    [         R                  " XU45      $ r   )r   dstackr   s      r   	np_dstackr2   (   r)   r   c                 2    [         R                  " XU45      $ r   )r   column_stackr   s      r   np_column_stackr5   +   s    ??A!9%%r   c                       \ rS rSrSS jrSrg)BaseTest/   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_outputs1   s    vDt}H,CSXXx}}5SYY7##C2

''6

**89 r    N)T)__name__
__module____qualname____firstlineno__rJ   __static_attributes__rL   r   r   r7   r7   /   s    :r   r7   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)rB   arrexpects      r   assert_array_nrt_refct#NrtRefCtTest.assert_array_nrt_refct@   s    **F3r   rL   N)rM   rN   rO   rP   rZ   rQ   rL   r   r   rS   rS   ?   s    4r   rS   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)TestDynArrayD   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 $ )NrL   *   r   emptyrX   s    r   foo'TestDynArray.test_empty_0d.<locals>.fooG   s    ((2,CCGJr      ra   rL   {   )r:   rZ   r   r?   r@   r;   r<   shaper=   float64stridesfill)rB   re   rX   s      r   test_empty_0dTestDynArray.test_empty_0dF   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   rc   range)nrX   is      r   re   'TestDynArray.test_empty_1d.<locals>.fooY   s+    ((1+C1XA  Jr      rg   rh   )r:   rZ   r   r?   r@   aranger;   r<   ri   r=   rj   rk   itemsizerl   )rB   re   rr   rX   s       r   test_empty_1dTestDynArray.test_empty_1dX   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   rc   int32rq   )mrr   rX   rs   js        r   rC   *TestDynArray.test_empty_2d.<locals>.pyfuncn   sH    ((A6288,C1XqA !C1I "  Jr      ru   rg   	r:   rZ   r   r?   r@   r;   r<   ri   rk   )rB   rC   rF   r~   rr   expected_arrgot_arrs          r   test_empty_2dTestDynArray.test_empty_2dm   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~   rr   prX   rs   r   ks          r   rC   *TestDynArray.test_empty_3d.<locals>.pyfunc   s\    ((A!9bhh/C1XqA"1X'(uqyqG & " 
 Jr   r   ru      rg   r   rB   rC   rF   r~   rr   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~   rr   r   rX   rs   r   s         r   rC   1TestDynArray.test_empty_2d_sliced.<locals>.pyfunc   sJ    ((A6288,C1XqA !C1I "  6Mr   r   ru   r   rg   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   rL   ys   r   return_external_arrayDTestDynArray.test_return_global_array.<locals>.return_external_array   s    Hr   rg   )r   onesfloat32sysgetrefcountr:   r;   r?   r@   gccollect)rB   	initrefctr   rF   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   rL   r   s   r   r   KTestDynArray.test_return_global_array_sliced.<locals>.return_external_array   s    QR5Lr   r   )r   r   r   r:   assertIsNonerV   r?   r@   )rB   r   rF   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   rL   r   s    r   rC   4TestDynArray.test_array_pass_through.<locals>.pyfunc   s    Hr   r   r   )r   r   r   r:   r?   r@   assertIs)rB   rC   rX   rF   rH   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   rC   ;TestDynArray.test_array_pass_through_sliced.<locals>.pyfunc   s    VVq[\?"r   r   r   rg   r   )
r   r   r   r   r   r:   r;   r?   r@   r<   )rB   rC   rX   r   rF   r   rH   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   rc   ri   add)r   r   r   s      r   rC   =TestDynArray.test_ufunc_with_allocated_output.<locals>.pyfunc  s'    ((177#CFF1Jr   
   rg   r      F      )r:   r   randomr?   r@   rZ   reshape)rB   rC   rF   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   rc   r<   rq   )inpr   rs   tmpr   s        r   rC   /TestDynArray.test_allocation_mt.<locals>.pyfunc.  s    ((388$C 388_ % 3q6]hhsxx(sxxA VCF ) sxxAFcfqj(F ) # Jr   r   rg   c                    > T" U 5      US S & g r   rL   )r   r   rF   s     r   wrapped0TestDynArray.test_allocation_mt.<locals>.wrappedO  s    3ZCFr   d   	worker{0}targetrG   nameN)r:   r   r   randintcopyr?   r@   rq   
empty_like	threadingThreadformatappendstartjoinzip)rB   rC   r<   rX   
frozen_arrworkersinputsoutputsr   rs   r   threadr   rF   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$ Nrg   r   )rr   r   r   rs   s       r   rC   *TestDynArray.test_refct_mt.<locals>.pyfuncn  sM    ((388$C388_! % 1XS Jr   r   r   i  c                    > T" X5      US S & g r   rL   )rr   inputr   rF   s      r   r   +TestDynArray.test_refct_mt.<locals>.wrapped  s    1_CFr   r   r   r   N)r:   r   rv   floatr   r   r   	randranger?   r@   r;   rq   rc   r   r   r   r   r   r   r   )rB   rC   r<   r   expected_refctswapctrH   r   r   swapctsr   rs   r   r   rF   s                 @r   test_refct_mtTestDynArray.test_refct_mti  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   rb   )xs    r   re   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)rB   re   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
            rq   r   r   trs   s       r   rC   &TestDynArray.test_swap.<locals>.pyfunc  s      1X1  4Kr   r   r   rg   )
r:   r   r   r   r   r   rV   r?   r@   r;   )	rB   rC   rF   r   r   r	  r   rY   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   rs   s      r   rC   7TestDynArray.test_return_tuple_of_array.<locals>.pyfunc  s:     A166]tax #4Kr   r   )	r:   r   r   r   r   r   r?   r@   r;   )	rB   rC   rF   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        U R                  S[        R                  " U5      5        U R                  S[        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   rs   r   s       r   rC   ?TestDynArray.test_return_tuple_of_array_created.<locals>.pyfunc  s?     A166]tax #$CJr   r   r   )r:   r   r   r?   r@   r;   r   r   )rB   rC   rF   r   r  r  r  r  s           r   "test_return_tuple_of_array_created/TestDynArray.test_return_tuple_of_array_created  s    	 vIIQ!'
Qx



2



2COOE23COOE23r   c                   ^ [         S 5       mU4S jn[        U5      n[        R                  " S5      n[        R                  " U5      nU R                  U[        R                  " U" U5      5      5        U R                  U[        R                  " U" U5      5      5        U R                  U[        R                  " U5      5        g)zG
Dispatcher returns a new reference.
It need to workaround it for now.
c                     U $ r   rL   )r   s    r   inner7TestDynArray.test_issue_with_return_leak.<locals>.inner   s    Jr   c                    > T" U 5      $ r   rL   )r   r  s    r   rC   8TestDynArray.test_issue_with_return_leak.<locals>.pyfunc  s    8Or   r   N)r:   r   rv   r   r   r;   )rB   rC   rF   rX   	old_refctr  s        @r   test_issue_with_return_leak(TestDynArray.test_issue_with_return_leak  s    
 
	 
		 viimOOC(	COOF3K$@ACOOE#J$?@COOC$89r   rL   N)rM   rN   rO   rP   rm   rx   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  rQ   rL   r   r   r]   r]   D   so    $*.2086C%:,"<H?6B;Az B BN4N.4*: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 )Nrg   rh   )r:   rZ   r;   r<   ri   r=   rk   check_result_valuer   r   rl   r?   r@   )rB   rC   rF   rH   rI   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)Nru   rg   rh   negative dimensions not allowedr:   rZ   r;   r<   ri   r=   rk   r'  r   r   rl   r?   r@   r   
ValueErrorr   r  )rB   rC   rF   rr   rH   rI   cms          r   check_1dConstructorBaseTest.check_1d#  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   ru   rg   rh   r   r+  r,  r-  )rB   rC   rF   r~   rr   rH   rI   r/  s           r   check_2dConstructorBaseTest.check_2d8  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   r.  r   r   r  )rB   rC   rF   es       r   check_alloc_size$ConstructorBaseTest.check_alloc_sizeM  sI    vz*aG +	
 +*s   A
A%rL   N)	rM   rN   rO   rP   r(  r0  r4  r8  rQ   rL   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$ )TestNdZerosiX  c                 T   > [         [        U ]  5         [        R                  U l        g r   )superr;  setUpr   zerosrC   rB   	__class__s    r   r>  TestNdZeros.setUpZ  s    k4&(hhr   c                 B    [         R                  R                  X5        g r   r   r?   r@   rB   rI   rH   s      r   r'  TestNdZeros.check_result_value^      


.r   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                     > T " S5      $ NrL   rL   rC   s   r   func!TestNdZeros.test_0d.<locals>.funcc  s    ":r   )rC   r(  rB   rL  rC   s     @r   test_0dTestNdZeros.test_0da  s    	dr   c                 L   ^ U R                   mU4S jnU R                  U5        g )Nc                    > T" U 5      $ r   rL   rr   rC   s    r   rL  !TestNdZeros.test_1d.<locals>.funci  s    !9r   rC   r0  rN  s     @r   test_1dTestNdZeros.test_1dg  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}   rS  s    r   rL  'TestNdZeros.test_1d_dtype.<locals>.funco  s    !RXX&&r   rU  rN  s     @r   test_1d_dtypeTestNdZeros.test_1d_dtypem  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   rL   rr   _dtyperC   s    r   rL  0TestNdZeros.test_1d_dtype_instance.<locals>.funcw      !V$$r   )rC   r   r=   r0  rB   rL  ra  rC   s     @@r   test_1d_dtype_instance"TestNdZeros.test_1d_dtype_instances  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   rL   r`  s    r   rL  +TestNdZeros.test_1d_dtype_str.<locals>.func~  rc  r   c                    > T" U S5      $ )N
complex128rL   rS  s    r   rL  ri    s    !\**r   rU  rd  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   rL   r`  s    r   rL  @TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func  rc  r   c                    > T" U S5      $ )Nc8rL   rS  s    r   rL  rq    s    !T?"r   rU  rd  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   rL   r`  s    r   rL  <TestNdZeros.test_1d_dtype_str_structured_dtype.<locals>.func  rc  r   rU  rd  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   rL   rr   dtrC   s     r   rL  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.)rC   r   r   r   r   r  rM   r   rB   rL  r  excstrmsgrC   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ABCDEFrL   rS  s    r   rL  3TestNdZeros.test_1d_dtype_invalid_str.<locals>.func      !X&&r   r   'Invalid NumPy dtype specified: 'ABCDEF')rC   r   r   r   r   r  r   rB   rL  r  r  rC   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   rL   r~   rr   rC   s     r   rL  !TestNdZeros.test_2d.<locals>.func  s    1&>!r   rC   r4  rN  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   rL   r  s     r   <lambda>2TestNdZeros.test_2d_shape_dtypes.<locals>.<lambda>  s    vr           rg   )	rC   r4  r   	IS_32BITSr:   r   r.  r   r  )rB   r  r  rF   rC   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   rL  -TestNdZeros.test_2d_dtype_kwarg.<locals>.func  s    1&55r   r  rN  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   rL   r  s     r   rL  1TestNdZeros.test_2d_dtype_str_kwarg.<locals>.func  s    1&44r   r  rN  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$ )Nrs  r   rL   r  s     r   rL  FTestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling.<locals>.func  s    1&--r   r  rN  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   rL   )r=   rC   ri   s   r   r  ?TestNdZeros.test_alloc_size.<locals>.gen_func.<locals>.<lambda>  s    F5%0r   rL   )ri   r=   rC   s   ``r   gen_func-TestNdZeros.test_alloc_size.<locals>.gen_func  s	    00r   rg   r   r   @   )rC   r   intpbitwidthr8  r   )rB   widthr  rC   s      @r   test_alloc_sizeTestNdZeros.test_alloc_size  si    

##	1 	hqEAI~rww?@hUQY';RWWEFr   rK  )rM   rN   rO   rP   r>  r'  rO  rV  r\  re  rl  rt  ry  r  r  r  r  r  r  r  r  rQ   __classcell__rA  s   @r   r;  r;  X  s`    /	
#I2 G Gr   r;  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   )r=  r  r>  r   r   rC   r@  s    r   r>  TestNdOnes.setUp  s    j$%'ggr   c                 "   > [         TU ]  5         g r   )r=  ry  r@  s    r   ry  -TestNdOnes.test_1d_dtype_str_structured_dtype  s    24r   rK  )
rM   rN   rO   rP   r>  unittestexpectedFailurery  rQ   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   rD  rE  s      r   r'  TestNdFull.check_result_value  rG  r   c                 ,    S nU R                  U5        g )Nc                  0    [         R                  " SS5      $ )NrL         @r   fullrL   r   r   rL   TestNdFull.test_0d.<locals>.func  s    772s##r   )r(  rB   rL  s     r   rO  TestNdFull.test_0d  s    	$dr   c                 ,    S nU R                  U5        g )Nc                 0    [         R                  " U S5      $ Nr  r  rr   s    r   rL   TestNdFull.test_1d.<locals>.func  s    771c?"r   r0  r  s     r   rV  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   rL  &TestNdFull.test_1d_dtype.<locals>.func  s    771c288,,r   r  r  s     r   r\  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  rr   r=   s    r   rL  /TestNdFull.test_1d_dtype_instance.<locals>.func
  s    771c5))r   )r   r=   r0  rB   rL  r=   s     @r   re  !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   rL  *TestNdFull.test_1d_dtype_str.<locals>.func  s    771c7++r   r  r  s     r   rl  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   rL  ?TestNdFull.test_1d_dtype_str_alternative_spelling.<locals>.func  s    771c3''r   r  r  s     r   rt  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  )rr   fvr~  s      r   rL  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   rB   rL  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  )rr   r  s     r   rL  2TestNdFull.test_1d_dtype_invalid_str.<locals>.func)  s    771(++r   r  r  r  r  rB   rL  r  r  s       r   r  $TestNdFull.test_1d_dtype_invalid_str'  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~   rr   s     r   rL   TestNdFull.test_2d.<locals>.func4  s    77A63''r   r4  r  s     r   r  TestNdFull.test_2d3  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   rL  ,TestNdFull.test_2d_dtype_kwarg.<locals>.func9  s    77A682<<@@r   r  r  s     r   r  TestNdFull.test_2d_dtype_kwarg8  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   rL  0TestNdFull.test_2d_dtype_from_type.<locals>.func?  s    77A6288A;//r   c                 Z    [         R                  " X4[         R                  " S5      5      $ r   )r   r  rk  r	  s     r   rL  r  D  s    77A62==#344r   c                 L    [         R                  " X4S[         R                  S9$ )Nrg   r   )r   r  r  r	  s     r   rL  r  I  s    77A61BGG44r   r  r  s     r   test_2d_dtype_from_type"TestNdFull.test_2d_dtype_from_type=  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>.func1O  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>.func2S  s(    77BHHQK4c::r   c                 2    [         R                  " X4S5      $ r  r  r	  s     r   r  1TestNdFull.test_2d_shape_dtypes.<locals>.<lambda>X  s    (<r   r  rg   )r4  r   r  r:   r   r.  r   r  )rB   r  r  rF   s       r   r  TestNdFull.test_2d_shape_dtypesM  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  ri   values   r   r  >TestNdFull.test_alloc_size.<locals>.gen_func.<locals>.<lambda>_  s    BGGE51r   rL   r#  s   ``r   r  ,TestNdFull.test_alloc_size.<locals>.gen_func^  s	    11r   rg   r   r   r  )r   r  r  r8  )rB   r  r  s      r   r  TestNdFull.test_alloc_size\  sW    

##	2 	hqEAI~q9:hUQY';Q?@r   rL   N)rM   rN   rO   rP   r'  rO  rV  r\  re  rl  rt  r  r  r  r  r  r  r  rQ   rL   r   r   r  r    sJ    /



#
I

 2Ar   r  c                        \ rS rSrS rS rSrg)ConstructorLikeBaseTestie  c                      UR                  S5        g ! [        [        4 a-    SUR                  R                  -  nUR                  U5         g f = f)Nra      x)rl   	TypeErrorr.  r=   rw   )rB   rX   
fill_values      r   mutate_array$ConstructorLikeBaseTest.mutate_arrayg  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>   r'  r.  r   r?   r@   )rX   rH   rI   rF   rC   rB   s      r   	check_arr5ConstructorLikeBaseTest.check_like.<locals>.check_arrp  s    c{H*CSXXx}}5SYY7##C2##C2c"h'JJ##C2r   r   r      )r4  r3  rg   r   ru   )ru   rg   r   rL   rL   r+  r   F	WRITEABLErg   )	r   linspaceastyper:   r   ndimflagsr   r.  )rB   rC   r=   r2  origri   rX   rF   s   ``     @r   
check_like"ConstructorLikeBaseTest.check_likeo  s    
	3 {{1a#**51v:E{23i''+ll5)cNxx!|#cc(#%*CIIk""":.A /cN ;" 	$q' /.s   9C
C-	rL   N)rM   rN   rO   rP   r.  r<  rQ   rL   r   r   r)  r)  e  s    !!r   r)  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   )r=  r?  r>  r   r   rC   r@  s    r   r>  TestNdEmptyLike.setUp      ot*,mmr   c                     g r   rL   rE  s      r   r'  "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   rL   rX   rC   s    r   rL  'TestNdEmptyLike.test_like.<locals>.func      #;r   rC   r<  r   rj   rN  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   rL   rG  s    r   rL  2TestNdEmptyLike.test_like_structured.<locals>.func  rI  r   )r   r=   r  r   rC   r<  )rB   r=   rL  rC   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   rZ  rG  s    r   rL  -TestNdEmptyLike.test_like_dtype.<locals>.func  s    #rxx((r   rJ  rN  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   rL   rX   r=   rC   s    r   rL  6TestNdEmptyLike.test_like_dtype_instance.<locals>.func      #u%%r   )r   r=   rC   r<  rj   rB   rL  r=   rC   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   rL   rY  s    r   rL  8TestNdEmptyLike.test_like_dtype_structured.<locals>.func  r[  r   )r   r=   r  r   rC   r<  rj   r\  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  rZ  rG  s    r   rL  3TestNdEmptyLike.test_like_dtype_kwarg.<locals>.func  s    #RXX..r   rJ  rN  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   rL   rG  s    r   rL  7TestNdEmptyLike.test_like_dtype_str_kwarg.<locals>.func  s    #W--r   rJ  rN  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$ )Nro  r   rL   rG  s    r   rL  LTestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.func  s    #T**r   rJ  rN  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   rL   r}  s     r   rL  ;TestNdEmptyLike.test_like_dtype_non_const_str.<locals>.func  r  r   r   r}   r  r  z'{}(array(float64, 1d, C), unicode_type))rC   r   r   r   r   r   r   r  rM   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  rL   rS  s    r   rL  9TestNdEmptyLike.test_like_dtype_invalid_str.<locals>.func  r  r   r   r  )	rC   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rK  )rM   rN   rO   rP   r>  r'  rK  rP  rU  r]  rb  rg  rl  rq  rv  r{  rQ   r  r  s   @r   r?  r?    sF    $*%******$I Ir   r?  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   )r=  r~  r>  r   
zeros_likerC   r@  s    r   r>  TestNdZerosLike.setUp  rB  r   c                 B    [         R                  R                  X5        g r   rD  rE  s      r   r'  "TestNdZerosLike.check_result_value  rG  r   c                 *   > [         [        U ]  5         g r   )r=  r~  rP  r@  s    r   rP  $TestNdZerosLike.test_like_structured  s    ot9;r   c                 *   > [         [        U ]  5         g r   )r=  r~  rb  r@  s    r   rb  *TestNdZerosLike.test_like_dtype_structured  s    ot?Ar   rK  )
rM   rN   rO   rP   r>  r'  rP  rb  rQ   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   )r=  r  r>  r   	ones_likerC   expected_valuer@  s    r   r>  TestNdOnesLike.setUp  s#    nd)+llr   c                 *   > [         [        U ]  5         g r   )r=  r  rP  r@  s    r   rP  #TestNdOnesLike.test_like_structured  s    nd8:r   c                 *   > [         [        U ]  5         g r   )r=  r  rb  r@  s    r   rb  )TestNdOnesLike.test_like_dtype_structured  s    nd>@r   )r  rC   )rM   rN   rO   rP   r>  r  r  rP  rb  rQ   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   rD  rE  s      r   r'  !TestNdFullLike.check_result_value  rG  r   c                 J    S nU R                  U[        R                  5        g )Nc                 0    [         R                  " U S5      $ )N      @r   	full_likerd   s    r   rL  &TestNdFullLike.test_like.<locals>.func      <<S))r   r<  r   rj   r  s     r   rK  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  rd   s    r   rL  1TestNdFullLike.test_like_structured.<locals>.func  r  r   )r   r=   r  r   r<  )rB   r=   rL  s      r   rP  #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  rd   s    r   rL  ,TestNdFullLike.test_like_dtype.<locals>.func$  s    <<S"((33r   r  r  s     r   rU  TestNdFullLike.test_like_dtype#  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  )rX   r=   s    r   rL  5TestNdFullLike.test_like_dtype_instance.<locals>.func*  s    <<S%00r   )r   r=   r<  rj   r  s     @r   r]  'TestNdFullLike.test_like_dtype_instance(  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  rd   s    r   rL  2TestNdFullLike.test_like_dtype_kwarg.<locals>.func/  s    <<S99r   r  r  s     r   rg  $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  rd   s    r   rL  6TestNdFullLike.test_like_dtype_str_kwarg.<locals>.func4  s    <<S'22r   r  r  s     r   rl  (TestNdFullLike.test_like_dtype_str_kwarg3  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  rd   s    r   rL  KTestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.func9  s    <<S44r   r  r  s     r   rq  =TestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling8  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  )rX   r  r~  s      r   rL  @TestNdFullLike.test_like_dtype_non_const_str_kwarg.<locals>.func?  s    <<,,r   ru   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_kwarg=  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  )rX   r  s     r   rL  8TestNdFullLike.test_like_dtype_invalid_str.<locals>.funcM  s    <<22r   r   g333333@r  r  r  s       r   r{  *TestNdFullLike.test_like_dtype_invalid_strK  sg    		3 
	3 {+vS! , V%%&?H	 ,+s   A00
A>rL   N)rM   rN   rO   rP   r'  rK  r  r  rP  rU  r]  rg  rl  rq  r  r{  rQ   rL   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)TestNdIdentityiX  c                 *    U R                  US/5        g )Nru   rJ   rB   rC   s     r   check_identityTestNdIdentity.check_identityZ  s    6D6*r   c                 ,    S nU R                  U5        g )Nc                 .    [         R                  " U 5      $ r   r   identityr  s    r   rL  *TestNdIdentity.test_identity.<locals>.func^  s    ;;q>!r   )r  r  s     r   test_identityTestNdIdentity.test_identity]  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   rL  0TestNdIdentity.test_identity_dtype.<locals>.funce  s    {{1e,,r   )r   r  r  r  r=   r  r  s     @r   test_identity_dtype"TestNdIdentity.test_identity_dtypeb  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  )rr   r~  s     r   rL  @TestNdIdentity.test_like_dtype_non_const_str_kwarg.<locals>.funck  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_kwargi  sc    		& 
	& {+vG , V%%&"c" ,+   
A
A+rL   N)	rM   rN   rO   rP   r  r  r  r  rQ   rL   r   r   r  r  X  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
)	TestNdEyeiy  c                 2    S nU R                  USS/5        g )Nc                 .    [         R                  " U 5      $ r   r   eyer  s    r   rL  "TestNdEye.test_eye_n.<locals>.func|  s    66!9r   rg   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 )Nrg   c                 *    [         R                  " XS9$ r  r  r  s     r   rL  (TestNdEye.test_eye_n_dtype.<locals>.func  s    vva--r   r  r  )r   rk  r  rJ   )rB   r~  rL  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  rr   r~   s     r   rL  $TestNdEye.test_eye_n_m.<locals>.func  s    66!<r   )rg   r   ru   r   )r   ru   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))rg   r   r   )ru   r   rg   )ru   r   r+  )r   ru   )r   ru   )r   ru   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  rr   r~   r   s      r   rL  &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   rL  ,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  )rr   r~   r   r=   s      r   rL  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   rL   N)rM   rN   rO   rP   r  r  r  r  r  r  r	  rQ   rL   r   r   r  r  y  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 )Nr5     ru   r   c                 .    [         R                  " U 5      $ r   r   diag)qs    r   rL  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vectorsrv   r   	matriciespyr:   jitpy_kwjit_kw)rB   vhvvva3x4a4x3rL  r  s           r   r>  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?   r@   )rB   rC   nrtfuncrG   kwargsrH   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  r*  r  r  rB   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  )rq   r  r*  r  r  rB   r   r.  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  r*  r  r  r-  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  )rq   r  r*  r  r  r2  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      ?ru   r  )r   r  r:   r  r   r,  r   r  )rB   r.  rF   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   )rB   rF   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)rM   rN   rO   rP   r>  r*  r/  r3  r6  r:  r?  rC  rQ   rL   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   r7  r  s     r   rC   ,TestLinspace.test_linspace_2.<locals>.pyfunc  s    ;;q$$r   ))r   r   )rg   r   )            @)                    @      @)r   rg   )      ?      ?              ?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   rI  rr   r~   r   s      r   rC   ,TestLinspace.test_linspace_3.<locals>.pyfunc  s    ;;qQ''r   ))r   r   	   )rg   r   ru   )rK  rL  r   )rM  rN  r   )r   rg   r   )rO  rP  r   )rg   g}Ô%ITrg   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   rI  rU  s      r   re   0TestLinspace.test_linspace_accuracy.<locals>.foo  s    ;;qQ''r   )g        r=  r   )r:   assertPreciseEqualpy_func)rB   re   rr   r~   r   s        r   test_linspace_accuracy#TestLinspace.test_linspace_accuracy  sB     
	( 
	(  aA!ckk!.BCr   rL   N)rM   rN   rO   rP   rQ  rX  r_  rQ   rL   r   r   rF  rF    s    5?Dr   rF  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  rb   ri   r=   s    r   rC   7TestNpyEmptyKeyword._test_with_dtype_kw.<locals>.pyfunc  s    88E//r   rg   r   rW  r:   r;   r=   ri   rB   r=   rC   shapesrF   srH   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=   rl  rB   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$ )Nre  rb   re  s    r   rC   ATestNpyEmptyKeyword._test_with_shape_and_dtype_kw.<locals>.pyfunc  s    88%u55r   rg  rh  ri  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 ro  )r   r}   r   r  r=   rv  rp  s     r   test_with_shape_and_dtype_kws1TestNpyEmptyKeyword.test_with_shape_and_dtype_kws(  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   rb   rL   r   r   rC   6TestNpyEmptyKeyword.test_empty_no_args.<locals>.pyfunc.  s    88:r   )r:   r   r   )rB   rC   rF   s      r   test_empty_no_args&TestNpyEmptyKeyword.test_empty_no_args,  s3    	 v {+G ,++s	   5
ArL   N)
rM   rN   rO   rP   rl  rq  rv  ry  r~  rQ   rL   r   r   rb  rb  	  s    8,86
r   rb  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)TestNpArrayi9  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   rC   #TestNpArray.test_0d.<locals>.pyfunc<      88C= r   ra   r   rL  )r:   r]  r   r  r  rB   rC   rF   r   s       r   rO  TestNpArray.test_0d;  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   rC   .TestNpArray.test_0d_with_dtype.<locals>.pyfuncF      88Crxx00r   )ra   )r  r  r  s     r   test_0d_with_dtypeTestNpArray.test_0d_with_dtypeE  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   rC   #TestNpArray.test_1d.<locals>.pyfuncL  r  r   )r   ru   ra   )r=  y              @ra   rL   )r:   r]  r   r  r  rj   r  s       r   rV  TestNpArray.test_1dK  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   rC   .TestNpArray.test_1d_with_dtype.<locals>.pyfunc[  s    88Crzz22r   r   ra   r  r=  )rg   r  ra   rL   r  r  s     r   test_1d_with_dtypeTestNpArray.test_1d_with_dtypeZ  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   rC   2TestNpArray.test_1d_with_str_dtype.<locals>.pyfuncf  s    88Cy11r   r   ra   r  r=  r  r  r  r  s     r   test_1d_with_str_dtype"TestNpArray.test_1d_with_str_dtypee  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   rL  :TestNpArray.test_1d_with_non_const_str_dtype.<locals>.funcr  s    88C**r   )r   ru   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_dtypep  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   rC   #TestNpArray.test_2d.<locals>.pyfunc  r  r   r  ru   r   rg   r   ru   r   rg   rL  ru   r  rL  r  r  ))      ?r   )r  r  r  )rL   rL   )r:   r]  r   r  rj   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   rC   .TestNpArray.test_2d_with_dtype.<locals>.pyfunc  r  r   r  r  rg   r   ru   r   )r:   r]  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   rC   '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  rB   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 sequencer=  zOtype Tuple(int64, reflected list(int64)<iv=None>) does not have a regular shaperg   r   zrcannot convert Tuple(int64, Record(a[type=int32;offset=0],b[type=float32;offset=4];8;False)) to a homogeneous type)r   ro  )r   f4r   r   r  )r:   
contextlibcontextmanagerr   r  r  r=   r?  )rB   rC   rF   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   rL  (TestNpArray.test_bad_array.<locals>.func  s    88C= r   z,.*The argument "object" must be array-like.*r   rB  r   rB   rL  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   rL  (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rL   N)rM   rN   rO   rP   rO  r  rV  r  r  r  r  r  r  r  r  rQ   rL   r   r   r  r  9  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   ru   r   r   F)orderr+  .r   rv   r   r   rB   r   r   r   r.  r7  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   r.  r   r   r  )rB   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   r]  )
r   r   r   r   axrH   r   rF   rC   rB   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 )Nru   r  )r   r   r   r   r  s       r   check_all_axes1TestNpConcatenate.test_3d.<locals>.check_all_axes  s    aaA$ !r   rg   r+  r   r   r   )rg   r   r  r+  )r   r   r  r+  )	r   r:   r  Tr8  r   rj   r   r  )rB   r  r   r   r   r.  r7  r   rF   r  rC   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   rH   r   rF   rC   rB   s        r   r  0TestNpConcatenate.test_3d_no_axis.<locals>.check  s'    aAHa.C##C2r   rg   r+  )r   r:   r  r  r   r  )	rB   r  r   r   r   r.  r7  rF   rC   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   )ru   r   r   ra   z8all the input arrays must have same number of dimensionsz(input arrays must have compatible dtypesz.zero-dimensional arrays cannot be concatenatedrg   %expecting a non-empty tuple of arrays)r   r:   r   rv   r   r8  r=   r  r  assertTypingErrorr   r   r  )rB   rC   rF   r   r   r   r.  r  s           r   test_typing_errors$TestNpConcatenate.test_typing_errors5  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%rL   N)rM   rN   rO   rP   __doc__r  r  r  r  r  r  r  rQ   rL   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)TestNpStackiV  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_arrays\  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  )rB   r  s     r   assert_invalid_sizes TestNpStack.assert_invalid_sizesd  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;   ri   r]  flatten)rB   rC   rF   rG   rH   r   s         r   check_stackTestNpStack.check_stackk  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   rG   rF   rC   rB   s       r   r  #TestNpStack.check_3d.<locals>.checkv  s    VUQ1I,<=r   c                 4   > T" 5        H  nT" XX#5        M     g r   rL   )r   r   r   rG   r  generate_starargss       r   r  ,TestNpStack.check_3d.<locals>.check_all_axesy  s    )+aA$ ,r   )r  r  r8  r   rj   )rB   rC   rF   r  r  r   r   r   r.  r7  r  s   ````      @r   check_3dTestNpStack.check_3du  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)Nr+  )assert_no_memory_leakr   r  r  next)	rB   rF   r  r   r   r   r.  r7  rG   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)Nru   r  r  r   s    r   r  .TestNpStack.test_3d.<locals>.generate_starargs  s&     agDyl" !s   !#N)r%   r:   r  r  rB   rC   rF   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rJ  rL   rL   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)
ra                TN)r#   r:   r   r  r  rB   rC   rF   r   r   r   s         r   rO  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rJ  rL   rL   r   r   r  4TestNpStack.check_xxstack.<locals>.generate_starargs  r  r  ra   r  TN)r  r   r  r  )rB   rC   rF   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   r4  r   r3  r   )r   r   r   )r(   r:   r   r   rv   r  r   rB   rC   rF   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   r4  r  r   )r   r   r   )r,   r/   r:   r   r   rv   r  r   )rB   	functionsrC   rF   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   )r2   r:   r   r   rv   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   ru   ra   )rg   rg   rg   )
r5   r:   r   rv   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  r.  rg   r  )r#   r(   r,   r2   r5   r:   r   rv   r   r  r   r   r  )rB   rC   rF   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*	rL   N)rM   rN   rO   rP   r  r  r  r  r  r  r  r  r  r  rO  r   r$  r(  r+  r/  r2  rQ   rL   r   r   r  r  V  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   rC   %benchmark_refct_speed.<locals>.pyfunc   s     qAq tr   r   i'  c                     > T " TTT5        g r   rL   )rC   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   rL   )rF   r	  r   r   s   r   bench_cfunc*benchmark_refct_speed.<locals>.bench_cfunc0  s    aAr   )r:   r   r   r   	benchmarkprint)	r8  r;  python_time
numba_timerF   rC   r	  r   r   s	       @@@@@r   benchmark_refct_speedrA    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   r  r:   r   r   r#   r%   r(   r,   r/   r2   r5   r7   rS   r]   r%  r;  r  r  objectr)  r?  r~  r  r  r  r  r  rF  rb  r  r  
skipUnlesshasattrr  rA  rM   mainrL   r   r   <module>rM     s    
   	  	 )  + + M M  
4t	$%0*  # &:x : 4? 4
J:< J:Z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   