
    e!h              	          d Z ddlZddlmZ ddlmZmZmZm	Z	 ddl
mZmZ ddlZddlmZ d Zd Zd	 Zd
 Zd Zd Zej,                  j/                  d      d        Zej,                  j3                  deeej8                  eej<                  g      ej,                  j3                  deeej8                  eej<                  g      d               Zej,                  j3                  dee	g      d        Z y)z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_toeplitzmatmul_toeplitz)assert_equalassert_allclose)raisesc                  t   t         j                  j                  d      } dD ]  }| j                  |      }| j	                         dk  r|d| j                  |      z  z   }| j                  |      }| j	                         dk  r|d| j                  |      z  z   }| j                  |      }| j	                         dk  r|d| j                  |      z  z   }t        ||f|      }t        t        ||      |      }t        ||       t        ||      }t        t        |      |      }t        ||        y )N  )         
   g      ?              ?rb)	nprandomRandomStaterandnrandr   r   r   r	   )r   ncr   yactualdesireds          n/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_solve_toeplitz.pytest_solve_equivalencer!      s   YY""4(F )LLO;;=3Ba((ALLO;;=3Ba((ALLO;;=3Ba((A  1q)a(!,(  Q'Q'(')    c                     t         j                  j                  d      } | j                  d      }| j                  d      }dD ]y  }dD ]r  } | j                  | |z   }t	        ||f|      }t        t        ||      |      }t        |j                  |       t        |j                  |       t        ||       t { y )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   s           r    test_multiple_rhsr(   %   s    YY""4(FQAQA -/ 	-Ff%.A#QqEQ/FHQ!,a0Gv./FG,	--r"   c                  ~    g d} g d}g d}t        | |f|      }t        t        | |      |      }t        ||       y )N)r   r   r$      )r   r   	      )   r   r$   r   r   )r   r   r   r	   )r   r   r   r   r   s        r    test_native_list_argumentsr.   3   s>    AAAQqE1%FHQ!$a(GFG$r"   c                     t         j                  j                  d      } d}| j                  |      }| j                  |      }| j                  |      }d|d<   t	        t         j
                  j                  t        ||f|       y )Nr   r$   r   r   r   r   r   r   assert_raiseslinalgLinAlgErrorr   )r   r   r   r   r   s        r    test_zero_diag_errorr4   <   sj    YY""4(F	AQAQAQAAaD"))''A!%r"   c                      t         j                  j                  d      } g d}| j                  d      }t	        t         j
                  j                  t        ||       y )Nr   )r   r   r   r   r   r0   )r   r   r   s      r    test_wikipedia_counterexampler6   H   sB     YY""4(FAQA"))''a@r"   c            	      ~   t         j                  j                  d      } | j                  d      }| j                  d      dz   }dg}dg}t	        dd      D ]R  }|j                  t        |d |dz
   |d|       d          |j                  t        |d |dz
   |d|       d          T t        j                  |dd	d   |d d f      }t        j                  |dd	d   j                         |d d f      }t        ||dd        \  }}	t        ||dd        \  }}
t        ||	d d        t        ||
d d        y )
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_zs              r    test_reflection_coeffsrH   Q   sS    YY""4(F
,,r
C
,,r
R
C##1b\ P"">#f!+Qq#J2#NO"">#f!+Qq#J2#NOP R"Ws3Bx 89JR"W!2!2!4c#2h ?@J
c!"g.HAu
c!"g.HAu's4's4r"   z!Instability of Levinson iteration)reasonc                      t         j                  j                  d      } d}dt        j                  |      dz  z  }| j	                  |      }t        ||      }t        t        |      |      }t        ||       y )Nr   d   g?r   r   )	r   r   r   aranger   r   r   r   r	   )r   r   r   r   	solution1	solution2s         r    test_unstablerO   g   sf     YY""4(FA		!a AQAqA&Ihqk1%IIy)r"   dt_cdt_bc                    t        j                  g |       }t        j                  g |      }t        ||      }|j                  dk(  sJ |j                  t        t        j                  ddg|       t        j
                  d|            j                  k(  sJ t        j                  d|      }t        ||      }|j                  dk(  sJ |j                  |j                  k(  sJ y )N)dtype)r   r   r   )r   r   )r   arrayr   r%   rS   onesempty)rP   rQ   r   r   xx1s         r    
test_emptyrY   {   s     	4 A
4 Aq!A77d??77nRXXq!fD%A&(ggat&<>>CeD D D 	t$A	1	B88v88qwwr"   func                    t         j                  j                  d      }|j                  d      }|j                  d      }|j                  d      }d}t        j                  t
        |      5   | ||       d d d        t        j                  t
        |      5   | ||f|       d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)Nl   ! )r   r   r$      z:Beginning in SciPy 1.17, multidimensional input will be...)match)r   r   default_rngpytestwarnsFutureWarning)rZ   rngr   r   b_or_xmessages         r    test_nd_FutureWarningre      s     ))


0C

9A

9AZZ^FJG	m7	3 	Q	m7	3 	aVV	   s   0
B2B>2B;>C)!__doc__numpyr   scipy.linalg._solve_toeplitzr   scipy.linalgr   r   r   r   numpy.testingr   r	   r_   r
   r1   r!   r(   r.   r4   r6   rH   markxfailrO   parametrizeintfloatfloat32complex	complex64rY   re    r"   r    <module>rt      s     1 I I 7  *)2-%	%A5, =>* ?*& #ubjj'2<<!PQ#ubjj'2<<!PQ R R  AB
 C
r"   