
    pg\ju                     \   S SK r S SKrS SKJrJr  S SKJrJrJ	r	J
r
JrJr  S SKJrJrJrJrJr  S rS rS;S jrS rS	 rS
 rS rS rS rS rS rS rS rS r S r!S r"S r# " S S5      r$S r% " S S\RL                  5      r' " S S\'5      r(S r)S r*S r+S  r,\ RZ                  R]                  S!\R^                  \R`                  \Rb                  \Rd                  \Rf                  \Rh                  \Rj                  \Rl                  \Rn                  \Rp                  \Rr                  \Rt                  /5      S" 5       r;\ RZ                  R]                  S#/ S$Q5      S% 5       r<\ RZ                  R]                  S&/ S'Q5      S( 5       r=\ RZ                  R]                  S)/ S*Q5      S+ 5       r>\ RZ                  R]                  S,/ S-Q5      S. 5       r?\ RZ                  R]                  S// S0Q5      S1 5       r@S2 rAS3 rBS4 rCS5 rDS6 rES7 rF\ RZ                  R]                  S8/ S9Q5      S: 5       rGg)<    N)rational	rational2)_broadcast_shape
as_stridedbroadcast_arraysbroadcast_shapesbroadcast_tosliding_window_view)assert_assert_array_equalassert_equalassert_raisesassert_raises_regexc                     U  Vs/ s H  n[         R                  " U5      PM     nn[        U6 nU Vs/ s H  oUR                  PM     nnU/[	        U5      -  n[        Xg5        g s  snf s  snf N)npzerosr   shapelenr   )input_shapesexpected_shapesinarrays	outarraysa	outshapesexpecteds           ]/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/numpy/lib/tests/test_stride_tricks.pyassert_shapes_correctr      sa     &22\\H2 (+I"+,)Q)I,#h-/H%	 3,s
    A%A*c                     U  Vs/ s H  n[         R                  " U5      PM     nn[        [        [        /UQ76   g s  snf r   )r   r   r   
ValueErrorr   )r   r   r   s      r    assert_incompatible_shapes_raiser"   !   s5     &22\\H2*.:: 3s    =c                 t   [         R                  " U [        S9n[        [         R                  R	                  U5      5      n[         R
                  " U5      R                  U5      nU(       a  UR                  nUR                  nU(       a  US S S2   nUS S S2   nXF-   n[        XF5      u  p[        Xy5        g )Ndtype)
r   r   intmultiplyreducearangereshapeTr   r   )
shape0shape1
transposedflippedx0nx1yb0b1s
             r   assert_same_as_ufuncr7   )   s     
&	$B 	BKKv&'A	1		f	%BTTTT"X"X 	Ab%FBq    c                      [         R                  " S5      n [         R                  " S5      n[        X5      u  p#[        X5        [        X5        g )N
   )r   r*   r   r   )xr4   bxbys       r   	test_samer>   ?   s8    
		"A
		"Aa#FBqqr8   c                      [         R                  " S5      n [         R                  " S5      n[        [        S5         [	        XSS9  S S S 5        g ! , (       d  f       g = f)Nr:   zgot an unexpected keywordfloat64r$   )r   r*   r   	TypeErrorr   )r;   r4   s     r   test_broadcast_kwargsrB   F   s@     			"A
		"A	Y(C	DY/ 
E	D	Ds   A
Ac                  
   [         R                  " / SQ/5      n [         R                  " S/S/S//5      n[        X5      u  p#[         R                  " / SQ/ SQ/ SQ/5      nUR                  n[	        XB5        [	        XS5        g )N         rE   rF   rG   )r   arrayr   r,   r   )r;   r4   r<   r=   bx0by0s         r   test_one_offrK   Q   sf    
)A
1#sQC!Aa#FB
((Iy)4
5C
%%Cssr8   c                  t    / SQn U  H.  nU/n[        X!5        X/n[        X15        XU/n[        XA5        M0     g )N)
 rE   rG   r   rE   )r   rG   rE   r   )rG   r   rE   rG   rG   rE   rG   rG   r   )datar   r   input_shapes2input_shapes3s        r   test_same_input_shapesrY   [   sE    D wl2m3u-m3 r8   c                      SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/S	S/S/SS	/S/SS/S/SS/S/SS	/S	//n U  H"  u  p[        X5        [        US S S
2   U5        M$     g )NrN   rO   rR   rT   rS   rE   rE   rQ   r   r   rP   r&   rU   rV   r   r   s      r   (test_two_compatible_by_ones_input_shapesr^   v   s    
 t
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"D )-$l;l4R40.A )-r8   c                      SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS	/S	/SS
/S	/SS	/S	/SS	/S	/SS/S/SS
/S
/SS/S/SS/S/SS
/S
//n U  H"  u  p[        X5        [        US S S2   U5        M$     g )NrM   rO   rT   rS   rN   r[   rR   r   r\   rP   rQ   r&   rU   r]   s      r   3test_two_compatible_by_prepending_ones_input_shapesra      s%   
 dT
 
 
 
fv
$ 
 
 
fv
fv
dT
 
 
 
fv
$ 
 
 
fv
fv)D, )-$l;l4R40.A )-r8   c                  j    SS/SS// SQSS//n U  H  n[        U5        [        US S S2   5        M!     g )	NrO      rF   rG   rF   rO   rO   rc   rE   rG   rd   rF   rG   rG   r&   )r"   )rV   r   s     r   )test_incompatible_shapes_raise_valueerrorrj      sI     
t		I	D (6(dd);< r8   c            
         / SS/S/PSS/S/PSS/S/PSS/S/PSS/S/PSS/S/PSS/S/PSS/S/PS	S/S/PSS	/S/PSS/S/PSS/S/PSS	/S	/PS
S/S/PSS/S/PSS/S/PSS/S/PS
S/S/PSS/S/PSS/S/PSS/S/PS
S/S/PS
S/S/PS
S/S/PSS/S/PSS	/S/PSS/S/PS
S/S/PSS/S/PSS	/S	/PSS/S/PS
S/S/PS
S	/S	/Pn U  Hy  u  p[        US   US   SUS    SUS    35        [        US   US   5        [        US   US   S5        S
U;  d  MQ  [        US   US   SS5        [        US   US   SS5        M{     g )NrN   rO   rR   rT   rS   r[   rQ   r\   rP   rM   r`   r   rE   zShapes:  TF)r7   r]   s      r   test_same_as_ufuncrm      s%   "
t"
&	6"" &	6"" &	6"	"
 &	6"" &	6"" &	6"" &	6"" &	6"" &	6"" &	6"" &	6"" &	6"" dT"  "   !""  #"$ fv%"& $ '"(  )"*  +", fv-". fv/"0 dT1"2  3"4  5"6  7"8 fv9": $ ;"<  =">  ?"@ fvA"B fvC"DF )-$\!_l1o'Q'8,q/9JK	M 	\!_l1o>\!_l1otD \! a,q/5$O a,q/4N )-r8   c                     [         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S	[         R                  " S	5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S
[         R                  " S5      R                  SS5      /[         R                  " S5      S[         R                  " / SQ/ SQ/5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      /[         R                  " S5      S[         R                  " S5      //n U  H  u  pn[        X5      n[        X45        M     g )Nr   r`   rN   rE   rO   rG   rf   rF   rD   rR   r&   re   r   rE   rF   rE   rF   )r   rF   rF   rE   )rF   r   )r   rH   r   onesr*   r+   r	   r   )rV   input_arrayr   r   actuals        r   test_broadcast_to_succeedsru      s   	!dBHHQK(	!dBHHQK(	!dBHHQK(	T2771:&	T2771:&	Y	 23	1tRYYq\*	1vryy|33Ar:;	1vrxxI(>?@	Q
#	Q
#	Q
# 
T2771:&	&"''&/2	&"''&/2%D( )-$Hk18, )-r8   c                     ^^ SS/SS/SS/SS/SS/SS/SS/S	S/SS
/SS/SS//n U  H1  u  nm[         R                  " U5      m[        [        UU4S j5        M3     g )Nr`   rM   rN   rO   rf   rc   rp   rq   r[   r&   )r&   )r&   rF   c                     > [        T T5      $ r   )r	   )arrtarget_shapes   r   <lambda>*test_broadcast_to_raises.<locals>.<lambda>  s    ,sL*Ir8   )r   r   r   r!   )rV   
orig_shaperx   ry   s     @@r   test_broadcast_to_raisesr}     s    	r
	r
	r
	t	t	t			r
	u	D %) 
Lhhz"j"IJ %)r8   c                    ^  [        [        5       S5        [        [        SS/5      S5        [        [        [        R                  " S5      5      S5        [        [        [        R                  " S5      [        R                  " S5      5      S5        [        [        [        R                  " S5      /S-  6 S5        [        [        [        R                  " S5      /S	-  6 S5        [        [        [        R                  " S5      /S-  S/-   6 S5        [        R                  " S5      /S-  [        R                  " S
5      /S-  -   m [	        [
        U 4S j5        g )NrM   rE   rF   rf   r[   rG   rd   rp       d   rG   c                     > [        T 6 $ r   )r   bad_argss   r   rz   &test_broadcast_shape.<locals>.<lambda>-      &6&Ar8   )r   r   r   rr   r   r!   r   s   @r   test_broadcast_shaper     s     !#R(!1a&)40!"''&/2F;!"''&/2776?CVL!RWWV_$5$:<fE!RWWV_$5$;=vF !RWWQZL2$5$;=tD
|b BGGAJ<"#44H*ABr8   c                     / S/S/S/S/S/SS/S/S/S/SS/S// SQS/S	/S	/S
S/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S/SS/S//n U  H  u  p[        [        U6 U5        M     [        [        S/S-  6 S5        [        [        S/S-  6 S5        [        [        S/S-  6 S5        g )NrM      rp   rf   r[   r   ))   r      r   rE   r   )r   rE   r   )r   r   r   r   rR   rS   rT   rQ   r\   rP   r`   rN   rO   rF   rG   rF   r   r   )r   r   )rV   r   ry   s      r   test_broadcast_shapes_succeedsr   0  s    
R
r


$ 
6
&	6"	-y9
i 
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
dT
 
 
 
fv
$ 
 
 
fv
fv
t
Vf7D: '+"%|4lC '+ !VHrM3V<!VHsN4f= !TFRK148r8   c                     ^^ SS/SS// SQSS// SQS	S//n U  H  m[        [        U4S
 j5        M     S/S-  S/S-  -   m[        [        U4S j5        g )NrO   rc   re   rf   rg   rh   ri   )rp   rS   r   )r:   r   rF   c                     > [        T 6 $ r   r   )r   s   r   rz   .test_broadcast_shapes_raises.<locals>.<lambda>d  s    *:L*Ir8   r   c                     > [        T 6 $ r   r   r   s   r   rz   r   g  r   r8   )r   r!   )rV   r   r   s    @@r   test_broadcast_shapes_raisesr   Y  si     
t		I)	
FD j"IJ  v{dVb[(H*ABr8   c                     [         R                  " S /5      n [        U 5      n[         R                  " S /5      n[        U[         R                  " S /5      5        [         R                  " / SQ5      n [        U SSU R                  -  4S9n[         R                  " SS/5      n[        X5        [         R                  " / SQ5      n [        U SSSU R                  -  4S9n[         R                  " / SQ/ SQ/ SQ/5      n[        X5        [         R
                  " S	S
/5      n[         R                  " SUS9n [         R                  " SS5      U S'   [        U SSU R                  4S9n/ SQ/S-  nS /S-  /S-  n[        UR
                  U5        [        XAS   5        [        XQS   5        [         R                  " SSS9n [        U SSU R                  4S9n[        U R
                  UR
                  5        [         R
                  " S/S/S.5      n[         R                  " SUS9n [        U SSU R                  4S9n[        U R
                  UR
                  5        [        S5       Vs/ s H  n[        U5      PM     nn[         R                  " U[        S9n [        U SSU R                  4S9n[        U R
                  UR
                  5        [        U/S-  U5        [        S5       Vs/ s H  n[        U5      PM     nn[         R                  " U[        S9n [        U SSU R                  4S9n[        U R
                  UR
                  5        [        U/S-  U5        g s  snf s  snf )NrE   rF   rG   rd   rf   rF   r   stridesrE   rG   r   r   )numi4)objOrc   r$   r   r   rd   r   V4 )namesformats)r   rH   r   r   itemsizer%   emptyr*   r   ranger   r   )r   a_viewr   dtexpected_numexpected_objirs           r   test_as_stridedr   j  s   
$A]FxxHvrxx/0
AAJJ/@AFxxAHv(
A!Q^1DEFxx|\BCHv( 
=,/	0B
R AyyAAeH!QZZAF >A%LFQJ<!#Lr"|E]3|E]3 	T"A!QZZAF&,,' 
RDdV4	5B
R A!QZZAF&,,' $Ah'h!hA'
(#A!QZZAF&,,'sQw'  %Qx(x!1xA(
)$A!QZZAF&,,'sQw' 	( 	)s   -M)1M.c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestSlidingWindowViewi  c                     [         R                  " S5      n[        US5      n[         R                  " SS/SS/SS/SS//5      n[	        X#5        g )Nr   rF   r   rE   rG   rd   )r   r*   r
   rH   r   )selfrx   arr_viewr   s       r   test_1dTestSlidingWindowView.test_1d  sS    iil&sA.88aVVVV% & 	8.r8   c                     [         R                  S S2S S24   u  pSU-  U-   nSn[        X45      n[         R                  " SS/SS//SS/SS	//SS/S	S
///SS/SS//SS	/SS//S	S
/SS////5      n[	        XV5        g )NrG   rd   r:   )rF   rF   r   rE      rF                     r   ogridr
   rH   r   r   r   jrx   r   r   r   s          r   test_2dTestSlidingWindowView.test_2d  s    xxBQB1fqj&s2881vBx0 !1vBx0 !1vBx02 !#Bx"b2 "Bx"b2 "Bx"b245 6 	8.r8   c                     [         R                  S S2S S24   u  pSU-  U-   n[        USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ//5      n[	        XE5        g )	NrG   rd   r:   r   )r   r:   r   )rE   r   r   )rF   r   r   )rG   r   r   r   r   r   r   rx   r   r   s         r   test_2d_with_axis'TestSlidingWindowView.test_2d_with_axis  sf    xxBQB1fqj&sAq188k)))+ , - 	8.r8   c                     [         R                  S S2S S24   u  pSU-  U-   n[        USS5      n[         R                  " / SQ/ SQ/// SQ/ S	Q/// S
Q/ SQ///5      n[	        XE5        g )NrG   rd   r:   re   r[   ro   rD   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   s         r   test_2d_repeated_axis+TestSlidingWindowView.test_2d_repeated_axis  s    xxBQB1fqj&sFF;88y(* +++- .++- .	/ 0 	8.r8   c                     [         R                  S S2S S24   u  pSU-  U-   nSn[        X45      n[         R                  " / SQ/ SQ// SQ/ SQ/// SQ/ SQ// SQ/ S	Q/// SQ/ S
Q// S	Q/ SQ///5      n[	        XV5        g )Nrd   r:   re   ro   r   rD   r   r   r   )      r   )r   r   !   r   r   s          r   test_2d_without_axis*TestSlidingWindowView.test_2d_without_axis  s    xxBQB1fqj&s288y,7(,79+\:+\:<+\:+\:<	= > 	8.r8   c                 @   [         R                  S S2S S24   u  pSU-  U-   n[        R                  " [        SS9   [        US5        S S S 5        [        R                  " [        SS9   [        US5        S S S 5        [        R                  " [        SS9   [        US	S
S9  S S S 5        [        R                  " [        SS9   [        US5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N{= f! , (       d  f       N_= f! , (       d  f       g = f)Nrd   r:   zcannot contain negative valuesmatch)r&   rG   z3must provide window_shape for all dimensions of `x`rN   z2Must provide matching length window_shape and axisrh   rP   )axisz.window shape cannot be larger than input arrayr   r   )r   r   pytestraisesr!   r
   )r   r   r   rx   s       r   test_errors!TestSlidingWindowView.test_errors  s    xxBQB1fqj]]:-MNW- O]]KM  T*M ]]JL  YV<L ]]FH  V,H H ONM ML LH Hs/   C+C-C>D
C*-
C;>
D
Dc                    [         R                  " S5      n[        USSS9n[        UR                  R
                  (       + 5        [        R                  " [        SS9   SUS'   S S S 5        [        USS	S9n[        UR                  R
                  5        SUS
'   [        U[         R                  " / SQ5      5        g ! , (       d  f       N`= f)Nr   rF   F	writeablez#assignment destination is read-onlyr   rG   r\   TrP   )r   rG   rF   rG   rd   )r   r*   r
   r   flagsr   r   r   r!   r   rH   )r   rx   views      r   test_writeable$TestSlidingWindowView.test_writeable  s    iil"3U;DJJ((()]];= DJ= #3T:

$$%T
3 9:= =s   B??
Cc           
      J    " S S[         R                  5      n[         R                  " S5      R                  U5      n[	        [        [        USSS9U5      (       + 5        [	        [        [        USSS9U5      5        [	        [        [        US5      U5      (       + 5        g )Nc                       \ rS rSrSrg)1TestSlidingWindowView.test_subok.<locals>.MyArrayi  rM   N)__name__
__module____qualname____firstlineno____static_attributes__rM   r8   r   MyArrayr     s    r8   r   r   rF   FsubokT)r   ndarrayr*   r   r   
isinstancer
   )r   r   rx   s      r   
test_subok TestSlidingWindowView.test_subok  s    	bjj 	 iil(J239> @&( ( 	) 	
.sATBGLMJ23:GDDEr8   rM   N)r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r8   r   r   r     s+    ///
//-$;
Fr8   r   c                     [         R                  " S5      n [        U SS9n[        UR                  R
                  (       + 5        [        U SS9n[        UR                  R
                  5        SUS'   [        U [         R                  " U S5      5        SU R                  l        [        U SS9n[        U SS9n[        UR                  R
                  (       + 5        g )Nr:   Fr   TrG   .)r   rr   r   r   r   r   r   	full_like)rx   r   s     r   as_strided_writeabler     s    
''"+CcU+D

$$$% cT*DDJJ  !DIsBLLa01  CIIcU+DcT*D

$$$%r8   c                       \ rS rSrS rSrg)VerySimpleSubClassi  c                 P    [         R                  " USS0UD6R                  U 5      $ )Nr   T)r   rH   r   )clsargskwargss      r   __new__VerySimpleSubClass.__new__  s&    xx4T4V499#>>r8   rM   N)r   r   r   r   r   r   rM   r8   r   r   r     s    ?r8   r   c                        \ rS rSrS rS rSrg)SimpleSubClassi  c                 b    [         R                  " USS0UD6R                  U 5      nSUl        U$ )Nr   Tsimple)r   rH   r   info)r   r   r   r   s       r   r   SimpleSubClass.__new__  s1    xx4T4V499#>	r8   c                 .    [        USS5      S-   U l        g )Nr   r   z
 finalized)getattrr   )r   r   s     r   __array_finalize__!SimpleSubClass.__array_finalize__"  s    C,|;	r8   )r   N)r   r   r   r   r   r  r   rM   r8   r   r   r     s    
<r8   r   c                  t   [        / SQ5      n [        [        U 5      [         L 5        [        U SSU R                  -  4S9n[        [        U5      [
        R                  L 5        [        U SSU R                  -  4SS9n[        [        U5      [         L 5        [        / SQ5      n [        U SSU R                  -  4SS9n[        [        U5      [        L 5        [        UR                  S:H  5        [
        R                  " [        U 5      5      R                  SS	5      n[        X5      u  p[        [        U5      [
        R                  L 5        [        [        U5      [
        R                  L 5        [        UR                  UR                  :H  5        [        XSS
9u  p[        [        U5      [        L 5        [        UR                  S:H  5        [        [        U5      [
        R                  L 5        [        UR                  UR                  :H  5        Sn[        X5      n[        [        U5      [
        R                  L 5        [        UR                  U:H  5        [        XSS
9n[        [        U5      [        L 5        [        UR                  S:H  5        [        UR                  U:H  5        g )Nr   rf   rF   r   T)r   r   r   zsimple finalizedr&   rE   r   )rF   rd   )r   r   typer   r   r   r   r   r   r*   r   r+   r   r   r	   )r   r   bb_viewr   s        r   test_subclassesr
  &  s   <(ADG))*AJJ/@AFDLBJJ&'AJJ/@MFDL../|$AAJJ/@MFDLN*+FKK--. 			#a&!!"a(A%a+NFDLBJJ&'DLBJJ&'FLLFLL()%a$7NFDLN*+FKK--.DLBJJ&'FLLFLL() E!#FDLBJJ&'FLLE!"!$/FDLN*+FKK--.FLLE!"r8   c                     [         R                  " / SQ5      n [        U S5      n[        UR                  R
                  S5        [        [        UR                  [        S 5      S5        S[        U 5      4S[        SU 5      4/nU H  u  p4[        X45       H  u  pQU(       a  [        R                  " [        5         [        UR                  R
                  S5        S S S 5        [        R                  " [        5         SUS S & S S S 5        [        UR                  R
                  S5        M  [        UR                  R
                  S5        M     M     [        U 5      [        SU 5      4 HB  nU H9  nSUR                  l        [        UR                  R
                  S5        SUS S & M;     MD     SU R                  l        [        SU 5      u  pa[        UR                  R
                  S5        SnS/n[!        [         R                  " S5      Xx5      n	[         R"                  " S	5      n
[        X5      u  p[%        UR&                  UR&                  :H  5        g ! , (       d  f       GN= f! , (       d  f       GNr= f)
NrD   re   Fr   FTFTrf   rN   )r   rH   r	   r   r   r   r   r!   __setitem__slicer   zipr   warnsFutureWarningDeprecationWarningr   r   r   r   )originalresult
test_casesis_broadcastresultsarray_is_broadcast_r   r   tricky_arrayotherfirstseconds                r   r   r   K  s   xx	"H(F+F''/*f00%+qA -h89 "21h"?@BJ!+*-l*D&!\\-0 !7!7> 1\\"45 !F1I 6 V\\33T: V\\33T: +E ", %X.$Q13F%)FLL"//6F1I 3  %HNN H-IA''/ EcGbhhqk5:LHHTNE$\9MEEKK6<<'(= 1055s   =!I I1
I.1
J c                  *   [         R                  " / SQ5      n S[        U 5      4S[        SU 5      4/nU HZ  u  p#[        X#5       HF  u  pEU(       a  [	        U5      R
                  (       d   eM*  [	        U5      R
                  (       d  MF   e   M\     g )NrD   r  r  r   )r   rH   r   r  
memoryviewreadonly)r  r  r  r  r  r  s         r   test_writeable_memoryviewr"  {  s    
 xx	"H.x9: "21h"?@BJ!+*-l*D&! "&)2222%f-66666 +E ",r8   c                      [         R                  " S[        S9n [         R                  " S/S-  [        S9n[        U S5      n[	        X5        [        U [         R                  " S5      5      u  p#[	        X5        g )Nr   r$   rG   rO   )r   rH   objectr	   r   r   rr   )rs   r   rt   r  s       r   test_reference_typesr%    sZ    ((3f-Kxx	0H+t,Fx( bggaj9IFx(r8   r%   c                     [         R                  " SU S9n[        USUR                  S-  4SS9nUR                  S:X  d   eUR
                  U :X  d   eg)z=Test as_strided with check_bounds=True with different dtypes.r:   r$   r   rF   Tr   r   check_boundsN)r   r*   r   r   r   r%   )r%   r;   r4   s      r   (test_as_strided_checked_different_dtypesr*    sQ    & 			"E"A1D1::>*;$OA77d??77er8   zsize,view_size,stride_mult))r:   r   rE   )r:   r   rF   )r   r:   rF   )r   r:   r:   c                     [         R                  " U [         R                  S9nUR                  n[	        X14XB-  4SS9nUR
                  U4:X  d   eUSSU2   SU n[        XV5        g)z%Test 1D arrays with positive strides.r$   Tr(  Nr   r*   int64r   r   r   r   )size	view_sizestride_multr;   r   r4   r   s          r   +test_as_strided_checked_1d_positive_stridesr1    sm     			$bhh'AzzH	(>'@t	A 77yl""";
+Hq#r8   zshape,window_shape))r:   rO   )r   r'  )r   r2  c                 $   [         R                  " U S   [         R                  S9nUR                  nU S   US   -
  S-   nXAS   4nX34n[	        X%USS9nUR
                  U:X  d   e[        US   USUS    5        [        US   X!S   * S 5        g)z Test sliding window views in 1D.r   r$   rE   Tr(  Nr&   r,  )r   window_shaper;   r   	n_windows
view_shapeview_stridesr4   s           r   )test_as_strided_checked_sliding_window_1dr:    s     			%("((+AzzHa<?*Q.I!_-J'L14PA77j   qtQ0a12quaa 0 234r8   r   )r   )r   r   )r:   r:   c                     [         R                  " [         R                  " U 5      [         R                  S9R	                  U 5      n[        USS9n[        X!5        g)z$Test 2D arrays with default strides.r$   T)r)  N)r   r*   prodr-  r+   r   r   )r   r;   r4   s      r   *test_as_strided_checked_2d_default_stridesr=    s?     			"''%.199%@A14(Aqr8   r.  )r   rE   rF   r:   r   c                     [         R                  " S/[         R                  S9n[        X4SSS9nUR                  U 4:X  d   eU S:  a#  [        [         R                  " US:H  5      5        gg)z0Test zero strides (broadcasting a single value).*   r$   r`   Tr(  r   N)r   rH   r-  r   r   r   all)r.  r;   r4   s      r   0test_as_strided_checked_zero_stride_broadcastingrA    s^     	"RXX&A1GTEA77tgaxqBw  r8   zsize,shape,strides))r:   r'  )r   )r:   r2     )r   )   rB  )r:   r3     )r:   r4  rE  )r   r   )P   rF  )r   )rG   r:   )@   rF  )r:   r'  )r:   r2  rI  )r   r'  )i)r:   rF   rG   rd   )`   r   rJ  )r   r   )rH  rJ  )r   rK  )ir   rF  c                     [         R                  " U [         R                  S9n[        R                  " [
        SS9   [        X1USS9  SSS5        g! , (       d  f       g= f)z:Test that out-of-bounds positive strides raise ValueError.r$   out of boundsr   Tr(  Nr   r*   r-  r   r   r!   r   )r.  r   r   r;   s       r   6test_as_strided_checked_out_of_bounds_positive_stridesrP    s>    2 			$bhh'A	z	917F 
:	9	9s   A
A c                      [         R                  " S[         R                  S9n U SS n[        USSSS9n[	        UR
                  S5        [	        US	   S	5        [	        US
   S5        g)zaTest as_strided

- with check_bounds=True
- considers the base array bounds, not just the view.

  r$   NrF   rf   )i  Tr(  r   rE   2   r   r*   r-  r   r   r   r   r  r4   s      r   ,test_as_strided_checked_view_of_larger_arrayrV    s_     			$bhh'A	"1A 	1D&tDA$1q1rr8   c                      [         R                  " S[         R                  S9n U SS n[        USSSS9n[	        UR
                  S5        [	        US	   S5        [	        US
   S5        g)z[Test as_strided

- with check_bounds=True
- on a view that doesn't start at the beginning.
rR  r$   r   f   rf   )rG  Tr(  r   rE   n   NrT  rU  s      r   (test_as_strided_checked_view_with_offsetrZ  (  s]     			$bhh'A	#c
A1D%dCA$1s1sr8   c                      [         R                  " S[         R                  S9n U SS n[        R                  " [
        SS9   [        USSS	S
9  SSS5        g! , (       d  f       g= f)zDTest that negative strides on a view correctly detect out of bounds.rR  r$   r   r   rN  r   rf   )iTr(  NrO  r   r  s     r   3test_as_strided_checked_view_out_of_bounds_negativer]  8  sI    
		$bhh'A	!AA	z	91D&tD 
:	9	9   A
A&c                      [         R                  " S[         R                  S9n U SS n[        R                  " [
        SS9   [        USSS	S
9  SSS5        g! , (       d  f       g= f)zDTest that positive strides on a view correctly detect out of bounds.r   r$   _   a   rN  r   rf   )   Tr(  NrO  r\  s     r   3test_as_strided_checked_view_out_of_bounds_positiverc  B  sI    
		#RXX&A	"RA	z	91D&tD 
:	9	9r^  c                      [         R                  " S[         R                  S9n U SS nUSS n[        USSSS	9n[	        UR
                  S5        [	        US
   S5        [	        US   S5        g)z;Test as_strided with check_bounds=True on a view of a view.rR  r$   r:   r   r   rf   )   Tr(  r   rD  rE   #   NrT  )r   r  cr4   s       r   $test_as_strided_checked_nested_viewsrh  L  sf    
		$bhh'A	"S	A	!BA1D&tDA$1r1rr8   c                      [         R                  " S[         R                  S9n U SS n[        USSSS9n[	        UR
                  S5        U S	S	S
2   n[        USSSS9n[	        UR
                  S5        g	)zTest various slicing scenarios.rb  r$   r:   r   r'  rB  Tr(  NrF   r2  rT  )r   r  r4   rg  s       r   $test_as_strided_checked_sliced_arrayrj  X  sj    
		#RXX&A	"RA1D%dCA$	#A#A1E5tDA% r8   z#start,stop,stride_bytes,should_pass))r   r:   i(  T)r   r:   i)  T)Z   r`  H   T)rk  r`  I   F)r   r   iT)r   r   iFc                 (   [         R                  " S[         R                  S9nX@U nU(       a$  [        USU4SS9n[	        UR
                  S5        g[        R                  " [        SS9   [        USU4SS9  SSS5        g! , (       d  f       g= f)	z;Parametrized test for various view and stride combinations.r   r$   rf   Tr(  rN  r   N)	r   r*   r-  r   r   r   r   r   r!   )startstopstride_bytesshould_passr   r  r4   s          r   )test_as_strided_checked_view_parametrizedrs  e  sn     			#RXX&A	Aq|oDQQWWd#]]:_=q|oDQ >==s   ,B
B)FF)Hr   numpyr   numpy._core._rational_testsr   r   numpy.lib._stride_tricks_implr   r   r   r   r	   r
   numpy.testingr   r   r   r   r   r   r"   r7   r>   rB   rK   rY   r^   ra   rj   rm   ru   r}   r   r   r   r   r   r   r   r   r   r
  r   r"  r%  markparametrizeint8int16int32r-  uint8uint16uint32uint64float32r@   	complex64
complex128r*  r1  r:  r=  rA  rP  rV  rZ  r]  rc  rh  rj  rs  rM   r8   r   <module>r     sh     ;  &;,0 46B2B@=1Oh-4K&C"&9RC"2(jcF cFL&$? ?
<' <"#J-)`7() 





		
		
		







"#"  
$
$ 55  !34! 5! .G/.G$ EE	
! )

R

Rr8   