
    tKg                        d dl Zd dlmZ d dlZd dlmZ d Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej*                  j-                  dg d      defd       Zej*                  j-                  d eg dg d            deeef   fd       Zej*                  j-                  dg d      defd       Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$y)!    N)assert_equal)	coo_arrayc                     t        d      } | j                  dk(  sJ t        | j                         t	        j
                  d             t        d      }|j                  dk(  sJ t        |j                         t	        j
                  d             t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)N   r      zinvalid input formatmatch)r   r	   r	   )	r   shaper   toarraynpzerospytestraises	TypeError)empty1dempty2ds     _/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/sparse/tests/test_coo.pytest_shape_constructorr      s    oG==D   "BHHTN3G==F""""BHHV$45	y(>	?) 
@	?	?s   .CCc                     t        g d      } | j                  dk(  sJ t        | j                         t	        j
                  g d             t        g dg dg      }|j                  dk(  sJ t        |j                         t	        j
                  g dg dg             t        j                  t        d      5  t        dggdggg       d d d        y # 1 sw Y   y xY w)	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res2ds     r   test_dense_constructorr&      s    i E;;$"((9"56y),-E;;&   "((Iy+A"BC	z)H	IQC5A3%.! 
J	I	Is   >CC"c                     t        g dd      } | j                  dk(  sJ t        | j                         t	        j
                  g d             t        g dg dgd      }|j                  dk(  sJ t        |j                         t	        j
                  g dg dg             t        j                  t        d      5  t        dggd	gggd
       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r
   r   r   )r	   r   r   r    r#   s     r   !test_dense_constructor_with_shaper)   !   s    it,E;;$"((9"56y),F;E;;&   "((Iy+A"BC	z)H	IQC5A3%.	2 
J	I	Is   CC(c                     t        j                  t        d      5  t        g dd       d d d        t        j                  t        d      5  t        g dd       d d d        t        j                  t        d      5  t        g dgd       d d d        t        j                  t        d      5  t        d	gd
gffd       d d d        t        j                  t        d      5  t        d	gdgff       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)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   .test_dense_constructor_with_inconsistent_shaper0   .   s    	z)>	?)4( 
@ 
z)>	?)6* 
@ 
z)>	?9+T* 
@ 
zH
JA3!-t,
J 
z)D	EA3".! 
F	E 
@	? 
@	? 
@	?
J 
J 
F	Es;   DDD6D*,D6DDD'*D36D?c                      t        d      } t        |       }|j                  dk(  sJ t        |j                         t	        j
                  d             y )Nr   )r   r   r   r   r   r   )r   ress     r   test_1d_sparse_constructorr3   @   s?    oG
G
C99/r/   c                      t        ddgddgff      } | j                  dk(  sJ t        | j                         t	        j
                  g d             y )N	      r   r	   r   )r   r5   r6   r   r   r   r   r   r!   r2   s    r   test_1d_tuple_constructorr9   G   sF    
aUaUH%
&C99 34r/   c                      t        ddgddgffd      } | j                  dk(  sJ t        | j                         t	        j
                  g d             y )Nr5   r6   r   r	   r+   r(   )r   r5   r6   r   r7   r8   s    r   $test_1d_tuple_constructor_with_shaper;   M   sH    
aUaUH%T
2C99 67r/   c                      t        d      } t        j                  t        d      5  d| d<   d d d        t        j                  t        d      5  | dd d f    d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)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_2ds    r   test_non_subscriptabilityr>   R   sr    vF	yS
Ut
U 
yF
Hq!t
H 
H	
U 
U
H 
Hs   A#
A/#A,/A8c                  t   t        g d      } | j                  dk(  sJ | j                  d      }|j                  dk(  sJ t        |j	                         t        j                  dgdgdgg             | j                  d      }|j                  dk(  sJ t        |j	                         t        j                  g dg             t        g dg d	g      }|j                  d
k(  sJ |j                  d      }|j                  dk(  sJ t        |j	                         t        j                  g d             y )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flats        r   test_reshaperI   ]   s    i E;;$mmF#G==F""""BHHqcA3_$=>mmF#G==F""""BHHi[$9:y),-E;;&   ==D::*<!=>r/   c                      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 y )Nr@   r   r	   rA   rB   r   r   )r   r   nnzrD   rG   s     r   test_nnzrM   q   s_    i E;;$99>>y),-E;;&   99>>r/   c            	      v   t        g d      j                  } | j                  dk(  sJ t        | j	                         t        j                  g d             t        g dg dg      j                  }|j                  dk(  sJ t        |j	                         t        j                  ddgddgdd	gg             y )
Nr@   r   rA   rB   r   r   r   r	   r   )r   Tr   r   r   r   r!   rL   s     r   test_transposerP   {   s    i ""E;;$"((9"56y),-//E;;&   "((QFQFQF+C"DEr/   c                     t        g d      j                  d      } | j                  dk(  sJ t        | j	                         t        j                  g d             t        g dg dg      j                  d      }|j                  dk(  sJ t        |j	                         t        j                  g dg dg             t        j                  t        d	
      5  t        g d      j                  d       d d d        t        j                  t        d
      5  t        g dg dg      j                  d       d d d        y # 1 sw Y   OxY w# 1 sw Y   y xY w)Nr@   )r   )axesr   rA   rB   )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"   rL   s     r   test_transpose_with_axisrT      s   i ***5E;;$"((9"56y),-77V7DE;;&   "((Iy+A"BC	z)M	N)&&F&3 
O 
z)E	F9i()333@ 
G	F 
O	N 
G	Fs   E
"E
EEc                     t        g d      } t        | j                  t        j                  g d             t        | j
                  t        j                  | j                               | j
                  j                  | j                  j                  k(  sJ | j
                  j                  j                  du sJ g d| _        t        | j                        dk(  sJ t        | j                  t        j                  g d             | j
                  j                  | j                  j                  k(  sJ t        j                  t        d      5  g d| _        d d d        y # 1 sw Y   y xY w)Nr   )r   r   r	   Fr   r   zcannot set row attributer
   )r   r   colr   r!   row
zeros_likedtypeflags	writeablelencoordsr   r   r"   r8   s    r   test_1d_row_and_colra      s    
K
 C"((9-."--0177==CGGMM)))77==""e+++CGszz?a"((9-.77==CGGMM)))	z)C	D 
E	D	Ds   
E**E3c                     t        g d      } | j                  | j                  | j                  | j                  fD ]-  }t        j                  t        d      5   |        d d d        / | j                  | j                  | j                  fD ]/  }t         |       j                         | j                                1 y # 1 sw Y   xY w)NrV   zCannot convertr
   )r   tobsrtocsctodiatolilr   r   r"   tocootocsrtodokr   r   )r2   fs     r   test_1d_toformatsrk      s    
K
 CiiCIIsyy9]]:-=>C ?> : iiCII.QS[[]CKKM2 / ?>s   CC	arg)r   r	   r   r   r6   c                     t        j                  g d      }t        |      }|j                  | d       |j                  |        |j                  |j                  k(  sJ t        |j                         |       y )NrV   Frefcheckr   r!   r   resizer   r   r   rl   denr2   s      r   test_1d_resizert      sZ    
((;
C
C.CJJsUJ#JJsO99		!!!$r/   )r   r	   r   r   c                     t        j                  g d      }t        |      }|j                  | d       |j                  |        |j                  |j                  k(  sJ t        |j                         |       y )Nr@   Frn   rp   rr   s      r   test_1d_to_2d_resizerv      sZ    
((9
C
C.CJJsUJ#JJsO99		!!!$r/   )r   r   r   r6   c                    t        j                  g dg dg      }t        |      }|j                  | d       |j                  |        |j                  |j                  k(  sJ t        |j                         |       y )Nr@   )r   r   r   Frn   rp   rr   s      r   test_2d_to_1d_resizerx      s_    
((Iy)
*C
C.CJJsUJ#JJsO99		!!!$r/   c                  H   t        g dg dff      } | j                  dk(  sJ t        | j                         t	        j
                  ddg             | j                          | j                  dk(  sJ t        | j                         t	        j
                  ddg             y )N)r	   r	   r	   r   r   r   r   r	   r   )r   rK   r   r   r   r!   sum_duplicatesrD   s    r   test_sum_duplicatesr}      sy    y9,/0E99>>"((Aq6"23	99>>"((Aq6"23r/   c                  D   t        g dg dff      } | j                  dk(  sJ | j                         dk(  sJ t        | j	                         t        j                  ddg             | j                          | j                  dk(  sJ | j                         dk(  sJ t        | j	                         t        j                  ddg             t        | j                  t        j                  dg             t        | j                  t        j                  dg             y )N)r   r   r   rz   r   r   r   )
r   rK   count_nonzeror   r   r   r!   eliminate_zerosrY   rZ   r|   s    r   test_eliminate_zerosr      s    y9,/0E99>> A%%%"((Aq6"23	99>> A%%%"((Aq6"23BHHaSM*BHHaSM*r/   c                      t        j                  g d      } t        j                  g d      }| |z   }t        |       |z   }t        |      t        |      k(  sJ t	        ||       y Nr   rW   rX   r   r   r   r	   r   )r   r!   r   typer   den_aden_bexpr2   s       r   test_1d_add_denser      sV    HH^$EHH\"E
%-C
E
U
"C9S	!!!cr/   c                      t        j                  g d      } t        j                  g d      }| |z   }t        |       t        |      z   }t        ||j	                                y r   )r   r!   r   r   r   )r   r   	dense_sum
sparse_sums       r   test_1d_add_sparser      sN    HH^$EHH\"EI5!Ie$44JJ..01r/   c                      t        j                  g d      } t        j                  g d      }| |z  }t        |       |z  }t        j                  |      dk(  sJ t	        ||       y )Nr   r   r   )r   r!   r   ndimr   r   s       r   test_1d_matmul_vectorr      sV    HH^$EHH\"E
%-C
E
U
"C773<1cr/   c                      t        j                  g d      } t        j                  g dg dg      j                  }| |z  }t        |       |z  }t	        |      t	        |      k(  sJ t        ||       y )Nr   r   r   r	   r   r   )r   r!   rO   r   r   r   )rs   otherr   r2   s       r   test_1d_matmul_multivectorr      s`    
((>
"CHHlL1244E
+C
C.5
 C9S	!!!cr/   c                      t        j                  g dg dg      } t        |       }| | j                  z  }||j                  z  }t	        |j                         |       y )Nr   r   )r   r!   r   rO   r   r   )rs   rG   r   r2   s       r   test_2d_matmul_multivectorr     sH    
((L,/
0CcNE
+C
%''/C$r/   c                      t        j                  g d      } t        j                  t        d      5  t        |       j                          d d d        y # 1 sw Y   y xY w)Nr   z diagonal requires two dimensionsr
   )r   r!   r   r   r"   r   diagonal)rs   s    r   test_1d_diagonalr     s<    
((>
"C	z)K	L#! 
M	L	Ls   AA)%numpyr   numpy.testingr   r   scipy.sparser   r   r&   r)   r0   r3   r9   r;   r>   rI   rM   rP   rT   ra   rk   markparametrizeintrt   ziptuplerv   rx   r}   r   r   r   r   r   r   r   r.   r/   r   <module>r      s    &  "

"
3"$058
	?(FA  3 0% % 1% L, ?@%eCHo % A% -%c % .%4
+2%"r/   