
    e!h                        d dl Zd dlmZmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlZd Zd Zd Zd Zej&                  j)                  d	 eg d
g dg dg      d df eg d
g dg dg      ddf eg d
g dg dg      ddf eg dg dg dg      d dfg      d        Zd Zd Zej&                  j)                  dee	ee
g      d        Zd Zy)    N)assert_array_almost_equalassert_assert_array_equal)
csr_matrix
csc_matrix	csr_array	csc_arrayhstack)sparsec                     || |f   }|| |f   }t        ||j                         d          t        t        |      t        u        y )Nr   )r   toarrayr   typer   )islXXcsrnp_slice	csr_slices         c/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslicer      sE    BxHQUIh	(9(9(;A(>?DOz)*    c                  \   d} t         j                  j                  d       t         j                  j                  | | f      }d||dkD  <   t        |      }t	        d d d       t	        d d d      t	        ddd      t	        ddd      g}t        |       D ]  }|D ]  }t        ||||         y )N
   r   ffffff?      )nprandomseedr   sliceranger   )Nr   r   slicesr   r   s         r   test_csr_rowslicer&      s    
AIINN1
		!Q AAa#gJa=DD$%D$#Ar1oB2 F
 1X 0 	0B2q$/	00r   c                  t   d} t         j                  j                  d       t         j                  j                  | | f      }d||dkD  <   t        |      }t	        |       D ]U  }|||dz   d d f   }|j                  |      }t        ||j                                t        t        |      t        u        W y Nr   r   r   r   )
r   r    r!   r   r#   getrowr   r   r   r   )r$   r   r   r   arr_rowcsr_rows         r   test_csr_getrowr,       s    
AIINN1
		!Q AAa#gJa=D1X -Aa!eGQJ-++a.!'7??+<=W+,-r   c                  t   d} t         j                  j                  d       t         j                  j                  | | f      }d||dkD  <   t        |      }t	        |       D ]U  }|d d ||dz   f   }|j                  |      }t        ||j                                t        t        |      t        u        W y r(   )
r   r    r!   r   r#   getcolr   r   r   r   )r$   r   r   r   arr_colcsr_cols         r   test_csr_getcolr1   /   s    
AIINN1
		!Q AAa#gJa=D1X -AqQwJ-++a.!'7??+<=W+,-r   z"matrix_input, axis, expected_shape)r   r   r   r   )r   r   r   r   )r   r      r   )r      r   )r2   r   both)r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r2   r   )r      c                 4   | j                         j                  d   dz
  }|}|dz
  }|dk(  rG| ||d d f   j                         j                  }| ||d d f   j                         j                  }n|dk(  rG| d d ||f   j                         j                  }| d d ||f   j                         j                  }nK|dk(  rF| ||||f   j                         j                  }| ||||f   j                         j                  }|k(  sJ |k(  sJ y )Nr   r   r4   )r   shape)matrix_inputaxisexpected_shapeslice_1slice_2slice_3actual_shape_1actual_shape_2s           r   test_csr_empty_slicesr@   =   s5   & ""$**1-1GGkGqy%ggoq&89AACII%ggoq&89AACII	%a&89AACII%a&89AACII	%ggoww&FGOOQWW%ggoww&FGOOQWW^+++^+++r   c                      t        g dg dg dg      } g d}t        j                  |      }g dg dg dg}t        j                  |      }g dg df}t        j                  |d         t        j                  |d         f}| |   j                         }| |   j                         }| |   }	| |   }
| |   }| |   }||k(  j	                         sJ |	|
k(  j	                         sJ ||k(  j	                         sJ y )Nr   r   r   )r2   r3   r5   )         )FTFr   r   )r   r   arrayr   all)datalist_indices1array_indices1list_indices2array_indices2list_indices3array_indices3slice_list1slice_array1slice_list2slice_array2slice_list3slice_array3s                r   test_csr_bool_indexingrU   b   s   y)Y78D(MXXm,N)+?AUVMXXm,N)+?@Mhh}Q/0"((=;K2LMN}%--/K'//1L}%K'L}%K'L<',,...<',,...<',,...r   c                     t        j                  t         j                        j                  } dg}dg}| dz
  }d}|dz
  g}|dz
  g}t	        |||ff      }t	        |||ff      }t        |dz
  |dz
        | k  sJ |j
                  j                  |j                  j                  cxk(  rt         j                  k(  sJ  J |j
                  j                  |j                  j                  cxk(  rt         j                  k(  sJ  J t        ||gd      }	|	j
                  j                         ||z   dz
  k(  sJ ||z   dz
  | kD  sJ |	j
                  j                  |	j                  j                  cxk(  rt         j                  k(  sJ  J t	        |j                        }
t	        |j                        }t        |
|gd      }|j                  |	j                  k(  sJ |j
                  j                  t         j                  k(  sJ | |z
  dz
  g}t	        |||ff      }t        ||gd      }|j
                  j                  t         j                  k(  sJ |j
                  j                         | dz
  k(  sJ y)z
    Tests if hstack properly promotes to indices and indptr arrays to np.int64
    when using np.int32 during concatenation would result in either array
    overflowing.
    g      ?r   r   r2   csr)formatN)r   iinfoint32maxr   indicesdtypeindptrr
   int64r7   )	max_int32rH   rowmax_indices_1max_indices_2col_1col_2X_1X_2X_hs	X_1_empty	X_2_empty
X_hs_emptycol_3X_3X_hs_32s                   r   test_csr_hstack_int64ro   u   sT    "&&I 5D#CMMM QEQE
dS%L)
*C
dS%L)
*C}q -!"34y@@@;;

 0 0<BHH<<<<<;;

 0 0<BHH<<<<< 3*U+D<<!>!BBBB=(1,y888<<!2!2>bhh>>>>> 399%I399%II.u=Jtzz)))##rxx/// &*+E
dS%L)
*Cc3Z.G??  BHH,,,?? IM111r   clsc                    t         j                  j                  d      } | t        j                  dd|d            }|j	                         }|j	                         }|j
                  j                  t         j                        |_        |j                  j                  t         j                        |_        |||fD ]  }t         j                  j                  |ddgd d f   j                         |ddgd d f   j                                t         j                  j                  |d d ddgf   j                         |d d ddgf   j                                 y )Nr   2   g?)random_statedensityr   r   )r   r    default_rngr   copyr^   astyper_   r\   testingr   r   )rp   rngbase_mtxindptr_64bitindices_64bitmtxs         r   #test_mixed_index_dtype_int_indexingr~      s    ))


"C6==Rc3GHH==?LMMOM"//00:L$,,33BHH=M,6 



%%1qM!!#aVQY'')	
 	

%%Aq6	N""$QAY'')	

r   c                  0   t        j                  g d      } t        j                  dg      }t        j                  d      }t        |       j	                  d      }t        |      j	                  d      }t        |      j	                  d      }t        |      j	                  d      }t        |      j	                  d      }t        |j                         t        j                  | d             t        |j                         t        j                  |d             t        |j                         t        j                  |d             t        |j                         t        j                  |d             t        |j                         t        j                  |d             t        j                  t        d	
      5  t        g dg dg      j	                  d       d d d        t        j                  t        d	
      5  t        g dg      j	                  d       d d d        t        j                  t        d	
      5  t        g d      j	                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)N)r   r   r   r2   )r   )r   r2   )r3   )r   r3   )r   )r3   r   zcannot be broadcast)match)r   r   r   )r2   r   r   )r   r   )r7   rB   )r2   r   )r   rF   zerosr   _broadcast_tor   r   broadcast_topytestraises
ValueErrorr   )aberes_ares_bres_cres_dres_es           r   test_broadcast_tor      s   
A
!A
AaL&&u-EaL&&t,EaL&&u-EaL&&t,EaL&&u-Eu}}5(ABu}}4(@Au}}5(ABu}}4(@Au}}5(AB	z)>	? GIy)*88v8FG 
z)>	? <I;--F-;< 
z)>	? 9)***89 9G G< <9 9s$   "I4J J4I= J	J)numpyr   numpy.testingr   r   r   scipy.sparser   r   r   r	   r
   scipyr   r   r   r&   r,   r1   markparametrizer@   rU   ro   r~   r    r   r   <module>r      s"    P P M M  +0"-- =,   ,   ,  f /! " ",#",(/&52n Y
I NO
 P
&9r   