+
   +Tt                   ^   ^ RI t ^ RIt^ RIHtHt ^ RIHtHtH	t	H
t
HtHt ^ RIHtHtHtHtHt R tR tR5R ltR tR	 tR
 tR tR tR tR tR tR tR tR t R t!R t"R t# ! R R4      t$R t% ! R R]PL                  4      t' ! R R]'4      t(R t)R t*R t+R  t,] PZ                  P]                  R!]P^                  ]P`                  ]Pb                  ]Pd                  ]Pf                  ]Ph                  ]Pj                  ]Pl                  ]Pn                  ]Pp                  ]Pr                  ]Pt                  .4      R" 4       t;] PZ                  P]                  R#. R6O4      R$ 4       t<] PZ                  P]                  R%. R7O4      R& 4       t=] PZ                  P]                  R'. R8O4      R( 4       t>] PZ                  P]                  R). R9O4      R* 4       t?] PZ                  P]                  R+. R:O4      R, 4       t@R- tAR. tBR/ tCR0 tDR1 tER2 tF] PZ                  P]                  R3. R;O4      R4 4       tGR# )<    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                     V  Uu. uF  p\         P                  ! V4      NK  	  pp\        V!  pV Uu. uF  qUP                  NK  	  ppV.\	        V4      ,          p\        Wg4       R # u upi u upi N)npzerosr   shapelenr   )input_shapesexpected_shapesinarrays	outarraysa	outshapesexpecteds   &&      G/usr/lib/python3.14/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                     V  Uu. uF  p\         P                  ! V4      NK  	  pp\        \        \        .VO5!   R # u upi r   )r   r   r   
ValueErrorr   )r   r   r   s   &  r    assert_incompatible_shapes_raiser"   !   s5     &22\\H2*.:: 3s   >c                    \         P                  ! V \        R 7      p\        \         P                  P	                  V4      4      p\         P
                  ! V4      P                  V4      pV'       d   VP                  pVP                  pV'       d   VRRR1,          pVRRR1,          pWF,           p\        WF4      w  r\        Wy4       R# )dtypeN)
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                      \         P                  ! ^
4      p \         P                  ! ^
4      p\        W4      w  r#\        W4       \        W4       R# )
   N)r   r*   r   r   )xr4   bxbys       r   	test_samer>   ?   s8    
		"A
		"Aa#FBqqr8   c                      \         P                  ! ^
4      p \         P                  ! ^
4      p\        \        R4      ;_uu_ 4        \	        WRR7       RRR4       R#   + '       g   i     R# ; i)r:   zgot an unexpected keywordfloat64r$   N)r   r*   r   	TypeErrorr   )r;   r4   s     r   test_broadcast_kwargsrB   F   sF     			"A
		"A	Y(C	D	DY/ 
E	D	D	Ds   AA.	c                     \         P                  ! . RO.4      p \         P                  ! ^.^.^..4      p\        W4      w  r#\         P                  ! . RO. RO. RO.4      pVP                  p\	        WB4       \	        WS4       R# )   NrD         )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                  v    . ROp V  F.  pV.p\        W!4       W.p\        W14       WV.p\        WA4       K0  	  R# )rD   N)
 rD   rG   r   rD   )r   rG   rD   r   )rG   r   rD   rG   rG   rD   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                      RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR	.R	.R
R	.R	.RR
.R	.RR	.R	.RR.R.RR
.R
..p V  F&  w  r\        W4       \        VRRR1,          V4       K(  	  R# )rD   NrN   rO   rR   rT   rS   rD   rD   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                  *   RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR	.R	.R	R
.R
.R	R.R
.RR
.R
.RR
.R
.RR	.R.RR.R.RR.R.RR.R.RR.R..p V  F&  w  r\        W4       \        VRRR1,          V4       K(  	  R# )rG   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                  t    RR.RR.. RORR..p V  F#  p\        V4       \        VRRR	1,          4       K%  	  R# )
rG   NrO      rF   rG   rF   rO   rO   rc   rD   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            
         . RR.R.NRR	.R	.NR
R	.R	.NRR
.R	.NRR	.R	.NRR.R.NRR
.R
.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR	.R	.NRR
.R	.NRR	.R	.NRR	.R	.NRR.R.NRR
.R
.NRR.R.NRR.R.NRR
.R
.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.NRR.R.Np V  F  w  r\        V^ ,          V^,          RV^ ,           RV^,           24       \        V^,          V^ ,          4       \        V^ ,          V^,          R4       RV9  g   Kr  \        V^ ,          V^,          RR4       \        V^ ,          V^,          RR4       K  	  R# )rD   zShapes:  TFNrN   rO   rR   rT   rS   r[   rQ   r\   rP   rM   r`   )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                     \         P                  ! ^ 4      R\         P                  ! ^ 4      .\         P                  ! ^ 4      R\         P                  ! ^4      .\         P                  ! ^ 4      R\         P                  ! ^4      .\         P                  ! ^4      R\         P                  ! ^4      .\         P                  ! ^4      R\         P                  ! ^4      .\         P                  ! ^4      R\         P                  ! R4      .\         P                  ! ^4      R\         P                  ! ^4      .\         P                  ! ^4      R\         P                  ! ^4      P                  ^R4      .\         P                  ! ^4      R	\         P                  ! . R
O. R
O.4      .\         P                  ! ^ 4      ^ \         P                  ! ^ 4      .\         P                  ! ^4      ^\         P                  ! ^4      .\         P                  ! ^4      ^\         P                  ! ^4      .\         P                  ! ^4      R\         P                  ! ^ 4      .\         P                  ! R4      R\         P                  ! R4      .\         P                  ! R4      R\         P                  ! R4      ..p V  F  w  rp\        W4      p\        W44       K  	  R# )r   Nr`   rN   rO   rf   rE   rR   r&   re   r   rD   rF   rD   rF   )r   rF   rF   rD   )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                     aa RR.RR.RR.RR.RR.RR.R	R
.RR.RR.RR.R	R..p V  F1  w  po\         P                  ! V4      o\        \        VV3R l4       K3  	  R# )r   c                     < \        S S4      # r   )r	   )arrtarget_shapes   r   <lambda>*test_broadcast_to_raises.<locals>.<lambda>  s    ,sL*Ir8   Nr`   rM   rN   rO   rf   rc   rp   rq   r[   r&   )r&   )r&   rF   )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                     a  \        \        4       R4       \        \        ^^.4      R4       \        \        \        P                  ! R4      4      R4       \        \        \        P                  ! R4      \        P                  ! R4      4      R4       \        \        \        P                  ! R4      .^ ,          !  R4       \        \        \        P                  ! R4      .^d,          !  R4       \        \        \        P                  ! ^4      .^ ,          ^.,           !  R4       \        P                  ! ^4      .^ ,          \        P                  ! ^4      .^ ,          ,           o \	        \
        V 3R l4       R# )rD   c                     < \        S !  # r   )r   bad_argss   r   rz   &test_broadcast_shape.<locals>.<lambda>-      &6&Ar8   NrM   rf   r[   rG   rd   rp   )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                     . R.R.R.R.R.RR.R.R.R.RR.R.. R	OR
.R.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.RR.R.^R.R..p V  F  w  r\        \        V!  V4       K  	  \        \        R.^ ,          !  R4       \        \        R.^d,          !  R4       \        \        R.^ ,          !  R4       R# )   NrM   r   rp   rf   r[   r         rD   ))r   r   r   r   )r   rD   r   )r   r   r   rR   rS   rT   rQ   r\   rP   r`   rN   rO   rG   rF   )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                     aa RR.RR.. ROR	R
.. RO^R..p V  F  o\        \        V3R l4       K  	  R.^ ,          R.^ ,          ,           o\        \        V3R l4       R# )rG   c                     < \        S !  # r   r   )r   s   r   rz   .test_broadcast_shapes_raises.<locals>.<lambda>d  s    *:L*Ir8   c                     < \        S !  # r   r   r   s   r   rz   r   g  r   r8   NrO   rc   re   rf   rg   rh   ri   )rp   rS   r   )r:   r   )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                  v   \         P                  ! R .4      p \        V 4      p\         P                  ! R .4      p\        V\         P                  ! R .4      4       \         P                  ! . R	O4      p \        V R
^V P                  ,          3R7      p\         P                  ! ^^.4      p\        W4       \         P                  ! . R	O4      p \        V R^ ^V P                  ,          3R7      p\         P                  ! . R	O. R	O. R	O.4      p\        W4       \         P
                  ! RR.4      p\         P                  ! RVR7      p \         P                  ! ^^4      V R&   \        V R^ V P                  3R7      p. R	O.^,          pR .^,          .^,          p\        VP
                  V4       \        WAR,          4       \        WQR,          4       \         P                  ! RRR7      p \        V R^ V P                  3R7      p\        V P
                  VP
                  4       \         P
                  ! RR.RR./4      p\         P                  ! RVR7      p \        V R^ V P                  3R7      p\        V P
                  VP
                  4       \        ^4       Uu. uF  p\        V4      NK  	  pp\         P                  ! V\        R7      p \        V R^ V P                  3R7      p\        V P
                  VP
                  4       \        V.^,          V4       \        ^4       Uu. uF  p\        V4      NK  	  pp\         P                  ! V\        R7      p \        V R^ V P                  3R7      p\        V P
                  VP
                  4       \        V.^,          V4       R # u upi u upi )Nr   stridesnumobjr$   V4names formatsrD   rF   rG   rd   rf   r   )r   i4)r   Orc   )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&,,' 
7RD)dV4	5B
R A!QZZAF&,,' $Ah'h!hA'
(#A!QZZAF&,,'sQw'  %Qx(x!1xA(
)$A!QZZAF&,,'sQw' 	( 	)s   "N1/N6c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestSlidingWindowViewi  c                    \         P                  ! ^4      p\        V^4      p\         P                  ! ^ ^.^^.^^.^^..4      p\	        W#4       R# )r   N)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                   \         P                  R,          w  r^
V,          V,           pRp\        W44      p\         P                  ! ^ ^.^
^..^^.^^..^^.^^...^
^.^^..^^.^^..^^.^^....4      p\	        WV4       R# )NrG   NNr   Nrd   N)rF   rF   r   ogridr
   rH   r   r   r   jrx   r   r   r   s   &      r   test_2dTestSlidingWindowView.test_2d  s    xx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                    \         P                  R,          w  r^
V,          V,           p\        V^^ 4      p\         P                  ! . RO. RO. RO. RO..4      p\	        WE4       R# )r   Nr   )r   r:      )rD         )rF         )rG         r   r   r   r   rx   r   r   s   &     r   test_2d_with_axis'TestSlidingWindowView.test_2d_with_axis  sZ    xx1fqj&sAq188k)))+ , - 	8.r8   c                    \         P                  R,          w  r^
V,          V,           p\        VRR4      p\         P                  ! . RO. RO... RO. RO... R	O. R
O...4      p\	        WE4       R# )r   Nr   re   r[   ro   rE   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  sy    xx1fqj&sFF;88y(* +++- .++- .	/ 0 	8.r8   c                   \         P                  R,          w  r^
V,          V,           pRp\        W44      p\         P                  ! . RO. RO.. RO. RO... RO. RO.. RO. R	O... RO. R
O.. R	O. RO...4      p\	        WV4       R# )r   Nr   r   re   ro   r   rE   r   r   r   )          )r   r   !   r   r   s   &      r   test_2d_without_axis*TestSlidingWindowView.test_2d_without_axis  s    xx1fqj&s288y,7(,79+\:+\:<+\:+\:<	= > 	8.r8   c                   \         P                  R,          w  r^
V,          V,           p\        P                  ! \        RR7      ;_uu_ 4        \        VR	4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        VR
4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        VRRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        VR4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lq; i  + '       g   i     R# ; i)r   zcannot contain negative valuesmatchNz3must provide window_shape for all dimensions of `x`z2Must provide matching length window_shape and axis)axisz.window shape cannot be larger than input arrayr   )r&   rG   rN   rh   rP   r   r   )r   r   pytestraisesr!   r
   )r   r   r   rx   s   &   r   test_errors!TestSlidingWindowView.test_errors  s   xx1fqj]]:-MNNW- O]]KM M  T*M ]]JL L  YV<L ]]FH H  V,H H ONM ML LH H Hs0   DD% D8;ED"	%D5	8E	E	c                   \         P                  ! ^4      p\        V^RR7      p\        VP                  P
                  '       * 4       \        P                  ! \        RR7      ;_uu_ 4        ^VR&   RRR4       \        V^RR7      p\        VP                  P
                  4       ^VR&   \        V\         P                  ! . R	O4      4       R#   + '       g   i     Lf; i)
r   F	writeablez#assignment destination is read-onlyr   NTr\   rP   )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   -CC!	c           
     X    ! R  R\         P                  4      p\         P                  ! ^4      P                  V4      p\	        \        \        V^RR7      V4      '       * 4       \	        \        \        V^RR7      V4      4       \	        \        \        V^4      V4      '       * 4       R# )c                       ] tR tRtRtR# )1TestSlidingWindowView.test_subok.<locals>.MyArrayi  rM   N)__name__
__module____qualname____firstlineno____static_attributes__rM   r8   r   MyArrayr     s    r8   r   FsubokTN)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   __classdictcell____classdict__s   @r   r   r     s4     ///
//-$;
F 
Fr8   r   c                     \         P                  ! ^
4      p \        V RR7      p\        VP                  P
                  '       * 4       \        V RR7      p\        VP                  P
                  4       ^VR&   \        V \         P                  ! V ^4      4       RV P                  n        \        V RR7      p\        V RR7      p\        VP                  P
                  '       * 4       R# )r:   Fr   T.N)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                   &   a  ] tR tRt o R tRtV tR# )VerySimpleSubClassi  c                P    \         P                  ! VR R/VB P                  V 4      # )r   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   r   r   s   @r   r   r     s     ? ?r8   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )SimpleSubClassi  c                b    \         P                  ! VR R/VB P                  V 4      pRVn        V# )r   Tsimple)r   rH   r   info)r   r   r   r   s   &*, r   r   SimpleSubClass.__new__  s1    xx4T4V499#>	r8   c                8    \        VR R4      R,           V n        R# )r  r   z
 finalizedN)getattrr  )r   r   s   &&r   __array_finalize__!SimpleSubClass.__array_finalize__"  s    C,|;	r8   )r  N)r   r   r   r   r   r
  r   r   r   s   @r   r  r    s     
< <r8   r  c                     \        . RO4      p \        \        V 4      \         J 4       \        V R^V P                  ,          3R7      p\        \        V4      \
        P                  J 4       \        V R^V P                  ,          3RR7      p\        \        V4      \         J 4       \        . RO4      p \        V R^V P                  ,          3RR7      p\        \        V4      \        J 4       \        VP                  R8H  4       \
        P                  ! \        V 4      4      P                  R	^4      p\        W4      w  r\        \        V4      \
        P                  J 4       \        \        V4      \
        P                  J 4       \        VP                  VP                  8H  4       \        WRR7      w  r\        \        V4      \        J 4       \        VP                  R8H  4       \        \        V4      \
        P                  J 4       \        VP                  VP                  8H  4       R
p\        W4      p\        \        V4      \
        P                  J 4       \        VP                  V8H  4       \        WRR7      p\        \        V4      \        J 4       \        VP                  R8H  4       \        VP                  V8H  4       R# )rD   r   T)r   r   r   zsimple finalizedr   Nr   rf   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            	      2   \         P                  ! . RO4      p \        V R4      p\        VP                  P
                  R4       \        \        VP                  \        R4      ^ 4       R\        V 4      3R\        ^ V 4      3.pV F  w  r4\        W44       F  w  rQV'       d   \        P                  ! \        4      ;_uu_ 4        \        VP                  P
                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        ^ VR&   RRR4       \        VP                  P
                  R4       K  \        VP                  P
                  R4       K  	  K  	  \        V 4      \        ^ V 4      3 FB  pV F9  pRVP                  n        \        VP                  P
                  R4       ^ VR&   K;  	  KD  	  RV P                  n        \        ^ V 4      w  ra\        VP                  P
                  R4       R	p^ .p\!        \         P                  ! ^ 4      Wx4      p	\         P"                  ! R
4      p
\        W4      w  r\%        VP&                  VP&                  8H  4       R#   + '       g   i     EL; i  + '       g   i     ELw; i)rD   FNT:NNNrE   re   FTFrf   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0 !7!7> 1\\"45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0555s   !I1	J	1JJc                  2   \         P                  ! . RO4      p R\        V 4      3R\        ^ V 4      3.pV F]  w  r#\        W#4       FI  w  rEV'       d    \	        V4      P
                  '       g   Q hK,  \	        V4      P
                  '       g   KI  Q h	  K_  	  R# )rD   NrE   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2%f-66666 +E ",r8   c                     \         P                  ! R \        R7      p \         P                  ! R .^,          \        R7      p\        V R4      p\	        W4       \        V \         P                  ! ^4      4      w  r#\	        W4       R# )r   r$   NrO   )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                    \         P                  ! ^
V R7      p\        VRVP                  ^,          3RR7      pVP                  R8X  g   Q hVP
                  V 8X  g   Q hR# )z=Test as_strided with check_bounds=True with different dtypes.r$   Tr   r   check_boundsNr   )r   r*   r   r   r   r%   )r%   r;   r4   s   &  r   (test_as_strided_checked_different_dtypesr0    sQ    & 			"E"A1D1::>*;$OA77d??77er8   zsize,view_size,stride_multc                    \         P                  ! V \         P                  R7      pVP                  p\	        W13WB,          3RR7      pVP
                  V38X  g   Q hVRRV1,          RV p\        WV4       R# )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_stridesr7    sm     			$bhh'AzzH	(>'@t	A 77yl""";
+Hq#r8   zshape,window_shapec                   \         P                  ! V ^ ,          \         P                  R7      pVP                  pV ^ ,          V^ ,          ,
          ^,           pWA^ ,          3pW33p\	        W%VRR7      pVP
                  V8X  g   Q h\        V^ ,          VRV^ ,           4       \        VR,          W!^ ,          ) R 4       R# )z Test sliding window views in 1D.r$   Tr-  Nr&   r2  )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   c                    \         P                  ! \         P                  ! V 4      \         P                  R7      P	                  V 4      p\        VRR7      p\        W!4       R# )z$Test 2D arrays with default strides.r$   T)r.  N)r   r*   prodr3  r+   r   r   )r   r;   r4   s   &  r   *test_as_strided_checked_2d_default_stridesr@    s?     			"''%.199%@A14(Aqr8   r4  c                    \         P                  ! ^*.\         P                  R7      p\        W3RRR7      pVP                  V 38X  g   Q hV ^ 8  d%   \        \         P                  ! V^*8H  4      4       R# R# )z0Test zero strides (broadcasting a single value).r$   Tr-  Nr`   )r   rH   r3  r   r   r   all)r4  r;   r4   s   &  r   0test_as_strided_checked_zero_stride_broadcastingrC    s^     	"RXX&A1GTEA77tgaxqBw  r8   zsize,shape,stridesc           	         \         P                  ! V \         P                  R7      p\        P                  ! \
        RR7      ;_uu_ 4        \        W1VRR7       RRR4       R#   + '       g   i     R# ; i)z:Test that out-of-bounds positive strides raise ValueError.r$   out of boundsr   Tr-  Nr   r*   r3  r   r   r!   r   )r4  r   r   r;   s   &&& r   6test_as_strided_checked_out_of_bounds_positive_stridesrG    sD    2 			$bhh'A	z	9	917F 
:	9	9	9s   A$$A5	c                     \         P                  ! R\         P                  R7      p V R,          p\        VRRRR7      p\	        VP
                  R4       \	        V^ ,          ^ 4       \	        V^,          ^24       R# )	zaTest as_strided

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

  r$   :NrF   NTr-  Nrf   )i  r   r*   r3  r   r   r   r   r  r4   s      r   ,test_as_strided_checked_view_of_larger_arrayrL    s]     			$bhh'A	"A 	1D&tDA$1q1rr8   c                     \         P                  ! R\         P                  R7      p V R,          p\        VRRRR7      p\	        VP
                  R4       \	        V^ ,          ^d4       \	        V^,          ^n4       R# )	z[Test as_strided

- with check_bounds=True
- on a view that doesn't start at the beginning.
rI  r$   :d   f   NTr-  Nrf   )P   rJ  rK  s      r   (test_as_strided_checked_view_with_offsetrQ  (  s[     			$bhh'A	'
A1D%dCA$1s1sr8   c            	        \         P                  ! R\         P                  R7      p V R,          p\        P                  ! \
        RR7      ;_uu_ 4        \        VR	R
RR7       RRR4       R#   + '       g   i     R# ; i)zDTest that negative strides on a view correctly detect out of bounds.rI  r$   :r   r   NrE  r   Tr-  Nrf   )irF  r   r  s     r   3test_as_strided_checked_view_out_of_bounds_negativerT  8  sM    
		$bhh'A	#A	z	9	91D&tD 
:	9	9	9   A..A?	c            	        \         P                  ! ^d\         P                  R7      p V R,          p\        P                  ! \
        RR7      ;_uu_ 4        \        VRR	RR7       RRR4       R#   + '       g   i     R# ; i)
zDTest that positive strides on a view correctly detect out of bounds.r$   :_   a   NrE  r   Tr-  Nrf   )   rF  rS  s     r   3test_as_strided_checked_view_out_of_bounds_positiverZ  B  sM    
		#RXX&A	%A	z	9	91D&tD 
:	9	9	9rU  c                    \         P                  ! R\         P                  R7      p V R,          pVR,          p\        VRR	RR7      p\	        VP
                  R4       \	        V^ ,          ^4       \	        V^,          ^#4       R# )
z;Test as_strided with check_bounds=True on a view of a view.rI  r$   :r:   rN  N:r   r:   NTr-  Nrf   )   rJ  )r   r  cr4   s       r   $test_as_strided_checked_nested_viewsr^  L  sb    
		$bhh'A	&	A	$A1D&tDA$1r1rr8   c                 
   \         P                  ! ^\         P                  R7      p V R,          p\        VRRRR7      p\	        VP
                  R4       V R,          p\        VR	RRR7      p\	        VP
                  R	4       R# )
zTest various slicing scenarios.r$   :r:   r   NTr-  :NNrF   Nr/     r:   rJ  )r   r  r4   r]  s       r   $test_as_strided_checked_sliced_arrayrc  X  sd    
		#RXX&A	%A1D%dCA$	#A1E5tDA% r8   z#start,stop,stride_bytes,should_passc           	     \   \         P                  ! ^d\         P                  R7      pW@V pV'       d)   \        VRV3RR7      p\	        VP
                  R4       R# \        P                  ! \        RR7      ;_uu_ 4        \        VRV3RR7       RRR4       R#   + '       g   i     R# ; i)z;Parametrized test for various view and stride combinations.r$   Tr-  rE  r   Nrf   )	r   r*   r3  r   r   r   r   r   r!   )startstopstride_bytesshould_passr   r  r4   s   &&&&   r   )test_as_strided_checked_view_parametrizedri  e  st     			#RXX&A	Aq|oDQQWWd#]]:_==q|oDQ >===s   ?BB+	)FF))r:   r   rD   )r:   r   rF   )r   r:   rF   )rN  r:   r:   ))rb  rO   )r   r/  )rN  rb  )r   )r   r   )r:   r:   )r   rD   rF   r:   rN  ))r:   r/  )r   )r:   rb  r`  )r   )   r`  )r:   rj     )r:   rk  rm  )r   r   )rP  rn  )r   )rG   r:   )@   rn  )r:   r/  )r:   rb  rp  )r   r/  )i)r:   rF   rG   rd   )`   r   rq  )r   r   )ro  rq  )r   rr  )ir   rn  ))r   r:   i(  T)r   r:   i)  T)Z   rW  H   T)rt  rW  I   F)r   r   iT)r   r   iF)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int32r3  uint8uint16uint32uint64float32r@   	complex64
complex128r0  r7  r=  r@  rC  rG  rL  rQ  rT  rZ  r^  rc  ri  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   