a
    ReE                     @   s  d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlZd dlmZmZ d dlmZ dd	 Zd
d Zdd Zdd Z ej!"deegej!"dddgdd Z#ej!"deegej!"dddgdd Z$dS )    )assert_array_almost_equalassert_allcloseassert_)arrayeyezeros
empty_likeemptytril_indices_fromtriltriu_indices_fromspacingfloat32float64	complex64
complex128)randrandintseed)ldlN)raiseswarns)ComplexWarningc                  C   s\   t d} ttt| d d d df  tt t| d  W d    n1 sN0    Y  d S )N                    ?)r   assert_raises
ValueErrorr   r   r   )A r   V/var/www/sunrise/env/lib/python3.9/site-packages/scipy/linalg/tests/test_decomp_ldl.py	test_args   s    
r!   c                  C   sP   t dtd} tt d\}}}t|t|  t|t|  t|tg td d S )N)r   r   dtype)r	   complexr   r   r   r   int)aldpr   r   r    test_empty_array   s
    r*   c            	      C   s  t g dg dg dg dg} t g dg dg dg dg}t g d	g d
g dg dg dg}t g dg dg dg dg dg}t g dg dg dg dg}|||fD ]h}t|\}}}t|||j|tddd t|dd\}}}t|||j|tddd qt| dd\}}}t|||j| tddd t| ddd\}}}t|||j| tddd t| jdd\}}}tt||| j| tdtddd d S )N)y(\ؿQ(\@{Gzq=
ףpGzffffff@q=
ףp?)r+   yQ!@(\?)\((\?HzG@q=
ףp)r,   r.   yp=
ףQp=
ףzG)r-   r/   r0   yQῸQ?)g      @
         )g      $@r      r2   )g      ?r4      	   )g      2@r2   r6   r   )g      J@a   p   k   2   )g     @X@r   Y   b      )g      \@r<   @   !      )g     Z@r=   r@   <   I   )g      I@r>   rA   rC   M   )       @r   r      )rE   rH   r1   )g      rH   rA   rI   rF   )g        r1   rI   rA   )g      @rI   rF   rJ   r1   )y(\                        rK   rK   )yHzG?y=
ףp!        rK   rK   )yGz@zG?yq=
ףpQ?yQ        rK   )yHzG@      y{GzzGy)\(?)\(yq=
ףp        g     @@r   )ZatolrtolFlower	hermitianrN   rP   )rG   rG   )	r   r   r   dotTr   conjr   r   )	r&   bcr(   exr'   r)   ur   r   r    test_simple   sP    "$""$rZ   c            	      C   s   t d tdD ]} tdd}tdr0t||nt||t||d  }|| j }|t|tdd 7 }t|d	d
}t|dd
}t	|dd\}}}t
t||d d f |  d|  d t	|dd\}}}t
t||d d f |  d|  d qd S )N  r1   r2   d   r   r          .A)kr   rM   zSpin z failed)r   ranger   r   rT   rS   r   r
   r   r   r   any)	_nrX   Zl_indZu_indrY   r(   r)   r'   r   r   r    test_permutationsH   s    
*(re   r#   rd         c           
      C   s   t d d|  d| }t| | |}||j }|t| |d|tdd 7 }t|\}}}t|dd\}}}|tu r|d	nd
}	t|	|	|j||	|d t|	|	|j||	|d d S )Nr[   zFailed for size: 	, dtype: r"   r]   r^   r   rM   g-C6?绽|=rL   err_msg)
r   r   astyperS   r   r   r   r   r   rR   )
rd   r#   msgrX   r'   d1r)   rY   d2rL   r   r   r    $test_ldl_type_size_combinations_real]   s    
rp   c                 C   s  t d d|  d| }d|  d| }t| | dt| |   |}|| j }|t| |d|tdd 7 }t|\}}}t|d	d
\}}	}|tu rdnd}
t	|
|
| j||
|d t	|
|	
| j||
|d t| | dt| |   |}||j }|t| |d|tdd 7 }t|d	d\}}}t|d	d	d\}}	}t	|
|
|j||
|d t	|
|	
|j||
|d d S )Nr[   zHer failed for size: rh   zSym failed for size: r   r"   r]   r^   r   rM   g-C6*?ri   rj   rO   rQ   )r   r   rl   rT   rS   r   r   r   r   r   rR   )rd   r#   Zmsg1Zmsg2rX   r'   rn   r)   rY   ro   rL   r   r   r    'test_ldl_type_size_combinations_complexn   s$    ""
rq   )%Znumpy.testingr   r   r   numpyr   r   r   r   r	   r
   r   r   r   r   r   r   r   Znumpy.randomr   r   r   Zscipy.linalgr   Zpytestr   r   r   r   r!   r*   rZ   re   markZparametrizerp   rq   r   r   r   r    <module>   s    <	+