o
    Ö­jø  ã                   @   sF   d Z ddlZddlmZmZ ddlmZ ddl	m
Z
 G dd„ dƒZdS )z3Test functions for linalg.matmul_toeplitz function
é    N)ÚtoeplitzÚmatmul_toeplitz)Úraises)Úassert_allclosec                   @   s>   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zddd„ZdS )ÚTestMatmulToeplitzc                 C   s   t j d¡| _d| _d S )Né*   gá7ÎQE=)ÚnpÚrandomÚRandomStateÚrngÚ	tolerance©Úself© r   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_matmul_toeplitz.pyÚsetup_method   s   
zTestMatmulToeplitz.setup_methodc                    sô  g }d}ˆ j j|d�}ˆ j j|d�}ˆ j j|dfd�}| |||df¡ d}ˆ j j|d�}ˆ j j|d�}ˆ j j|dfd�}| |||df¡ d}ˆ j j|d�}ˆ j j|d�}ˆ j j|dfd�}| |||df¡ d}ˆ j j|d�}ˆ j j|d�}ˆ j j|dfd�}| |||df¡ d}ˆ j j|d�}ˆ j j|d�}ˆ j j|ˆ j  dd	¡fd�}| |||df¡ d}ˆ j j|dfd�}ˆ j j|dfd�}ˆ j j|ˆ j  dd	¡fd�}| |||df¡ d}ˆ j j|dfd�}d }ˆ j j|ˆ j  dd	¡fd�}| |||dd
f¡ d}ˆ j j|dfd�}d }ˆ j j|d�}| |||df¡ d}ˆ j j|d�}ˆ j j|d d�}ˆ j j|d dfd�}| |||df¡ d}ˆ j j|d�}ˆ j j|d d�}ˆ j j|d ˆ j  dd	¡fd�}| |||df¡ ‡ fdd„|D ƒ d S )Né   ©ÚsizeFé   ée   Tiè  éd   é
   éÿÿÿÿé   é   c                    s   g | ]}ˆ j |Ž ‘qS r   )Údo)Ú.0Úir   r   r   Ú
<listcomp>P   s    z0TestMatmulToeplitz.test_real.<locals>.<listcomp>)r   ÚnormalÚappendÚrandint)r   ÚcasesÚnÚcÚrÚxr   r   r   Ú	test_real   sh    zTestMatmulToeplitz.test_realc                 C   s,  d}| j j|dfd�| j j|dfd�d  }| j j|dfd�| j j|dfd�d  }| j j|dfd�| j j|dfd�d  }|  |||d¡ d}| j j|dfd�| j j|dfd�d  }| j j|d dfd�| j j|d dfd�d  }| j j|d dfd�| j j|d dfd�d  }|  |||d¡ d S )	Né   r   r   y              ð?é   Fr   r   )r   r    r   ©r   r$   r%   r&   r'   r   r   r   Útest_complexR   s   ((((ÿÿzTestMatmulToeplitz.test_complexc                 C   s:   g }g }g }|   |||d¡ t d¡}|   |||d¡ d S )NF)r   r   )r   r   Úempty)r   r%   r&   r'   r   r   r   Ú
test_emptya   s   
zTestMatmulToeplitz.test_emptyc                 C   sÞ   d}| j j|d�}| j jd| d�}| j j|d�}ttt||f|dƒ d}| j j|d�}| j j|d�}| j j|d d�}ttt||f|dƒ d}| j j|d�}| j j|d d�}| j j|d d d�}ttt||f|dƒ d S )Nr   r   r   Tr   )r   r    Úassert_raisesÚ
ValueErrorr   r+   r   r   r   Útest_exceptionsj   s   z"TestMatmulToeplitz.test_exceptionsNFc                 C   sb   t  |¡}|d u rt||||ƒ}nt  |¡}t||f||ƒ}t||ƒ| }t||| j| jd� d S )N)ÚrtolÚatol)r   Úravelr   r   r   r   )r   r'   r%   r&   Úcheck_finiteÚworkersÚactualÚdesiredr   r   r   r      s   


ÿzTestMatmulToeplitz.do)NFN)	Ú__name__Ú
__module__Ú__qualname__r   r(   r,   r.   r1   r   r   r   r   r   r      s    A	r   )Ú__doc__Únumpyr   Úscipy.linalgr   r   Úpytestr   r/   Únumpy.testingr   r   r   r   r   r   Ú<module>   s    