o
    i#3                     @   s   d dl Z d dlZd dlZd dlmZ G dd de jZG dd de jZG dd de jZ	G d	d
 d
e jZ
G dd de jZedkrIe   dS dS )    N)Arrayc                   @   sd   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d Zdd Zdd ZdS )TestSlicingc                 C   sR   d}|D ]"}|j | |j | kr&|jdkr|jdkrq| d|j |j f  qd S )N)C_CONTIGUOUSF_CONTIGUOUSr   z*contiguous flag mismatch:
got=%s
expect=%s)flagssizeZfail)selfarrnparrattrsattr r   j/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_dummyarray.pyassertSameContig	   s   
zTestSlicing.assertSameContigc                 C   s   t d}td|j|j|jj}| || d}|D ]$}||d  }||d  }| || | 	|j|j | 	|j|j qd S N   r   )r         
npemptyr   	from_descshapestridesdtypeitemsizer   assertEqualr   r
   r	   xxxexpectgotr   r   r   test_slice0_1d   s   
zTestSlicing.test_slice0_1dc                 C   sx   t d}td|j|j|jj}d}|D ]$}|d | }|d | }| || | 	|j|j | 	|j|j qd S r   r   r   r   r   r   test_slice1_1d$   s   
zTestSlicing.test_slice1_1dc                 C   s   t d}td|j|j|jj}d}t	||D ]&\}}||| }||| }| 
|| | |j|j | |j|j qd S r   r   r   r   r   r   r   r   r   	itertoolsproductr   r   )r   r
   r	   r    r!   yr"   r#   r   r   r   test_slice2_1d0   s   
zTestSlicing.test_slice2_1dc                 C   s   t d}td|j|j|jj}d}|D ]$}||d  }||d  }| || | 	|j|j | 	|j|j qt
||D ].\}}||d |d f }||d |d f }| || | 	|j|j | 	|j|j q@d S )N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   test_slice0_2d>   s$   
zTestSlicing.test_slice0_2dc                 C   s   t d}td|j|j|jj}d}|D ]$}|d | }|d | }| |j|j | |j|j | 	|| qt
||D ].\}}|d |d |f }|d |d |f }| |j|j | |j|j | 	|| q@d S Nr+   r   )r   r   r   )r   r   r   r   r   r   r   r   r   r   r'   r(   r-   r   r   r   test_slice1_2dQ   s$   
zTestSlicing.test_slice1_2dc                 C   s  t d}td|j|j|jj}d}t	||||D ]0\}}}}|||||f }|||||f }	| 
|	| | |	j|j | |	j|j qt	||D ].\}
}|||||f }|||||f }	| 
|	| | |	j|j | |	j|j qRd S r/   r&   )r   r
   r	   r    stuvr"   r#   r!   r)   r   r   r   test_slice2_2dd   s$   
zTestSlicing.test_slice2_2dc                 C   s|   t d}td|j|j|jj}d}|D ]&}|d d | }|d d | }| || | 	|j|j | 	|j|j qd S )Nr   r   r   r   r   r   r   r   r   r   r   test_strided_1dy   s   
zTestSlicing.test_strided_1dc                 C   s   t d}td|j|j|jj}d}t	||D ]2\}}|d d |d d |f }|d d |d d |f }| 
|| | |j|j | |j|j qd S )Nr+   r   r6   r&   )r   r
   r	   r    abr"   r#   r   r   r   test_strided_2d   s   
zTestSlicing.test_strided_2dc           	      C   s   t d}td|j|j|jj}d}t	|||D ];\}}}|d d |d d |d d |f }|d d |d d |d d |f }| 
|| | |j|j | |j|j qd S )N)r   r,      r   r6   r&   )	r   r
   r	   r    r8   r9   cr"   r#   r   r   r   test_strided_3d   s   
  zTestSlicing.test_strided_3dc                 C   sb   t d}t j|dd}td|j|j|j}| |j	d |j	d  | |j	d |j	d  d S )N)r   r      )r   r   r   )Zaxesr   r   r   )
r   r   Z	transposer   r   r   r   r   r   r   )r   zr	   r   r   r   test_issue_2766   s
   
zTestSlicing.test_issue_2766N)__name__
__module____qualname__r   r$   r%   r*   r.   r0   r5   r7   r:   r=   r@   r   r   r   r   r      s    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d Zdd Zdd Zdd ZdS )TestReshapec                 C   b   t d}td|j|j|jj}|dd}|ddd }| 	|j|j | 	|j|j d S )Nr+   r   r,   r   
r   r   r   r   r   r   r   r   reshaper   r   r
   r	   r"   r#   r   r   r   test_reshape_2d2d      
zTestReshape.test_reshape_2d2dc                 C   ^   t d}td|j|j|jj}|d}|dd }| 	|j|j | 	|j|j d S )Nr+   r      rF   rH   r   r   r   test_reshape_2d1d      

zTestReshape.test_reshape_2d1dc                 C   f   t d}td|j|j|jj}|ddd}|dddd }| 	|j|j | 	|j|j d S )Nr>   r   r,   r   r,   r>   r   rF   rH   r   r   r   test_reshape_3d3d      
zTestReshape.test_reshape_3d3dc                 C   rE   )NrP   r      r,   rF   rH   r   r   r   test_reshape_3d2d   rJ   zTestReshape.test_reshape_3d2dc                 C   rK   )NrP   r   <   rF   rH   r   r   r   test_reshape_3d1d   rN   zTestReshape.test_reshape_3d1dc                 C   rE   )Nr+   r   r   r   rF   rH   r   r   r   test_reshape_infer2d2d   rJ   z"TestReshape.test_reshape_infer2d2dc                 C   rK   )Nr+   r   r   rF   rH   r   r   r   test_reshape_infer2d1d   rN   z"TestReshape.test_reshape_infer2d1dc                 C   rO   )NrP   r   r,   r   r   rF   rH   r   r   r   test_reshape_infer3d3d   rR   z"TestReshape.test_reshape_infer3d3dc                 C   rE   )NrP   r   r>   r   rF   rH   r   r   r   test_reshape_infer3d2d   rJ   z"TestReshape.test_reshape_infer3d2dc                 C   rK   )NrP   r   r   rF   rH   r   r   r   test_reshape_infer3d1d   rN   z"TestReshape.test_reshape_infer3d1dc                 C   sp   t d}td|j|j|jj}| t	}|
ddd W d    n1 s(w   Y  | dt|j d S )NrP   r   r   r>   z&can only specify one unknown dimensionr   r   r   r   r   r   r   r   assertRaises
ValueErrorrG   ZassertInstr	exceptionr   r
   r	   Zraisesr   r   r   test_reshape_infer_two_unknowns   s   
z+TestReshape.test_reshape_infer_two_unknownsc                 C   sn   t d}td|j|j|jj}| t	}|
dd W d    n1 s'w   Y  | dt|j d S )NrP   r   r      z.cannot infer valid shape for unknown dimensionr\   ra   r   r   r    test_reshape_infer_invalid_shape	  s   
z,TestReshape.test_reshape_infer_invalid_shapeN)rA   rB   rC   rI   rM   rQ   rT   rV   rW   rX   rY   rZ   r[   rb   rd   r   r   r   r   rD      s    											rD   c                   @   s   e Zd Zdd Zdd ZdS )TestSqueezec                    sz   t d}td|j|j|jj} fdd}||| || d |  dD ]}||j|dd |j|d q)d S )Nr   r   r   r   r   r>   r   c                    s$     | j|j   | j|j d S )N)r   r   r   )Zarr1Zarr2r   r   r   _assert_equal_shape_strides  s   z=TestSqueeze.test_squeeze.<locals>._assert_equal_shape_strides)r   r   r   )r   r   )r   r   )r   r   )r   r   r   axis)	r   r   r   r   r   r   r   r   squeeze)r   r
   r	   rh   rj   r   rg   r   test_squeeze  s   

zTestSqueeze.test_squeezec                 C   s   t d}td|j|j|jj}| t	 |j
dd W d    n1 s'w   Y  | t	 |j
dd W d    d S 1 sCw   Y  d S )Nrf   r   r   ri   )r   r>   )r   r   r   r   r   r   r   r   r]   r^   rk   )r   r
   r	   r   r   r   test_squeeze_invalid_axis#  s   
"z%TestSqueeze.test_squeeze_invalid_axisN)rA   rB   rC   rl   rm   r   r   r   r   re     s    re   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestExtentc                 C   J   t d}td|j|j|jj}|j\}}| 	|| |j
|jj  d S Nr   r   r   r   r   r   r   r   r   r   extentr   r   r   r
   r	   r1   er   r   r   test_extent_1d/     

zTestExtent.test_extent_1dc                 C   ro   )Nr+   r   rq   rs   r   r   r   test_extent_2d6  rv   zTestExtent.test_extent_2dc                 C   sB   t d}td|j|j|jj}t|	 \}| 
||j d S rp   )r   r   r   r   r   r   r   r   listiter_contiguous_extentr   rr   r   r
   r	   extr   r   r   test_extent_iter_1d=  s   
zTestExtent.test_extent_iter_1dc                 C   sd   t d}td|j|j|jj}t|	 \}| 
||j | 
tt|d d d 	 d d S )Nr+   r   r   )r   r   r   r   r   r   r   r   rx   ry   r   rr   lenrz   r   r   r   test_extent_iter_2dD  s   
&zTestExtent.test_extent_iter_2dN)rA   rB   rC   ru   rw   r|   r~   r   r   r   r   rn   .  s
    rn   c                   @   s   e Zd Zdd ZdS )TestIteratec                 C   s<   d}t |}td|j|j|jj}d}|D ]}|}qd S )Nr,   r   )r   r   r   r   r   r   r   r   )r   Nr
   r	   r!   valr   r   r   test_for_loopO  s   
zTestIterate.test_for_loopN)rA   rB   rC   r   r   r   r   r   r   N  s    r   __main__)Zunittestr'   numpyr   Znumba.misc.dummyarrayr   ZTestCaser   rD   re   rn   r   rA   mainr   r   r   r   <module>   s     n 