o
    g                     @   s   d Z ddlZddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlZddlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zejjdddd ZdS )z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_toeplitz)assert_equalassert_allclose)raisesc                  C   s   t jd} dD ]e}| |}|  dk r|d| |  }| |}|  dk r2|d| |  }| |}|  dk rF|d| |  }t||f|}tt||d|}t|| t||d}tt||}t|| qd S )N  )         
   g      ?              ?rb)	nprandomRandomStaterandnrandr   r   r   r   )r   ncr   yactualdesired r   d/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_solve_toeplitz.pytest_solve_equivalence   s$   



r   c                  C   s   t jd} | d}| d}dD ]0}dD ]+}| j| | }t||f|d}tt||d|}t|j| t|j| t	|| qqd S )Nr	      )r   r   ))r    )r    r   )r    r   r   r   r   )
r   r   r   r   r   r   r   r   shaper   )r   r   r   offsetyshaper   r   r   r   r   r   test_multiple_rhs%   s   

r$   c                  C   sF   g d} g d}g d}t | |f|}tt| |d|}t|| d S )N)r
   r   r       )r
   r   	      )   r
   r    r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   test_native_list_arguments3   s   r)   c                  C   sR   t jd} d}| |}| |}| |}d|d< tt jjt||f|d d S )Nr	   r    r   r   r   r   r   r   assert_raiseslinalgLinAlgErrorr   )r   r   r   r   r   r   r   r   test_zero_diag_error<   s   




r.   c                  C   s6   t jd} g d}| d}tt jjt||d d S )Nr	   )r   r   r
   r   r   r*   )r   r   r   r   r   r   test_wikipedia_counterexampleH   s   
r/   c                  C   s0  t jd} | d}| dd }dg}dg}tddD ],}|t|d |d  |d| dd  |t|d |d  |d| dd  qt |dd	d |d d f}t |dd	d  |d d f}t	||dd  d\}}	t	||dd  d\}}
t
||	d d  t
||
d d  d S )
Nr	   r   r   r
   r   r   r   )r   r   r   r   rangeappendr   concatenateconjr   r   )r   y_dy_zreflection_coeffs_dreflection_coeffs_zi
y_d_concat
y_z_concat_ref_dref_zr   r   r   test_reflection_coeffsQ   s   
*, $r@   z!Instability of Levinson iteration)reasonc                  C   sT   t jd} d}dt |d  }| |}t||d}tt||}t|| d S )Nr	   d   g?r   r   )	r   r   r   aranger   r   r   r   r   )r   r   r   r   	solution1	solution2r   r   r   test_unstableg   s   	
rF   )__doc__numpyr   scipy.linalg._solve_toeplitzr   scipy.linalgr   r   r   numpy.testingr   r   pytestr   r+   r   r$   r)   r.   r/   r@   markxfailrF   r   r   r   r   <module>   s    		