o
    tBh                     @   s  d dl Z d dlZd dlmZ d dlZd dlm	  m
Z dZdd eD Zeg dg dg dgZed dgd	d ggZejg d
g dg dg dgedZdd eD Zdd eD Zdd eD Ze jjdeedZe jjdeedZe jjdeedZedd Zedd Zedd Zedd Zedd Zed d! Z ed"d# Z!ed$d% Z"ed&d' Z#ed(d) Z$ed*d+ Z%ed,d- Z&ed.d/ Z'ed0d1 Z(ed2d3 Z)ed4d5 Z*ed6d7 Z+ed8d9 Z,ed:d; Z-ed<d= Z.ed>d? Z/ed@dA Z0edBdC Z1dDdE Z2edFdG Z3ee jdHg dIdJdK Z4ee jdHdLdMgdNdO Z5edPdQ Z6edRdS Z7edTdU Z8dVdW Z9dXdY Z:dS )Z    N)bsrcoocsccsrdiadoklilc                 C   s   g | ]}t tj| d qS )_array)getattrscipysparse).0T r   x/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_array_api.py
<listcomp>	   s    r   )r         r   )r   r   r      )r      r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )dtypec                 C      g | ]}|t qS r   Ar   sparrayr   r   r   r           c                 C   r   r   Br   r   r   r   r   !   r   c                 C   r   r   Xr   r   r   r   r   "   r   r   )idsr   r    c                 C   sL   t | jddtjrJ d| jddjdksJ | jddjdks$J d S )Nr   axisExpected array, got matrix)r   r   )r   )
isinstancesumnpmatrixshaper   r   r   r   test_sum/   s
   r*   c                 C   s    t | jddtjrJ dd S )Nr   r"   r$   )r%   meanr'   r(   r   r   r   r   	test_mean7   s   r,   c                 C   s   t |  tjrJ dd S Nr$   )r%   todenser'   r(   r   r   r   r   test_todense=   s   r/   c                 C   sn  | j jd d dv rd S tt | dd d f  W d    n1 s$w   Y  tt | d d df  W d    n1 sAw   Y  tt | dddgf  W d    n1 s^w   Y  tt | ddgdf  W d    n1 s{w   Y  | dg jsJ d| dddggf jsJ d| ddggdf jsJ d| d d ddgf jsJ dd S )	Nr   )r   r   r   r   r   r   z(Expected sparse array, got sparse matrixz"Expected ndarray, got sparse arrayz)Expected sparse array, got something else)	__class____name__pytestraisesNotImplementedError	_is_arrayr   r   r   r   test_indexingC   s$   "r6   c                 C   s*   t j| j}t| | t jrJ dd S r-   )r'   randomr)   r%   r(   )r   r    r   r   r   test_dense_additionZ   s   r8   c                 C   s   | |  j s	J dd S r-   r5   r   r   r   r   test_sparse_addition`      r:   c                 C   s(   t | |   | d ksJ d S )Nr   )r'   allr.   powerr   r   r   r   test_elementwise_mule   s   (r>   c                 C   s   t t d |   W d    n1 sw   Y  t t tdtjt	d
dd  W d    n1 s;w   Y  td|  |  d ksOJ t|  |  |  d ks`J d S )Nr      r   )r2   r3   	TypeError
ValueErrorr'   eyer   r   	csr_arrayarangereshaper<   r.   r   r   r   r   test_elementwise_rmulj   s   
&&rF   c                 C   s,   t | | j  | | j ksJ d S N)r'   r<   r   r.   dotr   r   r   r   test_matmulw   s   ,rI   c                 C   s(   | d j s	J d| d j sJ dd S )Nr   r$   r   r9   r   r   r   r   test_pow|   s   rJ   c                 C   s   t | |  tjs
J d S rG   )r%   r'   ndarrayr   r   r   r   test_sparse_divide   s   rL   c                 C   s   | d j s	J dd S )Nr   r$   r9   r   r   r   r   test_dense_divide   r;   rM   c                 C   8   t tj | j W d    d S 1 sw   Y  d S rG   )r2   warnsr'   VisibleDeprecationWarningr   r   r   r   r   test_no_A_attr      "rQ   c                 C   rN   rG   )r2   rO   r'   rP   Hr   r   r   r   test_no_H_attr   rR   rT   c                 C   s$   |  djsJ | djsJ d S )Nr   )getcolr5   getrowr   r   r   r   test_getrow_getcol   s   rW   c                 C   s2   | j d u rd S | j  }dD ]}||vsJ qd S )N)r(   matrices)__doc__lower)r   docstrphraser   r   r   test_docstr   s   

r]   c                 C   s*   t | }t|g d | g d  d S )Nr   r   r   r   )splaaslinearoperatornptassert_allclose)r   Lr   r   r   test_as_linearoperator   s   
 rd   c                 C   sL   | j jd d dkrd S t| }|jsJ t| tj	|   d S Nr   r   )
r0   r1   r_   invr5   ra   rb   r.   r'   linalgr   Cr   r   r   test_inv   s
   

 rj   c                 C   sV   | j jd d dkrd S tj| }t| }|jsJ t	|
 t|
  d S re   )r0   r1   r   r   
csc_matrixr_   expmr5   ra   rb   r.   )r   Bmatri   r   r   r   	test_expm   s   

rn   c              	   C   sH   | j jd d dkrd S tt| tddgt| ddg  d S Nr   r   r   r   )	r0   r1   ra   rb   r_   expm_multiplyr'   arrayrl   r   r   r   r   test_expm_multiply   s   rr   c                 C   s&   t | }t|tj|   d S rG   )r_   normra   rb   r'   rg   r.   )r   ri   r   r   r   	test_norm   s   
rt   c                 C   s(   t | }t|tj|  d d S )Nr   )r_   
onenormestra   rb   r'   rg   rs   r.   rh   r   r   r   test_onenormest   s   
rv   c                 C   sF   | j jd d dvrd S tt| ddgtj| 	 ddg d S )Nr   )r   r   r   r   )
r0   r1   ra   rb   r_   spsolver'   rg   solver.   r   r   r   r   test_spsolve   s   ry   c                  C   s8   t jg dg dg dg dg} t| g d d S N)r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r^   )r   r   rC   r_   spsolve_triangularr   r   r   r   test_spsolve_triangular   s   r|   c                 C   sR   | j jd d dkrd S t| }t|tddgtj	| 
 ddg d S ro   )r0   r1   r_   
factorizedra   rb   r'   rq   rg   rx   r.   )r   LUr   r   r   test_factorized   s   
r   solver)
bicgbicgstabcgcgsgmreslgmresminresqmrgcrotmktfqmrc                 C   s`   |dkri }nddi}t t|| tddgfi |\}}|dks$J tj|ddgdd d S )	Nr   atolgh㈵>r   r   r   g?r   )r
   r_   r'   rq   ra   rb   )r   r   kwargsxinfor   r   r   test_solvers  s   &r   lsqrlsmrc                 C   s0   t t|| g d^}}t| | g d d S )N)r   r   r   )r
   r_   ra   rb   )r   r   r   _r   r   r   test_lstsqr  s   r   c                 C   s.   t j| dd\}}t| | |d |  d S Nr   kr   )r_   eigsra   rb   r    evr   r   r   	test_eigs  s
   
r   c                 C   s8   | | j  } tj| dd\}}t| | |d |  d S r   )r   r_   eigshra   rb   r   r   r   r   
test_eigsh'  s   

r   c                 C   sZ   t j| dd\}}}tj|  \}}}t|}t|d d }tj||dd d S )Nr   r   gMbP?r   )	r_   svdsr'   rg   svdr.   sortra   rb   )r    usvhu2s2vh2r   r   r   	test_svds1  s
   
r   c                  C   R   t jg dg dg dg dg} t| }t|t	g dg d d S rz   )
r   r   	csc_arrayr_   splura   rb   rx   r'   rq   r    r~   r   r   r   	test_splu:     
$r   c                  C   r   rz   )
r   r   r   r_   spilura   rb   rx   r'   rq   r   r   r   r   
test_spiluE  r   r   );r2   numpyr'   numpy.testingtestingra   scipy.sparser   scipy.sparse.linalgr   rg   r_   sparray_typessparray_classesrq   r   r   floatr    sparrayssquare_sparrayseig_sparraysmarkparametrizeparametrize_sparraysparametrize_square_sparraysparametrize_eig_sparraysr*   r,   r/   r6   r8   r:   r>   rF   rI   rJ   rL   rM   rQ   rT   rW   r]   rd   rj   rn   rr   rt   rv   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s    





























	
