ó
î&]\c           @` sä   d  Z  d d l m Z m Z m 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 ƒ d „  ƒ Z d S(   s1   Test functions for linalg._solve_toeplitz module
i    (   t   divisiont   print_functiont   absolute_importN(   t   levinson(   t   solvet   toeplitzt   solve_toeplitz(   t   assert_equalt   assert_allclose(   t   raisesc          C` sI  t  j j d ƒ }  x0d
 D](} |  j | ƒ } |  j ƒ  d k  rZ | d |  j | ƒ } n  |  j | ƒ } |  j ƒ  d k  r• | d |  j | ƒ } n  |  j | ƒ } |  j ƒ  d k  rÐ | d |  j | ƒ } n  t | | f | ƒ } t t | d | ƒ| ƒ } t | | ƒ t | d	 | ƒ} t t | ƒ | ƒ } t | | ƒ q Wd  S(   NiÒ  i   i   i   i
   g      à?y              ð?t   rt   b(   i   i   i   i
   (	   t   npt   randomt   RandomStatet   randnt   randR   R   R   R   (   R   t   nt   cR
   t   yt   actualt   desired(    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_solve_equivalence   s"    c          C` sØ   t  j j d ƒ }  |  j d ƒ } |  j d ƒ } x¡ d d g D]“ } xŠ d	 d
 d f D]y } |  j | Œ  | } t | | f d | ƒ} t t | d | ƒ| ƒ } t | j | ƒ t | j | ƒ t	 | | ƒ qS Wq= Wd  S(   NiÒ  i   i    y              ð?i   i   R   R
   (   i   (   i   i   (   i   i   i   (
   R   R   R   R   R   R   R   R   t   shapeR   (   R   R   R
   t   offsett   yshapeR   R   R   (    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_multiple_rhs'   s    c          C` sw   d d d d g }  d d d d g } d d d d g } t  |  | f | ƒ } t t |  d	 | ƒ| ƒ } t | | ƒ d  S(
   Ni   i   i   i   i   i	   i   i   R
   (   R   R   R   R   (   R   R
   R   R   R   (    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_native_list_arguments5   s    c          C` su   t  j j d ƒ }  d } |  j | ƒ } |  j | ƒ } |  j | ƒ } d | d <t t  j j t | | f d | ƒd  S(   NiÒ  i   i    R   (   R   R   R   R   t   assert_raisest   linalgt   LinAlgErrorR   (   R   R   R   R
   R   (    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_zero_diag_error>   s    
c          C` sP   t  j j d ƒ }  d d d g } |  j d ƒ } t t  j j t | d | ƒd  S(   NiÒ  i   i   i   R   (   R   R   R   R   R   R   R   R   (   R   R   R   (    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_wikipedia_counterexampleJ   s    c          C` sh  t  j j d ƒ }  |  j d ƒ } |  j d ƒ d } d g } d g } xo t d d ƒ D]^ } | j t | | d  d | d | !ƒd ƒ | j t | | d  d | d | !ƒd ƒ qV Wt  j | d d	 d … | d  f ƒ } t  j | d d	 d … j ƒ  | d  f ƒ } t	 | d | d ƒ\ } }	 t	 | d | d ƒ\ } }
 t
 | |	 d  ƒ t
 | |
 d  ƒ d  S(
   NiÒ  i
   y              ð?i   i   R   iÿÿÿÿiþÿÿÿi    (   R   R   R   R   t   ranget   appendR   t   concatenatet   conjR   R   (   R   t   y_dt   y_zt   reflection_coeffs_dt   reflection_coeffs_zt   it
   y_d_concatt
   y_z_concatt   _t   ref_dt   ref_z(    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_reflection_coeffsS   s    		,0&,t   reasons!   Instability of Levinson iterationc          C` sv   t  j j d ƒ }  d } d t  j | ƒ d } |  j | ƒ } t | d | ƒ} t t | ƒ | ƒ } t | | ƒ d  S(   NiÒ  id   gÍÌÌÌÌÌì?i   R   (	   R   R   R   t   arangeR   R   R   R   R   (   R   R   R   R   t	   solution1t	   solution2(    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   test_unstablei   s    	(   t   __doc__t
   __future__R    R   R   t   numpyR   t   scipy.linalg._solve_toeplitzR   t   scipy.linalgR   R   R   t   numpy.testingR   R   t   pytestR	   R   R   R   R   R   R    R/   t   markt   xfailR4   (    (    (    sE   lib/python2.7/site-packages/scipy/linalg/tests/test_solve_toeplitz.pyt   <module>   s   								