
    tKg              	          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 Zd Zd	 Zd
 Zd Zd Zej*                  j-                  d      d        Zej*                  j1                  deeej6                  eej:                  g      ej*                  j1                  deeej6                  eej:                  g      d               Zy)z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_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          j/home/alanp/www/video.onchill/myenv/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, 0 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_errorr3   <   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   r/   )r   r   r   s      r   test_wikipedia_counterexampler5   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_coeffsrG   Q   sL    YY""4(F
,,r
C
,,r
R
C##1b\"">#f!+Qq#J2#NO"">#f!+Qq#J2#NO  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_unstablerN   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$   rR   onesempty)rO   rP   r   r   xx1s         r   
test_emptyrX   {   s     	4 A
4 Aq!A77d??77nRXXq!fD%A&(ggat&<>>CeD D D 	t$A	1	B88v88qwwr!   )__doc__numpyr   scipy.linalg._solve_toeplitzr   scipy.linalgr   r   r   numpy.testingr   r   pytestr	   r0   r    r'   r-   r3   r5   rG   markxfailrN   parametrizeintfloatfloat32complex	complex64rX    r!   r   <module>rh      s     1 8 8 7  *)2-%	%A5, =>* ?*& #ubjj'2<<!PQ#ubjj'2<<!PQ R Rr!   