
    Pi$                     ~    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dS )    N)SparseDtype)SparseArrayc            
           e Zd Zd Zej                            dg d          d             Zd Ze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
dS )TestSeriesAccessorc                     t          j        g dd          }|j                                        }t          j        g d          }t	          j        ||           d S )N)r      r   
   zSparse[int64]dtype)pdSeriessparseto_densetmassert_series_equal)selfserresultexpecteds       |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/arrays/sparse/test_accessor.pytest_to_densez TestSeriesAccessor.test_to_dense   sY    i_===$$&&9]]]++
vx00000    attr)npointsdensity
fill_value	sp_valuesc                     t          ddg          }t          j        |          }t          |j        |          }t          ||          }||k    sJ d S )Nr   r   )r   r   r   getattrr   )r   r   arrr   r   r   s         r   test_get_attributesz&TestSeriesAccessor.test_get_attributes   sW    1a&!!innT**3%%!!!!!!r   c                    t          j        d          }g d}g d}g d}|                    |||ff          }t          j        j                            |          }t          j                            t          j
        g dt          j                  t          j
        g dt          j                  g          }t          j        g d|d	
          }t          j        ||           d S )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    *>::llll||**D3*+=>>!**844))RX666RX666
 
 9\\\mLLL
vx0000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                            g d          }t          j        ||          }t          j	        d          }	|
                                D ]\  }
\  }}|
|	||f<   |j                            d	d
|          \  }}}t          ||j                  sJ t          j        |                                |	           ||k    sJ ||k    sJ d S )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7	aAtQ7AFFF))  	
 	
 YvU+++Xf%%
!4!:!:!<!< 	) 	)E:C#(JsCx  	((V ) 
 
4 !Y122222
#AIIKK<<<}$$$$}$$$$$$r   c                     t          j        g d          }t          j        t          d          5  |j        j         d d d            d S # 1 swxY w Y   d S )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    i			""]>;;; 	 	J	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)__name__
__module____qualname__r   r-   markparametrizer!   r;   rc   ri    r   r   r   r      s        1 1 1 [V%V%V%VWW" " XW"1 1 1& [H 888888v&&	 888888v&&		
 "% %# "%<    r   r   c            
          e Zd Zd Zej                            dg d          ej                            dd eej	        dd                   g          ej                            de
j        e
j        e
j        eg          d                                     Zej                            dg d          ej                            de
j        eg          d	                         Zej                            d
ddgej                            dgddgg          ddgg          d             Zej                            d
dddej        fdddg          ej                            de
j        e
j        e
j        eg          d                         Zd Zd Zd Zej                            dddg          ej                            dddg          d                         Zd Zd  Zd! ZdS )"TestFrameAccessorc                     t          j        dddgi          }t          j        t          d          5  |j         d d d            d S # 1 swxY w Y   d S )Nr`   r   r   r   re   )r   	DataFramer-   rg   rh   r   r   dfs     r   test_accessor_raisesz&TestFrameAccessor.test_accessor_raisese   s    \3A-((]>::: 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A		AAformat)csccsrcoolabelsNr	   r   c                    t          j        d          }t          |          }|                    d||          }t          j        j                            |||          }t          j        d|          }t	          j        t          j	        
                    ||dk                                  |j                  ||                              |          }	t          j        ||	           d S )Nr#   r	   rw   r   )r,   columnsr
   r   mask)r-   r.   r   eyer   rs   r   from_spmatrixr3   mar4   filledr   astyper   assert_frame_equal)
r   rw   r{   r   r[   sp_dtypesp_matr   matr   s
             r   test_from_spmatrixz$TestFrameAccessor.test_from_spmatrixj   s     '77	u%%r&>>$226QW2XXfRu%%%<EKK3!8K--44X5HII
 
 
 &

	 	
 	fh/////r   c                    t          j        d          }t          |          }|                    ddd||          }d|j        d<   t
          j        j                            |          }|	                                }t          j        t          j                            ||dk                                  |j                                                |          }t!          j        ||           d S )Nr#   r	   r%         ?r   rw   r   r   r   )r-   r.   r   randomr9   r   rs   r   r   rW   r3   r   r4   r   r   r   r   r   )	r   rw   r   r[   r   r   r   r   r   s	            r   *test_from_spmatrix_including_explicit_zeroz<TestFrameAccessor.test_from_spmatrix_including_explicit_zero|   s     '77	u%%!!"aV5!QQA$226::nn<EKK3!8K--44X5HII
 

&

 	 	fh/////r   r~   r?   r=   r`   c                    t          j        d          }t          t          j                  }|                    ddd          }t          j        j        	                    ||          }|
                                }t          j        t          j                            ||dk                                  |j                  |                              |          }t!          j        ||           d S )	Nr#   r	   r%   r   )r   )r~   r   r   )r-   r.   r   r3   float64r   r   rs   r   r   rW   r   r4   r   r   r   r   r   )r   r~   r[   r   r   r   r   r   s           r   test_from_spmatrix_columnsz,TestFrameAccessor.test_from_spmatrix_columns   s    
 '77	rz**!!"a!55$22672KKnn<EKK3!8K--44X5HII
 
 
 &

 	 	fh/////r   r`   BrH   r   )g?g?)rF   rF   )r   r   c                    t          j        d          }t          |          }|                    dddd|          }|                                }t          j        t          j        	                    ||dk              
                    |j                  ||	          j                                        }||k    j        dk    sJ d S )
Nr#   r	   r%   r   rz   r   r   r   )r~   r   )r-   r.   r   r   rW   r   rs   r3   r   r4   r   r   r   rT   nnz)r   r~   r   r[   r   r   r   r   s           r   rc   zTestFrameAccessor.test_to_coo   s    
 '77	u%%##B3uE#RR  EKK3!8K--44X5HII
 
 
 	 	
 ("'1,,,,,,r   c                 $   t          j        d          }t          j                            t          j        t          d          d          t          j        ddgd          g          }t          j        d|d	          }|j        	                    dgdg
          d         }|
                    t          j        ddg          t          j        ddg          t          j        ddg          ffd          }||k    j        dk    sJ d S )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7	}((#DJJS999#QF555
 
 i];;;""seC5"II!L''Xq!f!Q 0 0"(Aq62B2BCDF ( 
 
 ("'1,,,,,,r   c                    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                                        }t          j        ddgddgddgdd	d
g          }t          j        ||           d S )Nr   r   int64r
   g      ?g        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/FGGG !Q{7A/F/FGGG #s;y#3N3NOOO 
 *
 
 
 ##%%<a&1vS#J77Sz
 
 
 	fh/////r   c                     t          j        t          g dd          t          g dd          d          }|j        j        }d}||k    sJ d S )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   sg    \ !<<< !<<< 
 
 ihr   r   r   dense_indexTFc                    t          j        d          }|                    dd|          }t          j        j                            ||          }t          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
|                    |          }|r7|                    t          j                            |j                            }t!          j        ||           d S )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7	MM!EM77!**1+*FF))!Qrx000!Qrx000!Qrx000
 
 9[)))5)I)I)IJJRWXXX 	R''(B(B5<(P(PQQH
vx00000r   c                 8   t          j        d          }|                    t          j        ddgddgg                    }t          j        t          d          5  t          j        j	        
                    |           d d d            d S # 1 swxY w Y   d S )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   s    '77	  Aq6Aq6*:!;!;<<]K
 
 
 	) 	) I%%a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   %BBBc                     t          j        dt           j                            ddg          i          }t	          |j        t           j        j        j        j        j                  sJ d S Nr   r   r%   )	r   rs   arraysr   rU   r   coreaccessorSparseFrameAccessorrt   s     r   test_with_column_named_sparsez/TestFrameAccessor.test_with_column_named_sparse   sU    \8RY%:%:Aq6%B%BCDD")RW^%:%C%WXXXXXXXr   c                     t          j        dt          j                            ddg          i          }t          |j                                        t           j                  sJ d S r   )r   SubclassedDataFramer   r   r   rU   r   r   rt   s     r   test_subclassingz"TestFrameAccessor.test_subclassing   sX    #Xry/D/DaV/L/L$MNN"),,..0FGGGGGGGr   )rj   rk   rl   rv   r-   rm   rn   r   stringascii_lettersr3   
complex128r   r   boolr   r   r   r1   r   r   NArc   r   r   r   r   r   r   r   ro   r   r   rq   rq   d   s         
 [X'<'<'<==[Xdd63G3L.M.M'NOO[Wr}bj"(D&QRR0 0 SR PO >=0 [X'<'<'<==[Wrx&6770 0 87 >=0 [
sR]//#c
0CDDsCjQ 0 0	 0 [JBE
J
FS  [Wr}bj"(D&QRR- - SR -- - -$0 0 0	 	 	 [Ww	&:;;[]T5M::1 1 ;: <;1&) ) )Y Y Y
H H H H Hr   rq   )r   numpyr3   r-   pandasr   r   pandas._testing_testingr   pandas.core.arrays.sparser   r   rq   ro   r   r   <module>r      s                          1 1 1 1 1 1U U U U U U U Up^H ^H ^H ^H ^H ^H ^H ^H ^H ^Hr   