L i ddlZddlmZmZmZddlmZmZm Z m Z m Z ddl m Z ddlZdZdZdZdZej&j)d egd gd gd gdd fegd gd gd gddfegd gd gd gddfegdgdgdgddfgdZdZdZej&j)dee ee gdZdZy)N)assert_array_almost_equalassert_assert_array_equal) csr_matrix csc_matrix csr_array csc_arrayhstack)sparsec|||f}|||f}t||jdtt|tuy)Nr)rtoarrayrtyper)islXXcsrnp_slice csr_slices a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslicersEBxHQU Ih (9(9(;A(>? DOz )*c\d}tjjdtjj||f}d||dkD<t|}t dddt dddt dddt dddg}t |D]}|D]}t ||||y)N rffffff?)nprandomseedrsliceranger)Nrrslicesrrs rtest_csr_rowslicer&s AIINN1 !Q AAa#gJ a=DD$%D$#Ar1oB2 F 1X0 0B 2q$ / 00rctd}tjjdtjj||f}d||dkD<t|}t |D]U}|||dzddf}|j |}t ||jtt|tuWyNrrrr) rr r!rr#getrowrr rr)r$rrrarr_rowcsr_rows rtest_csr_getrowr, s AIINN1 !Q AAa#gJ a=D 1X-Aa!eGQJ-++a.!'7??+<=W +, -rctd}tjjdtjj||f}d||dkD<t|}t |D]U}|dd||dzf}|j |}t ||jtt|tuWyr() rr r!rr#getcolrr rr)r$rrrarr_colcsr_cols rtest_csr_getcolr1/s AIINN1 !Q AAa#gJ a=D 1X-AqQwJ-++a.!'7??+<=W +, -rz"matrix_input, axis, expected_shape)rrrr)rrrr)rrr)rr)r2rboth)rr)rrrrr)rrrrr)rrrr2r)rc4|jjddz }|}|dz }|dk(rG|||ddfjj}|||ddfjj}n|dk(rG|dd||fjj}|dd||fjj}nK|dk(rF|||||fjj}|||||fjj}|k(sJ|k(sJy)Nrrr4)r shape) matrix_inputaxisexpected_shapeslice_1slice_2slice_3actual_shape_1actual_shape_2s rtest_csr_empty_slicesr@=s5&""$**1-1GGkG qy%ggoq&89AACII%ggoq&89AACII %a&89AACII%a&89AACII %ggoww&FGOOQWW%ggoww&FGOOQWW ^ ++ + ^ ++ +rctgdgdgdg}gd}tj|}gdgdgdg}tj|}gdgdf}tj|dtj|df}||j}||j}||} ||} ||} ||} ||k(j sJ| | k(j sJ| | k(j sJy)Nrrr)r2r3r5))FTFrr)rrarrayr all) data list_indices1array_indices1 list_indices2array_indices2 list_indices3array_indices3 slice_list1 slice_array1 slice_list2 slice_array2 slice_list3 slice_array3s rtest_csr_bool_indexingrUbs y)Y7 8D(MXXm,N)+?AUVMXXm,N)+?@Mhh}Q/0"((=;K2LMN}%--/K'//1L}%K'L}%K'L < ' , , .. . < ' , , .. . < ' , , .. .rctjtjj}dg}dg}|dz }d}|dz g}|dz g}t |||ff}t |||ff}t|dz |dz |ksJ|j j |jj cxk(rtjk(sJJ|j j |jj cxk(rtjk(sJJt||gd} | j j||zdz k(sJ||zdz |kDsJ| j j | jj cxk(rtjk(sJJt |j} t |j} t| | gd} | j| jk(sJ| j j tjk(sJ||z dz g} t ||| ff}t||gd}|j j tjk(sJ|j j|dz k(sJy)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?rrr2csr)formatN) riinfoint32maxrindicesdtypeindptrr int64r7) max_int32rHrow max_indices_1 max_indices_2col_1col_2X_1X_2X_hs X_1_empty X_2_empty X_hs_emptycol_3X_3X_hs_32s rtest_csr_hstack_int64rousT "&&I 5D #CMMMQ  E Q  E dS%L) *C dS%L) *C }q -!"3 4y @@ @ ;;   0 0 !B BB B = (1 ,y 88 8 <<  !2!2 >bhh >> >> >399%I399%II.u=J   tzz )) )    # #rxx // / & * +E dS%L) *Cc3Z.G ?? BHH ,, , ??   IM 11 1rclsctjjd}|tjdd|d}|j }|j }|j j tj|_|jj tj|_|||fD]}tjj|ddgddfj|ddgddfjtjj|ddddgfj|ddddgfjy)Nr2g?) random_statedensityrr) rr default_rngr copyr^astyper_r\testingrr )rprngbase_mtx indptr_64bit indices_64bitmtxs r#test_mixed_index_dtype_int_indexingr~s ))   "C6==Rc3GHH==?LMMOM"//00:L$,,33BHH=M, 6  %% 1qM ! ! # aVQY  ' ' )  %% Aq6 N " " $ QAY  ' ' )  rc0tjgd}tjdg}tjd}t|j d}t|j d}t|j d}t|j d}t|j d}t |j tj|dt |j tj|dt |j tj|dt |j tj|dt |j tj|dtjtd 5tgd gd gj d dddtjtd 5tgdgj ddddtjtd 5tgdj ddddy#1swYxYw#1swYWxYw#1swYyxYw)N)rrrr2)r)rr2)r3)rr3)r)r3rzcannot be broadcast)match)rrr)r2rr)rr)r7rB)r2r) rrFzerosr _broadcast_torr broadcast_topytestraises ValueErrorr)aberes_ares_bres_cres_dres_es rtest_broadcast_tors A ! A A aL & &u -E aL & &t ,E aL & &u -E aL & &t ,E aL & &u -Eu}}5(ABu}}4(@Au}}5(ABu}}4(@Au}}5(AB z)> ?GIy)*88v8FG z)> ?<I;--F-;< z)> ?9)***899 GG<<99s$"I4 J J 4I=J  J)numpyr numpy.testingrrr scipy.sparserrrr r scipyr rrr&r,r1mark parametrizer@rUror~rrrrs"PPMM +0" - -=,,, f/!"",#",(/&52nY I NO P &9r