o
    i                      @   s   d dl Zd dlmZmZmZ d dlZd dlmZ dd Zdd Z	ej
dd	d
 ejd D dd Zej
ddd
 ejd D dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)	bandwidthissymmetricishermitian)raisesc                  C   sR   d} t jd D ]}t j| | g|d}|dv rttt| q|dkr"qt|}qd S N   All)dtypeeUVOMmG)np	typecodeszerosr   	TypeErrorr   )ntA_ r   i/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_cythonized_array_utils.pytest_bandwidth_dtypes   s   
r   c                  C   sB   t g d} ttt|  t g dg dgg} ttt|  d S N)         )   r      )r   arrayr   
ValueErrorr   r   r   r   r   test_bandwidth_non2d_input   s   r    Tc                 C      g | ]}|d vr|qS eGUVOMmr   .0xr   r   r   
<listcomp>       r(   r   c                 C   s   d}d}t j||g| dd}d|dd t|D dd t|D f< d|dd t|| D dd t||D f< d|d	d td|D d	d t|d D f< d|d
d t||D d
d t|| D f< t|||fksqJ d S )N   r   Fr	   orderr   c                 S      g | ]}|qS r   r   r%   r   r   r   r(   !       z0test_bandwidth_square_inputs.<locals>.<listcomp>c                 S   r.   r   r   r%   r   r   r   r(   "   r/   c                 S   r.   r   r   r%   r   r   r   r(   #   r/   c                 S   r.   r   r   r%   r   r   r   r(   $   r/   r   r   ranger   )r!   r   kRr   r   r   test_bandwidth_square_inputs   s   (...r4   c                 C   r"   r#   r   r%   r   r   r   r(   (   r)   c                 C   s   d\}}d}t j||g| dd}d|dd t|D dd t|D f< d|dd t|| D dd t||D f< d|d	d td|D d	d t|d D f< d|d
d t||D d
d t|| D f< t|||fkssJ d S )N)
   r*   r   r+   r,   r   c                 S   r.   r   r   r%   r   r   r   r(   /   r/   z.test_bandwidth_rect_inputs.<locals>.<listcomp>c                 S   r.   r   r   r%   r   r   r   r(   0   r/   c                 S   r.   r   r   r%   r   r   r   r(   1   r/   c                 S   r.   r   r   r%   r   r   r   r(   2   r/   r0   )r!   r   mr2   r3   r   r   r   test_bandwidth_rect_inputs(   s   (...r7   c                  C   sn   d} t jd D ]-}t j| | g|d}|dv r#ttt| ttt| q|dkr(qt|s.J t|s4J qd S r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   "test_issymetric_ishermitian_dtypes6   s   r8   c                  C   s   t g d} ttt|  ttt|  t g dg dgg} ttt|  ttt|  t g dg dg} ttt|  ttt|  d S r   )r   r   r   r   r   r   r   r   r   r   *test_issymmetric_ishermitian_invalid_inputD   s   r9   c                  C   s`   t ddtdd} | t ddtddd 7 } | t j } | | j } t| s.J d S Nr   r5   r   r                 ?)r   arangeastypecomplexreshapepir!   r   r   r   r   r    test_issymetric_complex_decimalsP   s
   "

rB   c                  C   sd   t ddtdd} | t ddtddd 7 } | t j } | | j  } t| s0J d S r:   )	r   r=   r>   r?   r@   rA   r!   conjr   r   r   r   r   !test_ishermitian_complex_decimalsY   s
   "
rD   c                  C   s   d} t jd}|jd| | gd}||j }|| | g}|| |j }t|dds,J t|ddds5J t|dd	ds>J t|d
d	dsGJ d S )Nr*   i[      @highsize绽|=atol        rK   rtol-q=vIh%<=)r   randomRandomStateuniformr!   standard_normalr   r   rngr'   ypzr   r   r   $test_issymmetric_approximate_resultsb   s   
rZ   c                  C   s   d} t jd}|jd| | gd}||j }|| | g|| | gd  }|| | j }t|dds7J t|ddd	s@J t|dd
d	sIJ t|dd
d	sRJ d S )Nr*   ih:rE   rF   r<   rI   rJ   rL   rM   rO   rP   )r   rQ   rR   rS   r!   rT   rC   r   rU   r   r   r   $test_ishermitian_approximate_resultso   s   
 r[   )numpyr   scipy.linalgr   r   r   pytestr   r   r    markparametrizer   r4   r7   r8   r9   rB   rD   rZ   r[   r   r   r   r   <module>   s     

		