
    JEfA#                     p    d dl Z d dlZd dlZd dlZd dlmZ d dlmZ	 d dl
mZ  G d d      Z G d d      Zy)    N)SparseDtype)SparseArrayc            
           e Zd Zd Zej
                  j                  dg d      d        Zd Zej
                  j                  ddg dg d	d
ddfdg dg ddddfg      d        Z	d Z
y)TestSeriesAccessorc                     t        j                  g dd      }|j                  j                         }t        j                  g d      }t	        j
                  ||       y )N)r      r   
   zSparse[int64]dtype)pdSeriessparseto_densetmassert_series_equal)selfserresultexpecteds       a/var/www/VTS_Report/venv/lib/python3.12/site-packages/pandas/tests/arrays/sparse/test_accessor.pytest_to_densez TestSeriesAccessor.test_to_dense   sB    ii_=$$&99]+
vx0    attr)npointsdensity
fill_value	sp_valuesc                     t        ddg      }t        j                  |      }t        |j                  |      }t        ||      }||k(  sJ y )Nr   r   )r   r   r   getattrr   )r   r   arrr   r   r   s         r   test_get_attributesz&TestSeriesAccessor.test_get_attributes   sG    1a&!iinT*3%!!!r   c                    t        j                  d      }g d}g d}g d}|j                  |||ff      }t        j                  j
                  j                  |      }t        j                  j                  t        j                  g dt        j                        t        j                  g dt        j                        g      }t        j                  g d|d	
      }t        j                  ||       y )Nscipy.sparse)r      r   r   )r   r$   r      )         	   )r   r   r   r$   r
   )r   r%   r   r$   )r&   r)   r(   r'   Sparse[int]indexr   )pytestimportorskip
coo_matrixr   r   r   from_coo
MultiIndexfrom_arraysnparrayint32r   r   )	r   scipy_sparserowcoldatasp_arrayr   r,   r   s	            r   test_from_cooz TestSeriesAccessor.test_from_coo   s    **>:**D3*+=>!!**84))RXX6RXX6
 99\mL
vx0r   z>sort_labels, expected_rows, expected_cols, expected_values_posF)br%   ar%   r=   r   r?   r   )zr   rC   r%   xr%   rC   r   )r   r   )r$   r$   )r   r$   T)rA   r>   r@   r<   )rE   rG   rB   rD   r   r%   r   r   c                 &   t        j                  d      }t        dt        j                  ddd dgd      }t
        j                  j                  g d      }t        j                  ||      }t        j                  d      }	|j                         D ]  \  }
\  }}|
|	||f<    |j                  j                  d	d
|      \  }}}t        ||j                        sJ t        j                   |j#                         |	       ||k(  sJ ||k(  sJ y )Nr#   r   r   r$   r   ))r=   r%   rC   r   )r?   r%   rC   r%   )r?   r%   rC   r   )r?   r%   rF   r%   )r=   r   rC   r   )r?   r   rC   r   r,   )r&   r&   rI   )r%   r$   )
row_levelscolumn_levelssort_labels)r-   r.   r   r3   nanr   r1   from_tuplesr   zerositemsr   to_coo
isinstancer/   r   assert_numpy_array_equaltoarray)r   rO   expected_rowsexpected_colsexpected_values_pos	sp_sparsevaluesr,   ss
expected_Avaluer7   r8   Arowscolss                   r   test_to_coozTestSeriesAccessor.test_to_coo/   s   ( ''7	aAtQ7AF))	
 YYvU+XXf%
!4!:!:!< 	)E:C#(JsCx 	) 		((V ) 
4 !Y11222
##AIIK<}$$$}$$$r   c                     t        j                  g d      }t        j                  t        d      5  |j
                  j                   d d d        y # 1 sw Y   y xY w)N)r   r%   r$   z.sparsematch)r   r   r-   raisesAttributeErrorr   r   )r   r   s     r   test_non_sparse_raisesz)TestSeriesAccessor.test_non_sparse_raises^   s@    ii	"]]>; 	JJ	 	 	s   AAN)__name__
__module____qualname__r   r-   markparametrizer!   r;   rc   ri    r   r   r   r      s    1 [[V%VW" X"1& [[H 88v&	 88v&		
"%#"%<r   r   c            
       F   e Zd Zd Zej
                  j                  dg d      ej
                  j                  dd eej                  dd       g      ej
                  j                  ddd	g      d
                      Z
ej
                  j                  dg d      d        Zej
                  j                  dddgej                  j                  dgddgg      ddgg      d        Zej
                  j                  ddddej                   fdddg      d        Zej
                  j                  ddej&                  g      d        Zd Zd Zd Zej
                  j                  dd	dg      ej
                  j                  ddd g      d!               Zd" Zd# Zy)$TestFrameAccessorc                     t        j                  dddgi      }t        j                  t        d      5  |j
                   d d d        y # 1 sw Y   y xY w)Nr`   r   r   r   re   )r   	DataFramer-   rg   rh   r   r   dfs     r   test_accessor_raisesz&TestFrameAccessor.test_accessor_raisese   sB    \\3A-(]]>: 	II	 	 	s   AAformat)csccsrcoolabelsNr	   r   float64int64c                    t        j                  d      }t        |t        j                  d|      j                               }|j                  d||      }t        j                  j                  j                  |||      }t        j                  t        j                  d|      ||      j                  |      }t        j                  ||       y )Nr#   r   r
   r	   rw   r   )r,   columns)r-   r.   r   r3   r4   itemeyer   rs   r   from_spmatrixastyper   assert_frame_equal)	r   rw   r{   r   r[   sp_dtypematr   r   s	            r   test_from_spmatrixz$TestFrameAccessor.test_from_spmatrixj   s     ''7	ubhhq&>&C&C&EFmmBvUm;$$223ff2U<<FF2U#66

&
 	 	fh/r   c                 p   t        j                  d      }|j                  ddd|      }d|j                  d<   t        j
                  j                  j                  |      }t        dd      }t	        j
                  |j                               j                  |      }t        j                  ||       y )	Nr#   r	   r%         ?)r   rw   r   r|           )r-   r.   randomr9   r   rs   r   r   r   todenser   r   r   )r   rw   r[   r   r   r   r   s          r   *test_from_spmatrix_including_explicit_zeroz<TestFrameAccessor.test_from_spmatrix_including_explicit_zeroy   s    ''7	r1c&A$$2237Is+<<.55e<
fh/r   r   r?   r=   r`   c                 X   t        j                  d      }t        dd      }|j                  ddd      }t        j
                  j                  j                  ||      }t	        j
                  |j                         |      j                  |      }t        j                  ||       y )	Nr#   r|   r   r	   r%   r   )r   )r   )r-   r.   r   r   r   rs   r   r   rW   r   r   r   )r   r   r[   r   r   r   r   s          r   test_from_spmatrix_columnsz,TestFrameAccessor.test_from_spmatrix_columns   s    
 ''7	Is+r1c2$$2232H<<w?FFuM
fh/r   colnamesr`   BrH   r   )g?g?)rF   rF   )r   r   c                    t        j                  d      }t        j                  |d   g d|d   g did      }|j                  j                         }|j                  t        j                  |            }||k7  j                  dk(  sJ y )Nr#   r   )r   r   r   r   )r   r   r   zSparse[int64, 0]r
   )
r-   r.   r   rs   r   rT   r/   r3   asarraynnz)r   r   r[   ru   r   r   s         r   rc   zTestFrameAccessor.test_to_coo   s~     ''7	\\a[)Xa[)<DV
 !!#''

27("''1,,,r   r   c           	      .   t        j                  d       t        j                  t	        |||dg|      t	        |d||g|      d      }t        j
                  t        d      5  |j                  j                          d d d        y # 1 sw Y   y xY w)Nscipyr%   rK   r   zfill value must be 0re   )	r-   r.   r   rs   r   rg   
ValueErrorr   rT   )r   r   ru   s      r   #test_to_coo_nonzero_fill_val_raisesz5TestFrameAccessor.test_to_coo_nonzero_fill_val_raises   s    G$\\ Z;
 !J
;
		
 ]]:-CD 	II	 	 	s   'BBc                 "   t        j                  d      }t        j                  j	                  t        j
                  t        d      d      t        j
                  ddgd      g      }t        j                  d|d	      }|j                  j                  dgdg
      d   }|j                  t        j                  ddg      t        j                  ddg      t        j                  ddg      ffd      }||k7  j                  dk(  sJ y )Nr#   abrF   )namer   r   yr*   r+   )rM   rN   )r%   r%   )shape)r-   r.   r   r1   r2   CategoricalIndexlistr   r   rT   r/   r3   r4   r   )r   r[   midxr   r   r   s         r   test_to_coo_midx_categoricalz.TestFrameAccessor.test_to_coo_midx_categorical   s    ''7	}}((##DJS9##QF5
 ii];""seC5"I!L''XXq!f!Q 0"((Aq62BCDF ( 
 ("''1,,,r   c                 n   t        j                  t        ddgt        dd            t        ddgt        dd            t        ddgt        dd            dd	d
g      }|j                  j                         }t        j                  ddgddgddgdd	d
g      }t        j                  ||       y )Nr   r   r}   r
   g      ?r   r|   )r`   r   Cr=   r?   rL   )r   rs   r   r   r   r   r   r   )r   ru   r   r   s       r   r   zTestFrameAccessor.test_to_dense   s    \\ !Q{7A/FG !Q{7A/FG #s;y#3NO
 *
 ##%<<a&1vS#J7Sz
 	fh/r   c                     t        j                  t        g dd      t        g dd      d      }|j                  j                  }d}||k(  sJ y )N)r   r   r%   r   r   rK   )r   r   r   r   r   g      ?)r   rs   r   r   r   )r   ru   resr   s       r   test_densityzTestFrameAccessor.test_density   sK    \\ !< !<
 iihr   dense_indexTFc                    t        j                  d      }|j                  dd|      }t        j                  j
                  j                  ||      }t        j                  j                  t        j                  ddgt        j                        t        j                  ddgt        j                        t        j                  d	d	gt        j                        g      }t        j                  t        t        j                  g d
|            |      }|r8|j                  t        j                  j                  |j                              }t!        j"                  ||       y )Nr#   r$   rz   r   )r   r   r
   r   r%   )r   r   r   rL   )r-   r.   r   r   r   r   r0   r1   rQ   r3   r4   r5   r   reindexfrom_productlevelsr   r   )r   r   r   r[   r`   r   r,   r   s           r   test_series_from_cooz&TestFrameAccessor.test_series_from_coo   s     ''7	MM!EM7!!**1+*F))!Qrxx0!Qrxx0!Qrxx0
 99[)5)IJRWX''(B(B5<<(PQH
vx0r   c                 4   t        j                  d      }|j                  t        j                  ddgddgg            }t        j
                  t        d      5  t        j                  j                  j                  |       d d d        y # 1 sw Y   y xY w)Nr#   r   r   z,Expected coo_matrix. Got csr_matrix instead.re   )r-   r.   
csr_matrixr3   r4   rg   	TypeErrorr   r   r   r0   )r   r[   ms      r   ,test_series_from_coo_incorrect_format_raisesz>TestFrameAccessor.test_series_from_coo_incorrect_format_raises   sy    ''7	  Aq6Aq6*:!;<]]K
 	) II%%a(	) 	) 	)s   *BBc                    t        j                  dt         j                  j                  ddg      i      }t	        |j
                  t         j                  j                  j
                  j                  j                        sJ y )Nr   r   r%   )	r   rs   arraysr   rU   r   coreaccessorSparseFrameAccessorrt   s     r   test_with_column_named_sparsez/TestFrameAccessor.test_with_column_named_sparse   sV    \\8RYY%:%:Aq6%BCD"))RWW^^%:%:%C%C%W%WXXXr   )rj   rk   rl   rv   r-   rm   rn   r   stringascii_lettersr   r   r   r1   r   r   NArc   r3   rP   r   r   r   r   r   r   r   ro   r   r   rq   rq   d   s   
 [[X'<=[[Xd63G3G3L.M'NO[[Wy'&:;
0 < P >
0 [[X'<=0 >0 [[
sR]]//#c
0CDsCjQ0	0 [[Z!RUUZVT-- [[\Arvv;7 8-$0	 [[Ww	&:;[[]T5M:1 ; <1&)Yr   rq   )r   numpyr3   r-   pandasr   r   pandas._testing_testingr   pandas.core.arrays.sparser   r   rq   ro   r   r   <module>r      s5          1U UpYY YYr   