
    bMh7                         d dl Z d dlZd dlmZmZmZmZ d dlZd dl	m
Z ej                            d           G d d                      ZdS )    N)is_bool_dtypeis_numeric_dtypeis_object_dtypeis_string_dtypez@ignore:The default of observed=False is deprecated:FutureWarningc                       e Zd ZdZd Zej                            dddg          d             Zd Z	d Z
d	 Zd
 Zd Zd ZdS )BaseGroupbyTestszGroupby-specific tests.c                 z   t          j        t          j        g dt                    |d          }|                    d          j        j        d         }|                    d          j        j        d         }t          j        |j	        |j
        j                   t          j        |j	        |           d S )N)Br
   NNAr   r
   C)dtyper   r
   r   r   r
   )pd	DataFrameSeriesobjectgroupby_grouper	groupingstmassert_numpy_array_equalgrouping_vectorr   valuesassert_extension_array_equal)selfdata_for_groupingdfgr1gr2s        c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/extension/base/groupby.pytest_grouping_grouperz&BaseGroupbyTests.test_grouping_grouper   s    \Y>>>f   '	 
 
 jjoo&03jjoo&03
#C$7EEE
'(;=NOOOOO    as_indexTFc                    t          j        g d|d          }|j        j        }|r|j        d d         }|                    d|          j                                        }t          j        |d          \  }}g d}|r
|d d         }|rDt          j	        |d	          }	t          j
        ||	d
          }
t          j        ||
           d S t          j        ||d          }
t          j        ||
           d S )N   r&      r'      r(   r&      r   r
   )r#   Tsort)      @      ?      @namer   indexr1   )r
   r   )r   r   r   _is_booleanilocr   r   mean	factorizeIndexr   r   assert_series_equalassert_frame_equal)r   r#   r   r   is_boolresult_uniquesexp_valsr3   expecteds              r    test_groupby_extension_aggz+BaseGroupbyTests.test_groupby_extension_agg%   s   \ 8 8 8?PQQRR#)5 	 "BC(335::<<\"3$???
7"?? 	%}H 	4HW3///EySAAAH"6844444|'$A$ABBH!&(33333r"   c                    t          j        g d|d          }|j        g d         }|                    d          }|                    d                              ddi          }t          j        ||           |                    d                              d          }t          j        ||           |                    d                                          }t          j        ||           d S )Nr%   r   )r   r'   r)      r   r
   first)	r   r   r5   	set_indexr   aggr   r:   rD   )r   r   r   r@   r<   s        r    test_groupby_agg_extensionz+BaseGroupbyTests.test_groupby_agg_extension=   s    \ 8 8 8?PQQRR7<<<(%%c**C$$c7^44
fh///C$$W--
fh///C&&((
fh/////r"   c                    t          j        g d|d          }|j        j        }|r|j        d d         }|                    dd          j                                        }t          j        |d          \  }}t          j	        |d          }g d}|r
|d d         }t          j
        ||d	
          }t          j        ||           d S )Nr%   r   r*   r
   Fr+   r0   )r.   r-   r/   r   r2   )r   r   r   r4   r5   r   r   r6   r7   r8   r   r   r9   )	r   r   r   r;   r<   r=   r3   r?   r@   s	            r    test_groupby_extension_no_sortz/BaseGroupbyTests.test_groupby_extension_no_sortM   s    \ 8 8 8?PQQRR#)5 	 "BCe,,.3355< 1>>>5S)))"?? 	%}H9XU===
vx00000r"   c                    |j         j        }||                                          }t          j        g d|d          }|j         j        }|r|j        d d         }|                    d          j                            t                    }t          j
        g dd          }|r
|d d         }t          j        ||           d S )N)r&   r&   r(   r(   r&   r)   r   r*   r
   )r(   r(   r'   r'   r(   r&   r   r0   )r   r4   isnar   r   r5   r   r   	transformlenr   r   r9   )r   r   r;   validr   r<   r@   s          r     test_groupby_extension_transformz1BaseGroupbyTests.test_groupby_extension_transform`   s    #)5!#4#9#9#;#;";<\ 2 2 2??@@#)5 	 "BC",,S119///c::: 	%}H
vx00000r"   c                 x   t          j        g d|d          }d}t          j        t          |          5  |                    ddd                              |           d d d            n# 1 swxY w Y   |                    ddd          j                            |           d}t          j        t          |          5  |                    ddd                              |           d d d            n# 1 swxY w Y   |                    ddd          j                            |           d S )	Nr%   r   z7DataFrameGroupBy.apply operated on the grouping columnsmatchr
   F)
group_keysobservedr   )	r   r   r   assert_produces_warningFutureWarningr   applyr   r
   )r   r   groupby_apply_opr   msgs        r    test_groupby_extension_applyz-BaseGroupbyTests.test_groupby_extension_applyr   s   \ 8 8 8?PQQRRG'SAAA 	V 	VJJsuuJ==CCDTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V


355
99;AABRSSSG'SAAA 	V 	VJJsuuJ==CCDTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V


355
99;AABRSSSSSs#   ,A//A36A3,C??DDc                    t          j        g d|d          }|                    d          j                            d           }t          j        |j        j        g d         j        |j        j        ddg         j        |j        j        dd	g         j        |j        j        d
g         j        gt          j        g dd          d          }t          j
        ||           d S )Nr%   r   r   c                     | j         S )N)array)xs    r    <lambda>z>BaseGroupbyTests.test_groupby_apply_identity.<locals>.<lambda>   s    17 r"   )r   r&      r'   r(   r)      rC   )r&   r'   r(   r)   r0   r
   r2   )r   r   r   r
   rW   r   r5   r]   r8   r   r9   )r   r   r   r<   r@   s        r    test_groupby_apply_identityz,BaseGroupbyTests.test_groupby_apply_identity}   s    \ 8 8 8?PQQRRC"(():):;;9	)))$*	1a&!'	1a&!'	1#$	 (<<<c222	
 	
 	
 	vx00000r"   c                 2   t          j        g d|g dd          }|j        }t          |          sCt	          |          s4|j        dk    s)t          |          st          |          s|j        dk    rCt          j	        ddg          }|
                    d                                          j        }nt          j	        dg          }d	                    d
t          j        d|           g          }t!          j        t$          |          5  |
                    d                                           d d d            n# 1 swxY w Y   |
                    d                              d          j        }t'          j        ||           d S )Nr%   )r&   r&   r&   r&   r&   r&   r&   r&   )r   r
   r   decimalmr
   r   r   |zdoes not support sum operationsz%agg function failed [how->sum,dtype->rQ   T)numeric_only)r   r   r   r   r   r1   r   r   kindr8   r   sumcolumnsjoinreescapepytestraises	TypeErrorr   assert_index_equal)r   r   r   r   r@   r<   rY   s          r    test_in_numeric_groupbyz(BaseGroupbyTests.test_in_numeric_groupby   s   \---&--- 
 
 "'U##	DU##	D zY&&u%% 'u%% ' zS  xc
++HZZ__((**2FFxH(( 6IMeMMNN	 C y444 & &

3##%%%& & & & & & & & & & & & & & &ZZ__((d(;;CF
fh/////s   (E		EEN)__name__
__module____qualname____doc__r!   rn   markparametrizerA   rG   rI   rO   rZ   rb   rr    r"   r    r   r      s         "!P P P [Z$774 4 874.0 0 0 1 1 1&1 1 1$	T 	T 	T1 1 1"0 "0 "0 "0 "0r"   r   )rl   rn   pandas.core.dtypes.commonr   r   r   r   pandasr   pandas._testing_testingr   rw   filterwarningsr   ry   r"   r    <module>r      s    				                       F [0 [0 [0 [0 [0 [0 [0 [0 [0 [0r"   