o
    5Bi8                     @   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 dl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/d0 Z)ed1d2 Z*ed3d4 Z+ed5d6 Z,ed7d8 Z-ed9d: Z.ed;d< Z/ed=d> Z0ed?d@ Z1edAdB Z2edCdD Z3edEdF Z4dGdH Z5edIdJ Z6ee jdKg dLdMdN Z7ee jdKdOdPgdQdR Z8edSdT Z9edUdV Z:edWdX Z;dYdZ Z<d[d\ Z=e jd]ej	j>d^d_gfej	j?d^d_gfej	j@d`dagfge jdbejAejBgdcdd ZCdedf ZDdgdh ZEdidj ZFdkdl ZGdmdn ZHdodp ZIdqdr ZJdsdt ZKdudv ZLe jdwej	jMej	jNfdxdy ZOdzd{ ZPd|d} ZQd~d ZRdd ZSe jddej	jTfdej	jUfdej	jVfdej	jWfdej	jXfdej	jYfdej	jZffdd Z[dS )    N)VisibleDeprecationWarning)bsrcoocsccsrdiadoklilc                 C   s   g | ]}t tj| d qS )_array)getattrscipysparse).0T r   a/var/www/html/Trade-python/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_sum1   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_mean9   s   r.   c                 C   s   t | drt| jddtjrJ dt | dr&t| jddtjr&J dt | dr9t| jddtjr9J dt | drLt| jddtjrNJ dd S d S )Nminr   r$   r&   maxargminargmax)hasattrr'   r/   r)   r*   r0   r1   r2   r   r   r   r   test_min_max?   s$   



r4   c                 C   s   t |  tjrJ dd S Nr&   )r'   todenser)   r*   r   r   r   r   test_todenseP   s   r7   c                 C   s  | 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  t| dg tjjsJ dt| dddggf tjjsJ dt| ddggdf tjjsJ dt| d d ddgf tj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NotImplementedErrorr'   r   r   r   r   r   r   r   test_indexingV   s4    r=   c                 C   s*   t j| j}t| | t jrJ dd S r5   )r)   randomr+   r'   r*   )r   r"   r   r   r   test_dense_additionq   s   r?   c                 C   s   t | |  tjjsJ dd S r5   r'   r   r   r   r   r   r   r   test_sparse_additionw      rA   c                 C   s(   t | |   | d ksJ d S )Nr   )r)   allr6   powerr   r   r   r   test_elementwise_mul|   s   (rE   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   )r:   r;   	TypeError
ValueErrorr)   eyer   r   	csr_arrayarangereshaperC   r6   r   r   r   r   test_elementwise_rmul   s   
&&rM   c                 C   s,   t | | j  | | j ksJ d S N)r)   rC   r   r6   dotr   r   r   r   test_matmul   s   ,rP   c                 C   sr   t | d tjjsJ dt| d  |  d  tjt	dd | d  W d    d S 1 s2w   Y  d S )Nr   r&   z
zero power)matchr   )
r'   r   r   r   nptassert_equalr6   r:   r;   r<   r   r   r   r   test_power_operator   s
   
"rT   c                 C   s   t | |  tjs
J d S rN   )r'   r)   ndarrayr   r   r   r   test_sparse_divide   s   rV   c                 C   sJ   t t t| |   tjjsJ W d    d S 1 sw   Y  d S rN   )r:   warnsRuntimeWarningr'   r6   r   r   r   r   r   r   r   test_sparse_dense_divide   s   "rY   c                 C   s   t | d tjjsJ dd S )Nr   r&   r@   r   r   r   r   test_dense_divide   rB   rZ   c                 C   6   t t | j W d    d S 1 sw   Y  d S rN   )r:   rW   r   r   r   r   r   r   test_no_A_attr      "r\   c                 C   r[   rN   )r:   rW   r   Hr   r   r   r   test_no_H_attr   r]   r_   c                 C   s4   t | dtjjsJ t | dtjjsJ d S )Nr   )r'   _getcolr   r   r   _getrowr   r   r   r   test_getrow_getcol   s   rb   c                 C   s*   t | }t|g d | g d  d S )Nr   r   r   r   )splaaslinearoperatorrR   assert_allclose)r   Lr   r   r   test_as_linearoperator   s   
 rh   c                 C   sT   | j jd d dkrd S t| }t|tjjsJ t	|
 tj| 
  d S Nr   r   )r8   r9   rd   invr'   r   r   r   rR   rf   r6   r)   linalgr    Cr   r   r   test_inv   s
   
 rn   c                 C   s^   | j jd d dkrd S tj| }t| }t|tjjs J t	
| t|  d S ri   )r8   r9   r   r   
csc_matrixrd   expmr'   r   rR   rf   r6   )r    Bmatrm   r   r   r   	test_expm   s   
rr   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   )	r8   r9   rR   rf   rd   expm_multiplyr)   arrayrp   r   r   r   r   test_expm_multiply   s   rv   c                 C   s&   t | }t|tj|   d S rN   )rd   normrR   rf   r)   rk   r6   )r   rm   r   r   r   	test_norm   s   
rx   c                 C   s(   t | }t|tj|  d d S )Nr   )rd   
onenormestrR   rf   r)   rk   rw   r6   rl   r   r   r   test_onenormest   s   
rz   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   )
r8   r9   rR   rf   rd   spsolver)   rk   solver6   r   r   r   r   test_spsolve   s   r}   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   rc   )r   r   rJ   rd   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 rs   )r8   r9   rd   
factorizedrR   rf   r)   ru   rk   r|   r6   )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   rd   r)   ru   rR   rf   )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   rd   rR   rf   )r   r   r   _r   r   r   test_lstsqr+  s   r   c                 C   s.   t j| dd\}}t| | |d |  d S Nr   kr   )rd   eigsrR   rf   r"   evr   r   r   	test_eigs5  s
   
r   c                 C   s8   | | j  } tj| dd\}}t| | |d |  d S r   )r   rd   eigshrR   rf   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   )	rd   svdsr)   rk   svdr6   sortrR   rf   )r"   usvhu2s2vh2r   r   r   	test_svdsH  s
   
r   c                  C   d   t jg dg dg dg dg} t| }tj|t	g dtj
g dtjdddd	 d S 
Nr~   r   r   r   rc   r   g+=gMg<)rtolr   )r   r   	csc_arrayrd   splurR   rf   r|   r)   ru   asarrayfloat64r"   r   r   r   r   	test_spluQ     

r   c                  C   r   r   )r   r   r   rd   spilurR   rf   r|   r)   ru   r   r   r   r   r   r   
test_spilu`  r   r   zcls,indices_attrsindicesindptrrowcolexpected_dtypec           	      C   s  t jtddd}|j|j||j	|ff}| |}|D ]}t
||j|ks.J q"| |dd}|D ]}t
||j|ksCJ q7t| t jjjr| }|j|j||j|f}| |}|D ]}t
||j|kspJ qd| |dd}|D ]}t
||j|ksJ qyd S d S )N	   r   )r   r   )r+   )r   r   	coo_arrayr)   rK   rL   datar   astyper   r   r   
issubclass_compressed
_cs_matrixtocsrr   r   )	clsindices_attrsr   input_array	coo_tupleresultattrinput_array_csr	csr_tupler   r   r   test_index_dtype_compressedo  s4   



r   c                  C   s&   t jg d} t| t jjrJ d S )N)r   r   r   )r   r   diagsr'   r   mr   r   r   test_default_is_matrix_diags  s   r   c                  C   "   t jd} t| t jjrJ d S Nr   )r   r   rI   r'   r   r   r   r   r   test_default_is_matrix_eye     r   c                  C   s,   t jg dddd} t| t jjrJ d S )Nr   r   r   )r   r   spdiagsr'   r   r   r   r   r   test_default_is_matrix_spdiags  s   r   c                  C   r   r   )r   r   identityr'   r   r   r   r   r   test_default_is_matrix_identity  r   r   c                  C   sH   t jtddgddggtddgddgg} t| t jjr"J d S )Nr   r   r   r   r   r   kronr)   ru   r'   r   r   r   r   r   !test_default_is_matrix_kron_dense     (r   c                  C   sH   t jtddgddggtddgddgg} t| t jjr"J d S )Nr   r   r   r   r   r   r   r   r   r   "test_default_is_matrix_kron_sparse  r   r   c                  C   sH   t jtddgddggtddgddgg} t| t jjr"J d S )Nr   r   )r   r   kronsumr)   ru   r'   r   r   r   r   r   test_default_is_matrix_kronsum  r   r   c                  C   $   t jdd} t| t jjrJ d S r   )r   r   r>   r'   r   r   r   r   r   test_default_is_matrix_random     r   c                  C   r   r   )r   r   randr'   r   r   r   r   r   test_default_is_matrix_rand  r   r   fnc                 C   sL   t jtd}t jddgddgg}| ||g}t|t jjr$J dS )zbSame idea as `test_default_construction_fn_matrices`, but for the
    stacking creation functions.r   r   r   N)r   r   
coo_matrixr)   rI   r'   r   )r   r   r    r   r   r   r   test_default_is_matrix_stacks  s   r   c                  C   s   t jtd} t jdgdgg}t jdgg}t j| ||f}t|t jjr-J t j| dgd|gg}t|t jjrBJ dS )z]Same idea as `test_default_construction_fn_matrices`, but for the block
    creation functionr   r   r   N)	r   r   r   r)   rI   
block_diagr'   r   bmat)r   r    rm   r   r   r   r   ,test_blocks_default_construction_fn_matrices  s   r   c               	   C   sz   t D ]8} ttj|  d}|ddgg}|j| ksJ |j| ks"J tt d|_W d    n1 s5w   Y  qd S )Nr
   r   r   qqq)	sparray_typesr   r   r   format_formatr:   r;   AttributeError)fmtarr_clsMr   r   r   test_format_property  s   r   c                  C   s   t jd} t j| }t| t jjrJ t|t jjsJ t j|s&J t j| s.J t j| r8J t j|  rBJ d S r   )r   r   rI   rJ   r'   r   issparser6   r   ar   r   r   test_issparse     r   c                  C   s   t jd} t j| }t| t jjrJ t|t jjsJ t j|r&J t j| s.J t j| r8J t j|  rBJ d S r   )r   r   rI   rJ   r'   r   
isspmatrixr6   r   r   r   r   test_isspmatrix
  r   r   )r   r   r   r   r   r   r   r   r	   c                 C   s   t jjd| d}t j|| }t|t jjrJ t|t jjs#J ||r)J ||s/J || r7J || r?J d S )Nr   )r   )r   r   rI   rJ   asformatr'   r   r6   )r   r   r   r   r   r   r   test_isspmatrix_format  s   r  )\r:   numpyr)   numpy.testingtestingrR   scipy.sparser   scipy.sparse.linalgr   rk   rd   scipy._lib._utilr   r   sparray_classesru   r   r    floatr"   sparrayssquare_sparrayseig_sparraysmarkparametrizeparametrize_sparraysparametrize_square_sparraysparametrize_eig_sparraysr,   r.   r4   r7   r=   r?   rA   rE   rM   rP   rT   rV   rY   rZ   r\   r_   rb   rh   rn   rr   rv   rx   rz   r}   r   r   r   r   r   r   r   r   r   rJ   r   r   int64int32r   r   r   r   r   r   r   r   r   r   hstackvstackr   r   r   r   r   isspmatrix_bsrisspmatrix_cooisspmatrix_cscisspmatrix_csrisspmatrix_diaisspmatrix_dokisspmatrix_lilr  r   r   r   r   <module>   s0   






























	
#
	







