o
    5Bi!                     @   sB  d dl Zd dlZd dlmZ dd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdg d defd!d"Zejdeg d#g d#deeef fd$d%Zejdg d&defd'd(Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Z d5d6 Z!d7d8 Z"dS )9    N)	coo_arrayc                  C   s   t d} | jdksJ t|  tdsJ t d}|jdks#J t| tds0J tjtdd t d W d    d S 1 sGw   Y  d S )N   r      zinvalid input formatmatch)r   r   r   )	r   shapenparray_equaltoarrayzerospytestraises	TypeError)empty1dempty2d r   [/var/www/html/Trade-python/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_coo.pytest_shape_constructor   s   
"r   c                  C   s   t g d} | jdksJ t|  tg dsJ t g dg dg}|jdks-J t| tg dg dgs@J tjtdd t dggdggg W d    d S 1 s]w   Y  d S )	N   r   r   r            r   r   shape must be a 1- or 2-tupler   r   r   	r   r	   r
   r   r   arrayr   r   
ValueErrorres1dres2dr   r   r   test_dense_constructor   s   &"r$   c                  C   s   t g ddd} | jdksJ t|  tg dsJ t g dg dgdd}|jdks1J t| tg dg dgsDJ tjtdd t dggd	gggd
d W d    d S 1 scw   Y  d S )Nr   r   r	   r   r   r   r   r   r   )r   r   r   r   r!   r   r   r   !test_dense_constructor_with_shape    s   &"r&   c                   C   sF  t jtdd tg ddd W d    n1 sw   Y  t jtdd tg ddd W d    n1 s9w   Y  t jtdd tg dgdd W d    n1 sYw   Y  t jtdd td	gd
gffdd W d    n1 s{w   Y  t jtdd td	gdgff W d    d S 1 sw   Y  d S )Nzinconsistent shapesr   r   r   r%   r   r   r   z)axis 0 index 2 exceeds matrix dimension 2r   r   )r   znegative axis 0 index: -1)r   r   r    r   r   r   r   r   .test_dense_constructor_with_inconsistent_shape-   s"   "r*   c                  C   s<   t d} t | }|jdksJ t| tdsJ d S )Nr   )r   r	   r
   r   r   r   )r   resr   r   r   test_1d_sparse_constructor?   s   r,   c                  C   sF   t ddgddgff} | jdksJ t|  tg ds!J d S )N	      r   r   r   )r   r-   r.   r   r	   r
   r   r   r   r+   r   r   r   test_1d_tuple_constructorF   s   "r1   c                  C   sJ   t ddgddgffdd} | jdksJ t|  tg ds#J d S )Nr-   r.   r   r   r'   r%   )r   r-   r.   r   r/   r0   r   r   r   $test_1d_tuple_constructor_with_shapeL   s   "r2   c                  C   s   t d} tjtdd d| d< W d    n1 sw   Y  tjtdd | dd d f  W d    d S 1 s:w   Y  d S )N)r   r   z3'coo_array' object does not support item assignmentr   r   )r   r   z''coo_array' object is not subscriptabler   )r   r   r   r   )coo_2dr   r   r   test_non_subscriptabilityQ   s   
"r4   c                  C   s   t g d} | jdksJ | d}|jdksJ t| tdgdgdggs,J | d}|jdks8J t| tg dgsHJ t g dg d	g}|jd
ksYJ |d}|jdkseJ t| tg dstJ d S )N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	   reshaper
   r   r   r   )arr1dcol_vecrow_vecarr2dflatr   r   r   test_reshape\   s   
&
 
"r>   c                  C   s\   t g d} | jdksJ | jdksJ t g dg dg}|jdks%J |jdks,J d S )Nr5   r   r   r6   r7   r   r   )r   r	   nnzr9   r<   r   r   r   test_nnzp   s   rA   c               	   C   s   t g dj} | jdksJ t|  tg dsJ t g dg dgj}|jdks/J t| tddgddgdd	ggsEJ d S )
Nr5   r   r6   r7   r   r   r   r   r   )r   Tr	   r
   r   r   r   r@   r   r   r   test_transposez   s   0rC   c                  C   s"  t g djdd} | jdksJ t|  tg ds J t g dg dgjdd}|jdks5J t| tg dg dgsHJ tjt	d	d
 t g djdd W d    n1 sdw   Y  tjt	dd
 t g dg dgjdd W d    d S 1 sw   Y  d S )Nr5   )r   )axesr   r6   r7   )r   r   r   z"axes don't match matrix dimensionsr   zrepeated axis in transpose)r   r   )
r   	transposer	   r
   r   r   r   r   r   r    r@   r   r   r   test_transpose_with_axis   s   &"rF   c                  C   s   t g d} t| jtg dsJ t| jt| js!J | jj| jjks+J | jjj	du s4J g d| _t
| jdksBJ t| jtg dsPJ | jj| jjksZJ tjtdd g d| _W d    d S 1 srw   Y  d S )Nr   )r   r   r   Fr   r   zcannot set row attributer   )r   r
   r   colr   row
zeros_likedtypeflags	writeablelencoordsr   r   r    r0   r   r   r   test_1d_row_and_col   s   
"rR   c               	   C   s   t g d} | j| j| j| j| jfD ]}tjtdd |  W d    n1 s)w   Y  q| j	| j
fD ]}t|  |  sDJ q5d S )NrG   zCannot convertr   )r   tocsctocsrtodiatoliltobsrr   r   r    tocootodokr
   r   r   )r+   fr   r   r   test_1d_toformats   s   r[   arg)r   r   r   r   r.   c                 C   V   t g d}t|}|j| dd ||  |j|jksJ t | |s)J d S )NrG   Frefcheckr
   r   r   resizer	   r   r   r\   denr+   r   r   r   test_1d_resize   s   
rd   )r   r   r   r   c                 C   r]   )Nr5   Fr^   r`   rb   r   r   r   test_1d_to_2d_resize   s   
re   )r   r   r   r.   c                 C   s^   t g dg dg}t|}|j| dd ||  |j|jks#J t | |s-J d S )Nr5   )r   r   r   Fr^   r`   rb   r   r   r   test_2d_to_1d_resize   s   
rf   c                  C   sz   t g dg dff} | jdksJ t|  tddgs!J |   | jdks,J t|  tddgs;J d S )N)r   r   r   r   r   r   r   r   r   )r   r?   r
   r   r   r   sum_duplicatesr9   r   r   r   test_sum_duplicates   s   "rj   c                  C   s   t g dg dff} | jdksJ |  dksJ t|  tddgs)J |   | jdks4J |  dks<J t|  tddgsKJ t| jtdgsXJ t| j	tdgseJ d S )N)r   r   r   rg   r   r   r   )
r   r?   count_nonzeror
   r   r   r   eliminate_zerosrJ   rK   ri   r   r   r   test_eliminate_zeros   s   rm   c                  C   sX   t g d} t g d}| | }t| | }t|t|ks"J t ||s*J d S )Nr   rH   rI   r   r   r   r   r   )r
   r   r   typer   den_aden_bexpr+   r   r   r   test_1d_add_dense   s   ru   c                  C   s`   t g d} t g d}tjtdd t| t|  W d    d S 1 s)w   Y  d S )Nrn   ro   z Cannot convert a 1d sparse arrayr   )r
   r   r   r   r    r   )rr   rs   r   r   r   test_1d_add_sparse   s   "rv   c                  C   sV   t g d} t g d}| | }t| | }t |dks!J t ||s)J d S )Nrn   ro   r   )r
   r   r   ndimr   rq   r   r   r   test_1d_matmul_vector   s   rx   c                  C   sb   t g d} t g dg dgj}| | }t| | }t|t|ks'J t ||s/J d S )Nrn   ro   r   r   r   r   )r
   r   rB   r   rp   r   )rc   otherrt   r+   r   r   r   test_1d_matmul_multivector   s   r{   c                  C   sJ   t g dg dg} t| }| | j }||j }t | |s#J d S )Nro   ry   )r
   r   r   rB   r   r   )rc   r<   rt   r+   r   r   r   test_2d_matmul_multivector  s
   

r|   c                  C   sN   t g d} tjtdd t|   W d    d S 1 s w   Y  d S )Nrn   z diagonal requires two dimensionsr   )r
   r   r   r   r    r   diagonal)rc   r   r   r   test_1d_diagonal  s   "r~   )#numpyr
   r   scipy.sparser   r   r$   r&   r*   r,   r1   r2   r4   r>   rA   rC   rF   rR   r[   markparametrizeintrd   ziptuplere   rf   rj   rm   ru   rv   rx   r{   r|   r~   r   r   r   r   <module>   s>    

		
			
		