
    Ug                        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                            dg d          defd            Zej                            d eg dg d                    deeef         fd            Ze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$dS )!    N)assert_equal)	coo_arrayc                     t          d          } | j        dk    sJ t          |                                 t	          j        d                     t          d          }|j        dk    sJ t          |                                t	          j        d                     t          j        t          d          5  t          d           d d d            d S # 1 swxY w Y   d S )N   r      zinvalid input formatmatch)r   r	   r	   )	r   shaper   toarraynpzerospytestraises	TypeError)empty1dempty2ds     Z/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/sparse/tests/test_coo.pytest_shape_constructorr      s   ooG=D    ""BHTNN333G=F""""""BHV$4$4555	y(>	?	?	?  )                 s   <CC Cc                     t          g d          } | j        dk    sJ t          |                                 t	          j        g d                     t          g dg dg          }|j        dk    sJ t          |                                t	          j        g dg dg                     t          j        t          d          5  t          dggdggg           d d d            d S # 1 swxY 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res2ds     r   test_dense_constructorr&      s<   iii  E;$"(999"5"5666yyy))),--E;&    "(IIIyyy+A"B"BCCC	z)H	I	I	I " "QC5A3%.!!!" " " " " " " " " " " " " " " " " "s   C//C36C3c                     t          g dd          } | j        dk    sJ t          |                                 t	          j        g d                     t          g dg dgd          }|j        dk    sJ t          |                                t	          j        g dg dg                     t          j        t          d          5  t          dggd	gggd
           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r
   r   r   )r	   r   r   r    r#   s     r   !test_dense_constructor_with_shaper)   !   sK   iiit,,,E;$"(999"5"5666yyy))),F;;;E;&    "(IIIyyy+A"B"BCCC	z)H	I	I	I 3 3QC5A3%.	22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   C55C9<C9c                     t          j        t          d          5  t          g dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          g dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          g dgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          d	gd
gffd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          d	gdgff           d d d            d S # 1 swxY w 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   .test_dense_constructor_with_inconsistent_shaper0   .   s   	z)>	?	?	? ) ))))4(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 
z)>	?	?	? + +)))6****+ + + + + + + + + + + + + + + 
z)>	?	?	? + +999+T****+ + + + + + + + + + + + + + + 
zH
J 
J 
J - -A3!-t,,,,- - - - - - - - - - - - - - - 
z)D	E	E	E " "A3".!!!" " " " " " " " " " " " " " " " " "sW   <A A "BB	B(C		CC/DDD8EE!Ec                      t          d          } t          |           }|j        dk    sJ t          |                                t	          j        d                     d S )Nr   )r   r   r   r   r   r   )r   ress     r   test_1d_sparse_constructorr3   @   sS    ooG
G

C9/////r/   c                      t          ddgddgff          } | j        dk    sJ t          |                                 t	          j        g d                     d S )N	      r   r	   r   )r   r5   r6   r   r   r   r   r   r!   r2   s    r   test_1d_tuple_constructorr9   G   s]    
aUaUH%
&
&C9 3 344444r/   c                      t          ddgddgffd          } | j        dk    sJ t          |                                 t	          j        g d                     d S )Nr5   r6   r   r	   r+   r(   )r   r5   r6   r   r7   r8   s    r   $test_1d_tuple_constructor_with_shaper;   M   sb    
aUaUH%T
2
2
2C9 6 677777r/   c                     t          d          } t          j        t          d          5  d| d<   d d d            n# 1 swxY w Y   t          j        t          d          5  | dd d f          d d d            d S # 1 swxY 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_2ds    r   test_non_subscriptabilityr>   R   s"   vF	yS
U 
U 
U  t               
yF
H 
H 
H  q!!!t                 s!   =AA#A==BBc                     t          g d          } | j        dk    sJ |                     d          }|j        dk    sJ t          |                                t          j        dgdgdgg                     |                     d          }|j        dk    sJ t          |                                t          j        g dg                     t          g dg d	g          }|j        d
k    sJ |                    d          }|j        dk    sJ t          |                                t          j        g d                     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flats        r   test_reshaperI   ]   sH   iii  E;$mmF##G=F""""""BHqcA3_$=$=>>>mmF##G=F""""""BHiii[$9$9:::yyy))),--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 d S )Nr@   r   r	   rA   rB   r   r   )r   r   nnzrD   rG   s     r   test_nnzrM   q   su    iii  E;$9>>>>yyy))),--E;&    9>>>>>>r/   c            	         t          g d          j        } | j        dk    sJ t          |                                 t          j        g d                     t          g dg dg          j        }|j        dk    sJ t          |                                t          j        ddgddgdd	gg                     d S )
Nr@   r   rA   rB   r   r   r   r	   r   )r   Tr   r   r   r   r!   rL   s     r   test_transposerP   {   s    iii  "E;$"(999"5"5666yyy))),--/E;&    "(QFQFQF+C"D"DEEEEEr/   c                      t          g d                              d          } | j        dk    sJ t          |                                 t          j        g d                     t          g dg dg                              d          }|j        dk    sJ t          |                                t          j        g dg dg                     t          j        t          d	
          5  t          g d                              d           d d d            n# 1 swxY w Y   t          j        t          d
          5  t          g dg dg                              d           d d d            d S # 1 swxY w Y   d S )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   iii  ***55E;$"(999"5"5666yyy))),--77V7DDE;&    "(IIIyyy+A"B"BCCC	z)M	N	N	N 4 4)))&&F&3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 
z)E	F	F	F A A999iii())333@@@A A A A A A A A A A A A A A A A A As$   4&D&&D*-D**FF
F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            d S # 1 swxY w Y   d S )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      sd   
KKK
 
 C"(999--..."-001117=CGM))))7="e++++iiCGsz??a"(999--...7=CGM))))	z)C	D	D	D  ))                 s   
D22D69D6c                     t          g d          } | j        | j        | j        | j        fD ]?}t          j        t          d          5   |             d d d            n# 1 swxY w Y   @| j        | j	        | j
        fD ]>}t           |                                            |                                            ?d S )NrV   zCannot convertr
   )r   tobsrtocsctodiatolilr   r   r"   tocootocsrtodokr   r   )r2   fs     r   test_1d_toformatsrk      s    
KKK
 
 CiCIsy9  ]:-=>>> 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	iCI. 3 3QQSS[[]]CKKMM22223 3s   	A  A$	'A$	arg)r   r	   r   r   r6   c                    t          j        g d          }t          |          }|                    | d           |                    |            |j        |j        k    sJ t          |                                |           d S )NrV   Frefcheckr   r!   r   resizer   r   r   rl   denr2   s      r   test_1d_resizert      sx    
(;;;

C
C..CJJsUJ###JJsOOO9	!!!!$$$$$r/   )r   r	   r   r   c                    t          j        g d          }t          |          }|                    | d           |                    |            |j        |j        k    sJ t          |                                |           d S )Nr@   Frn   rp   rr   s      r   test_1d_to_2d_resizerv      sx    
(999

C
C..CJJsUJ###JJsOOO9	!!!!$$$$$r/   )r   r   r   r6   c                    t          j        g dg dg          }t          |          }|                    | d           |                    |            |j        |j        k    sJ t          |                                |           d S )Nr@   )r   r   r   Frn   rp   rr   s      r   test_2d_to_1d_resizerx      s    
(IIIyyy)
*
*C
C..CJJsUJ###JJsOOO9	!!!!$$$$$r/   c                  f   t          g dg dff          } | j        dk    sJ t          |                                 t	          j        ddg                     |                                  | j        dk    sJ t          |                                 t	          j        ddg                     d S )N)r	   r	   r	   r   r   r   r   r	   r   )r   rK   r   r   r   r!   sum_duplicatesrD   s    r   test_sum_duplicatesr}      s    yyy999,/00E9>>>>"(Aq6"2"2333	9>>>>"(Aq6"2"233333r/   c                  n   t          g dg dff          } | j        dk    sJ |                                 dk    sJ t          |                                 t          j        ddg                     |                                  | j        dk    sJ |                                 dk    sJ t          |                                 t          j        ddg                     t          | j        t          j        dg                     t          | j	        t          j        dg                     d S )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   yyy999,/00E9>>>>  A%%%%"(Aq6"2"2333	9>>>>  A%%%%"(Aq6"2"2333BHaSMM***BHaSMM*****r/   c                      t          j        g d          } t          j        g d          }| |z   }t          |           |z   }t          |          t          |          k    sJ t	          ||           d S 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    H^^^$$EH\\\""E
%-C
E

U
"C99S		!!!!cr/   c                      t          j        g d          } t          j        g d          }| |z   }t          |           t          |          z   }t          ||                                           d S r   )r   r!   r   r   r   )r   r   	dense_sum
sparse_sums       r   test_1d_add_sparser      sm    H^^^$$EH\\\""EI5!!Ie$4$44JJ..0011111r/   c                      t          j        g d          } t          j        g d          }| |z  }t          |           |z  }t          j        |          dk    sJ t	          ||           d S )Nr   r   r   )r   r!   r   ndimr   r   s       r   test_1d_matmul_vectorr      sr    H^^^$$EH\\\""E
%-C
E

U
"C73<<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          ||           d S )Nr   r   r   r	   r   r   )r   r!   rO   r   r   r   )rs   otherr   r2   s       r   test_1d_matmul_multivectorr      s    
(>>>
"
"CHlllLLL1224E
+C
C..5
 C99S		!!!!cr/   c                      t          j        g dg dg          } t          |           }| | j        z  }||j        z  }t	          |                                |           d S )Nr   r   )r   r!   r   rO   r   r   )rs   rG   r   r2   s       r   test_2d_matmul_multivectorr     s]    
(LLL,,,/
0
0CcNNE
+C
%'/C$$$$$r/   c                      t          j        g d          } t          j        t          d          5  t          |                                            d d d            d S # 1 swxY w Y   d S )Nr   z diagonal requires two dimensionsr
   )r   r!   r   r   r"   r   diagonal)rs   s    r   test_1d_diagonalr     s    
(>>>
"
"C	z)K	L	L	L " "#!!!" " " " " " " " " " " " " " " " " "s   "A!!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      sk       & & & & & &  " " " " " "
 
 

" 
" 
"
3 
3 
3" " "$0 0 05 5 58 8 8
	 	 	? ? ?(  F F FA A A    3 3 3 00% % % % 10% LLL,,, ? ?@@%eCHo % % % A@% --%c % % % .-%4 4 4
+ 
+ 
+  2 2 2    % % %" " " " "r/   