a
    ç´«jHY  ã                   @   sB  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d„ Zdd„ Zd8d
d„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Z d"d#„ Z!d$d%„ Z"d&d'„ Z#G d(d)„ d)ƒZ$d*d+„ Z%G d,d-„ d-ej&ƒZ'G d.d/„ d/e'ƒZ(d0d1„ Z)d2d3„ Z*d4d5„ Z+d6d7„ Z,dS )9é    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                 C   s@   dd„ | D ƒ}t |Ž }dd„ |D ƒ}|gt|ƒ }t||ƒ d S )Nc                 S   s   g | ]}t  |¡‘qS © ©ÚnpÚzeros©Ú.0Úsr   r   úa/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/numpy/lib/tests/test_stride_tricks.pyÚ
<listcomp>   ó    z)assert_shapes_correct.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS r   )Úshape)r   Úar   r   r   r      r   )r   Úlenr   )Úinput_shapesÚexpected_shapeÚinarraysZ	outarraysZ	outshapesÚexpectedr   r   r   Úassert_shapes_correct   s
    r!   c                 C   s$   dd„ | D ƒ}t ttg|¢R Ž  d S )Nc                 S   s   g | ]}t  |¡‘qS r   r   r   r   r   r   r      r   z4assert_incompatible_shapes_raise.<locals>.<listcomp>)r   Ú
ValueErrorr   )r   r   r   r   r   Ú assert_incompatible_shapes_raise   s    r#   Fc           
      C   s‚   t j| td�}tt j |¡ƒ}t  |¡ |¡}|r>|j}|j}|r^|d d d… }|d d d… }|| }t||ƒ\}}	t	||	ƒ d S )N©Údtypeéÿÿÿÿ)
r   r   ÚintÚmultiplyÚreduceÚarangeÚreshapeÚTr   r   )
Zshape0Zshape1Z
transposedZflippedZx0ÚnÚx1ÚyZb0Úb1r   r   r   Úassert_same_as_ufunc!   s    r1   c                  C   s:   t  d¡} t  d¡}t| |ƒ\}}t| |ƒ t||ƒ d S )Né
   )r   r*   r   r   )Úxr/   ÚbxÚbyr   r   r   Ú	test_same7   s
    


r6   c                  C   sP   t  d¡} t  d¡}ttdƒ� t| |dd� W d   ƒ n1 sB0    Y  d S )Nr2   zgot an unexpected keywordZfloat64r$   )r   r*   r   Ú	TypeErrorr   )r3   r/   r   r   r   Útest_broadcast_kwargs>   s    

r8   c                  C   sn   t  g d¢g¡} t  dgdgdgg¡}t| |ƒ\}}t  g d¢g d¢g d¢g¡}|j}t||ƒ t||ƒ d S )N©é   é   é   r:   r;   r<   )r   Úarrayr   r,   r   )r3   r/   r4   r5   Zbx0Zby0r   r   r   Útest_one_offI   s    
r>   c                  C   sL   g d¢} | D ]:}|g}t ||ƒ ||g}t ||ƒ |||g}t ||ƒ qd S )N)
r   ©r:   ©r<   ©r   r:   )r   r<   ©r:   r   )r<   r   ©r:   r<   ©r<   r:   ©r<   r<   ©r!   )Údatar   r   Zinput_shapes2Zinput_shapes3r   r   r   Útest_same_input_shapesS   s    


rH   c                  C   s¶   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
… |ƒ qŠd S )Nr?   r@   rC   rE   rD   ©r:   r:   rB   ©r   r   rA   r&   rF   ©rG   r   r   r   r   r   Ú(test_two_compatible_by_ones_input_shapesn   s"    












ó
rL   c                  C   sü   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… |ƒ qÐd S )Nr   r@   rE   rD   r?   rI   rC   ©r   rJ   rA   rB   r&   rF   rK   r   r   r   Ú3test_two_compatible_by_prepending_ones_input_shapes‡   s0    



















ì
rN   c                  C   sD   ddgddgg d¢ddgg} | D ]}t |ƒ t |d d d… ƒ q d S )	Nr@   ©é   ©r;   r<   ©r;   ©r@   r@   rO   ©r:   r<   rP   ©r;   r<   r<   r&   )r#   )rG   r   r   r   r   Ú)test_incompatible_shapes_raise_valueerror§   s    ürV   c               "   C   sâ  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g!} | D ]Š\}}t |d |d d|d |d f ƒ t |d |d ƒ t |d |d dƒ d
|v�rRt |d |d ddƒ t |d |d ddƒ �qRd S )Nr?   r@   rC   rE   rD   rI   rB   rJ   rA   r   rM   r   r:   zShapes: %s %sTF)r1   rK   r   r   r   Útest_same_as_ufunc¶   sV    
































ß#ÿ
rW   c                  C   sn  t  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡d	t  d	¡gt  d¡dt  d¡gt  d¡d
t  d¡ dd¡gt  d¡dt  g d¢g d¢g¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gt  d¡dt  d¡gg} | D ] \}}}t||ƒ}t||ƒ �qHd S )Nr   rM   r?   r:   r@   r<   rR   r;   r9   rC   r&   rQ   ©r   r:   r;   ©r:   r;   )r   r;   ©r;   r:   )r;   r   )r   r=   r   Úonesr*   r+   r   r   )rG   Úinput_arrayr   r    Úactualr   r   r   Útest_broadcast_to_succeedsê   s&     î
r^   c                     sv   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  |¡‰ tt‡ ‡fdd„ƒ qJd S )NrM   r   r?   r@   rR   rO   rY   rZ   rI   r&   )r&   )r&   r;   c                      s
   t ˆ ˆƒS ©N)r   r   ©ÚarrÚtarget_shaper   r   Ú<lambda>  r   z*test_broadcast_to_raises.<locals>.<lambda>)r   r   r   r"   )rG   Z
orig_shaper   r`   r   Útest_broadcast_to_raises  s    õ
rd   c                      sØ   t tƒ dƒ t tddgƒdƒ t tt d¡ƒdƒ t tt d¡t d¡ƒdƒ t tt d¡gd Ž dƒ t tt d¡gd	 Ž dƒ t tt d¡gd dg Ž dƒ t d¡gd t d
¡gd  ‰ tt‡ fdd„ƒ d S )Nr   r:   r;   rR   rI   ©r<   rP   rY   é    éd   r<   c                      s   t ˆ Ž S r_   )r   r   ©Úbad_argsr   r   rc   %  r   z&test_broadcast_shape.<locals>.<lambda>)r   r   r   r[   r   r"   r   r   rh   r   Útest_broadcast_shape  s      rj   c                  C   sd  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|Ž |ƒ �q
t tdgd Ž dƒ t tdgd Ž dƒ t tdgd Ž dƒ d S )Nr   ©é   rY   rR   rI   re   ))é   rl   ©é   rm   r:   rk   )ro   r:   rl   )ro   rm   rl   rn   rC   rD   rE   rB   rJ   rA   rM   r?   r@   r;   ©r<   r;   rf   rg   )r   r   )rG   r   rb   r   r   r   Útest_broadcast_shapes_succeeds(  sB    





















årq   c                     sn   ddgddgg d¢ddgg d¢d	dgg} | D ]‰t t‡fd
d„ƒ q,dgd dgd  ‰ t t‡ fdd„ƒ d S )Nr@   rO   rQ   rR   rS   rT   rU   )rY   rD   rp   )r2   ro   r;   c                      s   t ˆ Ž S r_   ©r   r   )r   r   r   rc   \  r   z.test_broadcast_shapes_raises.<locals>.<lambda>rf   c                      s   t ˆ Ž S r_   rr   r   rh   r   r   rc   _  r   )r   r"   )rG   r   )ri   r   r   Útest_broadcast_shapes_raisesQ  s    úrs   c                  C   s
  t  d g¡} t| ƒ}t  d g¡}t|t  d g¡ƒ t  g d¢¡} t| dd| j fd�}t  ddg¡}t||ƒ t  g d¢¡} t| ddd| j fd�}t  g d¢g d¢g d¢g¡}t||ƒ t  d	d
g¡}t jd|d�} t  dd¡| d< t| dd| jfd�}g d¢gd }d gd gd }t|j|ƒ t||d ƒ t||d ƒ t jddd�} t| dd| jfd�}t| j|jƒ t  dgdgdœ¡}t jd|d�} t| dd| jfd�}t| j|jƒ dd„ t	dƒD ƒ}t j|t
d�} t| dd| jfd�}t| j|jƒ t|gd |ƒ d S )N©r:   r;   r<   rP   rR   r;   ©r   Ústridesr:   r<   re   r   )ÚnumÚi4)ÚobjÚOrO   r$   ro   rw   rP   ry   ZV4Ú )ÚnamesÚformatsc                 S   s   g | ]}t |ƒ‘qS r   r   )r   Úir   r   r   r   ‰  r   z#test_as_strided.<locals>.<listcomp>)r   r=   r
   r   Úitemsizer%   Úemptyr*   r   Úranger   )r   Úa_viewr    ÚdtZexpected_numZexpected_objÚrr   r   r   Útest_as_stridedb  sB    

r…   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestSlidingWindowViewc                 C   sD   t  d¡}t|dƒ}t  ddgddgddgddgg¡}t||ƒ d S )Nro   r;   r   r:   r<   rP   )r   r*   r   r=   r   )Úselfra   Úarr_viewr    r   r   r   Útest_1d‘  s    


ýzTestSlidingWindowView.test_1dc                 C   s¤   t jd d…d d…f \}}d| | }d}t||ƒ}t  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 )Nr<   rP   r2   )r;   r;   r   r:   é   r;   é   é   é   é   é   é   ©r   Úogridr   r=   r   ©r‡   r~   Újra   r   rˆ   r    r   r   r   Útest_2dš  s    
þþýzTestSlidingWindowView.test_2dc                 C   sd   t jd d…d d…f \}}d| | }t|ddƒ}t  g d¢g d¢g d¢g d¢gg¡}t||ƒ d S )	Nr<   rP   r2   r   )r   r2   r�   )r:   rŠ   rŽ   )r;   r‹   r�   )r<   rŒ   r�   r‘   ©r‡   r~   r”   ra   rˆ   r    r   r   r   Útest_2d_with_axis§  s    
ýz'TestSlidingWindowView.test_2d_with_axisc                 C   sz   t jd d…d d…f \}}d| | }t|ddƒ}t  g d¢g d¢ggg d¢g d	¢ggg d
¢g d¢ggg¡}t||ƒ d S )Nr<   rP   r2   rQ   rI   rX   r9   ©r2   rŠ   r‹   ©rŠ   r‹   rŒ   ©r�   rŽ   r�   ©rŽ   r�   r�   r‘   r–   r   r   r   Útest_2d_repeated_axis±  s    
ÿÿÿüz+TestSlidingWindowView.test_2d_repeated_axisc                 C   s¦   t jd d…d d…f \}}d| | }d}t||ƒ}t  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 )NrP   r2   rQ   rX   r˜   r9   r™   rš   r›   )é   é   rf   )rž   rf   é!   r‘   r“   r   r   r   Útest_2d_without_axis½  s    
ÿÿÿüz*TestSlidingWindowView.test_2d_without_axisc                 C   s  t jd d…d d…f \}}d| | }tjtdd�� t|dƒ W d   ƒ n1 sT0    Y  tjtdd�� t|dƒ W d   ƒ n1 sŒ0    Y  tjtdd�� t|d	d
d� W d   ƒ n1 sÈ0    Y  tjtdd�� t|dƒ W d   ƒ n1 �s0    Y  d S )NrP   r2   zcannot contain negative values©Úmatch)r&   r<   z3must provide window_shape for all dimensions of `x`r?   z2Must provide matching length window_shape and axisrT   rA   )Zaxisz.window shape cannot be larger than input array)ro   ro   )r   r’   ÚpytestÚraisesr"   r   )r‡   r~   r”   ra   r   r   r   Útest_errorsÊ  s&    (þ(þ,þz!TestSlidingWindowView.test_errorsc                 C   s–   t  d¡}t|ddd�}t|jj ƒ tjtdd�� d|d< W d   ƒ n1 sR0    Y  t|dd	d�}t|jjƒ d|d
< t	|t  
g d¢¡ƒ d S )Nro   r;   F©Ú	writeablez#assignment destination is read-onlyr¡   r<   rJ   TrA   )r   r<   r;   r<   rP   )r   r*   r   r   Úflagsr§   r£   r¤   r"   r   r=   )r‡   ra   Úviewr   r   r   Útest_writeableÜ  s    
þ&z$TestSlidingWindowView.test_writeablec                 C   sn   G dd„ dt jƒ}t  d¡ |¡}ttt|ddd�|ƒ ƒ ttt|ddd�|ƒƒ ttt|dƒ|ƒ ƒ d S )Nc                   @   s   e Zd ZdS )z1TestSlidingWindowView.test_subok.<locals>.MyArrayN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚMyArrayê  s   r®   ro   r;   F©ÚsubokT)r   Úndarrayr*   r©   r   Ú
isinstancer   )r‡   r®   ra   r   r   r   Ú
test_suboké  s    
ÿþz TestSlidingWindowView.test_subokN)r«   r¬   r­   r‰   r•   r—   rœ   r    r¥   rª   r³   r   r   r   r   r†   �  s   	
r†   c                  C   sˆ   t  d¡} t| dd�}t|jj ƒ t| dd�}t|jjƒ d|d< t| t  | d¡ƒ d| j_t| dd�}t| dd�}t|jj ƒ d S )Nr2   Fr¦   Tr<   .)r   r[   r
   r   r¨   r§   r   Z	full_like)ra   r©   r   r   r   Úas_strided_writeableö  s    
r´   c                   @   s   e Zd Zdd„ ZdS )ÚVerySimpleSubClassc                 O   s   t j|ddi|¤Ž | ¡S )Nr°   T)r   r=   r©   )ÚclsÚargsÚkwargsr   r   r   Ú__new__	  s    zVerySimpleSubClass.__new__N)r«   r¬   r­   r¹   r   r   r   r   rµ     s   rµ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚSimpleSubClassc                 O   s$   t j|ddi|¤Ž | ¡}d|_|S )Nr°   TÚsimple)r   r=   r©   Úinfo)r¶   r·   r¸   r‡   r   r   r   r¹     s    zSimpleSubClass.__new__c                 C   s   t |ddƒd | _d S )Nr¼   r{   z
 finalized)Úgetattrr¼   )r‡   ry   r   r   r   Ú__array_finalize__  s    z!SimpleSubClass.__array_finalize__N)r«   r¬   r­   r¹   r¾   r   r   r   r   rº     s   rº   c                  C   sÄ  t g d¢ƒ} tt| ƒt u ƒ t| dd| j fd�}tt|ƒtju ƒ t| dd| j fdd�}tt|ƒt u ƒ tg d¢ƒ} t| dd| j fdd�}tt|ƒtu ƒ t|jdkƒ t 	t
| ƒ¡ dd	¡}t| |ƒ\}}tt|ƒtju ƒ tt|ƒtju ƒ t|j|jkƒ t| |d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d
�}tt|ƒtu ƒ t|jdkƒ t|j|kƒ d S )Nrt   rR   r;   ru   T)r   rv   r°   zsimple finalizedr&   r:   r¯   )r;   rP   )rµ   r   Útyper
   r   r   r±   rº   r¼   r*   r   r+   r   r   r   )r   r‚   ÚbZb_viewr   r   r   r   Útest_subclasses  s8    
rÁ   c               
   C   s¨  t  g d¢¡} t| dƒ}t|jjdƒ tt|jt	d ƒdƒ dt
| ƒfdt
d| ƒffD ]ž\}}|D ]�}|râttƒ� t|jjdƒ W d   ƒ n1 s”0    Y  ttƒ� d|d d …< W d   ƒ n1 sÈ0    Y  t|jjdƒ q`t|jjdƒ q`qTt
| ƒt
d| ƒfD ]4}|D ](}d|j_t|jjdƒ d|d d …< �q�qd| j_t
d| ƒ\}}t|jjdƒ d}dg}tt  d¡||ƒ}t  d¡}t
||ƒ\}	}
t|	j|
jkƒ d S )Nr9   rQ   Fr   TrR   r?   )r   r=   r   r   r¨   r§   r   r"   Ú__setitem__Úslicer   r	   ÚFutureWarningÚDeprecationWarningr
   r   r   r   )ÚoriginalÚresultÚis_broadcastÚresultsÚ_r   rv   Ztricky_arrayÚotherÚfirstÚsecondr   r   r   rª   <  s>    

ÿ
,
*ÿ
rª   c                  C   sb   t  g d¢¡} dt| ƒfdtd| ƒffD ]4\}}|D ]&}|rLt|ƒjsZJ ‚q4t|ƒjr4J ‚q4q(d S )Nr9   FTr   )r   r=   r   Ú
memoryviewÚreadonly)rÆ   rÈ   rÉ   rÇ   r   r   r   Útest_writeable_memoryviewk  s    
ÿrÐ   c                  C   sX   t jdtd�} t jdgd td�}t| dƒ}t||ƒ t| t  d¡ƒ\}}t||ƒ d S )Nr   r$   r<   r@   )r   r=   Úobjectr   r   r   r[   )r\   r    r]   rÊ   r   r   r   Útest_reference_types~  s    

rÒ   )FF)-Únumpyr   Znumpy._core._rational_testsr   Znumpy.testingr   r   r   r   r   r	   Znumpy.lib._stride_tricks_implr
   r   r   r   r   r   r£   r!   r#   r1   r6   r8   r>   rH   rL   rN   rV   rW   r^   rd   rj   rq   rs   r…   r†   r´   r±   rµ   rº   rÁ   rª   rÐ   rÒ   r   r   r   r   Ú<module>   s:     

 4).f
%/