o
    gs                     @   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    d S 1 s(w   Y  d S )N                    ?)r   assert_raises
ValueErrorr   r   r   )A r   `/home/ubuntu/cloudmapper/venv/lib/python3.10/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 ]4}t|\}}}t|||j|tddd t|dd\}}}t|||j|tddd q[t| 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   )atolrtolFlower	hermitianrO   rQ   )rG   rG   )	r   r   r   dotTr   conjr   r   )	r&   bcr(   exr'   r)   ur   r   r    test_simple   sP   "$""$
r[   c            	      C   s   t d tdD ]r} tdd}tdrt||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|  t	|dd\}}}t
t||d d f |  d|  qd S )N  r1   r2   d   r   r          .A)kr   rN   zSpin {} failed)r   ranger   r   rU   rT   r   r
   r   r   r   anyformat)	_nrY   l_indu_indrZ   r(   r)   r'   r   r   r    test_permutationsH   s   
*&(ri   r#   rf         c           
      C   s   t 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   rN   -C6?绽|=rM   err_msg)r   rd   r   astyperT   r   r   r   r   r   rS   )
rf   r#   msgrY   r'   d1r)   rZ   d2rM   r   r   r    $test_ldl_type_size_combinations_real]   s   
"rt   c                 C   s  t d d| |}d| |}t| | dt| |   |}|| j }|t| |d|tdd 7 }t|\}}}t|dd	\}}	}|t	u rKd
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: {}, dtype: {}z"Sym failed for size: {}, dtype: {}r   r"   r^   r_   r   rN   rl   rm   rn   rP   rR   )r   rd   r   rp   rU   rT   r   r   r   r   r   rS   )rf   r#   msg1msg2rY   r'   rr   r)   rZ   rs   rM   r   r   r    'test_ldl_type_size_combinations_complexn   s$   ""
"rw   )%numpy.testingr   r   r   numpyr   r   r   r   r	   r
   r   r   r   r   r   r   r   numpy.randomr   r   r   scipy.linalgr   pytestr   r   r   r   r!   r*   r[   ri   markparametrizert   rw   r   r   r   r    <module>   s"    <	+