
    (ph<              	       D   S r SSKrSSKrSSKJrJr  SSKJrJ	r	J
r
JrJrJrJr  SSKJrJr  SSKJr  \R(                  R+                  5       r\R/                  \5        \\\/r\R2                  \R4                  \R6                  /r\R:                  S 5       r\R:                  S 5       r\R@                  RC                  S	\\	\
\/5      S
 5       r"\R@                  RC                  S	\\\\	\
\/5      S 5       r#\R@                  RC                  S	\5       " S S5      5       r$g)z*Test of 1D aspects of sparse array classes    N)assert_equalassert_allclose)	bsr_array	csc_array	dia_array	lil_array	coo_array	csr_array	dok_array)supported_dtypesmatrix)ComplexWarningc                  4    [         R                  " / SQS5      $ )N)   r      r   d)nparray     S/var/www/html/venv/lib/python3.13/site-packages/scipy/sparse/tests/test_common1d.pydat1dr      s    88L#&&r   c                     [          Vs0 s H  oU R                  U5      _M     nn[         VVVs0 s H0  nX2R                  5        VVs/ s H  u  pXU" U5      4PM     snn_M2     snnn$ s  snf s  snnf s  snnnf N)math_dtypesastype
spcreatorsitems)r   dtype
dat_dtypes	spcreatordats        r   datsp_math_dtypesr#      sz    :EF+e,,+JF $#I 	CSCSCUVCUZUU30CUVV#  GVs   A,A7	A1A71A7r!   c                 ~    [         R                  " [        SS9   U " / SQ5        S S S 5        g ! , (       d  f       g = f)Nzarrays don't support 1D inputmatchr   r      r   pytestraises
ValueErrorr!   s    r   test_no_1d_support_in_initr.   (   s&    	z)H	I, 
J	I	Is   .
<c                     [         R                  " [        SS9   U " [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nzarrays don't.*support 3Dr%   )r   r(      )r*   r+   r,   r   onesr-   s    r   test_no_nd_support_in_initr2   0   s1     
z)C	D"'')$% 
E	D	Ds   A  
Ac                      \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS r\R.                  R0                  \S 5       5       r\R.                  R0                  \S 5       5       r\R.                  R0                  \S 5       5       rS rS rS rS r S r!S r"S r#S r$S r%S  r&S! r'S"r(g#)$TestCommon1D9   z5test common functionality shared by 1D sparse formatsc                     [        U" S5      R                  5       [        R                  " S5      5        [        U" S5      R                  S5        [        U" S5      R                  5       S5        g )Nr   r   r   )r   toarrayr   zerosnnzcount_nonzeroselfr!   s     r   test_create_emptyTestCommon1D.test_create_empty=   sL    Yt_,,.<Yt_((!,Yt_224a8r   c                 z    [         R                  " [        SS9   U" S5        S S S 5        g ! , (       d  f       g = f)Nzelements cannot be negativer%   )r)   r<   s     r   test_invalid_shapes TestCommon1D.test_invalid_shapesB   s&    ]]:-JKe LKKs   	,
:c                 &    [        U" U5      5        g r   )reprr=   r!   r   s      r   	test_reprTestCommon1D.test_reprF   s    Yur   c                 &    [        U" U5      5        g r   )strrF   s      r   test_strTestCommon1D.test_strI   s    Ier   c                 z    [         R                  " / SQS5      n[        U* U" U5      * R                  5       5        g )N)r      r   r   r   r   r   r   r   r   r   r   r   r8   r=   r!   As      r   test_negTestCommon1D.test_negL   s.    HH=sCaR9Q<-0023r   c                 <    U" / SQ5      nUR                   S:X  d   eg )Nr'   r   )ndimrS   s      r   test_1d_supported_init#TestCommon1D.test_1d_supported_initP   s    l#vv{{r   c                    U" / SQ5      nUR                  SS5      n/ SQ/n[        UR                  5       U5        U" U5      nUR                  S5      n[        UR                  5       US   5        UR                  S5      nUR                  UR                  :X  d   eUR                  R                  S5      n[        UR                  5       US   5        g )Nr   r      r   r   r   r   rA   r   r   r      r      r   r_   )reshaper   r8   shapeT)r=   r!   xydesiredy2s         r   $test_reshape_1d_tofrom_row_or_column1TestCommon1D.test_reshape_1d_tofrom_row_or_columnT   s    ;<IIa89QYY['* gIIbMQYY['!*-YYuww"((""" CCKKOQYY['!*-r   c                 *   U" / SQ5      nUR                  S5      n/ SQ/ SQ/ SQ/ SQ/n[        UR                  5       U5        UR                  S5      nX2L d   eUR                  S5      n[        UR                  5       UR                  5       5        g )	Nr\   )r0   r   )r   r   r]   r   r   r   )r   rA   r   )r   r   r^   r`   r_   )ra   r   r8   )r=   r!   rd   re   rf   s        r   test_reshapeTestCommon1D.test_reshapef   ss    ;<IIfiY?QYY['*IIevvIIbMQYY[!))+.r   c           	      d   [         R                  R                  S5        [         R                  " / SQ5      n[         R                  R	                  S5      n[         R                  " / 5      n[         R
                  " S5      nX#XE/nU H  nU" U5      n[         R                  " SS9   [         R                  " UR                  5       5      (       d   e[        UR                  5       UR                  5       5        [        UR                  S S9UR                  S S95        [        UR                  SS9UR                  SS95        [        UR                  S	S9UR                  S	S95        S S S 5        M     WR                  S[         R
                  " S
5      S9  g ! , (       d  f       GM&  = f)Ni  )	r   r   r(   r   rQ   r^   r]   	   r^   )(   ignore)overaxisr   rN   r   ru   out)
r   randomseedr   randr9   errstateisscalarsumr   )	r=   r!   dat_1dat_2dat_3dat_4arraysr"   datsps	            r   test_sumTestCommon1D.test_sumr   s1   
		t67		q!-CcNE(+{{599;////	599;7T 2EII4I4HIQ1BCR 0%)))2DE ,+  			qbhhrl	+ ,+s   (CF
F/	c                    [         R                  " S5      n[         R                  " / SQ5      nU" U5      n[        R                  " [
        SS9   UR                  SS9  S S S 5        [        R                  " [        SS9   UR                  SS9  S S S 5        [        R                  " [        S	S9   UR                  S
S9  S S S 5        [        R                  " [
        SS9   UR                  SUS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)Nr7   r   r   r(   zaxis must be None, -1 or 0r%   r   rt   Tuples are not acceptedr   r   axis must be an integer      ?"output parameter.*wrong.*dimensionr   rv   )r   r9   r   r*   r+   r,   r}   	TypeErrorr=   r!   rw   r"   r   s        r   test_sum_invalid_params$TestCommon1D.test_sum_invalid_params   s    hhtnhhy!#]]:-IJII1I K]]9,EFII6I" G]]9,EFII3I G]]:-QRII1#I& SR KJFFFFRRs0   C=D2D#D0=
D
D
D-0
D>c                     [         R                  " / SQ5      nU" U5      n[         R                  " U5      n[         R                  " U5      n[        XE5        g Nr   )r   r   r}   r   )r=   r!   r"   r   dat_sum	datsp_sums         r   test_numpy_sumTestCommon1D.test_numpy_sum   s;    hhy!#&&+FF5M	+r   c                    [         R                  " / SQ5      nU" U5      n[        UR                  5       UR                  5       5        [         R                  " UR                  S S95      (       d   e[        UR                  S S9UR                  S S95        [        UR                  SS9UR                  SS95        [        UR                  SS9UR                  SS95        [
        R                  " [        SS9   UR                  SS9  S S S 5        [
        R                  " [        SS9   UR                  SS9  S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)	Nr   rt   r   rN   ru   r%   r   )r   r   r   meanr|   r*   r+   r,   )r=   r!   r"   r   s       r   	test_meanTestCommon1D.test_mean   s   hhy!#
EJJL1{{5::4:01111d+UZZTZ-BCa(%**!**<=b)5::2:+>?]]:V4JJAJ 5]]:V4JJBJ 54 5444s   >E/E
E
E'c                    [         R                  " [         R                  " S5      5      n[         R                  " / SQ/ SQ/ SQ/5      nU" U5      n[        R
                  " [        SS9   UR                  SS9  S S S 5        [        R
                  " [        S	S9   UR                  S
S9  S S S 5        [        R
                  " [        SS9   UR                  SS9  S S S 5        [        R
                  " [        SS9   UR                  SUS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)N)r   r   r   )r   rQ   r^   )ro   r]   rp   zaxis out of ranger%   r   rt   r   r   r   r   r   r   rv   )	r   asarrayr9   r   r*   r+   r,   r   r   r   s        r   test_mean_invalid_params%TestCommon1D.test_mean_invalid_params   s    jj&)*hh	:z:;#]]:-@AJJAJ B]]9,EFJJFJ# G]]9,EFJJCJ  G]]:-QRJJA3J' SR BAFFFFRRs0   +DD)D:>E
D&)
D7:
E
Ec                     [         R                  " / SQ5      nU" U5      n[         HL  nUR                  US9nUR                  US9n[	        XV5        [        UR                  UR                  5        MN     g Nr   r   )r   r   r   r}   r   r   r   )r=   r!   r"   r   r   r   r   s          r   test_sum_dtypeTestCommon1D.test_sum_dtype   s]    hhy!#%EggEg*G			.IG/	8 &r   c                     [         R                  " / SQ5      nU" U5      n[         HL  nUR                  US9nUR                  US9n[	        XV5        [        UR                  UR                  5        MN     g r   )r   r   r   r   r   r   r   )r=   r!   r"   r   r   dat_mean
datsp_means          r   test_mean_dtypeTestCommon1D.test_mean_dtype   s_    hhy!#%Exxex,H%0JH1)9)9: &r   c                    [         R                  " / SQ5      nU" U5      n[         R                  " S5      n[         R                  " S5      nUR                  US9  UR                  US9  [        XE5        UR                  SUS9  UR                  SUS9  [        XE5        [        R
                  " [        SS9   UR                  [         R                  " S/5      S9  S S S 5        [        R
                  " [        SS9   UR                  [         R                  " S//5      S9  S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nr   r   rw   rv   zoutput parameter.*dimensionr%   )r   r   r   r   r*   r+   r,   )r=   r!   r"   r   dat_out	datsp_outs         r   test_mean_outTestCommon1D.test_mean_out   s    hhy!#((1+HHQK	W

y
!+aW%

y
)+]]:-JKJJ288QC=J) L]]:-JKJJ288aSE?J+ LK LKKKs   :%D/ &E /
D= 
Ec                     [         R                  " / SQ5      nU" U5      n[         R                  " U5      n[         R                  " U5      n[        XE5        [	        UR
                  UR
                  5        g r   )r   r   r   r   r   r   )r=   r!   r"   r   r   r   s         r   test_numpy_meanTestCommon1D.test_numpy_mean   sO    hhy!#773<WWU^
-X^^Z%5%56r   c                 @   [         R                  " / SQ5      n[        U" U5      R                  5       U5        [         R                  " / SQ5      n[        U" U5      R                  5       U5        [        U" USS9R                  5       UR	                  S5      5        g N)r(   r   r0   y      ?      @r   rN   int16r   )r   r   r   r8   r   rS   s      r   test_from_arrayTestCommon1D.test_from_array   sr     HHYYq\))+Q/HH&'Yq\))+Q/Yq088:AHHW<MNr   c                 @   / SQn[        U" U5      R                  5       U5        / SQn[        U" U5      R                  5       [        R                  " U5      5        [        U" USS9R                  5       [        R                  " U5      R	                  S5      5        g r   )r   r8   r   r   r   rS   s      r   test_from_listTestCommon1D.test_from_list   st     Yq\))+Q/Yq\))+RXXa[9aw'//1288A;3E3Eg3N	
r   c                 h   [         R                  " / SQ5      n[        U5      n[        U" U5      R	                  5       U5        U" U5      n[        U" U5      R	                  5       U5        [         R                  " / SQ5      n[        U5      n[        U" U5      R	                  5       U5        [        U" USS9R	                  5       UR                  S5      5        U" U5      n[        U" U5      R	                  5       U5        [        U" USS9R	                  5       UR                  S5      5        g )N)r   r   r   r   r   r   )r   r   r	   r   r8   r   r=   r!   DSs       r   test_from_sparseTestCommon1D.test_from_sparse  s     HHYaLYq\))+Q/aLYq\))+Q/HH&'aLYq\))+Q/Yq088:AHHW<MNaLYq\))+Q/Yq088:AHHW<MNr   c                    U" U5      nUR                  5       n[        XB5        UR                  R                  UR                  R                  :X  d   eUR                  SS9n[        XB5        UR                  R                  (       d   eUR                  R                  (       d   eUR                  SS9n[        XB5        UR                  R                  (       d   eUR                  R                  (       d   e[
        R                  " UR                  UR                  S9nUR                  US9  [        XR5        SUS'   UR                  US9  [        XR5        [
        R                  " / SQ5      n[
        R                  " Xb5      n[
        R                  " XcR                  5       5      n[        Xx5        [
        R                  " / SQ5      n	[
        R                  " X)5      n[
        R                  " UR                  5       U	5      n[        Xx5        U" U[        S9n
UR                  [        5      n[        U
R                  5       U5        g )	NC)orderFr   r         ?.)r          @      @g      @)r8   r   flagsc_contiguousf_contiguousr   r9   rb   r   r   dotboolr   )r=   r!   r   r   chkrw   adense_dot_densecheckbspboolarrbools               r   test_toarrayTestCommon1D.test_toarray  s   % mmoS yy%%)?)???? mm#m&S yy%%%%yy%%%% mm#m&S yy%%%%yy%%%% hhu{{%++6#S  C#S  HH)*&&*q--/*_,HH)*&&*u}}*_, 5-,,t$V^^%w/r   c                     X!    Hc  u  p4nUR                  5       nSUS'   UnXv-   n[        XR                  5       U-   5        XvSS -   n[        XR                  5       US   -   5        Me     g )Nr   r   r   copyr   r8   	r=   r!   r#   r   r"   r   r   r   cs	            r   test_addTestCommon1D.test_addC  sl    !2!=E
AAaDAAIIK!O, aF
AIIK!A$./ ">r   c                     X!    H=  u  p4nUR                  5       nSUS'   UnXg-   n[        XUR                  5       -   5        M?     g )Nr   r   r   r   s	            r   	test_raddTestCommon1D.test_raddP  sF    !2!=E
AAaDAA		O, ">r   c                 H   X!    GH  u  p4nU[         R                  " S5      :X  a  M#  [        XE-
  / SQ5        [        XT-
  / SQ5        [        SU-
  R                  5       U* 5        U" / SQSS9n[        XF-
  XFR                  5       -
  5        [        Xd-
  UR                  5       U-
  5        [        UR                  5       U-
  UR                  5       U-
  5        [        XVR                  5       -
  XFR                  5       -
  5        [        US S U-
  US S U-
  5        GM     g )Nr   )r   r   r   r   r   )r   rQ   r   r(   r   r   r   )r   r   r   r8   )r=   r!   r#   r   r"   r   rT   s          r   	test_rsubTestCommon1D.test_rsubX  s    !2!=E((#+5%+5!e),,.5-s3A#'C))+$56!'AIIK#$56u,aiikC.?@,cIIK.?@ Ra5#bq'C-8! ">r   c                 f   [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " / SQ5      nU" U5      nU" U5      n[        XE-  R                  5       X#-  5        [        X%-  X#-  5        [        XC-  X#-  5        [        XT-  R                  5       X2-  5        [        XR-  X2-  5        [        X4-  X2-  5        [        XU-  X3-  5        [        X5-  X3-  5        [        XS-  X3-  5        [        XD-  R                  5       X"-  5        [        X$-  X"-  5        [        XB-  X"-  5        g )Nr(   r   r   rk   r   r   r   r   rR   )r=   r!   rT   vAspvsps         r   test_matmul_basicTestCommon1D.test_matmul_basick  s    HHk9i89HHYll 	ci((*AE2QWae$SWae$ci((*AE2SWae$QWae$SY&QWae$SWae$ci((*AE2QWae$SWae$r   c                 r   [         R                  " / SQ5      nU" U5      n[         R                  " / SQ/5      R                  n[        X4-  UR	                  5       U-  5        U[         R                  " / SQ5      -  R
                  S:X  d   eU[         R                  " / SQ5      -  S:X  d   eU[         R                  " / SQ5      -  R
                  S:X  d   eU[         R                  " S/S/S//5      -  R
                  S:X  d   e[        U[        / SQ/5      R                  -  [         R                  5      (       d   e[         R                  " SS/5      [         R                  " / S	Q5      [         R                  " S/S//5      /nU H)  n[        R                  " [        S
S9   X6-    S S S 5        M+     [         R                  " UR	                  5       / SQ5      n[        U[         R                  " / SQ5      -  U5        [        US/S/S//-  UR                  5        g ! , (       d  f       M  = f)Nr   )r   r(   r   r      r   r(   r   )r   r   r(   r   r0   zdimension mismatchr%   )r   r   rc   r   r8   rb   
isinstancer   ndarrayr*   r+   r,   r   )r=   r!   rT   r   colbad_vecsrd   
dot_results           r   test_matvecTestCommon1D.test_matvec  s   HH[!lhh	{#%%	3;;=3#67BHHY''.."444RXXi((B...bhhy))00B666bhhaS1#//66$>>>#	{ 3 5 55rzzBBBB HHaV$bhh|&<bhhaSz>RSAz1EF GF  VVCKKM95
bhhy11:>sQC!o-z||< GFs   *H''
H6	c                     U" U5      n[        / SQU-  [        R                  " / SQUR                  5       5      5        [        R                  " / SQ/5      n[        XC-  XCR                  5       -  5        g )Nr   )r   r   r   r8   r   )r=   r!   r   Mrows        r   test_rmatvecTestCommon1D.test_rmatvec  sQ    eq("&&qyy{*KLhh~&yy{!23r   c                    U[         R                  " / 5      4 Hm  nU" U5      n[        UR                  5       U5        [        UR	                  5       R                  5       U5        [        UR
                  UR
                  5        Mo     g r   )r   r   r   r8   	transposer   )r=   r!   r   rT   Bs        r   test_transposeTestCommon1D.test_transpose  s]    "&A!Aa(..0!4!''*	 'r   c                 h    X!    H*  u  p4nXE-   n[        XdU-   5        XT-   n[        XtU-   5        M,     g r   )r   )r=   r!   r#   r   r"   r   sum1sum2s           r   test_add_dense_to_sparse%TestCommon1D.test_add_dense_to_sparse  s:    !2!=E;DSy);DSy)	 ">r   c                     [         R                  " S5      nU" U5      nUR                  S;  a   [        X25       H  u  pE[	        XE5        M     g g )Nr^   )coodiabsr)r   arangeformatzipr   )r=   r!   r   rT   rd   re   s         r   test_iteratorTestCommon1D.test_iterator  sB    IIaLaL8800A	Q" " 1r   c                     [         R                  " / SQ5      nU" U5      nUR                  S5      b   e[        UR	                  5       / SQ5        UR                  S5        [        UR	                  5       / SQ5        g )N)r   r   r   r0   r7   r   )r^   )r   r   r   r   r   )r   r   resizer   r8   r   s       r   test_resizeTestCommon1D.test_resize  sX    HH\"aLxx~%%%QYY[),	QYY[/2r   r   N))__name__
__module____qualname____firstlineno____doc__r>   rB   rG   rK   rU   rY   rh   rl   r   r   r   r   r   r   r   r   r   r*   markthread_unsafesup_complexr   r   r   r   r   r   r   r   r   r   r   r  r  r  __static_attributes__r   r   r   r4   r4   9   s   ?9
4.$
/,(', (	9	;,(7 [[O  O [[
  
 [[O  O,0\0-9&%*=64+*#3r   r4   )%r  r*   numpyr   numpy.testingr   r   scipy.sparser   r   r   r   r	   r
   r   scipy.sparse._sputilsr   r   scipy._lib._utilr   testingsuppress_warningsr  filterr   int64float64
complex128r   fixturer   r#   r  parametrizer.   r2   r4   r   r   r   <module>r(     s1   0   7   ; + jj**,   > " I.
xxR]]3 ' '   y)Y	&RS  T  )Y	9iS&& j1E3 E3 2E3r   