o
    tBh                     @   s   d dl Z 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mZmZ d dlmZ dd	 Zd
d Zdd Z dd Z!dd Z"dS )    N)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)ldl)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   y/var/www/html/riverr-enterprise-integrations-main/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   c                  C   s~  t d ddg} ttg}ttg}t| |D ]\\}}d||}t||	|}||j
 }|t||d|tdd 7 }t|\}}}	t|dd	\}
}}	|tu rRd
nd}t|||j
|||d t|
||
j
|||d qt| |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 qyd S )Nr\      i  zFailed for size: {}, dtype: {}r"   r^   r_   r   rN   g-C6?g|=)rM   err_msgz"Her failed for size: {}, dtype: {}z"Sym failed for size: {}, dtype: {}r   rP   rR   )r   r   r   r   r   	itertoolsproductrd   r   astyperT   r   r   r   r   rS   rU   )sizesreal_dtypescomplex_dtypesrf   r#   msgrY   r'   d1r)   rZ   d2rM   msg1msg2r   r   r    test_ldl_type_size_combinations]   sB   
 ""
 rw   )#rl   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   rw   r   r   r   r    <module>   s    <	+