+
    &ik                        ^ 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                F   a  \         P                  ! S 4      V 3R l4       pV# )z9hack in keepdims behavior into a function taking an axis c                 T   < S! V 3R V/VB pVf   ^ p\         P                  ! W1R7      # )axisr   )npr	   )ar   kwargsresfuncs   &&, ]/var/www/html/photoedit/myenv/lib/python3.14/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   f r   _add_keepdimsr%      s%    __T. .
 Nr"   c                   8   a  ] tR t^(t o R tR tR tR tRtV t	R# )TestTakeAlongAxisc                   ^ 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   sortargsortr%   minargminmaxargmaxlistrangendimr   r   )
selfr*   r   funcsr   argfuncr   r   a_funcai_funcs
   &         r   test_argequivalent$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                   \         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array
IndexErrorastypeboolfloatr   r5   r   ais   &  r   test_invalid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                    \         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)         )rN   r   rP   r   rA   rB   r   r   shaper5   r   rJ   actuals   &   r   
test_emptyTestTakeAlongAxis.test_emptyN   sB    GGIWWYbgg. Q/V\\288,r"   c                    \         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rN   rO      rZ   r@   rP   rN   r@   rP   rQ   rS   s   &   r   test_broadcast TestTakeAlongAxis.test_broadcastV   s>    GGIWWYbgg. Q/V\\9-r"    N)
__name__
__module____qualname____firstlineno__r:   rK   rU   r]   __static_attributes____classdictcell____classdict__s   @r   r'   r'   (   s      M$E&-. .r"   r'   c                   2   a  ] tR t^^t o R tR tR tRtV tR# )TestPutAlongAxisc                j   \         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?         <   (   2   i)r   rD   r2   r3   r4   copyr%   r1   r   r/   r   )r5   a_baser   r   i_maxi_mins   &     r   test_replace_max!TestPutAlongAxis.test_replace_max_   s    <67v{{+,v55DA "")),Q:E1St4 "")),Q:E& 6r"   c                    \         P                  ! R4      p\         P                  ! ^
\         P                  R7      P	                  R4      ^,          p\        W^^R7       \        \        W^R7      ^4       R# )rX   r=   r   NrY   r[   )r   rA   arangerB   reshaper   r   r   rI   s   &  r   r]   TestPutAlongAxis.test_broadcasto   sQ    GGIYYr)11)<q@qbq)_Q3R8r"   c           	     
   \         P                  ! . RO. RO.4      p\         P                  ! ^ .^..4      p\         P                  ! ^.^..4      pVP                  4       p\        WBV^ R7       \         P                  ! V. RO. RO.8H  4      '       g   Q hVP                  4       p\        \        4      ;_uu_ 4       p\        WBVRR7       RRR4       R\        XP                  4      9   g   Q hR#   + '       g   i     L.; i)zTest invalid inputs r   Nzsingle dimensionrk   rn   r@   r@   r@   rZ   rZ   rZ   )	r   rD   rr   r   allr   rC   str	exception)r5   rs   indicesvaluesr   excs   &     r   rK   TestPutAlongAxis.test_invalidv   s    <67((QC!:&A3*% KKMq62vvaIy112222 KKM:&&#1vD9 '!S%7777 '&s   =C22D	r_   N)	r`   ra   rb   rc   rv   r]   rK   rd   re   rf   s   @r   ri   ri   ^   s     ' 98 8r"   ri   c                      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# )rm   dNrm   r?   r   rA   r   r   lenrR   r5   r   s   & r   test_simpleTestApplyAlongAxis.test_simple   sC    GGHc"S!Q'Q"''!''!*2E)E	Gr"   c                    \         P                  ! RR4      p\        \        \        ^ V4      \	        V4      \         P                  ! VP
                  ^,          4      ,          4       R# )r?   r   N)r?   e   r   r   s   & r   test_simple101!TestApplyAlongAxis.test_simple101   sC    GGIs#S!Q'Q"''!''!*2E)E	Gr"   c                    \         P                  ! ^4      P                  R4      p\        \	        \         P
                  ^ V4      . RO. RO. RO.4       R# )   NrN   rN   rN   )r   rl   !   )$   '   *   )-   0   3   )r   ry   rz   r   r   sumr   s   & r   test_3dTestApplyAlongAxis.test_3d   s=    IIbM!!),+BFFAq9(,E	Gr"   c                   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                     V ^,          # r@   r_   )rows   &r   double9TestApplyAlongAxis.test_preserve_subclass.<locals>.double   s    7Nr"   c                       ] tR t^tRtR# )<TestApplyAlongAxis.test_preserve_subclass.<locals>.MyNDArrayr_   Nr`   ra   rb   rc   rd   r_   r"   r   	MyNDArrayr          r"   r   N)r   ndarrayrD   viewr   r   
isinstancer   )r5   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                     ! R  R\         P                  4      pR p\         P                  ! R4      P                  V4      p\	        \        V^ V4      \         P                  ! . RO4      4       R# )c                       ] tR t^t^tRtR# )9TestApplyAlongAxis.test_subclass.<locals>.MinimalSubclassr_   N)r`   ra   rb   rc   datard   r_   r"   r   MinimalSubclassr      s    Dr"   r   c                     V P                   # N)r   )rD   s   &r   minimal_function:TestApplyAlongAxis.test_subclass.<locals>.minimal_function   s    ::r"   N   rN   r~   )r   r   zerosr   r   r   rD   )r5   r   r   r   s   &   r   test_subclass TestApplyAlongAxis.test_subclass   sR    	bjj 		 HHV!!/2-q!4bhhy6I	
r"   c                   \         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   rA   r   r   r   r   r   r   rD   )r5   clsr   r   s   &&  r   test_scalar_array$TestApplyAlongAxis.test_scalar_array   sW    GGFO  %rvvq!,
3$%3 3 8 8 =>r"   c                   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                    \        V P                  ^4       \        P                  ! \        P                  ! V RR7      4      # )z.Sum x, returning a 0d array of the same class T)keepdims)r   r4   r   squeezer   xs   &r   	sum_to_0d3TestApplyAlongAxis.test_0d_array.<locals>.sum_to_0d   s*    #::bffQ677r"   Nr   r   )rN   rN   rN   rN   rN   rN   )r   rA   r   r   r   r   r   rD   )r5   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                  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                   < \        V P                  ^4       V RRR1,          V R,          ,          P                  S4      # z/produces an asymmetric non-square matrix from xN)rZ   NNN)r   r4   r   )r   r   s   &r   f1to25TestApplyAlongAxis.test_axis_insertion.<locals>.f1to2   s3    #ddGak)//44r"   NNNr   Nr   r   )r   rP   rN   )
r   ry   rz   r   stackr3   rR   r   r   type)	r5   r   r   a2drT   ir   a3djs	   &f       r   test_axis_insertion&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                     ! R  R\         P                  4      pV P                  V4       V P                  V4       V P	                  V4       R# )c                       ] tR t^tRtR# )FTestApplyAlongAxis.test_subclass_preservation.<locals>.MinimalSubclassr_   Nr   r_   r"   r   r   r      r   r"   r   N)r   r   r   r   r   )r5   r   s   & r   test_subclass_preservation-TestApplyAlongAxis.test_subclass_preservation   s<    	bjj 	/?+  1r"   c                .   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                    \        V P                  ^4       V RRR1,          V R,          ,          p\        P                  P	                  V^,          ^ 8H  V4      # r   )r   r4   r   mamasked_where)r   r   s   & r   r   8TestApplyAlongAxis.test_axis_insertion_ma.<locals>.f1to2   sE    #DbD'AhK'C55%%cAglC88r"   Nr   )r   r   r   )r   r   )r   r   rZ   )r   rZ   )r   r   r@   )r   r@   )r   ry   rz   r   r   r   r   masked_arrayr   r4   r   mask)r5   r   r   r   s   &   r   test_axis_insertion_ma)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           	         R  p\         P                  ! V^\         P                  ! ^^.^^..4      4      p\        V\         P                  ! ^^.^^..4      4       R# )c                 &    V ^,          V ^ ,          3# rZ   r_   r   s   &r   	sample_1d7TestApplyAlongAxis.test_tuple_func1d.<locals>.sample_1d  s    Q41:r"   N)r   r   rD   r   )r5   r   r   s   &  r   test_tuple_func1d$TestApplyAlongAxis.test_tuple_func1d  sQ    	!!)Q1a&1a&9I0JK31a&1a&)9 :;r"   c                   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                     \        R 4       R# )FN)r   r   s   &r   
never_call1TestApplyAlongAxis.test_empty.<locals>.never_call  s	    ENr"   c                 4    \        \        V 4      ^ 8H  4       ^# )r   )r   r   r   s   &r   
empty_to_11TestApplyAlongAxis.test_empty.<locals>.empty_to_1  s    CFaK r"   N)r   r   )r?   r   )r   emptyr   rC   r   r   rA   )r5   r   r   r   rT   s   &    r   rU   TestApplyAlongAxis.test_empty  s    	 HHVj""5"5z1aHj""5"5z1aH	 HHW$$ZA6VRWWR[)j""5"5z1aHr"   c                   \         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# )rZ   c                 *    \         P                  ! V !  # r   )setunion)r   s   &r   <lambda>>TestApplyAlongAxis.test_with_iterable_object.<locals>.<lambda>$  s    syy!}r"   N>   rZ   rO      ,   >   r@   rP      7   >   rN   r   r   B   )r   rD   r   r   ndindexrR   r   )r5   r   rT   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"   r_   N)r`   ra   rb   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   rU   r  rd   re   rf   s   @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                    \         P                  ! ^4      P                  ^^^4      p\        \         P                  V^ ^.4      p\        V\         P                  ! ^<.^\.^|...4      4       R# )   N)r   ry   rz   r   r   r   rD   )r5   r   aoa_as   &  r   r   TestApplyOverAxes.test_simple/  sW    IIbM!!!Q*Aq625"((bTB4#,?+@"ABr"   r_   N)r`   ra   rb   rc   r   rd   re   rf   s   @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                   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# )r@   Nr@   rN   rO   rP   )r   r   r3   r	   r   rR   r   )r5   sr   r   bs   &    r   test_functionality!TestExpandDims.test_functionality6  s^    HHQK"aLDA$AAGGDMQ&'BJJqM''1,- !r"   c                z   \         P                  ! R4      p\         P                  ! VRR7      P                  R8X  g   Q h\         P                  ! VRR7      P                  R8X  g   Q h\         P                  ! VRR7      P                  R	8X  g   Q h\         P                  ! VR
R7      P                  R8X  g   Q hR# )rN   r   Nr   r   rZ   r@   )rZ   rZ   rZ   rN   rN   rN   )r   r   )rZ   rN   rN   rN   rZ   rZ   )r   rN   rP   )rZ   rN   rN   rZ   rN   rZ   )r   r  )rZ   rZ   rN   rZ   rN   rN   )r   r   r	   rR   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                   Rp\         P                  ! V4      p\        \        \        VR4       \        \        \        V^4       \         P                  ! R4      p\        \        \        VR4       \        \        \        VR4       R# )r@   Nr  r   )r   r#  )r   rP   )r   r   r   r   r	   )r5   r  r   s   &  r   test_axis_out_of_range%TestExpandDims.test_axis_out_of_rangeE  sZ    HHQKia4ia3HHYia9ia8r"   c                `    \         P                  ! R4      p\        \        \        VRR7       R# )rN   r   Nr   rZ   rZ   )r   r   r   rC   r	   r   s   & r   test_repeated_axis!TestExpandDims.test_repeated_axisO  s    HHYj+qv>r"   c                   \         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)r@   rP   )r@   rZ   rP   )r   ry   rz   r   rD   r	   r   r   MaskedArrayr   rR   r   )r5   r   expandeds   &  r   test_subclassesTestExpandDims.test_subclassesS  s    IIbM!!&)EEKKA
K+>>!!,
8RUU%6%678X^^Y/X]](()4r"   r_   N)r`   ra   rb   rc   r  r   r$  r(  r.  rd   re   rf   s   @r   r  r  5  s$     .O9?5 5r"   r  c                      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                ^    \         P                  ! ^
4      p\        \        \        V^ 4       R# r?   N)r   ry   r   rC   r   r   s   & r   test_integer_0_split#TestArraySplit.test_integer_0_split^  s    IIbMj+q!4r"   c                   \         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# r3  )r   ry   r   compare_resultsrD   r5   r   r   desireds   &   r   test_integer_split!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                   \         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   rD   ry   r   r   r7  r   r>   r   r5   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           	     >   \         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   rD   ry   r   r7  r8  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                   \         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?  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                    \         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)        r@   )i   @r@   )r   broadcast_tor   r3   r   r   rR   )r5   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                   \         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)rZ   rP      r   )r   ry   r   r7  r5   r   r   r   r9  s   &    r   test_index_split_simple&TestArraySplit.test_index_split_simple  sb    IIbM!2.99Q?BIIaORYYq!_99Q#%%r"   c                   \         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   rP   rQ  r   r   ry   r   rD   r7  rR  s   &    r   test_index_split_low_bound)TestArraySplit.test_index_split_low_bound  s`    IIbM!2.88B<1a"))Aq/99Q#%%r"   c                p   \         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   rP   rQ  r?      r   rV  rR  s   &    r   test_index_split_high_bound*TestArraySplit.test_index_split_high_bound  su    IIbM#!2.88B<1a"))Aq/99Q#RXXb\288B<A%r"   r_   N)r`   ra   rb   rc   r4  r:  rA  rD  rG  pytestmarkskipifIS_64BITrN  rS  rW  r[  rd   re   rf   s   @r   r1  r1  ]  s_     5;&z4&4 [[H-CD5 E5&&& &r"   r1  c                   ,   a  ] tR tRt o R tR tRtV tR# )	TestSpliti  c                    \         P                  ! ^
4      p\        V^4      p\         P                  ! ^4      \         P                  ! ^^
4      .p\        W#4       R# r3  )r   ry   r   r7  r8  s   &   r   test_equal_splitTestSplit.test_equal_split  s?    IIbMAqk99Q<1b!12%r"   c                ^    \         P                  ! ^
4      p\        \        \        V^4       R# r3  )r   ry   r   rC   r   r   s   & r   test_unequal_splitTestSplit.test_unequal_split  s    IIbMj%A.r"   r_   N)r`   ra   rb   rc   rd  rg  rd   re   rf   s   @r   rb  rb    s     
&/ /r"   rb  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# rZ   N)r   	TypeErrorr   r5   s   &r   test_non_iterable!TestColumnStack.test_non_iterable  s    iq1r"   c                    \         P                  ! R4      p\         P                  ! R4      p\         P                  ! ^^.^^.^^..4      p\         P                  ! W34      p\        WC4       R# )rZ   NrZ   r@   rN   )r@   rN   rO   r   rD   r   r   r5   r   r  r   rT   s   &    r   test_1D_arraysTestColumnStack.test_1D_arrays  s_    HHYHHY88aVVV% & !(V&r"   c                    \         P                  ! ^.^.^..4      p\         P                  ! ^.^.^..4      p\         P                  ! ^^.^^.^^..4      p\         P                  ! W34      p\        WC4       R# rl  rs  rt  s   &    r   test_2D_arrays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matchc              3   N   "   T F  p\         P                  ! ^4      x  K  	  R# 5irN   Nr   ry   .0_s   & r   	<genexpr>1TestColumnStack.test_generator.<locals>.<genexpr>  s     8x!1x   #%N)r]  raisesrm  r   r3   rn  s   &r   test_generatorTestColumnStack.test_generator  s6    ]]9,EFF8uQx88 GFFF   AA	r_   N)
r`   ra   rb   rc   ro  ru  rx  r  rd   re   rf   s   @r   rj  rj    s     2''9 9r"   rj  c                   D   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                0    \        \        \        ^4       R# rl  )r   rm  r   rn  s   &r   ro  TestDstack.test_non_iterable  s    i+r"   c                    \         P                  ! ^4      p\         P                  ! ^4      p\        W.4      p\         P                  ! ^^...4      p\        W44       R# rl  r   rD   r   r   r5   r   r  r   r9  s   &    r   test_0D_arrayTestDstack.test_0D_array  sE    HHQKHHQKaVn((aVH:&3(r"   c                    \         P                  ! ^.4      p\         P                  ! ^.4      p\        W.4      p\         P                  ! ^^...4      p\        W44       R# rl  r  r  s   &    r   test_1D_arrayTestDstack.test_1D_array  sI    HHaSMHHaSMaVn((aVH:&3(r"   c                    \         P                  ! ^.^..4      p\         P                  ! ^.^..4      p\        W.4      p\         P                  ! ^^..^^...4      p\        W44       R# rl  r  r  s   &    r   test_2D_arrayTestDstack.test_2D_array"  s`    HHqcA3Z HHqcA3Z aVn((aVH1xj123(r"   c                    \         P                  ! ^^.4      p\         P                  ! ^^.4      p\        W.4      p\         P                  ! ^^.^^...4      p\        W44       R# rl  r  r  s   &    r   test_2D_array2TestDstack.test_2D_array2)  sW    HHaVHHaVaVn((aVaV,-.3(r"   c                    \         P                  ! \        R R7      ;_uu_ 4        \        R \	        ^4       4       4       RRR4       R#   + '       g   i     R# ; i)r{  r|  c              3   N   "   T F  p\         P                  ! ^4      x  K  	  R# 5ir  r  r  s   & r   r  ,TestDstack.test_generator.<locals>.<genexpr>2  s     2A299Q<<r  N)r]  r  rm  r   r3   rn  s   &r   r  TestDstack.test_generator0  s6    ]]9,EFF2q22 GFFFr  r_   N)r`   ra   rb   rc   ro  r  r  r  r  r  rd   re   rf   s   @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# rl  )r   rC   r
   rn  s   &r   ro  TestHsplit.test_non_iterable;      j&!Q/r"   c                    \         P                  ! ^4      p \        V^4       \        ^ 4       R#   \         d     R# i ; irl  )r   rD   r
   r   rC   r   s   & r   r  TestHsplit.test_0D_array>  s6    HHQK	1aLAJ 		s   1 A A c                    \         P                  ! . RO4      p\        V^4      p\         P                  ! ^^.4      \         P                  ! ^^.4      .p\        W#4       R# rZ   N)rZ   r@   rN   rO   r   rD   r
   r7  r8  s   &   r   r  TestHsplit.test_1D_arrayF  sG    HH\"Ql88QF#RXXq!f%56%r"   c                    \         P                  ! . RO. RO.4      p\        V^4      p\         P                  ! ^^.^^..4      \         P                  ! ^^.^^..4      .p\        W#4       R# r  r  r8  s   &   r   r  TestHsplit.test_2D_arrayL  sc    HHl  !Ql88aVaV,-rxx!Q!Q8H/IJ%r"   r_   Nr`   ra   rb   rc   __doc__ro  r  r  r  rd   re   rf   s   @r   r  r  7  s#     0&& &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# )	
TestVsplitiT  r  c                2    \        \        \        ^^4       R# rl  )r   rC   r   rn  s   &r   ro  TestVsplit.test_non_iterableX  r  r"   c                ^    \         P                  ! ^4      p\        \        \        V^4       R# rl  )r   rD   r   rC   r   r   s   & r   r  TestVsplit.test_0D_array[      HHQKj&!Q/r"   c                    \         P                  ! . RO4      p \        V^4       \        ^ 4       R#   \         d     R# i ; ir  )r   rD   r   r   rC   r   s   & r   r  TestVsplit.test_1D_array_  s7    HH\"	1aLAJ 		s   3 AAc                    \         P                  ! . RO. RO.4      p\        V^4      p\         P                  ! . RO.4      \         P                  ! . RO.4      .p\        W#4       R# r  )r   rD   r   r7  r8  s   &   r   r  TestVsplit.test_2D_arrayg  sM    HHl  !Ql88\N+RXX|n-EF%r"   r_   Nr  rf   s   @r   r  r  T  s#     00& &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# )	
TestDsplitio  c                2    \        \        \        ^^4       R# rl  )r   rC   r   rn  s   &r   ro  TestDsplit.test_non_iterableq  r  r"   c                ^    \         P                  ! ^4      p\        \        \        V^4       R# rl  r   rD   r   rC   r   r   s   & r   r  TestDsplit.test_0D_arrayt  r  r"   c                b    \         P                  ! . RO4      p\        \        \        V^4       R# r  r  r   s   & r   r  TestDsplit.test_1D_arrayx  s    HH\"j&!Q/r"   c                    \         P                  ! . RO. RO.4      p \        V^4       \        ^ 4       R#   \         d     R# i ; ir  )r   rD   r   r   rC   r   s   & r   r  TestDsplit.test_2D_array|  sA    HHl  !	1aLAJ 		s   7 AAc                   \         P                  ! . RO. RO.. RO. RO..4      p\        V^4      p\         P                  ! ^^.^^..^^.^^...4      \         P                  ! ^^.^^..^^.^^...4      .p\        W#4       R# r  )r   rD   r   r7  r8  s   &   r   test_3D_arrayTestDsplit.test_3D_array  s    HH|!!" # Ql88q!fq!f-AA/?@A88q!fq!f-AA/?@AC%r"   r_   N)r`   ra   rb   rc   ro  r  r  r  r  rd   re   rf   s   @r   r  r  o  s#     000& &r"   r  c                   &   a  ] tR tRt o R tRtV tR# )TestSqueezei  c                V   ^ 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)rm   r?   r?   )rm   r?   rm   r   )
r+   r*   r   r   r   rz   r   r4   r   r   )r5   r*   r   r  cr   s   &     r   
test_basic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"   r_   Nr`   ra   rb   rc   r  rd   re   rf   s   @r   r  r    s     , ,r"   r  c                      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                   \         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# rl  )r   rD   r   r   )r5   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                    ! 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                       ] tR tRtRtRtR# )*TestKron.test_return_type.<locals>.myarrayi  g      ?r_   N)r`   ra   rb   rc   __array_priority__rd   r_   r"   r   myarrayr    s    !$r"   r  N)	r   r   rA   rR   r>   r   r   r   r   )r5   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                    V! \         P                  ! ^^.4      4      pV! \         P                  ! ^^.4      4      pV! \         P                  ! ^	^	.4      4      p\        \         P                  ! W#4      V4       R# r  )r   rA   r   r   )r5   r  r   r  r  s   &&   r   test_kron_smokeTestKron.test_kron_smoke  sX     A(A(A(2771=!,r"   c                l   \         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# )rZ   r+  r=   N)rZ   rO   rO      )r   r   rD   diagidentityrG   r   r   )r5   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_bc                   \         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\         P                  ! VP                  V4      '       g   Q R4       hR# )rZ   zUnexpected shape from kronNr   )r   rA   r0   r   multiplyr   array_equalrR   )	r5   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,+F$GG'Q!C3w<#g,+F$GG'Q%7LGGAM~~) ) 	G*F	G )r"   r_   N))r'  r'  )rr  )rO   rP   r   )r@   r@   r}   ))rZ   r   r'  )r@   r   r@   r  ))r@   r   r   r@   r  )r`   ra   rb   rc   r  r  r]  r^  parametrizer   asarrayasmatrixr  r  r  rd   re   rf   s   @r   r  r    sv     -:	1 [[

BKK0--- [[ 
	G	Gr"   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestTilei  c                   \         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   Nr  )r   rZ   r@   r   rZ   r@   r  rZ   r@   )rZ   r@   rZ   r@   )rN   rO   rN   rO   r@   rZ   )r   rD   r   r   r5   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                    \         P                  ! ^4      p\        V^4      pV^,          p\        V\         P                  ! ^4      4       R# )rP   N)r   ry   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                    \         P                  ! . ..4      p\         P                  ! . . .4      p\        V^4      P                  p\        VR4      P                  p\	        VR4       \	        VR4       R# )r@   Nr\   )r@   r   )rN   r@   r   )r   rD   r   rR   r   )r5   r   r  r  r   s   &    r   rU   TestTile.test_empty  s]    HHrdVHHb"XAJI$$QQ	"r"   c                    ^ 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)sizeN)r   r  r  r  )r@   rN   r@   )rN   r@   ))rN   )r@   rN   )rN   rO   rN   )rN   r@   rN   )rO   rN   r@   rO   r  )r+   r  r   rA   r>   r   r   r   )
r5   r  repsrR   r  r  rr   largeklarges
   &         r   test_kroncompareTestTile.test_kroncompare  s]    (@JA2A&AGGAww'Q
aU+	  r"   r_   N)
r`   ra   rb   rc   r  r  rU   r	  rd   re   rf   s   @r   r  r    s     	D&#, ,r"   r  c                   &   a  ] tR tRt o R tRtV tR# )TestMayShareMemoryi  c           
         \         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# )rq   N:NNr@   r   )rq   ro   )rl   ro   r   r   )r   rA   r   may_share_memory)r5   r   d2s   &  r   r  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"   r_   Nr  rf   s   @r   r  r    s     7 7r"   r  c                H    \        WRR7       F  w  r#\        W#4       K  	  R# )zCompare lists of arrays.F)strictN)zipr   )r   r9  r   ys   &&  r   r7  r7  *  s    C/1  0r"   rK  ).r#   sysr]  numpyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   numpy.exceptionsr   numpy.testingr   r   r   r   maxsizer`  r%   r'   ri   r   r  r  r1  rb  rj  r  r  r  r  r  r  r  r  r7  r_   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"   