
    (phh                        S SK rS SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  S SKJrJrJrJrJr  \R4                  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$ S%5      r,S& r-g)'    N)apply_along_axisapply_over_axesarray_splitsplithsplitdsplitvsplitdstackcolumn_stackkrontileexpand_dimstake_along_axisput_along_axis)assert_assert_equalassert_array_equalassert_raisesassert_warns        c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )z9hack in keepdims behavior into a function taking an axis c                 L   > T" U 4SU0UD6nUc  Sn[         R                  " X1S9$ )Naxisr   r   )npr   )ar   kwargsresfuncs       R/var/www/html/venv/lib/python3.13/site-packages/numpy/lib/tests/test_shape_base.pywrapped_add_keepdims.<locals>.wrapped   s0    1*4*6*<D~~c--    )	functoolswraps)r   r!   s   ` r    _add_keepdimsr&      s%    __T. .
 Nr#   c                   ,    \ rS rSrS rS rS rS rSrg)TestTakeAlongAxis   c                 l   SSK Jn  U" SSS5      n[        R                  [        R                  [        5       4[        [        R                  5      [        [        R                  5      [        5       4[        [        R                  5      [        [        R                  5      [        5       4[        R                  [        R                  [        SS94/nU HY  u  pEn[        [        UR                  5      5      S/-    H-  nU" U4S	U0UD6nU" U4S	U0UD6n	[!        U[#        X)US
95        M/     M[     g)z,Test it translates from arg<func> to <func> r   rand            )kthNr   r   )numpy.randomr,   r   sortargsortdictr&   minargminmaxargmax	partitionargpartitionlistrangendimr   r   )
selfr,   r   funcsr   argfuncr   r   a_funcai_funcs
             r    test_argequivalent$TestTakeAlongAxis.test_argequivalent   s    %AqM WWbjj$&)266"M"))$<dfE266"M"))$<dfE\\2??DQK8	
 &+!D6U166]+tf4a5d5f5!!9$9&9V_Qd%KL 5 &+r#   c                    [         R                  " S5      n[         R                  " S[         R                  S9n[        XSS9  [	        [
        [        U[         R                  " S5      SS9  [	        [        [        XR                  [        5      SS9  [	        [        [        XR                  [        5      SS9  [	        [         R                  [        XSS9  g)z3Test it errors when indices has too few dimensions )
   rG   )rG   r0   dtype   r   rG   N)r   onesintpr   r   
ValueErrorarray
IndexErrorastypeboolfloat	AxisErrorr?   r   ais      r    test_invalidTestTakeAlongAxis.test_invalid1   s    GGHWWWBGG, 	A& 	j/1bhhqkJj/1iioANj/1ii6FQObllOQDr#   c                     [         R                  " S5      n[         R                  " S[         R                  S9n[        XSS9n[	        UR
                  UR
                  5        g)zBTest everything is ok with empty results, even with inserted dims )r-   r.   r/   )r-   r   r/   rH   rJ   r   Nr   rK   rL   r   r   shaper?   r   rU   actuals       r    
test_emptyTestTakeAlongAxis.test_emptyB   sB    WWYWWYbgg. Q/V\\288,r#   c                     [         R                  " S5      n[         R                  " S[         R                  S9n[        XSS9n[	        UR
                  S5        g)CTest that non-indexing dimensions are broadcast in both directions r-   r.   rJ   rJ   r0   r/   rH   rJ   r   r-   r0   r/   NrY   r[   s       r    test_broadcast TestTakeAlongAxis.test_broadcastJ   s>    WWYWWYbgg. Q/V\\9-r#    N)	__name__
__module____qualname____firstlineno__rD   rV   r]   rd   __static_attributes__rf   r#   r    r(   r(      s    M$E"-.r#   r(   c                        \ rS rSrS rS rSrg)TestPutAlongAxisR   c                 N   [         R                  " / SQ/ SQ/5      n[        [        UR                  5      5      S /-    Hc  nUR                  5       n[        [         R                  5      " X2S9n[        X4SUS9  [        [         R                  5      " X2S9n[        XT5        Me     g )N)rG   r)      )<   (   2   r   i)r   rN   r<   r=   r>   copyr&   r9   r   r7   r   )r?   a_baser   r   i_maxi_mins         r    test_replace_max!TestPutAlongAxis.test_replace_maxS   s}    <67v{{+,v5DA "")),Q:E1St4 "")),Q:E& 6r#   c                     [         R                  " S5      n[         R                  " S[         R                  S9R	                  S5      S-  n[        XSSS9  [        [        XSS9S5        g	)
r`   ra   rG   rH   rb   r.   rp   rJ   r   N)r   rK   arangerL   reshaper   r   r   rT   s      r    rd   TestPutAlongAxis.test_broadcastc   sQ    WWYYYr)11)<q@qbq)_Q3R8r#   rf   N)rg   rh   ri   rj   rx   rd   rk   rf   r#   r    rm   rm   R   s    ' 9r#   rm   c                       \ rS rSrS rS rS rS rS r\	R                  4S jr\	R                  4S jr\	R                  4S	 jrS
 rS rS rS rS rSrg)TestApplyAlongAxisk   c                     [         R                  " SS5      n[        [        [        SU5      [	        U5      [         R                  " UR
                  S   5      -  5        g )Nrp   rG   dr   rJ   r   rK   r   r   lenrZ   r?   r   s     r    test_simpleTestApplyAlongAxis.test_simplel   sC    GGHc"S!Q'Q
0C)C	Er#   c                     [         R                  " SS5      n[        [        [        SU5      [	        U5      [         R                  " UR
                  S   5      -  5        g )N)rG   e   r   r   rJ   r   r   s     r    test_simple101!TestApplyAlongAxis.test_simple101q   sC    GGIs#S!Q'Q
0C)C	Er#   c                     [         R                  " S5      R                  S5      n[        [	        [         R
                  SU5      / SQ/ SQ/ SQ/5        g )N   r-   r-   r-   r   )r   r)   !   )$   '   *   )-   0   3   )r   r{   r|   r   r   sumr   s     r    test_3dTestApplyAlongAxis.test_3dv   s=    IIbM!!),+BFFAq9(,E	Gr#   c                    S n " S S[         R                  5      n[         R                  " SS/SS//5      R                  U5      n[         R                  " SS/SS	//5      R                  U5      n[	        USU5      n[        [        XR5      5        [        XT5        [	        USU5      n[        [        XR5      5        [        XT5        g )
Nc                     U S-  $ )Nr0   rf   )rows    r    double9TestApplyAlongAxis.test_preserve_subclass.<locals>.double|   s    7Nr#   c                       \ rS rSrSrg)<TestApplyAlongAxis.test_preserve_subclass.<locals>.MyNDArray   rf   Nrg   rh   ri   rj   rk   rf   r#   r    	MyNDArrayr          r#   r   r   rJ   r0   r-   r.      )r   ndarrayrN   viewr   r   
isinstancer   )r?   r   r   mexpectedresults         r    test_preserve_subclass)TestApplyAlongAxis.test_preserve_subclass{   s    		

 	 HHq!fq!f%&++I688aVaV,-229=!&!Q/
6-.6,!&!Q/
6-.6,r#   c                      " S S[         R                  5      nS n[         R                  " S5      R                  U5      n[	        [        USU5      [         R                  " / SQ5      5        g )Nc                       \ rS rSrSrSrg)9TestApplyAlongAxis.test_subclass.<locals>.MinimalSubclass   rJ   rf   N)rg   rh   ri   rj   datark   rf   r#   r    MinimalSubclassr      s    Dr#   r   c                     U R                   $ N)r   )rN   s    r    minimal_function:TestApplyAlongAxis.test_subclass.<locals>.minimal_function   s    ::r#   r   r-   r   )rJ   rJ   rJ   )r   r   zerosr   r   r   rN   )r?   r   r   r   s       r    test_subclass TestApplyAlongAxis.test_subclass   sR    	bjj 		 HHV!!/2-q!4bhhy6I	
r#   c                    [         R                  " S5      R                  U5      n[        [         R                  SU5      n[        [        X15      5        [        U[         R                  " / SQ5      R                  U5      5        g )Nr   r   r   r   r   )	r   rK   r   r   r   r   r   r   rN   )r?   clsr   r   s       r    test_scalar_array$TestApplyAlongAxis.test_scalar_array   sW    GGFO  %rvvq!,
3$%3 3 8 8 =>r#   c                    S n[         R                  " S5      R                  U5      n[        USU5      n[	        [        XA5      5        [        U[         R                  " / SQ5      R                  U5      5        [        USU5      n[	        [        XA5      5        [        U[         R                  " / SQ5      R                  U5      5        g )Nc                     [        U R                  S5        [        R                  " [        R                  " U SS95      $ )z.Sum x, returning a 0d array of the same class rJ   T)keepdims)r   r>   r   squeezer   xs    r    	sum_to_0d3TestApplyAlongAxis.test_0d_array.<locals>.sum_to_0d   s*    #::bffQ677r#   r   r   r   rJ   )r-   r-   r-   r-   r-   r-   )r   rK   r   r   r   r   r   rN   )r?   r   r   r   r   s        r    test_0d_array TestApplyAlongAxis.test_0d_array   s    	8 GGFO  %y!Q/
3$%3 3 8 8 =>y!Q/
3$%3); < A A# FGr#   c                   ^ U4S jn[         R                  " S5      R                  S5      n[        USU5      n[         R                  " [        UR                  S   5       Vs/ s H  oR" US S 2U4   5      PM     snSS9R                  T5      n[        [        U5      [        U5      5        [        XF5        [        USU5      n[         R                  " [        UR                  S   5       Vs/ s H  oR" X5S S 24   5      PM     snSS9R                  T5      n[        [        U5      [        U5      5        [        XF5        [         R                  " S5      R                  S	5      n[        USU5      n[         R                  " [        UR                  S
   5       VVs/ s HK  n[         R                  " [        UR                  S   5       Vs/ s H  oR" XuS S 2U4   5      PM     snSS9PMM     snnSS9R                  T5      n[        [        U5      [        U5      5        [        XF5        g s  snf s  snf s  snf s  snnf )Nc                 r   > [        U R                  S5        U SSS2   U SS2S4   -  R                  T5      $ )/produces an asymmetric non-square matrix from xrJ   N)r   r>   r   )r   r   s    r    f1to25TestApplyAlongAxis.test_axis_insertion.<locals>.f1to2   s9    #ddGa4j(..s33r#      r   r   rJ   r   r   Z   )r   r/   r-   r0   )
r   r{   r|   r   stackr=   rZ   r   r   type)	r?   r   r   a2dr\   ir   a3djs	    `       r    test_axis_insertion&TestApplyAlongAxis.test_axis_insertion   s   	4
 iin$$V, "%C088%*399Q<%8
%8E#ac(O%8
DI 	 	T&\4>2V& "%C088%*399Q<%8
%8E#c(O%8
49 	 	T&\4>2V& ii&&y1!%C088 399Q<(	
 ) HH+01+>+>acAa%j!+> )	

 
 DI 	 	T&\4>2V&3


s$   $H51H:#0I
H?+
I
?I
c                      " S S[         R                  5      nU R                  U5        U R                  U5        U R	                  U5        g )Nc                       \ rS rSrSrg)FTestApplyAlongAxis.test_subclass_preservation.<locals>.MinimalSubclass   rf   Nr   rf   r#   r    r   r      r   r#   r   )r   r   r   r   r   )r?   r   s     r    test_subclass_preservation-TestApplyAlongAxis.test_subclass_preservation   s<    	bjj 	/?+  1r#   c                 >   S n[         R                  " S5      R                  S5      n[        USU5      n[	        [        U[         R                  R                  5      5        [        UR                  S5        [        US S 2S S 2S4   R                  U" US S 2S4   5      R                  5        [        US S 2S S 2S4   R                  U" US S 2S4   5      R                  5        [        US S 2S S 2S4   R                  U" US S 2S4   5      R                  5        g )Nc                     [        U R                  S5        U SSS2   U SS2S4   -  n[        R                  R	                  US-  S:H  U5      $ )r   rJ   Nr   r/   r   )r   r>   r   mamasked_where)r   r   s     r    r   8TestApplyAlongAxis.test_axis_insertion_ma.<locals>.f1to2   sK    #DbD'AabgJ&C55%%c!eQh44r#   r   r   r   r-   rJ   r0   )r   r{   r|   r   r   r   r   masked_arrayr   r>   r   mask)r?   r   r   r   s       r    test_axis_insertion_ma)TestApplyAlongAxis.test_axis_insertion_ma   s    	5
 IIcN""6*ua+
3 2 234SXXq!3q1u:??E!AaC&M,>,>?3q1u:??E!AaC&M,>,>?3q1u:??E!AaC&M,>,>?r#   c           	          S n[         R                  " US[         R                  " SS/SS//5      5      n[        U[         R                  " SS/SS//5      5        g )Nc                     U S   U S   4$ )NrJ   r   rf   r   s    r    	sample_1d7TestApplyAlongAxis.test_tuple_func1d.<locals>.sample_1d   s    Q41:r#   rJ   r0   r-   r.   )r   r   rN   r   )r?   r   r   s      r    test_tuple_func1d$TestApplyAlongAxis.test_tuple_func1d   sQ    	!!)Q1a&1a&9I0JK31a&1a&)9 :;r#   c                    S n[         R                  " S5      n[        [        [         R                  USU5        [        [        [         R                  USU5        S n[         R                  " S5      n[         R                  " USU5      n[        U[         R                  " S5      5        [        [        [         R                  USU5        g )Nc                     [        S5        g )NF)r   r   s    r    
never_call1TestApplyAlongAxis.test_empty.<locals>.never_call   s	    ENr#   )r   r   r   rJ   c                 2    [        [        U 5      S:H  5        g)Nr   rJ   )r   r   r   s    r    
empty_to_11TestApplyAlongAxis.test_empty.<locals>.empty_to_1   s    CFaK r#   )rG   r   rG   )r   emptyr   rM   r   r   rK   )r?   r   r   r   r\   s        r    r]   TestApplyAlongAxis.test_empty   s    	 HHVj""5"5z1aHj""5"5z1aH	 HHW$$ZA6VRWWR[)j""5"5z1aHr#   c                 p   [         R                  " SS1SS1SS1/SS1S	S
1SS1//5      n[         R                  " S SU5      n[         R                  " 1 Sk1 Sk1 Sk/5      n[        X#5        [         R                  " UR
                  5       H%  n[        [        X$   5      [        X4   5      5        M'     g )NrJ      r0      r-   r   r.   ,   r/   7   r   B   c                 (    [         R                  " U 6 $ r   )setunion)r   s    r    <lambda>>TestApplyAlongAxis.test_with_iterable_object.<locals>.<lambda>  s    syy!}r#   r   >   rJ   r.   r   r   >   r0   r/   r   r   >   r-   r   r   r   )r   rN   r   r   ndindexrZ   r   )r?   r   r\   r   r   s        r    test_with_iterable_object,TestApplyAlongAxis.test_with_iterable_object  s    HHWq"g2w'Wq"g2w'
  $$%<aC88^^^LMV& FLL)Afi$x{*;< *r#   rf   N)rg   rh   ri   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   r  rk   rf   r#   r    r   r   k   se    E
E
G
-$
 %'JJ ? !#

 H ')jj #'J2@<I&=r#   r   c                       \ rS rSrS rSrg)TestApplyOverAxesi  c                     [         R                  " S5      R                  SSS5      n[        [         R                  USS/5      n[        U[         R                  " S/S/S///5      5        g )	N   r0   r-   r.   r   rq   \   |   )r   r{   r|   r   r   r   rN   )r?   r   aoa_as      r    r   TestApplyOverAxes.test_simple  sW    IIbM!!!Q*Aq625"((bTB4#,?+@"ABr#   rf   N)rg   rh   ri   rj   r   rk   rf   r#   r    r  r    s    Cr#   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestExpandDimsi  c                     Sn[         R                  " U5      n[        SS5       HU  n[        X#5      n[	        UR
                  U   S:H  5        [	        [         R                  " U5      R
                  U:H  5        MW     g )Nr0   r-   r.   r/   r.   rJ   )r   r   r=   r   r   rZ   r   )r?   sr   r   bs        r    test_functionality!TestExpandDims.test_functionality  s^    HHQK"aLDA$AAGGDMQ&'BJJqM''1,- !r#   c                 X   [         R                  " S5      n[         R                  " USS9R                  S:X  d   e[         R                  " USS9R                  S:X  d   e[         R                  " USS9R                  S:X  d   e[         R                  " US	S9R                  S
:X  d   eg )Nr   r   rJ   r0   r   )rJ   rJ   rJ   r-   r-   r-   )r   r   )rJ   r-   r-   r-   rJ   rJ   )r   r-   r/   )rJ   r-   r-   rJ   r-   rJ   )r   r  )rJ   rJ   r-   rJ   r-   r-   )r   r   r   rZ   r   s     r    test_axis_tupleTestExpandDims.test_axis_tuple!  s    HHY~~ai066:LLLL~~ak288<NNNN~~ai066:LLLL~~ak288<NNNNr#   c                 `   Sn[         R                  " U5      n[        [         R                  [        US5        [        [         R                  [        US5        [         R                  " S5      n[        [         R                  [        US5        [        [         R                  [        US5        g )Nr  r/   r   )r   r  )r   r/   )r   r   r   rS   r   )r?   r  r   s      r    test_axis_out_of_range%TestExpandDims.test_axis_out_of_range(  sj    HHQKbllKB7bllKA6HHYbllKG<bllKF;r#   c                 X    [         R                  " S5      n[        [        [        USS9  g )Nr   rJ   rJ   r   )r   r   r   rM   r   r   s     r    test_repeated_axis!TestExpandDims.test_repeated_axis2  s    HHYj+qv>r#   c                    [         R                  " S5      R                  S5      n[         R                  R	                  XS-  S:H  S9n[         R
                  " USS9n[        [        U[         R                  R                  5      5        [        UR                  S5        [        UR                  R                  S5        g )	NrG   )r0   r/   r-   r   r   rJ   r   )r0   rJ   r/   )r   r{   r|   r   rN   r   r   r   MaskedArrayr   rZ   r   )r?   r   expandeds      r    test_subclassesTestExpandDims.test_subclasses6  s    IIbM!!&)EEKK!qK)>>!!,
8RUU%6%678X^^Y/X]](()4r#   rf   N)
rg   rh   ri   rj   r  r  r   r$  r*  rk   rf   r#   r    r  r    s    .O<?5r#   r  c                       \ rS rSrS rS rS rS rS r\	R                  R                  \(       + SS9S	 5       rS
 rS rS rSrg)TestArraySpliti@  c                 \    [         R                  " S5      n[        [        [        US5        g )NrG   r   )r   r{   r   rM   r   r   s     r    test_integer_0_split#TestArraySplit.test_integer_0_splitA  s    IIbMj+q!4r#   c                    [         R                  " S5      n[        US5      n[         R                  " S5      /n[        X#5        [        US5      n[         R                  " S5      [         R                  " SS5      /n[        X#5        [        US5      n[         R                  " S5      [         R                  " SS5      [         R                  " SS5      /n[        X#5        [        US5      n[         R                  " S5      [         R                  " SS5      [         R                  " SS	5      [         R                  " S	S5      /n[        X#5        [        US5      n[         R                  " S5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS	5      [         R                  " S	S5      /n[        X#5        [        US5      n[         R                  " S5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS	5      [         R                  " S	S
5      [         R                  " S
S5      /n[        X#5        [        US5      n[         R                  " 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      /n[        X#5        [        US	5      n[         R                  " 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      /n[        X#5        [        US
5      n[         R                  " 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      /	n[        X#5        [        US5      n[         R                  " 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      /
n[        X#5        [        US5      n[         R                  " 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                  " / 5      /n[        X#5        g )NrG   rJ   r0   r/   r-   r.      r      	   r   )r   r{   r   compare_resultsrN   r?   r   r   desireds       r    test_integer_split!TestArraySplit.test_integer_splitE  sa   IIbM!Q99R=/%!Q99Q<1b!12%!Q99Q<1a"))Ar2BC%!Q99Q<1a"))Aq/99Q#%%!Q99Q<1a"))Aq/99Q?BIIa$46%!Q99Q<1a"))Aq/99Q?BIIaORYYq"5EG%!Q99Q<1a"))Aq/99Q?BIIaORYYq!_99Q#% 	%!Q99Q<1a"))Aq/99Q?BIIaORYYq!_99Q?BIIa$46 	%!Q99Q<1a"))Aq/99Q?BIIaORYYq!_99Q?BIIaORYYq"5EG 	%!R 99Q<1a"))Aq/99Q?BIIaORYYq!_99Q?BIIaORYYq!_99Q#% 	%!R 99Q<1a"))Aq/99Q?BIIaORYYq!_99Q?BIIaORYYq!_99Q#RXXb\3 	%r#   c                 l   [         R                  " [         R                  " S5      [         R                  " S5      /5      n[        USSS9n[         R                  " [         R                  " S5      /5      [         R                  " [         R                  " S5      /5      [         R                  " S5      /n[        X#5        [        UR                  R                  US   R                  R                  L 5        [        USS/SS9n[         R                  " S5      [         R                  " [         R                  " S5      /5      [         R                  " [         R                  " S5      /5      /n[        X#5        [        UR                  R                  US   R                  R                  L 5        g )NrG   r-   r   r   r   rG   r   rJ   	r   rN   r{   r   r   r5  r   rI   r   r?   r   r   tgts       r    test_integer_split_2D_rows)TestArraySplit.test_integer_split_2D_rows  s   HHbiimRYYr]34!QQ'xx2("((BIIbM?*C88G$&!B 2 223 !aV!,xx "((BIIbM?";xx2(*!B 2 223r#   c           	      6   [         R                  " [         R                  " S5      [         R                  " S5      /5      n[        USSS9n[         R                  " [         R                  " S5      [         R                  " S5      /5      [         R                  " [         R                  " SS5      [         R                  " SS5      /5      [         R                  " [         R                  " SS5      [         R                  " SS5      /5      /n[	        X#5        g )NrG   r-   r   r   r.   r2  )r   rN   r{   r   r5  r6  s       r    test_integer_split_2D_cols)TestArraySplit.test_integer_split_2D_cols  s    HHbiimRYYr]34!QR(88RYYq\299Q<8988RYYq!_bii1o>?88RYYq"-ryyB/?@AC 	%r#   c                    [         R                  " [         R                  " S5      [         R                  " S5      /5      n[        US5      n[         R                  " [         R                  " S5      /5      [         R                  " [         R                  " S5      /5      [         R                  " S5      /n[        X#5        [        UR                  R                  US   R                  R                  L 5        g)z1This will fail if we change default axis
        rG   r-   r;  r   Nr<  r=  s       r    test_integer_split_2D_default,TestArraySplit.test_integer_split_2D_default  s     HHbiimRYYr]34!Qxx2("((BIIbM?*C88G$&!B 2 223r#   zNeeds 64bit platform)reasonc                    [         R                  " S/S5      n[        US5      n[         R                  " S/S5      nU/S-  n[        [	        U5      5       H'  n[        X%   R                  XE   R                  5        M)     g )Nr   )r   r0   r.   )i   @r0   )r   broadcast_tor   r=   r   r   rZ   )r?   r   r   chunkr>  r   s         r    ,test_integer_split_2D_rows_greater_max_int32;TestArraySplit.test_integer_split_2D_rows_greater_max_int32  se    OOQC.!Q\2gks3xAsv||4 !r#   c                    [         R                  " S5      n/ SQn[        XSS9n[         R                  " SS5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      /n[        X45        g )	NrG   )rJ   r/   r2  r   r   r   rJ   r/   r2  )r   r{   r   r5  r?   r   indicesr   r7  s        r    test_index_split_simple&TestArraySplit.test_index_split_simple  sb    IIbM!2.99Q?BIIaORYYq!_99Q#%%r#   c                    [         R                  " S5      n/ SQn[        XSS9n[         R                  " / 5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      /n[	        X45        g )NrG   )r   r/   r2  r   r   r   r/   r2  r   r{   r   rN   r5  rN  s        r    test_index_split_low_bound)TestArraySplit.test_index_split_low_bound  s`    IIbM!2.88B<1a"))Aq/99Q#%%r#   c                 h   [         R                  " S5      n/ SQn[        XSS9n[         R                  " / 5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      [         R                  " / 5      [         R                  " / 5      /n[	        X45        g )NrG   )r   r/   r2  rG      r   r   r   r/   r2  rS  rN  s        r    test_index_split_high_bound*TestArraySplit.test_index_split_high_bound  su    IIbM#!2.88B<1a"))Aq/99Q#RXXb\288B<A%r#   rf   N)rg   rh   ri   rj   r/  r8  r?  rB  rE  pytestmarkskipifIS_64BITrK  rP  rT  rX  rk   rf   r#   r    r-  r-  @  sW    5;&z4&4 [[H-CD5 E5&&&r#   r-  c                        \ rS rSrS rS rSrg)	TestSpliti  c                     [         R                  " S5      n[        US5      n[         R                  " S5      [         R                  " SS5      /n[        X#5        g )NrG   r0   r/   )r   r{   r   r5  r6  s       r    test_equal_splitTestSplit.test_equal_split  s?    IIbMAqk99Q<1b!12%r#   c                 \    [         R                  " S5      n[        [        [        US5        g )NrG   r-   )r   r{   r   rM   r   r   s     r    test_unequal_splitTestSplit.test_unequal_split  s    IIbMj%A.r#   rf   N)rg   rh   ri   rj   ra  rd  rk   rf   r#   r    r_  r_    s    
&/r#   r_  c                   ,    \ rS rSrS rS rS rS rSrg)TestColumnStacki  c                 .    [        [        [        S5        g NrJ   )r   	TypeErrorr   r?   s    r    test_non_iterable!TestColumnStack.test_non_iterable  s    iq1r#   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " SS/SS/SS//5      n[         R                  " X45      n[        XC5        g )NrJ   r0   r-   )r0   r-   r.   rJ   r0   r-   r.   r   rN   r   r   r?   r   r  r   r\   s        r    test_1D_arraysTestColumnStack.test_1D_arrays  s_    HHYHHY88aVVV% & !(V&r#   c                     [         R                  " S/S/S//5      n[         R                  " S/S/S//5      n[         R                  " SS/SS/SS//5      n[         R                  " X45      n[        XC5        g )NrJ   r0   r-   r.   rp  rq  s        r    test_2D_arraysTestColumnStack.test_2D_arrays  sw    HHqcA3_%HHqcA3_%88aVVV% & !(V&r#   c                     [         R                  " [        SS9   [        S [	        S5       5       5        S S S 5        g ! , (       d  f       g = f)Narrays to stack must bematchc              3   N   #    U  H  n[         R                  " S 5      v   M     g7fr-   Nr   r{   .0_s     r    	<genexpr>1TestColumnStack.test_generator.<locals>.<genexpr>  s     91"))A,,   #%r0   )rZ  raisesrj  r   r=   rk  s    r    test_generatorTestColumnStack.test_generator  s0    ]]9,EF9a9: GFF	   ?
Arf   N)	rg   rh   ri   rj   rl  rr  ru  r  rk   rf   r#   r    rg  rg    s    2'';r#   rg  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)

TestDstacki  c                 .    [        [        [        S5        g ri  )r   rj  r
   rk  s    r    rl  TestDstack.test_non_iterable  s    i+r#   c                     [         R                  " S5      n[         R                  " S5      n[        X/5      n[         R                  " SS///5      n[        X45        g NrJ   r0   r   rN   r
   r   r?   r   r  r   r7  s        r    test_0D_arrayTestDstack.test_0D_array  sE    HHQKHHQKaVn((aVH:&3(r#   c                     [         R                  " S/5      n[         R                  " S/5      n[        X/5      n[         R                  " SS///5      n[        X45        g r  r  r  s        r    test_1D_arrayTestDstack.test_1D_array  sI    HHaSMHHaSMaVn((aVH:&3(r#   c                     [         R                  " S/S//5      n[         R                  " S/S//5      n[        X/5      n[         R                  " SS//SS///5      n[        X45        g r  r  r  s        r    test_2D_arrayTestDstack.test_2D_array  s`    HHqcA3Z HHqcA3Z aVn((aVH1xj123(r#   c                     [         R                  " SS/5      n[         R                  " SS/5      n[        X/5      n[         R                  " SS/SS///5      n[        X45        g r  r  r  s        r    test_2D_array2TestDstack.test_2D_array2  sW    HHaVHHaVaVn((aVaV,-.3(r#   c                     [         R                  " [        SS9   [        S [	        S5       5       5        S S S 5        g ! , (       d  f       g = f)Nrx  ry  c              3   N   #    U  H  n[         R                  " S 5      v   M     g7fr|  r}  r~  s     r    r  ,TestDstack.test_generator.<locals>.<genexpr>  s     3(QBIIaLL(r  r0   )rZ  r  rj  r
   r=   rk  s    r    r  TestDstack.test_generator  s0    ]]9,EF3%(34 GFFr  rf   N)rg   rh   ri   rj   rl  r  r  r  r  r  rk   rf   r#   r    r  r    s     ,))))5r#   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	
TestHspliti  &Only testing for integer splits.

    c                 0    [        [        [        SS5        g ri  )r   rM   r   rk  s    r    rl  TestHsplit.test_non_iterable      j&!Q/r#   c                     [         R                  " S5      n [        US5        [        S5        g ! [         a     g f = f)NrJ   r0   r   )r   rN   r   r   rM   r   s     r    r  TestHsplit.test_0D_array!  s6    HHQK	1aLAJ 		s   0 
==c                     [         R                  " / SQ5      n[        US5      n[         R                  " SS/5      [         R                  " SS/5      /n[        X#5        g NrJ   r0   r-   r.   r0   rJ   r-   r.   r   rN   r   r5  r6  s       r    r  TestHsplit.test_1D_array)  sG    HH\"Ql88QF#RXXq!f%56%r#   c                     [         R                  " / SQ/ SQ/5      n[        US5      n[         R                  " SS/SS//5      [         R                  " SS/SS//5      /n[        X#5        g r  r  r6  s       r    r  TestHsplit.test_2D_array/  sc    HHl  !Ql88aVaV,-rxx!Q!Q8H/IJ%r#   rf   N
rg   rh   ri   rj   __doc__rl  r  r  r  rk   rf   r#   r    r  r    s    0&&r#   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	
TestVspliti7  r  c                 0    [        [        [        SS5        g ri  )r   rM   r	   rk  s    r    rl  TestVsplit.test_non_iterable;  r  r#   c                 \    [         R                  " S5      n[        [        [        US5        g r  )r   rN   r   rM   r	   r   s     r    r  TestVsplit.test_0D_array>      HHQKj&!Q/r#   c                     [         R                  " / SQ5      n [        US5        [        S5        g ! [         a     g f = fNr  r0   r   )r   rN   r	   r   rM   r   s     r    r  TestVsplit.test_1D_arrayB  s7    HH\"	1aLAJ 		s   2 
??c                     [         R                  " / SQ/ SQ/5      n[        US5      n[         R                  " / SQ/5      [         R                  " / SQ/5      /n[        X#5        g Nr  r0   )r   rN   r	   r5  r6  s       r    r  TestVsplit.test_2D_arrayJ  sM    HHl  !Ql88\N+RXX|n-EF%r#   rf   Nr  rf   r#   r    r  r  7  s    00&r#   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
TestDsplitiR  c                 0    [        [        [        SS5        g ri  )r   rM   r   rk  s    r    rl  TestDsplit.test_non_iterableT  r  r#   c                 \    [         R                  " S5      n[        [        [        US5        g r  r   rN   r   rM   r   r   s     r    r  TestDsplit.test_0D_arrayW  r  r#   c                 `    [         R                  " / SQ5      n[        [        [        US5        g r  r  r   s     r    r  TestDsplit.test_1D_array[  s    HH\"j&!Q/r#   c                     [         R                  " / SQ/ SQ/5      n [        US5        [        S5        g ! [         a     g f = fr  )r   rN   r   r   rM   r   s     r    r  TestDsplit.test_2D_array_  sA    HHl  !	1aLAJ 		s   6 
AAc                 
   [         R                  " / SQ/ SQ// SQ/ SQ//5      n[        US5      n[         R                  " SS/SS//SS/SS///5      [         R                  " SS/SS//SS/SS///5      /n[        X#5        g r  )r   rN   r   r5  r6  s       r    test_3D_arrayTestDsplit.test_3D_arrayh  s    HH|!!" # Ql88q!fq!f-AA/?@A88q!fq!f-AA/?@AC%r#   rf   N)
rg   rh   ri   rj   rl  r  r  r  r  rk   rf   r#   r    r  r  R  s    000&r#   r  c                       \ rS rSrS rSrg)TestSqueezeis  c                 T   SSK Jn  U" SSSSS5      nU" SSSSS5      nU" SSSS5      n[        [        R                  " U5      [        R
                  " US5      5        [        [        R                  " U5      [        R
                  " US5      5        [        [        R                  " U5      [        R
                  " US5      5        S	///n[        R                  " U5      n[        US	5        [        UR                  S5        [        [        U5      [        R                  5        g )
Nr   r+   rp   rG   rJ   )rp   rG   rG   )rp   rG   rp   r   g      ?)
r2   r,   r   r   r   r|   r   r>   r   r   )r?   r,   r   r  cr   s         r    
test_basicTestSqueeze.test_basict  s    %RQ"QAr"Ar22::a="**Q*EF2::a="**Q*EF2::a="**Q*AB eWIjjmS#SXXq!T#Y

+r#   rf   Nrg   rh   ri   rj   r  rk   rf   r#   r    r  r  s  s    ,r#   r  c                       \ rS rSrS rS r\R                  R                  S\	R                  \	R                  /5      S 5       rS r\R                  R                  S/ SQ5      S	 5       rS
rg)TestKroni  c                    [         R                  " S5      n[         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        [         R                  " X5      U5        [         R                  " SS/SS//5      n[         R                  " S5      n[        [         R                  " X5      U5        [         R                  " S/5      n[         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        [         R                  " X5      U5        [         R                  " SS/SS//5      n[         R                  " S/5      n[        [         R                  " X5      U5        [         R                  " S//S///5      n[         R                  " SS/SS//5      n[         R                  " SS/SS//SS/SS///5      n[        [         R                  " X5      U5        [         R                  " SS/SS//5      n[         R                  " S//S///5      n[         R                  " SS/SS//SS/SS///5      n[        [         R                  " X5      U5        g )	NrJ   r0   r-   r.   r   r4  rW  r3  )r   rN   r   r   )r?   r   r  ks       r    r  TestKron.test_basic  s   HHQKHHq!fq!f%&HHq!fq!f%&2771=!,HHq!fq!f%&HHQK2771=!, HHaSMHHq!fq!f%&HHq!fq"g&'2771=!,HHq!fq!f%&HHaSM2771=!, HHseqcU^$HHq!fq!f%&HH1v1v&!Q!Q(89:2771=!,HHq!fq!f%&HHseqcU^$HH1v1v&!Q!Q(89:2771=!,r#   c                     " S S[         R                  5      n[         R                  " SS/5      nU" UR                  UR                  UR
                  5      n[        [        [        X"5      5      [         R                  5        [        [        [        X35      5      U5        [        [        [        X#5      5      U5        [        [        [        X25      5      U5        g )Nc                       \ rS rSrSrSrg)*TestKron.test_return_type.<locals>.myarrayi  g      ?rf   N)rg   rh   ri   rj   __array_priority__rk   rf   r#   r    myarrayr    s    !$r#   r  r0   )	r   r   rK   rZ   rI   r   r   r   r   )r?   r  r   r   s       r    test_return_typeTestKron.test_return_type  s    	%bjj 	% GGQFOQWWaggqvv.T$q*%rzz2T$r,'1T$q+&0T$r+&0r#   array_classc                     U" [         R                  " SS/5      5      nU" [         R                  " SS/5      5      nU" [         R                  " SS/5      5      n[        [         R                  " X#5      U5        g )Nr-   r4  )r   rK   r   r   )r?   r  r   r  r  s        r    test_kron_smokeTestKron.test_kron_smoke  sX     A(A(A(2771=!,r#   c                 X   [         R                  R                  SS/SS//SS/SS//S9n[         R                  R                  [         R                  " / SQ5      [         R                  " [         R                  " S5      [
        S9) S9n[        U[         R                  " X5      5        g )	NrJ   r0   r-   r.   r   r'  )rJ   r.   r.      rH   )r   r   rN   diagidentityrQ   r   r   )r?   r   r  s      r    test_kron_maTestKron.test_kron_ma  s    EEKK!Q!Q(AA/?K@EEKK.hhr{{1~T::  < 	1bggam,r#   zshape_a,shape_b))r#  r#  )ro  )r.   r/   r   )r0   r0   )r0   r0   r0   ))rJ   r   r#  )r0   r   r0   r  ))r0   r   r   r0   r  c                    [         R                  " U5      n[         R                  " U5      nS[        S[        U5      [        U5      -
  5      -  U-   nS[        S[        U5      [        U5      -
  5      -  U-   n[         R                  " XV5      n[         R
                  " X45      n[         R                  " UR                  U5      (       d   S5       eg )N)rJ   r   zUnexpected shape from kron)r   rK   r8   r   multiplyr   array_equalrZ   )	r?   shape_ashape_br   r  normalised_shape_anormalised_shape_bexpected_shaper  s	            r    test_kron_shapeTestKron.test_kron_shape  s     GGGGGG!C3w<G+D$EEO!C3w<G+D$EEO%7LGGAM~~) ) 	G*F	G )r#   rf   N)rg   rh   ri   rj   r  r  rZ  r[  parametrizer   asarraymatr  r  r  rk   rf   r#   r    r  r    ss    -:	1 [[

BFF+--- [[ 
	G	Gr#   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestTilei  c                    [         R                  " / SQ5      nSS/SS//n[        [        US5      / SQ5        [        [        US5      / SQ/ SQ/5        [        [        US5      / SQ/5        [        [        US5      / S	Q/ S
Q/5        [        [        US5      SS/SS/SS/SS//5        [        [        US5      / S	Q/ S
Q/ S	Q/ S
Q/5        g )Nr  rJ   r0   r-   r.   )r   rJ   r0   r   rJ   r0   r  rJ   r0   )rJ   r0   rJ   r0   )r-   r.   r-   r.   r0   rJ   )r   rN   r   r   r?   r   r  s      r    r  TestTile.test_basic  s    HHYVaVT!QZ!34T!V_'9;M&NOT!V_'9&:;T!QZ,!=>T!V_1v1v1v1v&FGT!V_|\'3\'C 	Dr#   c                     [         R                  " S5      n[        US5      nUS-  n[        U[         R                  " S5      5        g )Nr/   rJ   r0   )r   r{   r   r   r  s      r    (test_tile_one_repetition_on_array_gh46791TestTile.test_tile_one_repetition_on_array_gh4679  s5    IIaLAJ	QQ		!%r#   c                     [         R                  " / //5      n[         R                  " / / /5      n[        US5      R                  n[        US5      R                  n[	        US5        [	        US5        g )Nr0   rc   )r0   r   )r-   r0   r   )r   rN   r   rZ   r   )r?   r   r  r  r   s        r    r]   TestTile.test_empty  s]    HHrdVHHb"XAJI$$QQ	"r#   c                     SSK Jn  / SQn/ SQnU HU  nU" SSUS9nU HD  n[        R                  " XeR                  5      n[        XV5      n[        Xu5      n	[        X5        MF     MW     g )Nr   )randint))r0   r  r  r  )r0   r-   r0   )r-   r0   ))r-   )r0   r-   )r-   r.   r-   )r-   r0   r-   )r.   r-   r0   r.   r  rG   )size)r2   r  r   rK   rI   r   r   r   )
r?   r  repsrZ   r  r  rr   largeklarges
             r    test_kroncompareTestTile.test_kroncompare  s]    (@JA2A&AGGAww'Q
aU+	  r#   rf   N)	rg   rh   ri   rj   r  r  r]   r
  rk   rf   r#   r    r  r    s    	D&#,r#   r  c                       \ rS rSrS rSrg)TestMayShareMemoryi  c           
         [         R                  " S5      n[         R                  " S5      n[        [         R                  " X5      5        [        [         R                  " XS S S2   5      5        [        [         R                  " XS S S2   5      5        [        [         R                  " XSS 2S S S24   5      5        [        [         R                  " US S S2   U5      (       + 5        [        [         R                  " US S S2   U5      (       + 5        [        [         R                  " USS 2S S S24   U5      (       + 5        [        [         R                  " USS 2S S S24   U5      5        g )N)rs   rq   )r)   rq   r   r   r0   rJ   )r   rK   r   may_share_memory)r?   r   d2s      r    r  TestMayShareMemory.test_basic  s   GGHWW[!##A)*##A2w/0##A1v./##ATrT{34B''$B$445B''#A#334B''!"dd(R889##Bqr4R4xL"56r#   rf   Nr  rf   r#   r    r  r    s    7r#   r  c                     [        U 5      [        U5      :w  a  [        S5      e[        X5       H  u  p#[        X#5        M     g)zCompare lists of arrays.z Iterables have different lengthsN)r   rM   zipr   )r   r7  r   ys       r    r5  r5    s7    
3x3w<;<<C!1  "r#   ).numpyr   r$   sysrZ  numpy.lib.shape_baser   r   r   r   r   r   r	   r
   r   r   r   r   r   r   numpy.testingr   r   r   r   r   maxsizer]  r&   r(   rm   r   r  r  r-  r_  rg  r  r  r  r  r  r  r  r  r5  rf   r#   r    <module>r     s      
    
 
 ;;1. 1.h9 92c= c=LC C%5 %5PC& C&L/ / ; ;:"5 "5N& &:& &6& &B, ,&LG LG^%, %,P7 7 !r#   