
    BwgY                     :   d dl Zd dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZmZ d dlZd Zd Zd!dZd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z# G d d      Z$d Z% G d dejL                        Z' G d de'      Z(d Z)d Z*d Z+d  Z,y)"    N)rational)assert_equalassert_array_equalassert_raisesassert_assert_raises_regexassert_warns)
as_stridedbroadcast_arrays_broadcast_shapebroadcast_tobroadcast_shapessliding_window_viewc                     | D cg c]  }t        j                  |       }}t        | }|D cg c]  }|j                   }}|gt	        |      z  }t        ||       y c c}w c c}w N)npzerosr   shapelenr   )input_shapesexpected_shapesinarrays	outarraysa	outshapesexpecteds           Y/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_stride_tricks.pyassert_shapes_correctr      sc     &222H2 (+I"+,Q,I,#h-/HH%	 3,s
   A A%c                 |    | D cg c]  }t        j                  |       }}t        t        t        g|  y c c}w r   )r   r   r   
ValueErrorr   )r   r   r   s      r    assert_incompatible_shapes_raiser"      s4     &222H2*.:: 3s   9c                 j   t        j                  | t              }t        t         j                  j	                  |            }t        j
                  |      j                  |      }|r|j                  }|j                  }|r|d d d   }|d d d   }||z   }t        ||      \  }}	t        ||	       y )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 	RAb"%FBq"    c                      t        j                  d      } t        j                  d      }t        | |      \  }}t        | |       t        ||       y )N
   )r   r*   r   r   )xr4   bxbys       r   	test_samer>   7   s@    
		"A
		"Aa#FBq"q"r8   c                      t        j                  d      } t        j                  d      }t        t        d      5  t	        | |d       d d d        y # 1 sw Y   y xY w)Nr:   zgot an unexpected keywordfloat64r$   )r   r*   r   	TypeErrorr   )r;   r4   s     r   test_broadcast_kwargsrB   >   sJ     			"A
		"A	Y(C	D 0AY/0 0 0s   AAc                     t        j                  g dg      } t        j                  dgdgdgg      }t        | |      \  }}t        j                  g dg dg dg      }|j                  }t	        ||       t	        ||       y )N         rE   rF   rG   )r   arrayr   r,   r   )r;   r4   r<   r=   bx0by0s         r   test_one_offrK   I   sn    
)A
1#sQC!Aa#FB
((Iy)4
5C
%%CsBsBr8   c                  z    g d} | D ]2  }|g}t        ||       ||g}t        ||       |||g}t        ||       4 y )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   S   sT    D  	4wlE2mU3u-mU3	4r8   c                      ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd	dgdgdd	gdgddgdgddgdgdd	gd	gg} | D ]#  \  }}t        ||       t        |d d d
   |       % y )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^   n   s    
 t
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"D )- B$nlN;l4R40.ABr8   c                      ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgdd	gd	gdd
gd	gdd	gd	gdd	gd	gddgdgdd
gd
gddgdgddgdgdd
gd
gg} | D ]#  \  }}t        ||       t        |d d d   |       % y )NrM   rO   rT   rS   rN   r[   rR   r   r\   rP   rQ   r&   rU   r]   s      r   3test_two_compatible_by_prepending_ones_input_shapesra      s0   
 dT
 
 
 
fv
$ 
 
 
fv
fv
dT
 
 
 
fv
$ 
 
 
fv
fv)D, )- B$nlN;l4R40.ABr8   c                  f    ddgddgg dddgg} | D ]  }t        |       t        |d d d            y )	NrO      rF   rG   rF   rO   rO   rc   rE   rG   rd   rF   rG   rG   r&   )r"   )rV   r   s     r   )test_incompatible_shapes_raise_valueerrorrj      sN     
t		I	D  =(6(dd);<=r8   c            
         g ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd	dgdgdd	gdgddgdgddgdgdd	gd	gd
dgdgddgdgddgdgddgdgd
dgdgddgdgddgdgddgdgd
dgdgd
dgdgd
dgdgddgdgdd	gdgddgdgd
dgdgddgdgdd	gd	gddgdgd
dgdgd
d	gd	g} | D ]v  \  }}t        |d   |d   d|d   d|d          t        |d   |d          t        |d   |d   d       d
|vsOt        |d   |d   dd       t        |d   |d   dd       x y )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 )- O$n\!_l1o0<QaQ	S 	\!_l1o>\!_l1otD \! a,q/5$O a,q/4NOr8   c                  f   t        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      d	t        j                  d	      gt        j                  d      dt        j                  d      gt        j                  d      d
t        j                  d      j                  dd      gt        j                  d      dt        j                  g dg dg      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gt        j                  d      dt        j                  d      gg} | D ]  \  }}}t        ||      }t        ||         y )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( )- -$UHk518V,-r8   c                      ddgddgddgddgddgddgddgd	dgdd
gddgddgg} | D ].  \  }t        j                  |      t        t        fd       0 y )Nr`   rM   rN   rO   rf   rc   rp   rq   r[   r&   )r&   )r&   rF   c                      t               S r   )r   )arrtarget_shapes   r   <lambda>z*test_broadcast_to_raises.<locals>.<lambda>  s    ,sL*I r8   )r   r   r   r!   )rV   
orig_shaperx   ry   s     @@r   test_broadcast_to_raisesr|     s    	r
	r
	r
	t	t	t			r
	u	D %) K 
Lhhz"j"IJKr8   c                      t        t               d       t        t        ddg      d       t        t        t        j                  d            d       t        t        t        j                  d      t        j                  d            d       t        t        t        j                  d      gdz   d       t        t        t        j                  d      gd	z   d       t        t        t        j                  d      gdz  dgz    d       t        j                  d      gdz  t        j                  d
      gdz  z    t	        t
         fd       y )NrM   rE   rF   rf   r[   rG   rd   rp       d   rG   c                      t          S r   )r   bad_argss   r   rz   z&test_broadcast_shape.<locals>.<lambda>%      &6&A r8   )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                     g dgdgdgdgdgddgdgdgdgddgdgg ddgd	gd	gd
dgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgg} | D ]  \  }}t        t        | |        t        t        dgdz   d       t        t        dgdz   d       t        t        dgdz   d       y )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   (  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: '+ D"l%|4lCD !VHrM3V<!VHsN4f= !TFRK148r8   c                      ddgddgg dddgg dd	dgg} | D ]  t        t        fd
        dgdz  dgdz  z   t        t        fd       y )NrO   rc   re   rf   rg   rh   ri   )rp   rS   r   )r:   r   rF   c                      t          S r   r   )r   s   r   rz   z.test_broadcast_shapes_raises.<locals>.<lambda>\  s    *:L*I r8   r   c                      t          S r   r   r   s   r   rz   z.test_broadcast_shapes_raises.<locals>.<lambda>_  r   r8   )r   r!   )rV   r   r   s    @@r   test_broadcast_shapes_raisesr   Q  sp     
t		I)	
FD  Kj"IJK v{dVb[(H*ABr8   c                     t        j                  d g      } t        |       }t        j                  d g      }t        |t        j                  d g             t        j                  g d      } t        | dd| j                  z  f      }t        j                  ddg      }t        ||       t        j                  g d      } t        | ddd| j                  z  f      }t        j                  g dg dg dg      }t        ||       t        j
                  d	d
g      }t        j                  d|      } t        j                  dd      | d<   t        | dd| j                  f      }g dgdz  }d gdz  gdz  }t        |j
                  |       t        ||d          t        ||d          t        j                  dd      } t        | dd| j                  f      }t        | j
                  |j
                         t        j
                  dgdgd      }t        j                  d|      } t        | dd| j                  f      }t        | j
                  |j
                         t        d      D cg c]  }t        |       }}t        j                  |t              } t        | dd| j                  f      }t        | j
                  |j
                         t        |gdz  |       y c c}w )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   a_viewr   dtexpected_numexpected_objirs           r   test_as_stridedr   b  sU   
$A]FxxHvrxx/0
AAJJ/@AFxxAHvx(
A!Q^1DEFxx|\BCHvx( 
=,/	0B
R AyyAAeH!QZZAF >A%LF1H:a<Lr"|VE]3|VE]3 	T"A!QZZAF&,,' 
RDdV4	5B
R A!QZZAF&,,' $Ah'!'A'
(#A!QZZAF&,,'sQw'	 	(s   <K6c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestSlidingWindowViewc                     t        j                  d      }t        |d      }t        j                  ddgddgddgddgg      }t	        ||       y )Nr   rF   r   rE   rG   rd   )r   r*   r   rH   r   )selfrx   arr_viewr   s       r   test_1dzTestSlidingWindowView.test_1d  sU    iil&sA.88aVVVV% & 	8X.r8   c                    t         j                  d dd df   \  }}d|z  |z   }d}t        ||      }t        j                  ddgddggddgdd	ggddgd	d
gggddgddggdd	gddggd	d
gddgggg      }t	        ||       y )NrG   rd   r:   )rF   rF   r   rE      rF                     r   ogridr   rH   r   r   r   jrx   r   r   r   s          r   test_2dzTestSlidingWindowView.test_2d  s    xxBQB1dQh&sE2881vBx0 !1vBx0 !1vBx02 !#Bx"b2 "Bx"b2 "Bx"b245 6 	8X.r8   c                     t         j                  d dd df   \  }}d|z  |z   }t        |dd      }t        j                  g dg dg dg dgg      }t	        ||       y )	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_axisz'TestSlidingWindowView.test_2d_with_axis  sj    xxBQB1dQh&sAq188k)))+ , - 	8X.r8   c                     t         j                  d dd df   \  }}d|z  |z   }t        |dd      }t        j                  g dg dggg dg d	ggg d
g dggg      }t	        ||       y )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_axisz+TestSlidingWindowView.test_2d_repeated_axis  s    xxBQB1dQh&sFF;88y(* +++- .++- .	/ 0 	8X.r8   c                    t         j                  d dd df   \  }}d|z  |z   }d}t        ||      }t        j                  g dg dgg dg dggg dg dgg dg d	ggg dg d
gg d	g dggg      }t	        ||       y )Nrd   r:   re   ro   r   rD   r   r   r   )      r   )r   r   !   r   r   s          r   test_2d_without_axisz*TestSlidingWindowView.test_2d_without_axis  s    xxBQB1dQh&sE288y,7(,79+\:+\:<+\:+\:<	= > 	8X.r8   c                 0   t         j                  d dd df   \  }}d|z  |z   }t        j                  t        d      5  t        |d       d d d        t        j                  t        d      5  t        |d       d d d        t        j                  t        d      5  t        |d	d
       d d d        t        j                  t        d      5  t        |d       d d d        y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   RxY w# 1 sw Y   y xY w)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_errorsz!TestSlidingWindowView.test_errors  s   xxBQB1dQh]]:-MN 	.W-	.]]KM 	+  T*	+ ]]JL 	=  YV<	= ]]FH 	-  V,	- 	-	. 	.	+ 	+	= 	=	- 	-s0    C(0C4 D D(C14C= D	Dc                    t        j                  d      }t        |dd      }t        |j                  j
                          t        j                  t        d      5  d|d<   d d d        t        |dd	      }t        |j                  j
                         d|d
<   t        |t        j                  g d             y # 1 sw Y   ]xY w)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_writeablez$TestSlidingWindowView.test_writeable  s    iil"3U;DJJ((()]];= 	 DJ	 #3T:

$$%T
3 9:	 	s   CC
c           	      D    G d dt         j                        }t        j                  d      j                  |      }t	        t        t        |dd      |              t	        t        t        |dd      |             t	        t        t        |d      |              y )Nc                       e Zd Zy)1TestSlidingWindowView.test_subok.<locals>.MyArrayN)__name__
__module____qualname__rM   r8   r   MyArrayr     s    r8   r   r   rF   FsubokT)r   ndarrayr*   r   r   
isinstancer   )r   r   rx   s      r   
test_subokz TestSlidingWindowView.test_subok  s    	bjj 	 iil(J239> @&( ( 	) 	
.sATBGLMJ23:GDDEr8   N)r   r   r   r   r   r   r   r   r   r   r   rM   r8   r   r   r     s+    ///
//-$;
Fr8   r   c                     t        j                  d      } t        | d      }t        |j                  j
                          t        | d      }t        |j                  j
                         d|d<   t        | t        j                  | d             d| j                  _        t        | d      }t        | d      }t        |j                  j
                          y )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                       e Zd Zd Zy)VerySimpleSubClassc                 N    t        j                  |ddi|j                  |       S )Nr   T)r   rH   r   )clsargskwargss      r   __new__zVerySimpleSubClass.__new__	  s&    xx4T4V499#>>r8   N)r   r   r   r   rM   r8   r   r   r     s    ?r8   r   c                       e Zd Zd Zd Zy)SimpleSubClassc                 `    t        j                  |ddi|j                  |       }d|_        |S )Nr   Tsimple)r   rH   r   info)r   r   r   r   s       r   r   zSimpleSubClass.__new__  s1    xx4T4V499#>	r8   c                 .    t        |dd      dz   | _        y )Nr   r   z
 finalized)getattrr   )r   r   s     r   __array_finalize__z!SimpleSubClass.__array_finalize__  s    C,|;	r8   N)r   r   r   r   r   rM   r8   r   r   r     s    
<r8   r   c                     t        g d      } t        t        |       t         u        t        | dd| j                  z  f      }t        t        |      t
        j                  u        t        | dd| j                  z  fd      }t        t        |      t         u        t        g d      } t        | dd| j                  z  fd      }t        t        |      t        u        t        |j                  dk(         t        j                  t        |             j                  dd	      }t        | |      \  }}t        t        |      t
        j                  u        t        t        |      t
        j                  u        t        |j                  |j                  k(         t        | |d
      \  }}t        t        |      t        u        t        |j                  dk(         t        t        |      t
        j                  u        t        |j                  |j                  k(         d}t        | |      }t        t        |      t
        j                  u        t        |j                  |k(         t        | |d
      }t        t        |      t        u        t        |j                  dk(         t        |j                  |k(         y )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+NFFDLBJJ&'DLBJJ&'FLLFLL()%a$7NFFDLN*+FKK--.DLBJJ&'FLLFLL() E!U#FDLBJJ&'FLLE!"!U$/FDLN*+FKK--.FLLE!"r8   c                     t        j                  g d      } t        | d      }t        |j                  j
                  d       t        t        |j                  t        d       d       dt        |       fdt        d|       fg}|D ]  \  }}t        ||      D ]  \  }}|rvt        t              5  t        |j                  j
                  d       d d d        t        t              5  d|d d  d d d        t        |j                  j
                  d       ~t        |j                  j
                  d         t        |       t        d|       fD ]?  }|D ]8  }d|j                  _        t        |j                  j
                  d       d|d d  : A d| j                  _        t        d|       \  }}t        |j                  j
                  d       d}dg}t        t        j                  d      ||      }	t        j                   d	      }
t        |	|
      \  }}t#        |j$                  |j$                  k(         y # 1 sw Y   qxY w# 1 sw Y   axY w)
NrD   re   Fr   FTFTrf   rN   )r   rH   r   r   r   r   r   r!   __setitem__slicer   zipr	   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   <  s   xx	"H(F+F''/*f00%+qA -h89 "21h"?@BJ!+ ;g*-lG*D 	;&!!-0 ? !7!7>?!"45 " !F1I" V\\33T: V\\33T:	;; %X.$Q13  	F%)FLL"//6F1I	  %HNN H-IAv''/ EcGbhhqk5':LHHTNE$\59ME6EKK6<<'(=? ?" "s   /!H?'I?I	Ic                     t        j                  g d      } dt        |       fdt        d|       fg}|D ]J  \  }}t        ||      D ]6  \  }}|rt	        |      j
                  rJ t	        |      j
                  s6J  L y )NrD   r   r   r   )r   rH   r   r   
memoryviewreadonly)r  r  r  r  r  r  s         r   test_writeable_memoryviewr  l  s    
 xx	"H.x9: "21h"?@BJ!+ 7g*-lG*D 	7&! "&)2222%f-6666	77r8   c                     t        j                  dt              } t        j                  dgdz  t              }t        | d      }t	        ||       t        | t        j                  d            \  }}t	        ||       y )Nr   r$   rG   rO   )r   rH   objectr   r   r   rr   )rs   r   rt   r  s       r   test_reference_typesr    s`    ((3f-Kxx	0H+t,Fx( bggaj9IFAx(r8   )FF)-numpyr   numpy._core._rational_testsr   numpy.testingr   r   r   r   r   r	   numpy.lib._stride_tricks_implr
   r   r   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  rM   r8   r   <module>r     s     0   &;,0 46B2B@=1Oh-4K&C"&9RC"+(\cF cFL&$? ?
<' <"#J-)`7()r8   