
    G/PhY                     D   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j&                  Z' G d de'          Z(d Z)d Z*d  Z+d! Z,dS )#    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 | D             }t          | }d |D             }|gt          |          z  }t          ||           d S )Nc                 6    g | ]}t          j        |          S  npzeros.0ss     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_stride_tricks.py
<listcomp>z)assert_shapes_correct.<locals>.<listcomp>        222222    c                     g | ]	}|j         
S r   )shape)r   as     r   r   z)assert_shapes_correct.<locals>.<listcomp>   s    ,,,Q,,,r   )r   lenr   )input_shapesexpected_shapeinarrays	outarrays	outshapesexpecteds         r   assert_shapes_correctr(      s]     32\222H (+I,,),,,I#h--/HH%%%%%r   c                 N    d | D             }t          t          t          g|R   d S )Nc                 6    g | ]}t          j        |          S r   r   r   s     r   r   z4assert_incompatible_shapes_raise.<locals>.<listcomp>   r   r   )r   
ValueErrorr   )r"   r$   s     r    assert_incompatible_shapes_raiser,      s6     32\222H*.:::::::r   Fc                    t          j        | t                    }t          t           j                            |                    }t          j        |                              |          }|r|j        }|j        }|r|d d d         }|d d d         }||z   }t          ||          \  }}	t          ||	           d S )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_ufuncrA   !   s     
&	$	$	$B 	BKv&&''A	1		f	%	%B TT "X"X 	RAb"%%FBq"r   c                      t          j        d          } t          j        d          }t          | |          \  }}t          | |           t          ||           d S )N
   )r   r4   r   r   )xr>   bxbys       r   	test_samerG   7   sU    
	"A
	"Aa##FBq"q"r   c                      t          j        d          } t          j        d          }t          t          d          5  t	          | |d           d d d            d S # 1 swxY w Y   d S )NrC   zgot an unexpected keywordfloat64r.   )r   r4   r	   	TypeErrorr   )rD   r>   s     r   test_broadcast_kwargsrK   >   s     		"A
	"A	Y(C	D	D 0 0AY////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   A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	          ||           d S )N         rN   rO   rP   )r   arrayr   r6   r   )rD   r>   rE   rF   bx0by0s         r   test_one_offrT   I   s    
)))A
1#sQC!!Aa##FB
(IIIyyy)))4
5
5C
%CsBsBr   c                      g d} | D ]>}|g}t          ||           ||g}t          ||           |||g}t          ||           ?d S )N)
r   rN   rP   r   rN   )r   rP   rN   r   )rP   r   rN   rP   rP   rN   rP   rP   r(   )datar   r"   input_shapes2input_shapes3s        r   test_same_input_shapesra   S   s}      D  	4 	4wlE222mU333u-mU3333	4 	4r   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
         |           /d S )NrV   rW   rZ   r\   r[   rN   rN   rY   r   r   rX   r0   r]   r^   r"   r#   s      r   (test_two_compatible_by_ones_input_shapesrf   n   s   
 t
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"
&	6"D )- B B$nlN;;;l44R40.AAAAB Br   c                  4   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         |           /d S )Nr   rW   r\   r[   rV   rc   rZ   r   rd   rX   rY   r0   r]   re   s      r   3test_two_compatible_by_prepending_ones_input_shapesri      sM   
 dT
 
 
 
fv
$ 
 
 
fv
fv
dT
 
 
 
fv
$ 
 
 
fv
fv)D, )- B B$nlN;;;l44R40.AAAAB Br   c                  z    ddgddgg dddgg} | D ])}t          |           t          |d d d                    *d S )	NrW      rO   rP   rO   rW   rW   rk   rN   rP   rl   rO   rP   rP   r0   )r,   )r^   r"   s     r   )test_incompatible_shapes_raise_valueerrorrr      so     
t		I	D  = =(666(ddd);<<<<= =r   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 ]\  }}t          |d         |d         d|d         d|d                    t          |d         |d                    t          |d         |d         d           d
|vr<t          |d         |d         dd           t          |d         |d         dd           d S )NrV   rW   rZ   r\   r[   rc   rY   rd   rX   r   rh   r   rN   zShapes:  TF)rA   re   s      r   test_same_as_ufuncru      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 O$n\!_l1oo0<QaQ	S 	S 	S 	\!_l1o>>>\!_l1otDDD \!! a,q/5$OOO a,q/4NNNO Or   c                  @   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                              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          ||           'd S )Nr   rh   rV   rN   rW   rP   rn   rO   rM   rZ   r0   rm   r   rN   rO   rN   rO   )r   rO   rO   rN   )rO   r   )r   rQ   r   onesr4   r5   r   r   )r^   input_arrayr   r'   actuals        r   test_broadcast_to_succeedsr}      s   	!dBHQKK(	!dBHQKK(	!dBHQKK(	T271::&	T271::&	Y	 2 23	1tRYq\\*	1vry||33Ar::;	1vrxIII(>??@	Q

#	Q

#	Q

# 
T271::&	&"'&//2	&"'&//2%D( )- - -$UHk5118V,,,,- -r   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 ]2\  }t          j        |          t          t          fd           3d S )Nrh   r   rV   rW   rn   rk   rx   ry   rc   r0   )r0   )r0   rO   c                  $    t                     S N)r   )arrtarget_shapes   r   <lambda>z*test_broadcast_to_raises.<locals>.<lambda>  s    ,sL*I*I r   )r   r   r   r+   )r^   
orig_shaper   r   s     @@r   test_broadcast_to_raisesr     s    	r
	r
	r
	t	t	t			r
	u	D %) K K 
Lhz""j"I"I"I"I"IJJJJK Kr   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           d S )Nr   rN   rO   rn   rc   rP   rl   rx       d   rP   c                      t            S r   )r   bad_argss   r   r   z&test_broadcast_shape.<locals>.<lambda>%      &6&A r   )r   r   r   rz   r   r+   r   s   @r   test_broadcast_shaper     sG    !##R(((!1a&))4000!"'&//22F;;;!"'&//276??CCVLLL!RWV__$5$:<fEEE!RWV__$5$;=vFFF !RWQZZL2$5$;=tDDD

|b BGAJJ<"#44H*AAAABBBBBr   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           d S )Nr      rx   rn   rc   r   ))   r      r   rN   r   )r   rN   r   )r   r   r   r   rZ   r[   r\   rY   rd   rX   rh   rV   rW   rO   rP   rO   r   r   )r   r   )r^   r"   r   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 D"l%|4lCCCC!VHrM3V<<<!VHsN4f=== !TFRK1488888r   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           d S )NrW   rk   rm   rn   ro   rp   rq   )rx   r[   r   )rC   r   rO   c                      t            S r   r   )r"   s   r   r   z.test_broadcast_shapes_raises.<locals>.<lambda>\  s    *:L*I r   r   c                      t            S r   r   r   s   r   r   z.test_broadcast_shapes_raises.<locals>.<lambda>_  r   r   )r   r+   )r^   r   r"   s    @@r   test_broadcast_shapes_raisesr   Q  s     
t		I)))	
FD  K Kj"I"I"I"IJJJJv{dVb[(H*AAAABBBBBr   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                   d t          d          D             }t          j        |t                    } t          | dd| j        f          }t          | j        |j                   t          |gdz  |           d S )NrN   rO   rP   rl   rn   rO   r   stridesrN   rP   r   r   )numi4)objOrk   r.   r   r   rl   r   V4 )namesformatsc                 ,    g | ]}t          |          S r   r   )r   is     r   r   z#test_as_strided.<locals>.<listcomp>  s    '''!'''r   )r   rQ   r   r   itemsizer/   emptyr4   r   ranger   )r    a_viewr'   dtexpected_numexpected_objrs          r   test_as_stridedr   b  s   
$A]]FxHvrx//000
AAJ/@AAAFxAHvx(((
A!Q^1DEEEFx|||\\\BCCHvx((( 
=,/	0	0B
R   AyAAeH!QZAAAF LL>A%LF1H:a<Lr"""|VE]333|VE]333 	T"""A!QZAAAF&,''' 
RDdV44	5	5B
R   A!QZAAAF&,''' 	('eAhh'''A
(###A!QZAAAF&,'''sQw'''''r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestSlidingWindowViewc                     t          j        d          }t          |d          }t          j        ddgddgddgddgg          }t	          ||           d S )Nr   rO   r   rN   rP   rl   )r   r4   r   rQ   r   )selfr   arr_viewr'   s       r   test_1dzTestSlidingWindowView.test_1d  sg    ill&sA..8aVVVV% & & 	8X.....r   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	          ||           d S )NrP   rl   rC   )rO   rO   r   rN      rO                     r   ogridr   rQ   r   r   r   jr   r   r   r'   s          r   test_2dzTestSlidingWindowView.test_2d  s    xBQB1dQh&sE2281vBx0 !1vBx0 !1vBx02 !#Bx"b2 "Bx"b2 "Bx"b245 6 6 	8X.....r   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	          ||           d S )	NrP   rl   rC   r   )r   rC   r   )rN   r   r   )rO   r   r   )rP   r   r   r   r   r   r   r   r   r'   s         r   test_2d_with_axisz'TestSlidingWindowView.test_2d_with_axis  s    xBQB1dQh&sAq118kkk)kk)kk)kk+ , - - 	8X.....r   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	          ||           d S )NrP   rl   rC   rm   rc   rw   rM   rC   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    xBQB1dQh&sFF;;8yyy(yy* ++||+||- .+||+||- .	/ 0 0 	8X.....r   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	          ||           d S )Nrl   rC   rm   rw   r   rM   r   r   r   )      r   )r   r   !   r   r   s          r   test_2d_without_axisz*TestSlidingWindowView.test_2d_without_axis  s    xBQB1dQh&sE228yyy,,,7(yy,,,79+||\\\:+||\\\:<+||\\\:+||\\\:<	= > > 	8X.....r   c                 j   t           j        d dd df         \  }}d|z  |z   }t          j        t          d          5  t          |d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |d	d
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nrl   rC   zcannot contain negative valuesmatch)r0   rP   z3must provide window_shape for all dimensions of `x`rV   z2Must provide matching length window_shape and axisrp   rX   )axisz.window shape cannot be larger than input array)r   r   )r   r   pytestraisesr+   r   )r   r   r   r   s       r   test_errorsz!TestSlidingWindowView.test_errors  sS   xBQB1dQh]:-MNNN 	. 	.W---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.]KM M M 	+ 	+  T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]JL L L 	= 	=  YV<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= ]FH H H 	- 	-  V,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-sG   AA #A BB#&B#C$$C(+C(
D((D,/D,c                    t          j        d          }t          |dd          }t          |j        j                    t          j        t          d          5  d|d<   d d d            n# 1 swxY w Y   t          |dd	          }t          |j        j                   d|d
<   t          |t          j
        g d                     d S )Nr   rO   F	writeablez#assignment destination is read-onlyr   rP   rd   TrX   )r   rP   rO   rP   rl   )r   r4   r   r   flagsr   r   r   r+   r   rQ   )r   r   views      r   test_writeablez$TestSlidingWindowView.test_writeable  s   ill"3U;;;DJ(()))];= = = 	 	 DJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 #3T:::
$%%%T
3 9 9:::::s   A..A25A2c           	          G d dt           j                  }t          j        d                              |          }t	          t          t          |dd          |                      t	          t          t          |dd          |                     t	          t          t          |d          |                      d S )Nc                       e Zd ZdS )1TestSlidingWindowView.test_subok.<locals>.MyArrayN)__name__
__module____qualname__r   r   r   MyArrayr     s        Dr   r   r   rO   FsubokT)r   ndarrayr4   r   r   
isinstancer   )r   r   r   s      r   
test_subokz TestSlidingWindowView.test_subok  s    	 	 	 	 	bj 	 	 	 ill((J239> @  @  @&( ( ( 	) 	) 	) 	
.sATBBBGLLMMMJ23::GDDDEEEEEr   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s        / / // / // / /
/ 
/ 
// / /- - -$; ; ;
F 
F 
F 
F 
Fr   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                    d S )NrC   Fr   TrP   .)r   rz   r   r   r   r   r   	full_like)r   r   s     r   as_strided_writeabler     s    
'"++CcU+++D
$$%%% cT***DDJ !!!DIsBLa00111  CIcU+++DcT***D
$$%%%%%r   c                       e Zd Zd ZdS )VerySimpleSubClassc                 N    t          j        |ddi|                    |           S )Nr   T)r   rQ   r   )clsargskwargss      r   __new__zVerySimpleSubClass.__new__	  s*    x4T4V4499#>>>r   N)r   r   r   r   r   r   r   r   r     s#        ? ? ? ? ?r   r   c                       e Zd Zd Zd ZdS )SimpleSubClassc                 `    t          j        |ddi|                    |           }d|_        |S )Nr   Tsimple)r   rQ   r   info)r   r   r   r   s       r   r   zSimpleSubClass.__new__  s5    x4T4V4499#>>	r   c                 8    t          |dd          dz   | _        d S )Nr   r   z
 finalized)getattrr   )r   r   s     r   __array_finalize__z!SimpleSubClass.__array_finalize__  s    C,,|;			r   N)r   r   r   r   r   r   r   r   r   r     s2          
< < < < <r   r   c                  D   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          |                                         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               d S )Nr   rn   rO   r   T)r   r   r   zsimple finalizedr0   rN   r   )rO   rl   )r   r   typer   r   r   r   r   r   r4   r!   r5   r   r   r   )r    r   bb_viewr   s        r   test_subclassesr    s   <<<((ADGG))***AJ/@AAAFDLLBJ&'''AJ/@MMMFDLL..///|||$$AAJ/@MMMFDLLN*+++FK--... 		#a&&!!"a((A%a++NFFDLLBJ&'''DLLBJ&'''FLFL()))%a$777NFFDLLN*+++FK--...DLLBJ&'''FLFL())) E!U##FDLLBJ&'''FLE!"""!U$///FDLLN*+++FK--...FLE!"""""r   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 ]\  }}|rt          t                    5  t          |j        j        d           d d d            n# 1 swxY w Y   t          t                    5  d|d d <   d d d            n# 1 swxY w Y   t          |j        j        d           t          |j        j        d           t          |           t          d|           fD ]4}|D ]/}d|j        _        t          |j        j        d           d|d d <   05d| j        _        t          d|           \  }}t          |j        j        d           d}dg}t          t          j        d          ||          }	t          j        d	          }
t          |	|
          \  }}t#          |j        |j        k               d S )
NrM   rm   Fr   FTFTrn   rV   )r   rQ   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   x			""H(F++F'///*f0%++qAAA -h889 "21h"?"?@BJ!+ ; ;g*-lG*D*D 	; 	;&! 	;!-00 ? ? !7>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?!"455 " " !F111I" " " " " " " " " " " " " " " V\3T:::: V\3T::::	; %X..$Q113   	 	F%)FL"/666F111II	  %HN H--IAv'/// EcGbhqkk5'::LHTNNE$\599ME6EK6<'(((((s$   ?C&&C*-C*DD Dc                     t          j        g d          } dt          |           fdt          d|           fg}|D ]J\  }}t          ||          D ]4\  }}|rt	          |          j        sJ t	          |          j        rJ 5Kd S )NrM   r  r  r   )r   rQ   r   r	  
memoryviewreadonly)r  r  r  r  r  r  s         r   test_writeable_memoryviewr  l  s    
 x			""H.x99: "21h"?"?@BJ!+ 7 7g*-lG*D*D 	7 	7&! 7 "&))22222%f--66666	77 7r   c                  $   t          j        dt                    } t          j        dgdz  t                    }t          | d          }t	          ||           t          | t          j        d                    \  }}t	          ||           d S )Nr    r.   rP   rW   )r   rQ   objectr   r   r   rz   )r{   r'   r|   r  s       r   test_reference_typesr    s    (3f---Kx	000H+t,,Fx((( bgajj99IFAx(((((r   )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,   rA   rG   rK   rT   ra   rf   ri   rr   ru   r}   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r   r   r   <module>r"     s       0 0 0 0 0 0                               & & &; ; ;   ,  0 0 0     4 4 46B B B2B B B@= = =1O 1O 1Oh- - -4K K K&C C C"&9 &9 &9RC C C"+( +( +(\cF cF cF cF cF cF cF cFL& & &$? ? ? ? ? ? ? ?
< < < < <' < < <"# "# "#J-) -) -)`7 7 7() ) ) ) )r   