
    OwgA                         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                  j                  d       G d d             Zy)    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                  j                  dddg      d        Zd Z	d Z
d	 Zd
 Zd Zd Zy)BaseGroupbyTestszGroupby-specific tests.c                    t        j                  t        j                  g dt              |d      }|j	                  d      j
                  j                  d   }|j	                  d      j
                  j                  d   }t        j                  |j                  |j                  j                         t        j                  |j                  |       y )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        Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/extension/base/groupby.pytest_grouping_grouperz&BaseGroupbyTests.test_grouping_grouper   s    \\YY>f '	
 jjo&&003jjo&&003
##C$7$7E
''(;(;=NO    as_indexTFc                    t        j                  g d|d      }|j                  j                  }|r|j                  d d }|j                  d|      j                  j                         }t        j                  |d      \  }}g d}|r|d d }|rFt        j                  |d	      }	t        j                  ||	d
      }
t        j                  ||
       y t        j                  ||d      }
t        j                  ||
       y )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?PQR#))55 "BC(355::<\\"3$?
7"}HHHW3/EyySAH""684||'$ABH!!&(3r"   c                    t        j                  g d|d      }|j                  g d   }|j                  d      }|j	                  d      j                  ddi      }t        j                  ||       |j	                  d      j                  d      }t        j                  ||       |j	                  d      j                         }t        j                  ||       y )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?PQR77<(%%c*C$$c7^4
fh/C$$W-
fh/C&&(
fh/r"   c                    t        j                  g d|d      }|j                  j                  }|r|j                  d d }|j                  dd      j                  j                         }t        j                  |d      \  }}t        j                  |d      }g d}|r|d d }t        j                  ||d	
      }t        j                  ||       y )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?PQR#))55 "BCe,..335<< 1>5S)"}H99XU=
vx0r"   c                    |j                   j                  }||j                             }t        j                  g d|d      }|j                   j                  }|r|j
                  d d }|j                  d      j                  j                  t              }t        j                  g dd      }|r|d d }t        j                  ||       y )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5!#4#9#9#;";<\\ 2?@#))55 "BC"",,S199/c:}H
vx0r"   c                 @   t        j                  g d|d      }d}t        j                  t        |      5  |j                  ddd      j                  |       d d d        |j                  ddd      j                  j                  |       d}t        j                  t        |      5  |j                  ddd      j                  |       d d d        |j                  ddd      j                  j                  |       y # 1 sw Y   xY w# 1 sw Y   CxY w)	Nr%   r   z7DataFrameGroupBy.apply operated on the grouping columnsmatchr
   F)
group_keysobservedr   )	r   r   r   assert_produces_warningDeprecationWarningr   applyr   r
   )r   r   groupby_apply_opr   msgs        r    test_groupby_extension_applyz-BaseGroupbyTests.test_groupby_extension_applyr   s    \\ 8?PQRG''(:#F 	VJJsuuJ=CCDTU	V


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


355
9;;AABRS	V 	V	V 	Vs   $D.$DDDc                 6   t        j                  g d|d      }|j                  d      j                  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                  ||       y )Nr%   r   r   c                     | j                   S )N)array)xs    r    <lambda>z>BaseGroupbyTests.test_groupby_apply_identity.<locals>.<lambda>   s
    177 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?PQRC""(():;99		)$**		1a&!''		1a&!''		1#$$	 ((<c2	
 	vx0r"   c                 
   t        j                  g d|g dd      }|j                  }t        |      s?t	        |      s4|j
                  dk(  s%t        |      st        |      s|j                  dk(  rAt        j                  ddg      }|j                  d      j                         j                  }nt        j                  dg      }d	j                  d
t        j                  d|       g      }t!        j"                  t$        |      5  |j                  d      j                          d d d        |j                  d      j                  d      j                  }t'        j(                  ||       y # 1 sw Y   KxY w)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   s6   \\-&-
 "''U#U#zzY&u%u%zzS xxc
+HZZ_((*22FxxH(( 6II EeWMN	C y4 &

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