
    sh                        S SK Jr  S SKJr  S SKrS SKrS SKJrJ	r	J
r
Jr  S SKJr  S SKJrJr  S SKJrJr  SS	0rS	S	S
.rS r\	S 5       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 5       r#\	S 5       r$\	S 5       r%\	S 5       r&\	S 5       r'S r(S r)S r*S  r+S! r,S" r-S# r.\	S0S$ j5       r/S% r0S& r1S1S' jr2S( r3S) r4S* r5S+ r6S, r7 " S- S.\\5      r8\9S/:X  a  \Rt                  " 5         gg)2    )partial)permutationsN)jitnjit
from_dtypetypeof)TypingError)typeserrors)TestCaseMemoryLeakMixinforceobjT)_nrtnopythonc                    ^  U 4S jnU$ )a  Decorator for generic check functions.
Iterates over 'pyfuncs_to_use', calling 'func' with the iterated
item as first argument. Example:

@from_generic(numpy_array_reshape, array_reshape)
def check_only_shape(pyfunc, arr, shape, expected_shape):
    # Only check Numba result to avoid Numpy bugs
    self.memory_leak_setup()
    got = generic_run(pyfunc, arr, shape)
    self.assertEqual(got.shape, expected_shape)
    self.assertEqual(got.size, arr.size)
    del got
    self.memory_leak_teardown()
c                    >^  U U4S jnU$ )Nc                  H   > T Vs/ s H  nT" U/U Q70 UD6PM     sn$ s  snf N )argskwargspyfuncfuncpyfuncs_to_uses      w/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_array_manipulation.pyresult/from_generic.<locals>.decorator.<locals>.result!   s*    @NOfD1$1&1OOOs   r   )r   r   r   s   ` r   	decoratorfrom_generic.<locals>.decorator    s    	P    r   )r   r   s   ` r   from_genericr!      s     r    c                 $    U R                  U5      $ r   )reshapearrnewshapes     r   array_reshaper'   '   s    ;;x  r    c                 .    [         R                  " X5      $ r   )npr#   r$   s     r   numpy_array_reshaper*   +   s    ::c$$r    c                 .    [         R                  " X5      $ r   r)   broadcast_to)r%   shapes     r   numpy_broadcast_tor/   0   s    ??3&&r    c                  (    [         R                  " U 6 $ r   )r)   broadcast_shapesr   s    r   numpy_broadcast_shapesr3   4       %%r    c                  (    [         R                  " U 6 $ r   )r)   broadcast_arraysr2   s    r   numpy_broadcast_arraysr7   8   r4   r    c                 4    [         R                  " X5      U   $ r   r,   )r%   r.   idxs      r   numpy_broadcast_to_indexingr:   <   s    ??3&s++r    c                 "    U R                  5       $ r   )flattenas    r   flatten_arrayr?   @       99;r    c                 "    U R                  5       $ r   ravelr=   s    r   ravel_arrayrD   D   s    779r    c                 6    U R                  5       R                  $ r   )rC   sizer=   s    r   ravel_array_sizerG   H   s    779>>r    c                 .    [         R                  " U 5      $ r   )r)   rC   r=   s    r   numpy_ravel_arrayrI   L   s    88A;r    c                 "    U R                  5       $ r   	transposer=   s    r   transpose_arrayrM   P   s    ;;=r    c                 .    [         R                  " U 5      $ r   r)   rL   r=   s    r   numpy_transpose_arrayrP   T   s    <<?r    c                 *    [         R                  " XS9$ N)axesrO   r%   rS   s     r    numpy_transpose_array_axes_kwargrU   X   s    <<''r    c                 F    [         R                  " XS9R                  5       $ rR   )r)   rL   copyrT   s     r   %numpy_transpose_array_axes_kwarg_copyrX   ]   s    <<',,..r    c                 $    U R                  U5      $ r   rK   rT   s     r   array_transpose_axesrZ   b   s    ==r    c                 @    U R                  U5      R                  5       $ r   )rL   rW   rT   s     r   array_transpose_axes_copyr\   g   s    ==##%%r    c                 4   [         R                  " [         R                  " X-  S-  5      U SU45      n[         R                  " [         R                  " US-  5      US45      nX#R                  -
  R                  n[         R                  " US5      nUS-   nU$ )N   )   r      r`   )r)   r#   arangeTrL   )mnr1r2r_difzs         r   transpose_issue_4708ri   l   su    	BIIaeai(1a)	4B	BIIa!e$q!f	-B$$YMMELL	*E	AHr    c                 "    U R                  5       $ r   )squeezer=   s    r   squeeze_arrayrl   v   r@   r    c                 .    [         R                  " X5      $ r   )r)   expand_dims)r>   axiss     r   rn   rn   z   s    >>!""r    c                  (    [         R                  " U 6 $ r   )r)   
atleast_1dr2   s    r   rq   rq   ~       ==$r    c                  (    [         R                  " U 6 $ r   )r)   
atleast_2dr2   s    r   rt   rt      rr   r    c                  (    [         R                  " U 6 $ r   )r)   
atleast_3dr2   s    r   rv   rv      rr   r    c                     U R                   S   S-  4U R                   SS  -   n[        R                  R                  R	                  XS9$ )Nr   r_   r`   strides)ry   r)   libstride_tricks
as_strided)r>   ry   s     r   as_strided1r}      sD    yy|q "QYYqr]2G66**1*>>r    c                     SnU R                   S S U R                   S   U-
  S-   U4-   nU R                  U R                  S   4-   n[        R                  R                  R                  XUS9$ )Nr^   r`   )r.   ry   )r.   ry   r)   rz   r{   r|   )r>   windowr.   ry   s       r   as_strided2r      sk    FGGCRLAGGBK&014f==Eii199R=**G66**17*KKr    c                 R    [         R                  R                  R                  XUS9$ )N)ro   )r)   rz   r{   sliding_window_view)xwindow_shapero   s      r   r   r      s"    6633A$3OOr    c                 B    U R                   4nU R                  nSXU4'   g )N      ?)r   y)r%   arr2dr   r   s       r   	bad_indexr      s!    AAEQ$Kr    c                     U S   $ )N)r`   g       @r   r%   s    r   bad_float_indexr      s     v;r    c                 0    [         R                  " XU5      $ r   )r)   fill_diagonal)r%   valwraps      r   numpy_fill_diagonalr      s    Cd++r    c                 .    [         R                  " U 5      $ r   )r)   r.   r   s    r   numpy_shaper      s    88C=r    c                 .    [         R                  " U 5      $ r   )r)   rF   r   s    r   
numpy_sizer      s    773<r    c                 .    [         R                  " U 5      $ r   )r)   flatnonzeror=   s    r   numpy_flatnonzeror      s    >>!r    c                 .    [         R                  " U 5      $ r   )r)   argwherer=   s    r   numpy_argwherer      s    ;;q>r    c                 .    [         R                  " X5      $ r   )r)   resize)r>   	new_shapes     r   numpy_resizer      s    99Q""r    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 rS rS rS r\S4S jrS r\4S jr\4S jrS rS r\4S jrS r\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.S- r/S. r0S/ r1S0 r2\3S1 5       r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSArDgB)CTestArrayManipulation   z,
Check shape-changing operations on arrays.
c                   ^ ^^^^	 [         [        /nS m	[        U5      U	U 4S j5       m[        U5      U	U 4S j5       m[        U5      U	U 4S j5       n[        U5      U	U 4S j5       m[        U5      U	U 4S j5       n[        R                  " S5      nT" US5        T" US	5        T" US
5        T" US5        T" US5        [        R                  " S5      R                  S5      nT" US5        T" US	5        T" US
5        T" US5        T" US5        T" US5        T" US5        T" US5        [        R                  " S5      R                  S5      nT" US5        T" US	5        T" US
5        T" US5        [        R                  " S5      R                  S5      R                  nT" US5        T" US5        U" US5        U" US5        U" US5        [        R                  " S5      R                  SS5      nT" US5        T" US5        T" US5        T" US5        T" US5        T" US5        U" US5        U" US5        UUU4S jn[        R                  " / 5      nU" U5        U" UR                  S 5      5        T R                  5         g )!Nc                     U " X5      $ r   r   )r   r%   r.   s      r   generic_run=TestArrayManipulation.test_array_reshape.<locals>.generic_run   s    #%%r    c                    > U R                  X5      nTR                  5         T" XU5      nTR                  XC5        ATR                  5         g r   )py_funcmemory_leak_setupassertPreciseEqualmemory_leak_teardown)r   r%   r.   expectedgotr   selfs        r   check7TestArrayManipulation.test_array_reshape.<locals>.check   sF    ~~c1H""$f51C##C2%%'r    c                    > TR                  5         T" XU5      nTR                  UR                  U5        TR                  UR                  UR                  5        ATR	                  5         g r   )r   assertEqualr.   rF   r   )r   r%   r.   expected_shaper   r   r   s        r   check_only_shapeBTestArrayManipulation.test_array_reshape.<locals>.check_only_shape   sX     ""$f51CSYY7SXXsxx0%%'r    c                    > TR                  [        5       nT" XU5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nzincompatible shape for array)assertRaisesNotImplementedErrorr   str	exceptionr   r%   r.   raisesr   r   s       r   check_err_shapeATestArrayManipulation.test_array_reshape.<locals>.check_err_shape   sJ    ""#676F/ 8S!1!12;= 87   
A
Ac                    > TR                  [        5       nT" XU5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nz)total size of new array must be unchangedr   
ValueErrorr   r   r   r   s       r   check_err_size@TestArrayManipulation.test_array_reshape.<locals>.check_err_size   sJ    "":.&F/ /S!1!12HJ /.r   c                    > TR                  [        5       nT" XU5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nzmultiple negative shape valuesr   r   s       r   check_err_multiple_negativeMTestArrayManipulation.test_array_reshape.<locals>.check_err_multiple_negative   sI    "":.&F/ /S!1!12=? /.r      )r   )      )   r^   )r   r`   r^   )r`   r   r`   r`   r^   r`   r_   r^   r   r   )   )r   r   )r   r^   r_   )r`   r   r`   r^   r`   r_   r`   r   r   )r_      r      r   r   )r   r   )r   r   r   )r   r   r   )r   r   )r   r   r   )r   r   r   r   c                    > T" U S5        T" U S5        T" U S5        T" U S5        T" U SS5        T" U SS5        T" U SS5        T" U S	S
5        T" U SS5        T" U S5        T" U S5        T" U S5        g )Nr   r   )r`   r   r_   )r   7   r`   r   r_   r   r   r   r   r   r   )r   r   )r   r   )r   r   r   )r   r   r   r   r`   r`   r_   r   )r%   r   r   r   s    r   check_empty=TestArrayManipulation.test_array_reshape.<locals>.check_empty  s    #qM#t#y!#'(S"d+S%.S'62S'62S*i83#3"3'r    )r^   r_   r   )	r'   r*   r!   r)   ra   r#   rb   arraydisable_leak_check)
r   r   r   r   r%   r   r   r   r   r   s
   `     @@@@r   test_array_reshape(TestArrayManipulation.test_array_reshape   sw   ')<=	& 
n	%	( 
&	( 
n	%	( 
&	( 
n	%	= 
&	= 
n	%	J 
&	J 
n	%	? 
&	? iimc5c6c6c9c%&iim##I.c5c6c6c9c%&sBsE"sF#iim##$67c5c6c6c9 iim##I.00c9c()Y'V$W% iim##Aa(c2c5c7c:c:sG$#C8#C8	( hhrlCCKK	*+ 	!r    c           	        ^  [         [        [        [        /n[	        U5      U 4S j5       n[	        U5      U 4S j5       n[	        U5      U 4S j5       n[	        U5      U 4S j5       n[
        R                  " S5      [
        R                  " S5      R                  SS5      [
        R                  " S5      R                  SS	S5      [
        R                  " S5      R                  S
SS	S5      [
        R                  " S5      R                  SSS5      S S S	2S S S2S S 24   /n[        [        U5      5       H}  nU" Xg   S 5        [        [        [        Xg   R                  5      5      5       HB  n[        U5      n	[        U V
s/ s H  oU	-
  PM	     sn
5      nU" Xg   U5        U" Xg   U5        MD     M     [	        [        /5      S 5       nU" S	S5        U" SS	5        U" SS5        T R                  5         U" US
   S5        U" US
   S5        U" US
   S5        U" US   S5        U" US
   S5        U" US   S5        U" US	   S5        U" US   S5        U" US   S5        U" US
   S5        U" US
   S5        U" US
   S5        U" US   S5        U" US   S5        U" US	   S5        U" US	   S5        T R                  [         5       n[#        S S!9" [$        5      " [
        R&                  " SS
/5      45        S S S 5        T R)                  S"[+        WR,                  5      5        g s  sn
f ! , (       d  f       N9= f)#Nc                 B  > U R                  X5      nU " X5      nTR                  XC5        TR                  UR                  R                  UR                  R                  5        TR                  UR                  R
                  UR                  R
                  5        g r   )r   r   r   flagsf_contiguousc_contiguous)r   r%   rS   r   r   r   s        r   r   >TestArrayManipulation.test_array_transpose_axes.<locals>.check9  sw    ~~c0H#C##C2SYY33%^^88:SYY33%^^88:r    c                    > TR                  [        5       nU " X5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nzrepeated axis in transposer   r   r%   rS   r   r   s       r   check_err_axis_repeatedPTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_axis_repeatedC  sG    "":.&s! /S!1!129; /.   	A
Ac                    > TR                  [        5       nU " X5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nz2axis is out of bounds for array of given dimensionr   r   s       r   check_err_axis_oobKTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_axis_oobJ  sH    "":.&s! /S!1!12QS /.r   c                    > TR                  [        [        45         U " X5        S S S 5        g ! , (       d  f       g = fr   )r   	TypeErrorr	   )r   r%   rS   r   s      r   check_err_invalid_argsOTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_invalid_argsQ  s*    ""I{#;<s! =<<s   	/
=r   r   r   r_   r^   r`   @   r   c                 t    U R                  X5      nU " X5      n[        R                  R                  XC5        g r   )r   r)   testingassert_equal)r   rc   rd   r   r   s        r   check_issue_4708ITestArrayManipulation.test_array_transpose_axes.<locals>.check_issue_4708f  s-    ~~a+H,C JJ##C2r    r   foo)r   g333333@)333333?r   r   )r_   r   r   )r^   r_   r`   r`   r   r`   )r   r   r_   )r_   r   r   )r^   r`   r_   )r`   r_   )r^   r`   r_   r   )r^   r`   r_   Tr   z#np.transpose does not accept tuples)rU   rX   rZ   r\   r!   r)   ra   r#   rangelenr   tuplendimri   r   r   r	   r   rP   r   assertInr   r   )r   r   r   r   r   r   arrsirS   r  r   neg_axesr   es   `             r   test_array_transpose_axes/TestArrayManipulation.test_array_transpose_axes3  s   :?.35
 
n	%	: 
&	: 
n	%	; 
&	; 
n	%	S 
&	S 
n	%	" 
&	" 		"		"%%a+		"%%aA.		"%%aAq1		"%%aA.ss3Q3qy9	; s4y!A$'4 $U5+>%?@4y D!9Dqd(D!9:dgt$dgx(	 A	 " 
+,	-	3 
.	3 	AAA 	!tAw.tAw1tAw,tAw1Q0Q3Q647D)47E*47F+47G,47G,47I.47J/47L147M2{+q45rxxA7G6IJ ,;AKK(	*Q ":L ,+s   L/1L44
Mc                     [         n[        U5      nS nU" 5        H#  u  pEU R                  U" XE5      U" XE5      5        M%     g )Nc               3     #    [         R                  " SS/SS//5      S4v   [         R                  " SS/SS//5      S4v   [         R                  " SS/SS//5      S4v   [         R                  " SS/SS//5      S4v   [         R                  " SS/SS//5      S	4v   [         R                  " SS/SS//5      S
4v   [         R                  " S[        S9S4v   [         R                  " SS/SS//5      S4v   [         R                  " SS/SS//5      S4v   [         R                  " S[        S9S4v   [         R                  " / [        S9S4v   / SQS4v   Sv   g 7f)Nr`   r_   r^   r   )r_   r   )r   r_   )r   r^   r   r   r_   r   r   dtyper_   r`   r   r`   r^   )r   r`   r_   r^   r_   r^   )r   r  )r)   r   zerosfloatintr   r    r   inputs=TestArrayManipulation.test_numpy_resize_basic.<locals>.inputs  s_    ((QFQF+,f44((QFQF+,f44((QFQF+,f44((QFQF+,d22((QFQF+,f44((QFQF+,f44((1e,f44((QFQF+,d22((QFQF+,a//((63/77((2u-v55&&Os   E%E')r   r   r   )r   r   cfuncr  r>   r   s         r   test_numpy_resize_basic-TestArrayManipulation.test_numpy_resize_basic  s?    V	" #HLA##F1$8%:MN %r    c                    U R                  5         [        [        5      nU R                  [        5       nU" SS5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       nU" [        R                  " SS/SS//5      S5        S S S 5        U R                  S[        UR                  5      5        U R                  [        5       nU" [        R                  " SS/SS//5      S	5        S S S 5        U R                  S
[        UR                  5      5        U R                  [        5       nU" [        R                  " SS/SS//5      S5        S S S 5        U R                  S
[        UR                  5      5        g ! , (       d  f       GNg= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Ni= f)Nabcr  z#The argument "a" must be array-liker   r`   r_   r^   zBThe argument "new_shape" must be an integer or a tuple of integers)r   r^   z0All elements of `new_shape` must be non-negativer   )r   r   r   r   r	   r  r   r   r)   r   r   )r   r  r   s      r   test_numpy_resize_exception1TestArrayManipulation.test_numpy_resize_exception  ss   !\"{+v%  ,<&**+	- {+v"((QqE1Q%=)51 , -&**+	- z*f"((QqE1Q%=)73 +I&**+	- z*f"((QqE1Q%=)2. +I&**+	-% ,+
 ,+ +*
 +*s/   
F$F1'$G$G
F.1
G 
G
G"c                 \  ^ ^^^ [         m[        T5      mUUU 4S jmU4S jn[        R                  " S5      nU" U5        [        R                  " S5      R	                  S5      nU" U5        U" UR
                  5        U" US S S2   5        [        R                  " S5      nU" U5        g )Nc                    > T" X5      nTR                  5         T" X5      nTR                  X25        ATR                  5         g r   )r   r   r   )r%   ro   r   r   r  r   r   s       r   r   5TestArrayManipulation.test_expand_dims.<locals>.check  s@    c(H""$"C##C2%%'r    c                 r   > [        U R                  * S-
  U R                  S-   5       H  nT" X5        M     g )Nr`   )r  r  )r%   ro   r   s     r   check_all_axes>TestArrayManipulation.test_expand_dims.<locals>.check_all_axes  s.    sxxi!mSXX\:c  ;r    r   r   r   r   *   )rn   r   r)   ra   r#   rb   r   )r   r%  r%   r  r   r   s   `  @@@r   test_expand_dims&TestArrayManipulation.test_expand_dims  s    V	(	!
 iilsiim##I.ssuus4R4y!hhrlsr    c                    [         n[        SS9" U5      n[        R                  " S5      nU R	                  5        nU" SS5        S S S 5        U R                  S[        WR                  5      5        U R	                  5        nU" US5        S S S 5        U R                  S[        UR                  5      5        g ! , (       d  f       N{= f! , (       d  f       NE= f)NTr   r   hellor^   z#First argument "a" must be an arrayz"Argument "axis" must be an integer)rn   r   r)   ra   assertTypingErrorr  r   r   )r   r   r  r%   r   s        r   test_expand_dims_exceptions1TestArrayManipulation.test_expand_dims_exceptions  s    T"6*iil##%'1 &;SAQAQ=RS##%#w &:C@P@P<QR &% &%s   
B;
C;
C	
Cc                   ^ ^^^ U 4S jmUUU4S jnUUUU 4S jn[         R                  " S5      n[         R                  " S5      nU" U5        U" XV5        [         R                  " S5      n[         R                  " S5      S-   nUS S S	2   n	U" U5        U" XxU	5        [         R                  " S5      R                  S
5      n
U
R                  nU
S S S	2   nU" U
5        U" XU5        [         R                  " S5      R                  S5      nUR                  nUS S S	2   nU" U5        U" XU5        [         R                  " S5      R                  S5      nU" U5        U" XXX5        g )Nc                    > TR                  X5        TR                  U R                  5       UR                  5       5        g r   )assertStridesEqualr   r<   )r   r   r   s     r   check_result<TestArrayManipulation.check_atleast_nd.<locals>.check_result  s2     ##C2##CKKM83C3C3EFr    c                 0   > T" T" U 5      T" U 5      5        g r   r   )argr  r2  r   s    r   check_single<TestArrayManipulation.check_atleast_nd.<locals>.check_single  s    sVC[1r    c                     > T" U 6 nT" U 6 nTR                  [        U5      [        U5      5        [        X!5       H  u  p4T" X45        M     g r   )r   r  zip)	r   expected_tuple	got_tupler   r   r  r2  r   r   s	        r   check_tuple;TestArrayManipulation.check_atleast_nd.<locals>.check_tuple  sH    #T]NtIS^S-@A!$Y!?S+ "@r    r'  y              @r   r                 ?r   r  r   r      )r_   r_   r_   r_   )r)   r   ra   r#   rb   )r   r   r  r6  r<  a1a2b1b2b3c1c2c3d1d2d3r	  r2  s   ```              @r   check_atleast_nd&TestArrayManipulation.check_atleast_nd  s+   	G	2	, 	, XXb\XXb\RBYYq\YYq\B"XRBBYYq\!!&)TT"XRBBYYr]""9-TT"XRBBIIbM!!,/QBB#r    c                 P    [         n[        SS9" U5      nU R                  X5        g NTr   )rq   r   rK  r   r   r  s      r   test_atleast_1d%TestArrayManipulation.test_atleast_1d  $    T"6*f,r    c                 P    [         n[        SS9" U5      nU R                  X5        g rN  )rt   r   rK  rO  s      r   test_atleast_2d%TestArrayManipulation.test_atleast_2d  rR  r    c                 P    [         n[        SS9" U5      nU R                  X5        g rN  )rv   r   rK  rO  s      r   test_atleast_3d%TestArrayManipulation.test_atleast_3d"  rR  r    c                    ^ ^^ [        T5      mUUU 4S jn[        R                  " S5      nU" U5        U" UR                  S5      5        U" UR                  S5      5        g )Nc                 H   > T" U 5      nT" U 5      nTR                  X!5        g r   r   )r%   r   r   r  r   r   s      r   r   5TestArrayManipulation.check_as_strided.<locals>.check*  s#    c{H*C##C2r    r   r   )r   r`   r   )r   r)   ra   r#   )r   r   r   r%   r  s   ``  @r   check_as_strided&TestArrayManipulation.check_as_strided'  sI    V	3
 iimc
ckk&!"ckk)$%r    c                 X    U R                  [        5        U R                  [        5        g r   )r]  r}   r   r   s    r   test_as_strided%TestArrayManipulation.test_as_strided4  s    k*k*r    c                     [         S 5       nU R                  [        R                  5       nU" 5         S S S 5        SnU R	                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nc                      [         R                  " S5      R                  S5      n [         R                  R                  R                  U S S9$ )Nr   r   rx   )r)   ra   r#   rz   r{   r|   r   s    r   r   >TestArrayManipulation.test_as_strided_stride_none.<locals>.foo:  s:    ))B-''/C66''2232EEr    zstrides argument cannot be None)r   r   r   r	   r  r   r   )r   r   r   msgs       r   test_as_strided_stride_none1TestArrayManipulation.test_as_strided_stride_none8  sa    		F 
	F v112fE 3 0c3v//01	 32s   A$$
A2c                 V  ^  U 4S jn[         R                  " S5      nS H*  nT R                  SU 35         U" USU5        S S S 5        M,     [         R                  " S5      R                  SS5      nS	 H*  nT R                  S
U 35         U" USU5        S S S 5        M,     S H*  nT R                  S
U 35         U" USU5        S S S 5        M,     [         R                  " S5      R                  SSSS5      nS H*  nT R                  SU 35         U" USU5        S S S 5        M,     T R                  S5         U" USS5        S S S 5        g ! , (       d  f       GMA  = f! , (       d  f       M  = f! , (       d  f       M  = f! , (       d  f       M  = f! , (       d  f       g = f)Nc                    > [         R                  R                  R                  XUSS9n[        XU5      nTR	                  XC5        g )NT)	writeable)r)   rz   r{   r   r   )r%   r   ro   r   r   r   s        r   r   =TestArrayManipulation.test_sliding_window_view.<locals>.checkF  sF    vv++??44 @ H &c>C##C2r    r   )Nr   r   r   z1d array, axis=r      
      r   z2d array, axis=)Nr   r`   r`   r   )r`   r   )r   r   r   r_   )r   )r   r   z4d array, axis=r^   r_   z2d array, repeated axes)r   r^   r^   )r   r`   r   )r)   ra   subTestr#   )r   r   arr1ro   arr2arr4s   `     r   test_sliding_window_view.TestArrayManipulation.test_sliding_window_viewE  si   	3 yy}'Dv67dAt$ 87 (
 yy~%%b"-Dv67dAt$ 87 
 4Dv67dFD) 87 4
 yy~%%aAq1&Dv67dFD) 87 '
 \\34$	9- 54+ 87 87
 87 87 54s;   EE$=E6F=F
E!	$
E3	6
F	
F	
F(c                   ^  U 4S jnU 4S jnT R                  5         [        R                  " S5      n[        R                  " S5      R                  SS5      nT R	                  S5         U" SUS	S 5        S S S 5        T R	                  S
5         U" SUSS 5        S S S 5        T R	                  S5         U" SUSS 5        S S S 5        T R	                  S5         U" SUSS 5        S S S 5        T R	                  S5         U" SUSS 5        S S S 5        T R	                  S5         U" SUSS5        S S S 5        T R	                  S5         U" SUSS5        S S S 5        T R	                  S5         U" SUSS5        S S S 5        T R	                  S5         U" SUSS5        S S S 5        T R	                  S5         U" SUSS 5        S S S 5        T R	                  S!5         U" SUSS"5        S S S 5        T R	                  S#5         U" S$US 5        S S S 5        T R	                  S%5         U" S$US&5        S S S 5        T R	                  S'5         U" S$US(5        S S S 5        T R	                  S)5         U" S*USS&5        S S S 5        T R	                  S+5         U" S*USS(5        S S S 5        g ! , (       d  f       GN8= f! , (       d  f       GN%= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNz= f! , (       d  f       GNh= f! , (       d  f       GNV= f! , (       d  f       GND= f! , (       d  f       GN1= f! , (       d  f       g = f),Nc                    > TR                  [        5       n[        U6   S S S 5        TR                  U [	        WR
                  5      5        g ! , (       d  f       N4= fr   )r   r   r   r  r   r   rf  r   r   r   s      r   _raisesFTestArrayManipulation.test_sliding_window_view_errors.<locals>._raisesj  sB    "":.&#T* /MM#s6#3#345 /.r   c                    > TR                  [        R                  5       n[        U6   S S S 5        TR	                  U [        WR                  5      5        g ! , (       d  f       N4= fr   )r   r   r	   r   r  r   r   r{  s      r   _typing_errorLTestArrayManipulation.test_sliding_window_view_errors.<locals>._typing_erroro  sH    ""6#5#56&#T* 7MM#s6#3#345 76s   	A
A&r   rm  rn  ro  z1d window shape too largezwindow_shape cannot be largerr   z2d window shape too large)r      z1d window negative sizez&`window_shape` cannot contain negativer   z2d window with a negative size)r   r   z1d array, 2d window shapez%matching length window_shape and axis)rn  r_   z$2d window shape, only one axis givenr`   z1d window shape, 2 axes givenr   r   z1d array, second axiszArgument axis out of boundsr   z1d array, axis -2r   z2d array, fourth axis)r   r   r   r^   z2d array, axis -3r   zwindow_shape=Nonez3window_shape must be an integer or tuple of integerzwindow_shape=float@zwindow_shape=tuple(float))r  z
axis=floatz1axis must be None, an integer or tuple of integerzaxis=tuple(float))r   r)   ra   r#   rs  )r   r|  r  rt  ru  s   `    r   test_sliding_window_view_errors5TestArrayManipulation.test_sliding_window_view_errorsi  s   	6
	6 	!yy}yy~%%b"- \\563T2tD 7\\563T7DI 7\\34<dBM 5\\:;<dGTR < \\56;T7DQ 7\\@A;T7AN B\\9:;T1fM ; \\1214A> 3\\-.14B? /\\1214H 3\\-.14I / \\-.EtT / \\./EtS 0 \\56EtV 7 \\,'CT1c ( \\-.CT1f /.Y 766644;; 76AA:: 32..22.. /. 0/ 76 (' /.s   +J(J:5KK?K0$L	L.L&L88M
MM.&N 
N.N$N6(
J7:
K	
K
K-0
K?
L
L#&
L58
M

M
M+.
M= 
N
N!$
N36
OCc                 |   [         R                  " S5      R                  SS5      nUS:X  a  UR                  n[        n[        U5      nUS:X  a  UR                  SS9nU R                  UR                  U5        [        U440 UD6" U5      nU" U5      nU" U5      n[         R                  R                  Xx5        g )N	   r^   FA)layout)r)   ra   r#   rb   r?   r   rW   r   r  r   r   r   )	r   r   r  r>   r   
arraytype1r  r   r   s	            r   test_flatten_array(TestArrayManipulation.test_flatten_array  s    IIaL  A&S=AAY
S=#4J**F3ZM+U+F3!9Ah


.r    c                 z    U R                  [        S9  U R                  [        SS9  U R                  [        SS9  g )Nr   r  )r   r  r  )r  no_pyobj_flagsr`  s    r   test_flatten_array_npm,TestArrayManipulation.test_flatten_array_npm  s9    n5nSAnSAr    c           	        ^ ^^^ UU 4S jn[        U[        5      m[        U[        5      mUU4S jnU" [        R                  " S5      R                  SS5      SS9  U" [        R                  " S5      R                  SSSS9SS9  U" [        R                  " S	5      R                  SSS
5      S S 2S S 2S4   SS9  U" [        R                  " S	5      R                  S
SS5      SS9  U" [        R                  " S	5      R                  S
SSSS9SS9  U" [        R                  " S5      R                  S
SSS
5      S S 2S S 2S S 2S4   SS9  g )Nc                   > [        U5      nT
R                  UR                  U5        [        U440 T	D6" U 5      nU " U5      nU" U5      n[        R
                  R                  XV5        UR                  R                  UR                  R                  :g  nUR                  R                  UR                  R                  :g  nT
R                  XrS:g  5        T
R                  Xx5        g )Nr  )	r   r   r  r   r)   r   r   ctypesdata)r   r>   assume_layoutr  r  r   r   	py_copied	nb_copiedr   r   s            r   generic_check=TestArrayManipulation.test_ravel_array.<locals>.generic_check  s    JZ..>//7EayH(CJJ##H2(//*>*>>I#**//9IY(<=Y2r    c                  &   > T" U 0 UD6  T" U 0 UD6  g r   r   )r   r   check_functioncheck_methods     r   r   5TestArrayManipulation.test_ravel_array.<locals>.check  s    $)&)D+F+r    r  r^   r  )r  r  order   r_   r   r  $   )r   rD   rI   r)   ra   r#   )r   r   r  r   r  r  s   ``  @@r   test_ravel_array&TestArrayManipulation.test_ravel_array  s   	3  }k: 0AB	,
 	biil""1a(<biil""1as"33Gbiim##Aq!,Q1W5SI 	biim##Aq!,C@biim##Aq!3#7sKbiim##Aq!Q/1a
;3Or    c                     [         R                  " S5      R                  SS5      n[        n[	        U5      n[        U440 UD6" U5      nU" U5      nU" U5      n[         R                  R                  Xg5        g Nr  r^   )r)   ra   r#   rG   r   r   r   r   r   r   r>   r   r  r  r   r   s           r   test_ravel_array_size+TestArrayManipulation.test_ravel_array_size  sd    IIaL  A&!AY
ZM+U+F3!9Ah


.r    c                 *    U R                  [        S9  g Nr  )r  r  r`  s    r   test_ravel_array_npm*TestArrayManipulation.test_ravel_array_npm  s    N3r    c                 *    U R                  [        S9  g r  )r  r  r`  s    r   test_ravel_array_size_npm/TestArrayManipulation.test_ravel_array_size_npm  s    """8r    c                 P   ^ [        [        [        /5      U4S j5       nU" 5         g )Nc                    > [         R                  " S5      R                  SS5      n[        U5      n[	        U440 TD6" U 5      nU " U5      nU" U5      n[         R
                  R                  XE5        g r  )r)   ra   r#   r   r   r   r   )r   r>   r  r  r   r   r   s         r   r   9TestArrayManipulation.test_transpose_array.<locals>.check  s`    		!$$Q*AJ//7EayH(CJJ##H2r    )r!   rM   rP   )r   r   r   s    ` r   test_transpose_array*TestArrayManipulation.test_transpose_array  s(    	(=>	?	3 
@	3 	r    c                 *    U R                  [        S9  g r  )r  r  r`  s    r   test_transpose_array_npm.TestArrayManipulation.test_transpose_array_npm  s    !!!7r    c                     [         R                  " S5      R                  SSSSS5      n[        n[	        U5      n[        U440 UD6" U5      nU" U5      nU" U5      n[         R                  R                  Xg5        g )Nr   r_   r`   r^   r   )r)   ra   r#   rl   r   r   r   r   r  s           r   test_squeeze_array(TestArrayManipulation.test_squeeze_array  sl    II'(00Aq!Q?AY
ZM+U+F3!9Ah


.r    c                     U R                  [        R                  5       nU R                  [        S9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr  rk   )r   r   r	   r  r  r  r   r   r   r   s     r   test_squeeze_array_npm,TestArrayManipulation.test_squeeze_array_npm  sR    v112f##.#9 3 	iV%5%5!67 32s   A""
A0c                    [         S 5       n[         S 5       n[        R                  " S5      R                  S5      n[	        S 5      [        R
                  4[        R
                  [	        S 5      4[	        S5      [        R
                  S4[        R
                  S[	        S 5      4[	        S5      [        [        R
                  S4S[        R
                  [        4[        R
                  [	        S5      [        R
                  S4S[        S [        R
                  4[        R
                  [	        S5      [        [        R
                  S4S[        R
                  [        R
                  [        4[        R
                  S[        R
                  [        4[	        S5      S[        R
                  S 4[        R
                  S[        S 4/nUR                  nUnUR                  nUnU H  n	U" X95      n
U" X95      n[        R                  R                  X5        [        R                  " U5      nX9   nU" UR                  5       X5      n
U" UR                  5       X5      n[        R                  R                  X5        M     g )Nc                 
    X   $ r   r   )r>   r9   s     r   np_new_axis_getitem@TestArrayManipulation.test_add_axis.<locals>.np_new_axis_getitem  s	    6Mr    c                     X U'   U $ r   r   )r>   r9   items      r   np_new_axis_setitem@TestArrayManipulation.test_add_axis.<locals>.np_new_axis_setitem  s    cFHr    iH  )r   r   r      r`   r_   r^   )r   r)   ra   r#   slicenewaxisEllipsisr   r   r   
zeros_likerW   )r   r  r  r>   	idx_casespyfunc_getitemcfunc_getitempyfunc_setitemcfunc_setitemr9   r   r   a_emptyr  s                 r   test_add_axis#TestArrayManipulation.test_add_axis  s   		 
	 
	 
	 IIm$,,\:4["**%ZZt%1Xrzz1%ZZE$K(1XxQ/

H%ZZq2::q1$

+ZZq8RZZ;

BJJ1ZZBJJ11Xq"**d+ZZHd+
	 -44+,44+C%a-H'CJJ##H2mmA&G6D%gllnc@H:CJJ##H2 r    c                    U R                  5        n[        [        R                  " S[        R                  4S[        R                  4/5      5      n[
        R                  " [
        R                  SS5      n[        X#45      " [        5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   r   r_   r  zUnsupported array index type)r,  r   r)   r  int32r
   Arrayr   r   r  r   r   )r   r   r  
arraytype2s       r   test_bad_index_npm(TestArrayManipulation.test_bad_index_npmE  s    ##%#BHHsBHHo/2BHHo.? %@ AJU[[!S9J*)*95	 &
 	4c&:J:J6KL &%s   A>B==
Cc                    U R                  5        n[        [        R                  " [        R                  SS5      45      " [
        5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr_   r  z$Unsupported array index type float64)	r,  r   r
   r  float64r   r  r   r   r  s     r   test_bad_float_index_npm.TestArrayManipulation.test_bad_float_index_npmM  s\    ##%%++emmQ467H &<&**+	- &%s   ;A::
Bc                   ^ ^^^	 [         m	[        SS9" T	5      mS mS nU4S jnU4S jnUU	U 4S jnU" S5       H  nU" 5        H  nU" XV5        M     M     U" S5       H  nU" 5        H  nU" XV5        M     M     [        R                  " S/S	-  5      R	                  SS5      nU" US
5        U" U/ SQ5        U" U[        R                  " / SQ5      5        g )NTr   c              3   r   #    X 4v   SU -  U 4v   U SU -  4v   SU -  S-   SU -  S-
  4v   X X 4v   Sv   g 7f)Nr_   r`   r`   r`   r`   r   )rd   s    r   _shape_variationsITestArrayManipulation.test_fill_diagonal_basic.<locals>._shape_variationsW  sR     &Lq5!*a!e*EAIQ,,,Os   57c               3     #    Sv   Sv   [         R                  v   [         R                  * v   Sv   [         R                  " S5      v   Sv   SS/v   [         R                  " S5      R	                  SS	S
S5      v   [         R
                  " [         R                  " S5      R	                  S	S	5      5      v   [         R                  " S5      R	                  S	S	5      S S S2   v   g 7f)Nr`   gA`"	@Tr   r  r   r  6   r^   r_   r   )r)   naninfra   r#   asfortranarrayr   r    r   _val_variationsGTestArrayManipulation.test_fill_diagonal_basic.<locals>._val_variationse  s     GK&&L66'MJ))A,Ja&L))B-''1a33##BIIaL$8$8A$>??))A,&&q!,TrT22s   C)C+c              3      >#    T" U 5       Ha  n[         R                  " U[         R                  S9v   [         R                  " [         R                  " U[         R                  S95      v   Mc     g 7f)Nr  )r)   r  r  r  ones)rd   r.   r  s     r   #_multi_dimensional_array_variations[TestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variationss  sJ     *1-hhuBJJ77''RZZ(HII .s   A/A2c           
   3      >#    T" U 5       HZ  n[         R                  " [        U Vs/ s H  o"S-  PM	     sn5      [         R                  S9n[        S U 5       5      nX4   v   M\     g s  snf 7f)Nr_   r  c              3   B   #    U  H  n[        S US-  S5      v   M     g7f)r   r_   N)r  ).0r   s     r   	<genexpr>vTestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variations_strided.<locals>.<genexpr>|  s      A5auQAq115s   )r)   r  r  r  )rd   r.   r   tmpslicerr  s        r   +_multi_dimensional_array_variations_stridedcTestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variations_stridedy  sZ     *1-hhuU%;U!eU%;<BJJOA5AAk! .%;s   %A0A+:A0c                    > S HP  nU R                  5       nU R                  5       nUc  0 nOSU0nT" X140 UD6  T" XA40 UD6  TR                  X45        MR     g )N)NTFr   )rW   r   )	r%   r   r   r>   bparamsr  r   r   s	         r   _check_fill_diagonalLTestArrayManipulation.test_fill_diagonal_basic.<locals>._check_fill_diagonal  s^    )HHJHHJ<F$d^Fq((a''''- *r    r^   r  F)FTFTFT)r   r   r)   r   r#   )
r   r  r  r  r  r%   r   r  r  r   s
   `      @@@r   test_fill_diagonal_basic.TestArrayManipulation.test_fill_diagonal_basicS  s    $T"6*		3	J	"	. 7q9C&($S. ) : ?qAC&($S. ) B
 hhvz"**1a0S%(S"67S"((+>"?@r    c                 
  ^ ^ [         n[        SS9" U5      mSnT R                  5         [        R                  " / 5      [        R
                  " S5      4 HD  nT R                  [        5       nT" X25        S S S 5        S[        WR                  5      ;   a  MD   e   T R                  [        5       n[        R                  " S5      nT" X25        T R                  S[        UR                  5      5        S S S 5        UU 4S jn[        R                  " S	[        R                  S
9n[        R                  nU" Xb5        S[        R                  /nU" Xb5        [        R                  " / SQ[        R                   S
9nU" Xb5        [        R                  " S	[        R"                  S
9n/ SQnU" Xb5        SnU" Xb5        [        R                  " S/5      nU" Xb5        g ! , (       d  f       GNq= f! , (       d  f       GN= f)NTr   r`   r   z'The first argument must be at least 2-D)r^   r^   r   z/All dimensions of input must be of equal lengthc                    > TR                  [        5       nT" X5        S S S 5        TR                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nz'Unable to safely conform val to a.dtyper   )r%   r   r   r  r   s      r   _assert_raisesPTestArrayManipulation.test_fill_diagonal_exception_cases.<locals>._assert_raises  sD    "":.&c /FFL\L\H]^ /.r   r^   r^   r  ffffff
@)r`   r_   g    _B)gffffff?g@}Ô%Igp=Tr  )r   r   r   r)   r   r  r   r	   r   r   r   r  r   r  r  r  int64float32)r   r   r   r>   r   r  r%   r  s   `      @r   "test_fill_diagonal_exception_cases8TestArrayManipulation.test_fill_diagonal_exception_cases  s   $T"6* 	! "rwwqz)A"";/6a 0<FDTDT@UUUU * z*f#A!MNPSTZTdTdPef +	_
 hhvRXX.ffs BFFms hh|2884s hhvRZZ0 s s hhx s E 0/
 +*s   .	G!3AG3!
G0	3
Hc                 H   [         n[        SS9" U5      n[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S	/[        R
                  " S
5      S/[        R
                  " S
5      S/[        R
                  " S
5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/[        R                  " S5      S/SS/SS//nU H&  u  pEU" XE5      nU" XE5      nU R                  Xv5        M(     g )NTr   r   r   r   r^   r`   r_   r`   r_   r^   r^   r  r  r_   r   r   r  r  r_   r_   )r/   r   r)   r   r  ra   r   )r   r   r  r  input_arrayr.   r   r   s           r   test_broadcast_to'TestArrayManipulation.test_broadcast_to  sN   #T"6*
 XXa[$XXa[$XXa[$WWQZWWQZWWQZ#YYq\4 YYq\6"YYq\6"WWQZOWWQZOWWQZO WWQZWWV_f%WWV_f%KV-
0 #'Kk1H+C##C2 #'r    c                     [         n[        SS9" U5      n[        R                  " S5      SS/nSnU HB  nU" XT5      nU" XT5      nU R	                  Xg5        U R                  UR                  S   5        MD     g )NTr   {   r   	WRITEABLE)r/   r   r)   r   r   assertFalser   )r   r   r  r  r.   r%   r   r   s           r   test_broadcast_to_0d_array0TestArrayManipulation.test_broadcast_to_0d_array  sz    #T"6* HHSM
 Cc)H#C##H2SYY{34 r    c                 T   [         n[        SS9" U5      n[        R                  " S5      S[        S/[        R                  " S5      S[        S/[        R                  " S5      S[        S/SS[        S/SS[        S/[        R                  " S5      S[
        S	/[        R                  " S5      S
[
        S	/[        R                  " S5      S[
        S	/[        R                  " S5      S[
        S	/[        R                  " S5      S[
        S/[        R                  " S5      S[
        S/[        R                  " S5      S[
        S/[        R                  " S5      S[
        S/[        R                  " S5      S[
        S/[        R                  " S5      S[        S/SS[        S/SS[        S//nU R                  5         U HM  u  pEpgU R                  U5       nU" XE5        S S S 5        U R                  U[        WR                  5      5        MO     g ! , (       d  f       N8= f)NTr   r   r   z/Cannot broadcast a non-scalar to a scalar arrayr   r  )r  z=operands could not be broadcast together with remapped shapesr  r  r   r  r`   r`   zDinput operand has more dimensions than allowed by the axis remappingr  r   z4all elements of broadcast shape must be non-negativer   )r   r_   g?g@z7The second argument "shape" must be a tuple of integersr+  z-The first argument "array" must be array-liker^   )r_   r>   z*object cannot be interpreted as an integer)r/   r   r)   r  r	   r   r   r   r  r   r   )	r   r   r  r  r%   target_shapeerrrf  r   s	            r   test_broadcast_to_raises.TestArrayManipulation.test_broadcast_to_raises  s   #T"6*
 XXd^R>@XXd^R>@XXd^R>@[>@R>@XXd^T:LNXXd^T:LNXXd^T:LNXXfvzLNXXftZSUXXftZSUXXd^RCEXXd^UJCEXXfw
CEXXfz;FHdK<>+9;C#
H 	!+/'Cs""3'6c( (MM#s6#3#345 ,0''s   	H
H'	c                 l    [         S 5       nUR                  5       nU" 5       nU R                  X#5        g )Nc                  0    [         R                  " SS5      $ )Nr>   r  r,   r   r    r   _broadcast_to_1MTestArrayManipulation.test_broadcast_to_corner_cases.<locals>._broadcast_to_13  s    ??3//r    )r   r   r   )r   r$  r   r   s       r   test_broadcast_to_corner_cases4TestArrayManipulation.test_broadcast_to_corner_cases2  s:    		0 
	0 #**,.r    c                    [         n[        SS9" U5      n[        R                  " S[        R                  S9nSnU" X45      nSUS'   U R                  UR                  5       S5        U R                  UR                  5       S5        g )	NTr   r_   r  r  rn  r   ro  )r/   r   r)   r  r  r   sum)r   r   r  r  r.   views         r   test_broadcast_to_change_view3TestArrayManipulation.test_broadcast_to_change_view;  so    #T"6*hhq1[(A*B/R(r    c                     [         n[        SS9" U5      n[        R                  " S5      SS//nU H)  u  pEnU" XEU5      nU" XEU5      nU R	                  X5        M+     g )NTr   r_   r  r   )r:   r   r)   r  r   )	r   r   r  r  r  r.   r9   r   r   s	            r   test_broadcast_to_indexing0TestArrayManipulation.test_broadcast_to_indexingF  sf    ,T"6*WWQZ&
 (,#Kk#6HC0C##C2 (,r    c                     [         S 5       n[        R                  " S5      nUR                  U5      nU" U5      nU R	                  X45        g )Nc                 v    [         R                  " U S5      nXR                  UR                  UR                  4$ )Nr  )r)   r-   rF   r.   ry   )r%   rets     r   r   @TestArrayManipulation.test_broadcast_to_array_attrs.<locals>.fooT  s+    //#v.C#))S[[88r    r^   )r   r)   ra   r   r   )r   r   r%   r   r   s        r   test_broadcast_to_array_attrs3TestArrayManipulation.test_broadcast_to_array_attrsQ  sJ     
	9 
	9 iil;;s##h.r    c                 >   [         n[        SS9" U5      nS/SS/S/S/S/SS// SQS	/S
S/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//nU H4  nU" U6 nU" U6 nU R                  U[        5        U R	                  XV5        M6     g )NTr   r   r  r   r  )r^   r   ))r   r  r   r   r`   r7  )r   r`   r  r8  r  r^   r`   rq  r   rp  r   r   r  r_   rr  )r3   r   assertIsInstancer  r   )r   r   r  r  input_shaper   r   s          r   test_broadcast_shapes+TestArrayManipulation.test_broadcast_shapes_  s   'T"6* DHFIHV0KVVVVVVVJ6N6N6NLTN6N6NLL4LK9
<  K{+H%C!!#u-##H2	  r    c                 :   [         n[        SS9" U5      nU R                  5         SS/SS// SQSS	// S
QSS//nU HK  nU R                  [        5       nU" U6   S S S 5        U R                  S[        WR                  5      5        MM     g ! , (       d  f       N8= f)NTr   r  r  r  r  r  r  r  r`   r^   r   r_   r^   r^   )r   r9  rr  )rn  r   r_   =shape mismatch: objects cannot be broadcast to a single shaper3   r   r   r   r   r  r   r   )r   r   r  r  r;  r   s         r   test_broadcast_shapes_raises2TestArrayManipulation.test_broadcast_shapes_raises  s    'T"6*!
 4LTN	"-K
  K"":.&{# / MMYf../1	  ..s   B
B	c                 
   [         n[        SS9" U5      nU R                  5         U R                  [        5       nU" SSS5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTr   r   r_   r   z#negative dimensions are not allowedrC  )r   r   r  r   s       r   (test_broadcast_shapes_negative_dimension>TestArrayManipulation.test_broadcast_shapes_negative_dimension  sh    'T"6*!z*f&1$ + 	;SAQAQ=RS +*s   A44
Bc                    [         n[        SS9" U5      nU R                  5         / SQnU HK  nU R                  [        5       nU" U6   S S S 5        U R                  S[        WR                  5      5        MM     g ! , (       d  f       N8= f)NTr   ))r   )r+  )g333333@)stringr   r>   )r`   rK  z#must be either an int or tuple[int])r3   r   r   r   r	   r  r   r   )r   r   r  inpsinpr   s         r   "test_broadcast_shapes_invalid_type8TestArrayManipulation.test_broadcast_shapes_invalid_type  st    'T"6*!
 C"";/6s 0 MM?VEUEUAVW	 //s   A<<
B
	c                   ^ ^^ [         m[        SS9" T5      mUUU 4S jnS H!  n[        R                  " U5      nU" U5        M#     SSS/SS/SS	//S
S4 H  nU" W5        M     T R	                  [
        5       nT" S5        S S S 5        T R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTr   c                 H   > T" U 5      nT" U 5      nTR                  X!5        g r   r[  r   r   r   r  r   r   s      r   r   /TestArrayManipulation.test_shape.<locals>.check  #    ayH(C##C2r    r   r   r  )r   r   r   r`   Fr_   r^   r   r   r  r>   z+The argument to np.shape must be array-like)	r   r   r)   emptyr   r	   r  r   r   r   r   tr%   r   r  r   s   `    @@r   
test_shape TestArrayManipulation.test_shape  s    T"6*	3 0A((1+C#J 0
 UQDAq7Aq6"2D)DA#J E {+v#J , 	C&**+	- ,+s   ;	B22
C c                   ^ ^^ [         m[        SS9" T5      mUUU 4S jnS H!  n[        R                  " U5      nU" U5        M#     SSS[        R                  " S5      [        R
                  " S	5      4 H  nU" U5        M     T R                  [        5       nT" S
5        S S S 5        T R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTr   c                 H   > T" U 5      nT" U 5      nTR                  X!5        g r   r[  rR  s      r   r   .TestArrayManipulation.test_size.<locals>.check  rT  r    rU  r`   FgQ	@r   gX9v@r>   z*The argument to np.size must be array-like)r   r   r)   rV  int8r
  r   r	   r  r   r   rW  s   `    @@r   	test_sizeTestArrayManipulation.test_size  s    T"6*	3 0A((1+C#J 0
 UD"''!*bjj.?@A!H A {+v#J , 	B&**+	- ,+s   	C
C c                    ^  [         n[        SS9" U5      nU 4S jnU" 5        H$  nU" U5      nU" U5      nT R                  XV5        M&     g )NTr   c               3     >#    [         R                  " SS5      v   [         R                  " SSS9v   [         R                  " / 5      v   TR                  R                  S5      n SU [         R                  " U 5      S:  '   U v   U R                  SSS5      v   U R                  S	S
SS9v   U R                  SS5      SS S
2   v   U S-  v   g 7f)Nr   r   r   
fill_valued           皙?r   2   r_   r  r  r   r`   r>  )r)   ra   fullr   randomrandnabsr#   r>   r   s    r   a_variationsBTestArrayManipulation.test_flatnonzero_basic.<locals>.a_variations  s     ))B""''!**((2,!!#&A!$AbffQi#oG))Aq!$$))B)--))B"14a4((b&Ls   CC)r   r   r   r   r   r  rn  r>   r   r   s   `      r   test_flatnonzero_basic,TestArrayManipulation.test_flatnonzero_basic  sJ    "T"6*
	 AayH(C##H2  r    c                    ^  [         n[        SS9" U5      nU 4S jnU" 5        H$  nU" U5      nU" U5      nT R                  XV5        M&     g )NTr   c               3      >#    [         R                  " SS5      S:  v   [         R                  " SSS9v   [         R                  " SSS9v   [         R                  " / 5      v   [         R                  " / SQ5      v   TR                  R                  S5      n U S	:  v   U R                  SSS
5      S:  v   U R                  SSSS9S:  v   U R                  SS
5      SS S2   S:  v   X S-
  :H  v   X * :  v   g 7f)Nr   r   r_   r   rc  r`   )g      rf  r   re  rg  r   g      ?rh  r  r  r   )r)   ra   ri  r   rj  rk  r#   rm  s    r   rn  ?TestArrayManipulation.test_argwhere_basic.<locals>.a_variations  s     ))B"Q&&''!**''!**((2,((+,,!!#&Ac'M))Aq!$s**))B)-33))B"14a4(3..1u*b&Ls   C;C>)r   r   r   rp  s   `      r   test_argwhere_basic)TestArrayManipulation.test_argwhere_basic  sJ    T"6*	 AayH(C##H2  r    c               #      #    Sv   Sv   SS/SS/4v   Sv   [         R                  v   Sv   Sv   Sv   S	v   S
v   Sv   S v   Sv   Sv   g 7f)N)r  )r  g@)g      @gffffff@)rf  r   rf  g      r   r`   r_   r^   r   FTr  y       @      ?a_string )r)   r  r   r    r   array_like_variations+TestArrayManipulation.array_like_variations  sa     22##1v1vff
!!
s   AAc                     [         n[        SS9" U5      nU R                  5        H$  nU" U5      nU" U5      nU R                  XE5        M&     g rN  )r   r   r{  r   r   r   r  r>   r   r   s         r   test_flatnonzero_array_like1TestArrayManipulation.test_flatnonzero_array_like-  sI    "T"6*++-AayH(C##H2 .r    c                     [         n[        SS9" U5      nU R                  5        H$  nU" U5      nU" U5      nU R                  XE5        M&     g rN  )r   r   r{  r   r~  s         r   test_argwhere_array_like.TestArrayManipulation.test_argwhere_array_like6  sI    T"6*++-AayH(C##H2 .r    c                    [         n[        SS9" U5      nU Vs/ s H  n[        R                  " U5      PM     nnU" U6 nU/[	        U5      -  nU V	s/ s H  oR
                  PM     n
n	U R                  X5        g s  snf s  sn	f rN  )r7   r   r)   r  r  r.   r   )r   input_shapesr   r   r  sinarrays	outarraysr   r>   r   s              r   %broadcast_arrays_assert_correct_shape;TestArrayManipulation.broadcast_arrays_assert_correct_shape>  s}     (T"6*)56ABHHQK68$	"#c(m3 )*	1ww	*.	 7 +s    A=Bc                     [         n[        SS9" U5      n/ SQnU H@  nU/nU R                  XT5        XD/nU R                  Xd5        XDU/nU R                  Xt5        MB     g )NTr   )	r   r  rp  r  rq  )r^   r   r  r9  r  )r7   r   r  )r   r   r  r  r.   r  input_shapes2input_shapes3s           r   'test_broadcast_arrays_same_input_shapes=TestArrayManipulation.test_broadcast_arrays_same_input_shapesJ  sm     (T"6*
 E!7L66|K"NM66}L"51M66}L r    c                     SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/S	S/S/SS	/S/SS/S/SS/S/SS	/S	//nU H.  u  p#U R                  X#5        U R                  US S S
2   U5        M0     g )Nr   r  r  r  r9  r  rq  r   rp  r   r  r   r  r  r   s       r   9test_broadcast_arrays_two_compatible_by_ones_input_shapesOTestArrayManipulation.test_broadcast_arrays_two_compatible_by_ones_input_shapesh  s     D\4 fv&fv&fv&fv&fv&fv&fv&fv&fv&fv&fv&fv&
 -1(L66|T66|DbD7I>Z -1r    c                 8   SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS	/S	/SS
/S	/SS	/S	/SS	/S	/SS/S/SS
/S
/SS/S/SS/S/SS
/S
//nU H.  u  p#U R                  X#5        U R                  US S S2   U5        M0     g )Nr   r  r  r9  r   r  r  r   r   rp  rq  r   r  r  s       r   Dtest_broadcast_arrays_two_compatible_by_prepending_ones_input_shapesZTestArrayManipulation.test_broadcast_arrays_two_compatible_by_prepending_ones_input_shapes  s1    $ZF^V$F^V$F^V$&\6"d^V$F^V$F^V$&\6"&\6"$ZF^V$F^V$F^V$&\6"d^V$F^V$F^V$&\6"&\6")
, -1(L66|T66|DbD7I>Z -1r    c                     [         n[        SS9" U5      nSS/S/SS/S/SS/S//nU HE  u  pEU" U6 nU Vs/ s H  owR                  PM     nnU/[        U5      -  n	U R	                  X5        MG     g s  snf )	NTr   Fr   r`   r_   r   r  )r7   r   r.   r  r   )
r   r   r  r  r  r   r  r>   r   r   s
             r   "test_broadcast_arrays_scalar_input8TestArrayManipulation.test_broadcast_arrays_scalar_input  s    'T"6*E]D!VTNa[$

 )-$Hx(I$-.Iq77IC.&'#h-7H##H2	 )-.s   A3c                     [         n[        SS9" U5      nU" SS5      nSS/nU Vs/ s H  oUR                  PM     nnU R                  XF5        g s  snf )NTr   )r  i  )i  r  )r7   r   r.   r   r   r   r  r  r   r>   r   s          r   !test_broadcast_arrays_tuple_input7TestArrayManipulation.test_broadcast_arrays_tuple_input  sT    'T"6**f-	$< )*	1ww	*. +s   Ac                    [         n[        SS9" U5      nU" [        R                  " S5      [        R                  " S[        R                  S95      nSS/nU Vs/ s H  oUR
                  PM     nnU R                  XF5        g s  snf )NTr   r_   r  r  )r7   r   r)   intpr  r.   r   r  s          r   %test_broadcast_arrays_non_array_input;TestArrayManipulation.test_broadcast_arrays_non_array_input  sl    'T"6*"''!*bhhvRWW&EF	F# )*	1ww	*. +s   Bc                 T   [         n[        SS9" U5      nU R                  5         U R                  [        5       n[
        R                  " S5      R                  S5      nSnU" XE5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTr   r   r  zMismatch of argument types)r7   r   r   r   r	   r)   ra   r#   r  r   r   )r   r   r  r   r%   r  s         r   /test_broadcast_arrays_invalid_mixed_input_typesETestArrayManipulation.test_broadcast_arrays_invalid_mixed_input_types  s    'T"6*!{+v))A,&&v.CA#M , 	2C8H8H4IJ	 ,+s   0B
B'c                 P   [         n[        SS9" U5      nU R                  5         U R                  [        5       n[
        R                  " S[
        R                  S9nSnU" XE5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTr   r^   r  zhello worldzArgument "1" must be array-like)r7   r   r   r   r	   r)   r  r	  r  r   r   )r   r   r  r   r%   r  s         r   #test_broadcast_arrays_invalid_input9TestArrayManipulation.test_broadcast_arrays_invalid_input  s|    'T"6*!{+v((1BHH-CA#M , 	7V=M=M9NO	 ,+s   .B
B%c           	         [         n[        SS9" U5      nU R                  5         SS/SS// SQSS	//nU H  nXDS S S
2   4 Hq  nU R                  [        5       nU Vs/ s H  n[
        R                  " U5      PM     nnU" U6   S S S 5        U R                  S[        WR                  5      5        Ms     M     g s  snf ! , (       d  f       NA= f)NTr   r  r  r  r  r?  r@  rA  r   rB  )
r7   r   r   r   r   r)   r  r  r   r   )	r   r   r  r  r  r.   r   r  r  s	            r   :test_broadcast_arrays_incompatible_shapes_raise_valueerrorPTestArrayManipulation.test_broadcast_arrays_incompatible_shapes_raise_valueerror  s    'T"6*! 4LTN	"	
 !L&TrT(:;&&z2f5:;UUH;8$ 3 ]!&"2"235 < !  < 32s   C B<
?C<C
Cc                    S nUn[        SS9" U5      nU" [        R                  " / SQ/ SQ/ SQ/5      S5      nU" [        R                  " / SQ/ SQ/ SQ/5      S5      n[        R                  R	                  XT5        g )Nc                     U R                   u  p#[        R                  " XX#45      n[        R                  " USS5      nUR	                  5       n[        R
                  " USU45      nUS SU-
   XqS-
  S 2S S 24'   U$ Nr   r`   r   )r.   r)   r-   swapaxesr<   r#   r   r   rcr>   r  ccds           r   unfold_flattenITestArrayManipulation.test_readonly_after_flatten.<locals>.unfold_flatten  sp    77DAq9-AAq!$AB

2Aw'AWq1u:A!efaiLHr    Tr   r  r_   r_   r_   r^   r^   r^   r_   r   r)   r   r   assert_array_equal)r   r  r   r  res_nbres_pys         r   test_readonly_after_flatten1TestArrayManipulation.test_readonly_after_flatten  si    	  T"6* rxxIy ABAF)Y	!BCQG


%%f5r    c                    S nUn[        SS9" U5      nU" [        R                  " / SQ/ SQ/ SQ/5      S5      nU" [        R                  " / SQ/ SQ/ SQ/5      S5      n[        R                  R	                  XT5        g )Nc                     U R                   u  p#[        R                  " XX#45      n[        R                  " USS5      nUR	                  5       n[        R
                  " USU45      nUS SU-
   XqS-
  S 2S S 24'   U$ r  )r.   r)   r-   r  rC   r#   r  s           r   unfold_ravelETestArrayManipulation.test_readonly_after_ravel.<locals>.unfold_ravel  sp    77DAq9-AAq!$AB

2Aw'AWq1u:A!efaiLHr    Tr   r  r  r  r_   r  )r   r  r   r  r  r  s         r   test_readonly_after_ravel/TestArrayManipulation.test_readonly_after_ravel  si    	 T"6* rxxIy ABAF)Y	!BCQG


%%f5r    c                    U R                  5         [        R                  " S5      R                  S5      R	                  5       nUR	                  SS9nSUR
                  l        SUR
                  l        S nUn[        SS9" U5      nU" U5      nU" U5      nS	nU R                  UR
                  R                  (       + U5        S
nU R                  UR
                  R                  U5        g )Nr  r  r  r  Fc                 &    U R                  5       nU$ r   rB   )r>   r   s     r   try_ravel_w_copyKTestArrayManipulation.test_mutability_after_ravel.<locals>.try_ravel_w_copy!  s    WWYFMr    Tr   zCNo copy was performed, so the resulting array must not be writeablez?A copy was performed, yet the resulting array is not modifiable)	r   r)   ra   r#   rW   r   rk  r   
assertTrue)	r   a_ca_fr  r   r  ret_cret_frf  s	            r   test_mutability_after_ravel1TestArrayManipulation.test_mutability_after_ravel  s     	!iil""6*//1hhSh!#		#			 "T"6*c
c
6EKK11137O--s3r    r   N)E__name__
__module____qualname____firstlineno____doc__r   r
  r  r  r(  r-  rK  rP  rT  rW  r]  ra  rg  rw  r  enable_pyobj_flagsr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   r&  r+  r.  r4  r<  rD  rG  rN  rY  r_  rq  rv  staticmethodr{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes__r   r    r   r   r      s   m"^X*tO.-68S-$^-
-
-
&+2".HAH (:# /$B
 &8  PD += 	/49 *< 8 (: 	/8*3XM-FAP,!\!3F5,.6`/	)	3/(3T1.TX(-0-03*3.  $33
/M<[4[B3//
K
P5,6(6(4r    r   __main__r   )F);	functoolsr   	itertoolsr   numpyr)   unittestnumbar   r   r   r   numba.core.errorsr	   
numba.corer
   r   numba.tests.supportr   r   r  r  r!   r'   r*   r/   r3   r7   r:   r?   rD   rG   rI   rM   rP   rU   rX   rZ   r\   ri   rl   rn   rq   rt   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r  mainr   r    r   <module>r     s    "   / / ) $ 9 $' D1, ! ! % %'&&, ( ( / /   & &  #   ?L P P,#p4OX p4f+ zMMO r    