o
    Ô­jAY  ã                   @   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   ó   g | ]}t  |¡‘qS © ©ÚnpÚzeros©Ú.0Úsr   r   ú_/var/www/html/CropPilot/venv/lib/python3.10/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      s    )r   Úlenr   )Úinput_shapesÚexpected_shapeÚinarraysÚ	outarraysÚ	outshapesÚexpectedr   r   r   Úassert_shapes_correct   s
   r$   c                 C   s$   dd„ | D ƒ}t ttg|¢R Ž  d S )Nc                 S   r   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   )
Úshape0Úshape1Ú
transposedÚflippedÚx0ÚnÚx1ÚyÚb0Úb1r   r   r   Úassert_same_as_ufunc!   s   r:   c                  C   s:   t  d¡} t  d¡}t| |ƒ\}}t| |ƒ t||ƒ d S )Né
   )r   r-   r   r   )Úxr7   ÚbxÚbyr   r   r   Ú	test_same7   s
   


r?   c                  C   sR   t  d¡} t  d¡}ttdƒ� t| |dd� W d   ƒ d S 1 s"w   Y  d S )Nr;   zgot an unexpected keywordÚfloat64r'   )r   r-   r   Ú	TypeErrorr   )r<   r7   r   r   r   Útest_broadcast_kwargs>   s
   

"ÿrB   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©é   é   é   rD   rE   rF   )r   Úarrayr   r/   r   )r<   r7   r=   r>   Úbx0Úby0r   r   r   Útest_one_offI   s   
rJ   c                  C   sL   g d¢} | D ]}|g}t ||ƒ ||g}t ||ƒ |||g}t ||ƒ qd S )N)
r   ©rD   ©rF   ©r   rD   )r   rF   ©rD   r   )rF   r   ©rD   rF   ©rF   rD   ©rF   rF   ©r$   )Údatar   r   Úinput_shapes2Úinput_shapes3r   r   r   Útest_same_input_shapesS   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g} | D ]\}}t ||ƒ t |d d d
… |ƒ qEd S )NrK   rL   rO   rQ   rP   ©rD   rD   rN   ©r   r   rM   r)   rR   ©rS   r   r   r   r   r   Ú(test_two_compatible_by_ones_input_shapesn   s$   












ó
ýrZ   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… |ƒ qhd S )Nr   rL   rQ   rP   rK   rW   rO   ©r   rX   rM   rN   r)   rR   rY   r   r   r   Ú3test_two_compatible_by_prepending_ones_input_shapes‡   s2   



















ì
ýr\   c                  C   sD   ddgddgg d¢ddgg} | D ]}t |ƒ t |d d d… ƒ qd S )	NrL   ©é   ©rE   rF   ©rE   ©rL   rL   r]   ©rD   rF   r^   ©rE   rF   rF   r)   )r&   )rS   r   r   r   r   Ú)test_incompatible_shapes_raise_valueerror§   s   üýrd   c                  C   s"  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 ]D\}}t |d |d d|d |d f ƒ t |d |d ƒ t |d |d dƒ d
|v�rt |d |d ddƒ t |d |d ddƒ qÊd S )NrK   rL   rO   rQ   rP   rW   rN   rX   rM   r   r[   r   rD   zShapes: %s %sTF)r:   rY   r   r   r   Útest_same_as_ufunc¶   sœ   
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï
î
í
ì
ë
ê
é
è
ç
æ
å
ä
ã
â
á
 à
!ß#ÿ
€õre   c                  C   sl  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||ƒ q¤d S )Nr   r[   rK   rD   rL   rF   r`   rE   rC   rO   r)   r_   ©r   rD   rE   ©rD   rE   )r   rE   ©rE   rD   )rE   r   )r   rG   r   Úonesr-   r.   r   r   )rS   Úinput_arrayr   r#   Úactualr   r   r   Útest_broadcast_to_succeedsê   s(    î
þrl   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„ƒ q%d S )Nr[   r   rK   rL   r`   r]   rg   rh   rW   r)   )r)   )r)   rE   c                      s
   t ˆ ˆƒS ©N)r   r   ©ÚarrÚtarget_shaper   r   Ú<lambda>  s   
 z*test_broadcast_to_raises.<locals>.<lambda>)r   r   r   r%   )rS   Ú
orig_shaper   rn   r   Útest_broadcast_to_raises  s    õ
þrs   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   rD   rE   r`   rW   ©rF   r^   rg   é    éd   rF   c                      ó   t ˆ Ž S rm   )r   r   ©Úbad_argsr   r   rq   %  ó    z&test_broadcast_shape.<locals>.<lambda>)r   r   r   ri   r   r%   r   r   rx   r   Útest_broadcast_shape  s     r{   c                  C   sb  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   ©é   rg   r`   rW   rt   ))é   r}   ©é   r~   rD   r|   )r€   rD   r}   )r€   r~   r}   r   rO   rP   rQ   rN   rX   rM   r[   rK   rL   rE   ©rF   rE   ru   rv   )r   r   )rS   r   rp   r   r   r   Útest_broadcast_shapes_succeeds(  sB   





















år‚   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 )NrL   r]   r_   r`   ra   rb   rc   )rg   rP   r�   )r;   r€   rE   c                      rw   rm   ©r   r   )r   r   r   rq   \  rz   z.test_broadcast_shapes_raises.<locals>.<lambda>ru   c                      rw   rm   rƒ   r   rx   r   r   rq   _  rz   )r   r%   )rS   r   )ry   r   r   Útest_broadcast_shapes_raisesQ  s   úr„   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©rD   rE   rF   r^   r`   rE   ©r   ÚstridesrD   rF   rt   r   )ÚnumÚi4)ÚobjÚOr]   r'   r€   rˆ   r^   rŠ   ÚV4Ú )ÚnamesÚformatsc                 S   s   g | ]}t |ƒ‘qS r   r   )r   Úir   r   r   r   ‰  s    z#test_as_strided.<locals>.<listcomp>)r   rG   r
   r   Úitemsizer(   Úemptyr-   r   Úranger   )r   Úa_viewr#   ÚdtÚexpected_numÚ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 )Nr€   rE   r   rD   rF   r^   )r   r-   r   rG   r   )Úselfro   Ú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 )NrF   r^   r;   )rE   rE   r   rD   é   rE   é   é   é   é   é   é   ©r   Úogridr   rG   r   ©r›   r�   Újro   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 )	NrF   r^   r;   r   )r   r;   r¡   )rD   rž   r¢   )rE   rŸ   r£   )rF   r    r¤   r¥   ©r›   r�   r¨   ro   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 )NrF   r^   r;   r_   rW   rf   rC   ©r;   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 )Nr^   r;   r_   rf   r¬   rC   r­   r®   r¯   )é   é   ru   )r²   ru   é!   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 s*w   Y  tjtdd�� t|dƒ W d   ƒ n1 sFw   Y  tjtdd�� t|d	d
d� W d   ƒ n1 sdw   Y  tjtdd�� t|dƒ W d   ƒ d S 1 s�w   Y  d S )Nr^   r;   zcannot contain negative values©Úmatch)r)   rF   z3must provide window_shape for all dimensions of `x`rK   z2Must provide matching length window_shape and axisrb   rM   )Úaxisz.window shape cannot be larger than input array)r€   r€   )r   r¦   ÚpytestÚraisesr%   r   )r›   r�   r¨   ro   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 s)w   Y  t|dd	d�}t|jjƒ d|d
< t	|t  
g d¢¡ƒ d S )Nr€   rE   F©Ú	writeablez#assignment destination is read-onlyrµ   rF   rX   TrM   )r   rF   rE   rF   r^   )r   r-   r   r   Úflagsr¼   r¸   r¹   r%   r   rG   )r›   ro   Ú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Ã   r€   rE   F©ÚsubokT)r   Úndarrayr-   r¾   r   Ú
isinstancer   )r›   rÃ   ro   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 )Nr;   Fr»   TrF   .)r   ri   r
   r   r½   r¼   r   Ú	full_like)ro   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   rG   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   rG   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›   rŠ   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 )Nr…   r`   rE   r†   T)r   r‡   rÅ   zsimple finalizedr)   rD   rÄ   )rE   r^   )rË   r   Útyper
   r‘   r   rÆ   rÐ   rÒ   r-   r   r.   r   r   r   )r   r”   ÚbÚ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 ]O\}}|D ]H}|rqttƒ� t|jjdƒ W d   ƒ n1 sJw   Y  ttƒ� d|d d …< W d   ƒ n1 sdw   Y  t|jjdƒ q0t|jjdƒ q0q*t
| ƒt
d| ƒfD ]}|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 )NrC   r_   Fr   Tr`   rK   )r   rG   r   r   r½   r¼   r   r%   Ú__setitem__Úslicer   r	   ÚFutureWarningÚDeprecationWarningr
   r   r   r   )ÚoriginalÚresultÚis_broadcastÚresultsÚ_r   r‡   Útricky_arrayÚotherÚfirstÚsecondr   r   r   r¿   <  sF   

ÿ
ÿ
ÿõÿû
r¿   c                  C   sb   t  g d¢¡} dt| ƒfdtd| ƒffD ]\}}|D ]}|r&t|ƒjs%J ‚qt|ƒjr-J ‚qqd S )NrC   FTr   )r   rG   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'   rF   rL   )r   rG   Úobjectr   r   r   ri   )rj   r#   rk   rá   r   r   r   Útest_reference_types~  s   

rê   )FF)-Únumpyr   Únumpy.core._rational_testsr   Únumpy.testingr   r   r   r   r   r	   Únumpy.lib.stride_tricksr
   r   r   r   r   r   r¸   r$   r&   r:   r?   rB   rJ   rV   rZ   r\   rd   re   rl   rs   r{   r‚   r„   r™   rš   rÊ   rÆ   rË   rÐ   rØ   r¿   rè   rê   r   r   r   r   Ú<module>   s<      

 4).f
%/