+
    eik  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHt ^ RIHt ^ RIHtHtHtHt ]P4                  R'8  tR t ! R R4      t ! R R	4      t ! R
 R4      t ! R R4      t  ! R R4      t! ! R R4      t" ! R R4      t# ! R R4      t$ ! R R4      t% ! R R4      t& ! R R4      t' ! R R4      t( ! R R4      t) ! R  R!4      t* ! R" R#4      t+ ! R$ R%4      t,R& t-R# )(    N)apply_along_axisapply_over_axesarray_splitcolumn_stackdsplitdstackexpand_dimshsplitkronput_along_axissplittake_along_axistilevsplit)	AxisError)assert_assert_array_equalassert_equalassert_raisesc                sF   a  \         P                  ! S 4      V 3R l4       pV# )z9hack in keepdims behavior into a function taking an axis c                 sT   < S! V 3R V/VB pVf   ^ p\         P                  ! W1R7      # )axisr   )npr   )ar   kwargsresfuncs   &&, F/usr/lib64/python3.14/site-packages/numpy/lib/tests/test_shape_base.pywrappedZ_add_keepdims.<locals>.wrapped   s0    1*4*6*<D~~c--    )	functoolsZwraps)r   r   s   f r   _add_keepdimsr      s%    __T. .
 Nr   c                   s8   a  ] tR t^(t o R tR tR tR tRtV t	R# )TestTakeAlongAxisc                s   ^ RI Hp V! ^^^4      p\        P                  \        P                  / 3\        \        P                  4      \        \        P                  4      / 3\        \        P                  4      \        \        P                  4      / 3.pV F`  w  rEp\        \        VP                  4      4      R.,            F0  pV! V3RV/VB pV! V3RV/VB p	\        V\        W)VR7      4       K2  	  Kb  	  R# )z,Test it translates from arg<func> to <func> randNr   r   )numpy.randomr"   r   ZsortZargsortr   Zminargminmaxargmaxlistrangendimr   r   )
selfr"   r   Zfuncsr   Zargfuncr   r   Za_funcZai_func
   &         r   test_argequivalentZ$TestTakeAlongAxis.test_argequivalent)   s    %AqM WWbjj"%266"M"))$<bA266"M"))$<bA
 &+!D6U166]+tf44a5d5f5!!9$9&9V_Qd%KL 5 &+r   c                s   \         P                  ! R4      p\         P                  ! R\         P                  R7      p\        W^R7       \	        \
        \        V\         P                  ! ^4      ^R7       \	        \        \        WP                  \        4      ^R7       \	        \        \        WP                  \        4      ^R7       \	        \        \        W^
R7       \	        \
        \        WRR7       R# )z3Test it errors when indices has too few dimensions dtyper   N)
   r/   )r/      )r   onesintpr   r   
ValueErrorarrayZ
IndexErrorZastypeboolZfloatr   r*   r   ai   &  r   test_invalidZTestTakeAlongAxis.test_invalid;   s    GGHWWWBGG, 	A& 	j/1bhhqkJj/1iioANj/1ii6FQOi!bAj/1tDr   c                s    \         P                  ! R4      p\         P                  ! R\         P                  R7      p\        W^R7      p\	        VP
                  VP
                  4       R# )zBTest everything is ok with empty results, even with inserted dims r-   r   N)         )r:   r    r<   r   r1   r2   r   r   shaper*   r   r7   actual   &   r   
test_emptyZTestTakeAlongAxis.test_emptyN   sB    GGIWWYbgg. Q/V\\288,r   c                s    \         P                  ! R4      p\         P                  ! R\         P                  R7      p\        W^R7      p\	        VP
                  R4       R# )CTest that non-indexing dimensions are broadcast in both directions r-   r   Nr:   r;      rE   r0   r<   r:   r0   r<   r=   r?   rA   r   test_broadcastZ TestTakeAlongAxis.test_broadcastV   s>    GGIWWYbgg. Q/V\\9-r    N)
__name__
__module____qualname____firstlineno__r,   r9   rB   rH   __static_attributes____classdictcell__Z__classdict__   @r   r    r    (   s      M$E&-. .r   r    c                   s2   a  ] tR t^^t o R tR tR tRtV tR# )TestPutAlongAxisc                sj   \         P                  ! . RO. RO.4      p\        \        VP                  4      4      R.,            Fl  pVP                  4       p\        \         P                  4      ! W2R7      p\        W4RVR7       \        \         P                  4      ! W2R7      p\        WT4       Kn  	  R# )r/   Nr   r/         <   i(   2   i)r   r4   r'   r(   r)   copyr   r&   r
   r$   r   )r*   a_baser   r   Zi_maxZi_min   &     r   test_replace_maxZ!TestPutAlongAxis.test_replace_max_   s    <67v{{+,v55DA "")),Q:E1St4 "")),Q:E& 6r   c                s    \         P                  ! R4      p\         P                  ! ^
\         P                  R7      P	                  R4      ^,          p\        W^^R7       \        \        W^R7      ^4       R# )rC   r-   r   NrD   rF   )r   r1   aranger2   reshaper
   r   r   r6   r8   r   rH   ZTestPutAlongAxis.test_broadcasto   sQ    GGIYYr)11)<q@qbq)_Q3R8r   c           	     s   \         P                  ! . RO. RO.4      p\         P                  ! ^ .^..4      p\         P                  ! ^.^..4      pVP                  4       p\        WBV^ R7       VP                  4       p\	        \
        4      ;_uu_ 4       p\        WBVRR7       RRR4       R#   + '       g   i     R# ; i)zTest invalid inputs r   NrS   rV   )r   r4   rY   r
   r   r3   )r*   rZ   indicesZvaluesr   Zexcr[   r   r9   ZTestPutAlongAxis.test_invalidv   s    <67((QC!:&A3*% KKMq62 KKM:&&#1vD9 '&&&s   B//C 	rI   N)	rJ   rK   rL   rM   r\   rH   r9   rN   rO   rP   rQ   r   rR   rR   ^   s     ' 98 8r   rR   c                   s   a  ] tR t^t o R tR tR tR tR t]	P                  3R lt]	P                  3R lt]	P                  3R ltR	 tR
 tR tR tR tRtV tR# )TestApplyAlongAxisc                    \         P                  ! RR4      p\        \        \        ^ V4      \	        V4      \         P                  ! VP
                  ^,          4      ,          4       R# )rU   dNrU   r/   r   r1   r   r   lenr>   r*   r      & r   test_simpleZTestApplyAlongAxis.test_simple   sC    GGHc"S!Q'Q"''!''!*2E)E	Gr   c                ra   )r/   rb   N)r/   ie   rd   rf   rg   r   test_simple101Z!TestApplyAlongAxis.test_simple101   sC    GGIs#S!Q'Q"''!''!*2E)E	Gr   c                s    \         P                  ! ^4      P                  R4      p\        \	        \         P
                  ^ V4      . RO. RO. RO.4       R# )   Nr:   r:   r:   )rj   rT   !   )i$   i'   i*   )i-   i0   i3   )r   r]   r^   r   r   sumrf   rg   r   test_3dZTestApplyAlongAxis.test_3d   s=    IIbM!!),+BFFAq9(,E	Gr   c                s   R  p ! R R\         P                  4      p\         P                  ! ^ ^.^^..4      P                  V4      p\         P                  ! ^ ^.^^..4      P                  V4      p\	        V^ V4      p\        \        WR4      4       \        WT4       \	        V^V4      p\        \        WR4      4       \        WT4       R# )c                 s    V ^,          # r0   rI   )Zrow   &r   doubleZ9TestApplyAlongAxis.test_preserve_subclass.<locals>.double   s    7Nr   c                   s    ] tR t^tRtR# )<TestApplyAlongAxis.test_preserve_subclass.<locals>.MyNDArrayrI   NrJ   rK   rL   rM   rN   rI   r   r   	MyNDArrayrr          r   rt   N)r   ndarrayr4   viewr   r   
isinstancer   )r*   rq   rt   ZmexpectedZresultr[   r   test_preserve_subclassZ)TestApplyAlongAxis.test_preserve_subclass   s    		

 	 HHq!fq!f%&++I688aVaV,-229=!&!Q/
6-.6,!&!Q/
6-.6,r   c                s     ! R  R\         P                  4      pR p\         P                  ! R4      P                  V4      p\	        \        V^ V4      \         P                  ! . RO4      4       R# )c                   s    ] tR t^t^tRtR# )9TestApplyAlongAxis.test_subclass.<locals>.MinimalSubclassrI   N)rJ   rK   rL   rM   datarN   rI   r   r   MinimalSubclassr{      s    Dr   r}   c                 s    V P                   # N)r|   )r4   rp   r   minimal_functionZ:TestApplyAlongAxis.test_subclass.<locals>.minimal_function   s    ::r   N   r:   )rE   rE   rE   )r   rv   zerosrw   r   r   r4   )r*   r}   r   r   rA   r   test_subclassZ TestApplyAlongAxis.test_subclass   sR    	bjj 		 HHV!!/2-q!4bhhy6I	
r   c                s   \         P                  ! R4      P                  V4      p\        \         P                  ^ V4      p\        \        W14      4       \        V\         P                  ! . RO4      P                  V4      4       R# )r   Nr   r   r   r   )	r   r1   rw   r   rm   r   rx   r   r4   )r*   clsr   r      &&  r   test_scalar_arrayZ$TestApplyAlongAxis.test_scalar_array   sW    GGFO  %rvvq!,
3$%3 3 8 8 =>r   c                s   R  p\         P                  ! R4      P                  V4      p\        V^ V4      p\	        \        WA4      4       \        V\         P                  ! . RO4      P                  V4      4       \        V^V4      p\	        \        WA4      4       \        V\         P                  ! . RO4      P                  V4      4       R# )c                s    \        V P                  ^4       \        P                  ! \        P                  ! V RR7      4      # )z.Sum x, returning a 0d array of the same class T)Zkeepdims)r   r)   r   squeezerm   xrp   r   	sum_to_0dZ3TestApplyAlongAxis.test_0d_array.<locals>.sum_to_0d   s*    #::bffQ677r   Nr   r   )r:   r:   r:   r:   r:   r:   )r   r1   rw   r   r   rx   r   r4   )r*   r   r   r   r      &&   r   test_0d_arrayZ TestApplyAlongAxis.test_0d_array   s    	8 GGFO  %y!Q/
3$%3 3 8 8 =>y!Q/
3$%3); < A A# FGr   c                s  a V3R  lp\         P                  ! ^4      P                  R4      p\        V^ V4      p\         P                  ! \        VP                  ^,          4       Uu. uF  qR! VRV3,          4      NK  	  upRR7      P                  S4      p\        \        V4      \        V4      4       \        WF4       \        V^V4      p\         P                  ! \        VP                  ^ ,          4       Uu. uF  qR! W5R3,          4      NK  	  up^ R7      P                  S4      p\        \        V4      \        V4      4       \        WF4       \         P                  ! ^Z4      P                  R4      p\        V^V4      p\         P                  ! \        VP                  ^,          4       UUu. uFS  p\         P                  ! \        VP                  ^ ,          4       Uu. uF  qR! WuRV3,          4      NK  	  up^ R7      NKU  	  uppRR7      P                  S4      p\        \        V4      \        V4      4       \        WF4       R# u upi u upi u upi u uppi )c                s   < \        V P                  ^4       V RRR1,          V R,          ,          P                  S4      # z/produces an asymmetric non-square matrix from xN)rE   NNN)r   r)   rw   )r   r   s   &r   f1to2Z5TestApplyAlongAxis.test_axis_insertion.<locals>.f1to2   s3    #ddGak)//44r   NNNr   Nr   r   )r   r<   r:   )
r   r]   r^   r   Zstackr(   r>   rw   r   type)	r*   r   r   Za2dr@   iry   Za3dZjs	   &f       r   test_axis_insertionZ&TestApplyAlongAxis.test_axis_insertion   s   	5
 ii&&v. "%C088&+CIIaL&9
&9E#ad)&9
DI 	 	T&\4>2V& "%C088&+CIIaL&9
&9E#d)&9
49 	 	T&\4>2V& ii	"**95!%C088 399Q<(	
 ) HH-2399Q<-@-@cQ'l#-@ )	

 
 DI 	 	T&\4>2V&3


s$   (I=I73I#
*II#
I#
c                s     ! R  R\         P                  4      pV P                  V4       V P                  V4       V P	                  V4       R# )c                   s    ] tR t^tRtR# )FTestApplyAlongAxis.test_subclass_preservation.<locals>.MinimalSubclassrI   Nrs   rI   r   r   r}   r      ru   r   r}   N)r   rv   r   r   r   )r*   r}   rg   r   test_subclass_preservationZ-TestApplyAlongAxis.test_subclass_preservation   s<    	bjj 	/?+  1r   c                s.   R  p\         P                  ! ^4      P                  R4      p\        V^ V4      p\	        \        V\         P                  P                  4      4       \        VP                  ^4       \        VR,          P                  V! VR,          4      P                  4       \        VR,          P                  V! VR,          4      P                  4       \        VR,          P                  V! VR,          4      P                  4       R# )	c                s    \        V P                  ^4       V RRR1,          V R,          ,          p\        P                  P	                  V^,          ^ 8H  V4      # r   )r   r)   r   maZmasked_where)r   r   rg   r   r   Z8TestApplyAlongAxis.test_axis_insertion_ma.<locals>.f1to2   sE    #DbD'AhK'C55%%cAglC88r   Nr   )r   r   r    )r   r    )r   r   rE   )r   rE   )r   r   r0   )r   r0   )r   r]   r^   r   r   rx   r   Zmasked_arrayr   r)   r   mask)r*   r   r   r   rA   r   test_axis_insertion_maZ)TestApplyAlongAxis.test_axis_insertion_ma   s    	9
 IIe$$V,ua+
3 2 234SXXq!3w<,,eAdGn.A.AB3w<,,eAdGn.A.AB3w<,,eAdGn.A.ABr   c           	     s    R  p\         P                  ! V^\         P                  ! ^^.^^..4      4      p\        V\         P                  ! ^^.^^..4      4       R# )c                 s&    V ^,          V ^ ,          3# rE   rI   r   rp   r   	sample_1dZ7TestApplyAlongAxis.test_tuple_func1d.<locals>.sample_1d  s    Q41:r   N)r   r   r4   r   )r*   r   r   r8   r   test_tuple_func1dZ$TestApplyAlongAxis.test_tuple_func1d  sQ    	!!)Q1a&1a&9I0JK31a&1a&)9 :;r   c                s   R  p\         P                  ! R4      p\        \        \         P                  V^ V4       \        \        \         P                  V^V4       R p\         P                  ! R4      p\         P                  ! V^V4      p\        V\         P                  ! ^
4      4       \        \        \         P                  V^ V4       R# )c                 s    \        R 4       R# )FN)r   r   rp   r   
never_callZ1TestApplyAlongAxis.test_empty.<locals>.never_call  s	    ENr   c                 s4    \        \        V 4      ^ 8H  4       ^# )r    )r   re   r   rp   r   
empty_to_1Z1TestApplyAlongAxis.test_empty.<locals>.empty_to_1  s    CFaK r   N)r    r    )r/   r    )r   emptyr   r3   r   r   r1   )r*   r   r   r   r@      &    r   rB   ZTestApplyAlongAxis.test_empty  s    	 HHVj""5"5z1aHj""5"5z1aH	 HHW$$ZA6VRWWR[)j""5"5z1aHr   c                s   \         P                  ! ^^0^^0^^!0.^^,0^^70^^B0..4      p\         P                  ! R ^ V4      p\         P                  ! 0 Rm0 Rm0 Rm.4      p\        W#4       \         P                  ! VP
                  4       F-  p\        \        W$,          4      \        W4,          4      4       K/  	  R# )rE   c                 s*    \         P                  ! V !  # r~   )ZsetZunion)r   rp   r   Z<lambda>Z>TestApplyAlongAxis.test_with_iterable_object.<locals>.<lambda>$  s    syy!}r   N>   rE   r;   i   i,   >   r0   r<   i   i7   >   r:   r   rl   iB   )r   r4   r   r   Zndindexr>   r   )r*   rb   r@   ry   r   r   r   test_with_iterable_objectZ,TestApplyAlongAxis.test_with_iterable_object  s    HHWq"g2w'Wq"g2w'
  $$%<aC88^^^LMV& FLL)Afi$x{*;< *r   rI   N)rJ   rK   rL   rM   rh   ri   rn   rz   r   r   rv   r   r   r   r   r   r   rB   r   rN   rO   rP   rQ   r   r`   r`      sm     G
G
G
-$
 %'JJ ? !#

 H ')jj #'J2C<I&= =r   r`   c                   &   a  ] tR tRt o R tRtV tR# )TestApplyOverAxesi.  c                s    \         P                  ! ^4      P                  ^^^4      p\        \         P                  V^ ^.4      p\        V\         P                  ! ^<.^\.^|...4      4       R# )i   N)r   r]   r^   r   rm   r   r4   )r*   r   Zaoa_ar8   r   rh   ZTestApplyOverAxes.test_simple/  sW    IIbM!!!Q*Aq625"((bTB4#,?+@"ABr   rI   N)rJ   rK   rL   rM   rh   rN   rO   rP   rQ   r   r   r   .  s     C Cr   r   c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestExpandDimsi5  c                s   Rp\         P                  ! V4      p\        R^4       FY  p\        W#4      p\	        VP
                  V,          ^8H  4       \	        \         P                  ! V4      P
                  V8H  4       K[  	  R# )r0   Nr0   r:   r;   r<   i)r   r   r(   r   r   r>   r   )r*   sr   r   br   r   test_functionalityZ!TestExpandDims.test_functionality6  s^    HHQK"aLDA$AAGGDMQ&'BJJqM''1,- !r   c                s2    \         P                  ! R4      pR# )r:   Nrk   )r   r   rf   rg   r   test_axis_tupleZTestExpandDims.test_axis_tuple>  s    HHYr   c                s   Rp\         P                  ! V4      p\        \        \        VR4       \        \        \        V^4       \         P                  ! R4      p\        \        \        VR4       \        \        \        VR4       R# )r0   Nr   rk   )r    r   )r    r<   )r   r   r   r   r   )r*   r   r   r8   r   test_axis_out_of_rangeZ%TestExpandDims.test_axis_out_of_rangeE  sZ    HHQKia4ia3HHYia9ia8r   c                s`    \         P                  ! R4      p\        \        \        VRR7       R# )r:   r   Nrk   rE   rE   )r   r   r   r3   r   rf   rg   r   test_repeated_axisZ!TestExpandDims.test_repeated_axisO  s    HHYj+qv>r   c                s   \         P                  ! ^
4      P                  R4      p\         P                  P	                  W^,          ^ 8H  R7      p\         P
                  ! V^R7      p\        \        V\         P                  P                  4      4       \        VP                  R4       \        VP                  P                  R4       R# )r/   r   r   N)r0   r<   )r0   rE   r<   )r   r]   r^   r   r4   r   r   rx   ZMaskedArrayr   r>   r   )r*   r   Zexpandedr8   r   test_subclassesZTestExpandDims.test_subclassesS  s    IIbM!!&)EEKKA
K+>>!!,
8RUU%6%678X^^Y/X]](()4r   rI   N)rJ   rK   rL   rM   r   r   r   r   r   rN   rO   rP   rQ   r   r   r   5  s$     .O9?5 5r   r   c                   s   a  ] tR tRt o R tR tR tR tR t]	P                  P                  ]'       * RR7      R	 4       tR
 tR tR tRtV tR# )TestArraySpliti]  c                s^    \         P                  ! ^
4      p\        \        \        V^ 4       R# r/   N)r   r]   r   r3   r   rf   rg   r   test_integer_0_splitZ#TestArraySplit.test_integer_0_split^  s    IIbMj+q!4r   c                s   \         P                  ! ^
4      p\        V^4      p\         P                  ! ^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      .p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      .p\        W#4       \        V^	4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      .	p\        W#4       \        V^
4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      .
p\        W#4       \        V^4      p\         P                  ! ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^	4      \         P                  ! ^	^
4      \         P                  ! . 4      .p\        W#4       R# r   )r   r]   r   compare_resultsr4   r*   r   r   desiredrA   r   test_integer_splitZ!TestArraySplit.test_integer_splitb  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                s   \         P                  ! \         P                  ! ^
4      \         P                  ! ^
4      .4      p\        V^^ R7      p\         P                  ! \         P                  ! ^
4      .4      \         P                  ! \         P                  ! ^
4      .4      \         P                  ! R4      .p\        W#4       \        VP                  P                  VR,          P                  P                  J 4       \        V^ ^.^ R7      p\         P                  ! R4      \         P                  ! \         P                  ! ^
4      .4      \         P                  ! \         P                  ! ^
4      .4      .p\        W#4       \        VP                  P                  VR,          P                  P                  J 4       R# )r/   r   Nr    r/   r   	r   r4   r]   r   r   r   r   r.   r   r*   r   r   tgtrA   r   test_integer_split_2D_rowsZ)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           	     s>   \         P                  ! \         P                  ! ^
4      \         P                  ! ^
4      .4      p\        V^RR7      p\         P                  ! \         P                  ! ^4      \         P                  ! ^4      .4      \         P                  ! \         P                  ! ^^4      \         P                  ! ^^4      .4      \         P                  ! \         P                  ! ^^
4      \         P                  ! ^^
4      .4      .p\	        W#4       R# )r/   r   Nr   )r   r4   r]   r   r   r   rA   r   test_integer_split_2D_colsZ)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                s   \         P                  ! \         P                  ! ^
4      \         P                  ! ^
4      .4      p\        V^4      p\         P                  ! \         P                  ! ^
4      .4      \         P                  ! \         P                  ! ^
4      .4      \         P                  ! R4      .p\        W#4       \        VP                  P                  VR,          P                  P                  J 4       R# )z1This will fail if we change default axis
        Nr   r   r   r   rA   r   test_integer_split_2D_defaultZ,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)Zreasonc                s    \         P                  ! ^ .R4      p\        V^4      p\         P                  ! ^ .R4      pV.^,          p\        \	        V4      4       F/  p\        W%,          P                  WE,          P                  4       K1  	  R# )r    N)        r0   )i   @r0   )r   Zbroadcast_tor   r(   re   r   r>   )r*   r   r   Zchunkr   r   r[   r   ,test_integer_split_2D_rows_greater_max_int32Z;TestArraySplit.test_integer_split_2D_rows_greater_max_int32  se    OOQC.!Q\2gks3xAsv||4 !r   c                s   \         P                  ! ^
4      p. ROp\        WRR7      p\         P                  ! ^ ^4      \         P                  ! ^^4      \         P                  ! ^^4      \         P                  ! ^^
4      .p\        W44       R# )r/   r   N)rE   r<      r   )r   r]   r   r   r*   r   r_   r   r   r   r   test_index_split_simpleZ&TestArraySplit.test_index_split_simple  sb    IIbM!2.99Q?BIIaORYYq!_99Q#%%r   c                s   \         P                  ! ^
4      p. ROp\        WRR7      p\         P                  ! . 4      \         P                  ! ^ ^4      \         P                  ! ^^4      \         P                  ! ^^
4      .p\	        W44       R# )r/   r   N)r    r<   r   r   r   r]   r   r4   r   r   r   r   test_index_split_low_boundZ)TestArraySplit.test_index_split_low_bound  s`    IIbM!2.88B<1a"))Aq/99Q#%%r   c                sp   \         P                  ! ^
4      p. ROp\        WRR7      p\         P                  ! . 4      \         P                  ! ^ ^4      \         P                  ! ^^4      \         P                  ! ^^
4      \         P                  ! . 4      \         P                  ! . 4      .p\	        W44       R# )r/   r   N)r    r<   r   r/   i   r   r   r   r   r   test_index_split_high_boundZ*TestArraySplit.test_index_split_high_bound  su    IIbM#!2.88B<1a"))Aq/99Q#RXXb\288B<A%r   rI   N)rJ   rK   rL   rM   r   r   r   r   r   pytestmarkZskipifIS_64BITr   r   r   r   rN   rO   rP   rQ   r   r   r   ]  s_     5;&z4&4 [[H-CD5 E5&&& &r   r   c                   s,   a  ] tR tRt o R tR tRtV tR# )	TestSpliti  c                s    \         P                  ! ^
4      p\        V^4      p\         P                  ! ^4      \         P                  ! ^^
4      .p\        W#4       R# r   )r   r]   r   r   r   rA   r   test_equal_splitZTestSplit.test_equal_split  s?    IIbMAqk99Q<1b!12%r   c                s^    \         P                  ! ^
4      p\        \        \        V^4       R# r   )r   r]   r   r3   r   rf   rg   r   test_unequal_splitZTestSplit.test_unequal_split  s    IIbMj%A.r   rI   N)rJ   rK   rL   rM   r   r   rN   rO   rP   rQ   r   r   r     s     
&/ /r   r   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestColumnStacki  c                0    \        \        \        ^4       R# rE   N)r   	TypeErrorr   r*   rp   r   test_non_iterableZ!TestColumnStack.test_non_iterable  s    iq1r   c                s    \         P                  ! R4      p\         P                  ! R4      p\         P                  ! ^^.^^.^^..4      p\         P                  ! W34      p\        WC4       R# )rE   NrE   r0   r:   )r0   r:   r;   r   r4   r   r   r*   r   r   ry   r@   r   r   test_1D_arraysZTestColumnStack.test_1D_arrays  s_    HHYHHY88aVVV% & !(V&r   c                s    \         P                  ! ^.^.^..4      p\         P                  ! ^.^.^..4      p\         P                  ! ^^.^^.^^..4      p\         P                  ! W34      p\        WC4       R# r   r   r   r   r   test_2D_arraysZTestColumnStack.test_2D_arrays  sw    HHqcA3_%HHqcA3_%88aVVV% & !(V&r   c                    \         P                  ! \        R R7      ;_uu_ 4        \        R \	        ^4       4       4       RRR4       R#   + '       g   i     R# ; i)arrays to stack must beZmatchc              3   N   "   T F  p\         P                  ! ^4      x  K  	  R# 5ir:   Nr   r]   Z.0Z_rg   r   	<genexpr>Z1TestColumnStack.test_generator.<locals>.<genexpr>  s     8x!1x   #%N)r   raisesr   r   r(   r   rp   r   test_generatorZTestColumnStack.test_generator  s6    ]]9,EFF8uQx88 GFFF   AA	rI   N)
rJ   rK   rL   rM   r   r   r   r   rN   rO   rP   rQ   r   r   r     s     2''9 9r   r   c                   sD   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )

TestDstacki  c                r   r   )r   r   r   r   rp   r   r   ZTestDstack.test_non_iterable  s    i+r   c                s    \         P                  ! ^4      p\         P                  ! ^4      p\        W.4      p\         P                  ! ^^...4      p\        W44       R# r   r   r4   r   r   r*   r   r   r   r   r   r   test_0D_arrayZTestDstack.test_0D_array  sE    HHQKHHQKaVn((aVH:&3(r   c                s    \         P                  ! ^.4      p\         P                  ! ^.4      p\        W.4      p\         P                  ! ^^...4      p\        W44       R# r   r   r   r   r   test_1D_arrayZTestDstack.test_1D_array  sI    HHaSMHHaSMaVn((aVH:&3(r   c                s    \         P                  ! ^.^..4      p\         P                  ! ^.^..4      p\        W.4      p\         P                  ! ^^..^^...4      p\        W44       R# r   r   r   r   r   test_2D_arrayZTestDstack.test_2D_array"  s`    HHqcA3Z HHqcA3Z aVn((aVH1xj123(r   c                s    \         P                  ! ^^.4      p\         P                  ! ^^.4      p\        W.4      p\         P                  ! ^^.^^...4      p\        W44       R# r   r   r   r   r   test_2D_array2ZTestDstack.test_2D_array2)  sW    HHaVHHaVaVn((aVaV,-.3(r   c                r   )r   r   c              3   r   r   r   r   rg   r   r   Z,TestDstack.test_generator.<locals>.<genexpr>2  s     2A299Q<<r   N)r   r   r   r   r(   r   rp   r   r   ZTestDstack.test_generator0  s6    ]]9,EFF2q22 GFFFr   rI   N)rJ   rK   rL   rM   r   r   r   r   r   r   rN   rO   rP   rQ   r   r   r     s(     ,))))3 3r   r   c                   <   a  ] tR tRt o RtR tR tR tR tRt	V t
R# )	
TestHspliti7  &Only testing for integer splits.

    c                2    \        \        \        ^^4       R# r   )r   r3   r   r   rp   r   r   ZTestHsplit.test_non_iterable;      j&!Q/r   c                s    \         P                  ! ^4      p \        V^4       \        ^ 4       R#   \         d     R# i ; ir   )r   r4   r   r   r3   rf   rg   r   r   ZTestHsplit.test_0D_array>  s6    HHQK	1aLAJ 		s   1 A A c                s    \         P                  ! . RO4      p\        V^4      p\         P                  ! ^^.4      \         P                  ! ^^.4      .p\        W#4       R# rE   N)rE   r0   r:   r;   r   r4   r   r   r   rA   r   r   ZTestHsplit.test_1D_arrayF  sG    HH\"Ql88QF#RXXq!f%56%r   c                s    \         P                  ! . RO. RO.4      p\        V^4      p\         P                  ! ^^.^^..4      \         P                  ! ^^.^^..4      .p\        W#4       R# r   r   r   rA   r   r   ZTestHsplit.test_2D_arrayL  sc    HHl  !Ql88aVaV,-rxx!Q!Q8H/IJ%r   rI   NrJ   rK   rL   rM   Z__doc__r   r   r   r   rN   rO   rP   rQ   r   r   r   7  s#     0&& &r   r   c                   r   )	
TestVsplitiT  r   c                r   r   )r   r3   r   r   rp   r   r   ZTestVsplit.test_non_iterableX  r   r   c                ^    \         P                  ! ^4      p\        \        \        V^4       R# r   )r   r4   r   r3   r   rf   rg   r   r   ZTestVsplit.test_0D_array[      HHQKj&!Q/r   c                s    \         P                  ! . RO4      p \        V^4       \        ^ 4       R#   \         d     R# i ; ir   )r   r4   r   r   r3   rf   rg   r   r   ZTestVsplit.test_1D_array_  s7    HH\"	1aLAJ 		s   3 AAc                s    \         P                  ! . RO. RO.4      p\        V^4      p\         P                  ! . RO.4      \         P                  ! . RO.4      .p\        W#4       R# r   )r   r4   r   r   r   rA   r   r   ZTestVsplit.test_2D_arrayg  sM    HHl  !Ql88\N+RXX|n-EF%r   rI   Nr   rP   rQ   r   r   r   T  s#     00& &r   r   c                   r   )	
TestDsplitio  c                r   r   )r   r3   r   r   rp   r   r   ZTestDsplit.test_non_iterableq  r   r   c                r   r   r   r4   r   r3   r   rf   rg   r   r   ZTestDsplit.test_0D_arrayt  r   r   c                sb    \         P                  ! . RO4      p\        \        \        V^4       R# r   r   rf   rg   r   r   ZTestDsplit.test_1D_arrayx  s    HH\"j&!Q/r   c                s    \         P                  ! . RO. RO.4      p \        V^4       \        ^ 4       R#   \         d     R# i ; ir   )r   r4   r   r   r3   rf   rg   r   r   ZTestDsplit.test_2D_array|  sA    HHl  !	1aLAJ 		s   7 AAc                s   \         P                  ! . RO. RO.. RO. RO..4      p\        V^4      p\         P                  ! ^^.^^..^^.^^...4      \         P                  ! ^^.^^..^^.^^...4      .p\        W#4       R# r   )r   r4   r   r   r   rA   r   test_3D_arrayZTestDsplit.test_3D_array  s    HH|!!" # Ql88q!fq!f-AA/?@A88q!fq!f-AA/?@AC%r   rI   N)rJ   rK   rL   rM   r   r   r   r   r   rN   rO   rP   rQ   r   r   r   o  s#     000& &r   r   c                   r   )TestSqueezei  c                sV   ^ RI Hp V! ^^
^
^^4      pV! ^^^
^^4      pV! ^^^^
4      p\        \        P                  ! V4      \        P
                  ! VR4      4       \        \        P                  ! V4      \        P
                  ! VR4      4       \        \        P                  ! V4      \        P
                  ! VR4      4       R...p\        P                  ! V4      p\        VR4       \        VP                  ^ 4       \        \        V4      \        P                  4       R# )r    r!   g      ?N)rU   r/   r/   )rU   r/   rU   rc   )
r#   r"   r   r   r   r^   r   r)   r   rv   )r*   r"   r   r   cr   r[   r   
test_basicZTestSqueeze.test_basic  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   rI   NrJ   rK   rL   rM   r   rN   rO   rP   rQ   r   r   r     s     , ,r   r   c                   s   a  ] tR tRt o R tR t]P                  P                  R]	P                  ]	P                  .4      R 4       tR t]P                  P                  R. RO4      R 4       tR	tV tR
# )TestKroni  c                s   \         P                  ! ^4      p\         P                  ! ^^.^^..4      p\         P                  ! ^^.^^..4      p\        \         P                  ! W4      V4       \         P                  ! ^^.^^..4      p\         P                  ! ^4      p\        \         P                  ! W4      V4       \         P                  ! ^.4      p\         P                  ! ^^.^^..4      p\         P                  ! ^^.^	^..4      p\        \         P                  ! W4      V4       \         P                  ! ^^.^^..4      p\         P                  ! ^.4      p\        \         P                  ! W4      V4       \         P                  ! ^..^...4      p\         P                  ! ^^.^^..4      p\         P                  ! ^^.^^..^^.^^...4      p\        \         P                  ! W4      V4       \         P                  ! ^^.^^..4      p\         P                  ! ^..^...4      p\         P                  ! ^^.^^..^^.^^...4      p\        \         P                  ! W4      V4       R# r   )r   r4   r   r	   )r*   r   r   krA   r   r   Z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    ! R  R\         P                  4      p\         P                  ! ^^.4      pV! VP                  VP                  VP
                  4      p\        \        \        W"4      4      \         P                  4       \        \        \        W34      4      V4       \        \        \        W#4      4      V4       \        \        \        W24      4      V4       R# )c                   s    ] tR tRtRtRtR# )*TestKron.test_return_type.<locals>.myarrayi  g      ?rI   N)rJ   rK   rL   rM   Z__array_priority__rN   rI   r   r   myarrayr    s    !$r   r  N)	r   rv   r1   r>   r.   r|   r   r   r	   )r*   r  r   r   rA   r   test_return_typeZTestKron.test_return_type  s    	%bjj 	% GGQFOQWWaggqvv.T$q*%rzz2T$r,'1T$q+&0T$r+&0r   array_classc                s    V! \         P                  ! ^^.4      4      pV! \         P                  ! ^^.4      4      pV! \         P                  ! ^	^	.4      4      p\        \         P                  ! W#4      V4       R# r   )r   r1   r   r	   )r*   r  r   r   r   r   r   test_kron_smokeZTestKron.test_kron_smoke  sX     A(A(A(2771=!,r   c                sl   \         P                  P                  ^^.^^..^ ^.^^ ..R7      p\         P                  P                  \         P                  ! . RO4      \         P                  ! \         P                  ! ^4      \
        R7      ( R7      p\        V\         P                  ! W4      4       R# )rE   r   r-   N)rE   r;   r;   i   )r   r   r4   ZdiagZidentityr5   r   r	   )r*   r   r   r8   r   test_kron_maZTestKron.test_kron_ma  s    EEKK!Q!Q(AA/?K@EEKK.hhr{{1~T::  < 	1bggam,r   zshape_a,shape_bc                s   \         P                  ! V4      p\         P                  ! V4      pR\        ^ \        V4      \        V4      ,
          4      ,          V,           pR\        ^ \        V4      \        V4      ,
          4      ,          V,           p\         P                  ! WV4      p\         P
                  ! W44      pR# )rE   Nr   )r   r1   r%   re   Zmultiplyr	   )	r*   Zshape_aZshape_br   r   Znormalised_shape_aZnormalised_shape_bZexpected_shaper   s	   &&&      r   test_kron_shapeZTestKron.test_kron_shape  s     GGGGGG!C3w<#g,+F$GG'Q!C3w<#g,+F$GG'Q%7LGGAMr   rI   N))r   r   )r   )r;   r<   r   )r0   r0   )r0   r0   r0   ))rE   r    r   )r0   r    r0   r  ))r0   r    r    r0   r	  )rJ   rK   rL   rM   r   r  r   r   Zparametrizer   ZasarrayZasmatrixr  r  r  rN   rO   rP   rQ   r   r   r     sv     -:	1 [[

BKK0--- [[ 
	G	Gr   r   c                   r   )TestTilei  c                s   \         P                  ! . RO4      p^^.^^..p\        \        V^4      . RO4       \        \        VR4      . RO. RO.4       \        \        VR4      . RO.4       \        \        V^4      . RO. RO.4       \        \        VR4      ^^.^^.^^.^^..4       \        \        VR4      . RO. RO. RO. RO.4       R# )	r    N)r    rE   r0   )r    rE   r0   r    rE   r0   r  rE   r0   )rE   r0   rE   r0   )r:   r;   r:   r;   r0   rE   )r   r4   r   r   r*   r   r   r8   r   r   Z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                s    \         P                  ! ^4      p\        V^4      pV^,          p\        V\         P                  ! ^4      4       R# )r<   N)r   r]   r   r   r  r8   r   (test_tile_one_repetition_on_array_gh4679Z1TestTile.test_tile_one_repetition_on_array_gh4679  s5    IIaLAJ	QQ		!%r   c                s    \         P                  ! . ..4      p\         P                  ! . . .4      p\        V^4      P                  p\        VR4      P                  p\	        VR4       \	        VR4       R# )r0   NrG   )r0   r    )r:   r0   r    )r   r4   r   r>   r   )r*   r   r   r   rb   r   r   rB   ZTestTile.test_empty  s]    HHrdVHHb"XAJI$$QQ	"r   c                s    ^ RI Hp . ROp. ROpV FX  pV! ^ ^
VR7      pV FD  p\        P                  ! WeP                  4      p\        WV4      p\        Wu4      p	\        W4       KF  	  KZ  	  R# )r    )randint)ZsizeN)ro   r  r  r  )r0   r:   r0   )r:   r0   ))r:   )r0   r:   )r:   r;   r:   )r:   r0   r:   )r;   r:   r0   r;   r  )r#   r  r   r1   r.   r   r	   r   )
r*   r  Zrepsr>   r   r   Zrr   ZlargeZklarger+   r   test_kroncompareZTestTile.test_kroncompare  s]    (@JA2A&AGGAww'Q
aU+	  r   rI   N)
rJ   rK   rL   rM   r   r  rB   r  rN   rO   rP   rQ   r   r
  r
    s     	D&#, ,r   r
  c                   r   )TestMayShareMemoryi  c           
     s    \         P                  ! R4      p\         P                  ! R4      p\        \         P                  ! W4      4       \        \         P                  ! WRRR1,          4      4       \        \         P                  ! WR,          4      4       \        \         P                  ! WRRRR13,          4      4       \        \         P                  ! VRRR1,          V4      '       * 4       \        \         P                  ! VR,          V4      '       * 4       \        \         P                  ! VRRRR13,          V4      '       * 4       \        \         P                  ! VRRRR13,          V4      4       R# )rX   N:NNr0   r   )rX   rW   )rT   rW   r   r   )r   r1   r   Zmay_share_memory)r*   rb   Zd2r8   r   r   ZTestMayShareMemory.test_basic  s   GGHWW[!##A)*##A2w/0##Av./##ATrT{34B''$B$445B''#334B''"dd(R889##Br4R4xL"56r   rI   Nr   rP   rQ   r   r  r    s     7 7r   r  c                sH    \        WRR7       F  w  r#\        W#4       K  	  R# )zCompare lists of arrays.F)ZstrictN)Zzipr   )r   r   r   Zyr   r   r   r   *  s    C/1  0r   r   ).r   Zsysr   Znumpyr   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   Znumpy.exceptionsr   Znumpy.testingr   r   r   r   Zmaxsizer   r   r    rR   r`   r   r   r   r   r   r   r   r   r   r   r   r
  r  r   rI   r   r   <module>r     s     
       ' R R;;3. 3.l'8 '8Tc= c=LC C%5 %5PC& C&L/ / 9 9:"3 "3N& &:& &6& &B, ,&LG LG^%, %,P7 7 !r   