
    OhJ                     0   d dl Z d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZ  G d d      Zej&                  j)                  dg d      d	        Zej&                  j)                  d
g d      ej&                  j)                  dddej,                  g      ej&                  j)                  ddgddgg      d                      Zej&                  j1                  d      ej&                  j)                  deeeeg      d               Zy)    N)lib)	DataFrameIndexSeries	Timestamp
date_range)get_groupby_method_argsc                      e Zd Zej                  d        Zej                  j                  dddg      d        Zej                  j                  dddg      d        Z	ej                  j                  dd	d
g      d        Z
ej                  j                  dddg      d        Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zd Zy)TestNumericOnlyc                 "   t        g dg dg dt        g dd      t        g dt              t        t        d            j	                  d      g d	t        d
d      t        d
dd      t        j                  ddd      d
g d      }|S )N)   r      )r   r      )g      @g      @      @)abcstrdtypeabccategory)      	   20130101r   )periods
US/Eastern)r   tzz1 ss)r   freq)
groupintfloatstringobjectcategory_stringcategory_intdatetime
datetimetz	timedeltacolumns)r   r   r&   listastyper   pdtimedelta_range)selfdfs     n/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/groupby/test_numeric_only.pyr3   zTestNumericOnly.df   s~     " ( > ?#)$u+#6#=#=j#I )&z1=(Q<P//qsK
4 	    methodmeanmedianc                    t        g d      }|j                  d      }t        ddgddgt        j                  d      t        j                  d      gd	d
gt        d      t        d      gt        dd      t        dd      gdt        ddgd      g d      } t        ||      d      }t        j                  |j                  |      |       |j                  }| j                  ||||       y )Nr#   r$   r(   r"   g      @r   g      @r   z1.5s3sg      ?r   z2013-01-01 12:00:00z2013-01-03 00:00:00r   )r   )r(   r$   r+   r#   r)   r*   r   r   )name)indexr-   Tnumeric_only)r   groupbyr   r0   	Timedeltar   getattrtmassert_frame_equalreindex_liker-   _check)r2   r3   r6   expected_columns_numericgbexpectedresultexpected_columnss           r4   test_averageszTestNumericOnly.test_averages7   s     $))I#J ZZ !$as ll62BLL4FGQx3434
 3E3E AW-!
. %V$$7
f11(;XF#++B 02JKr5   minmaxc                 J    t        g d      }|}| j                  ||||       y )N)r#   r$   r%   r(   r)   r*   r+   r   rF   r2   r3   r6   rK   rG   s        r4   test_extremazTestNumericOnly.test_extrema[   s0    
 !

 $4 B 02JKr5   firstlastc                 J    t        g d      }|}| j                  ||||       y )N)	r#   r$   r%   r&   r'   r(   r)   r*   r+   rP   rQ   s        r4   test_first_lastzTestNumericOnly.test_first_lasto   s.     

 $4 B 02JKr5   sumcumsumc                     t        g d      }t        g d      }|dk(  rt        g d      }| j                  ||||       y )Nr:   )r#   r$   r%   r(   r+   rX   )r#   r$   r(   r+   rP   )r2   r3   r6   rG   rK   s        r4   test_sum_cumsumzTestNumericOnly.test_sum_cumsum   sF    #()I#J  C
 X$%RSB 02JKr5   prodcumprodc                 J    t        g d      }|}| j                  ||||       y )Nr:   rP   rQ   s        r4   test_prod_cumprodz!TestNumericOnly.test_prod_cumprod   s(     !AB#3 B 02JKr5   cummincummaxc                 J    t        g d      }|}| j                  ||||       y )N)r#   r$   r(   r)   r*   r+   rP   rQ   s        r4   test_cummin_cummaxz"TestNumericOnly.test_cummin_cummax   s.     !S

 $4 B 02JKr5   c                 X   |j                  d      }|j                  d      rt        t        fnt        }|dv rgdj	                  dd| dt        j                  d| d	      d
d| dg      }t        j                  ||      5   t        ||              d d d        n|dv rydj	                  dt        j                  d| d	      t        j                  d| d      d| dg      }t        j                  ||      5   t        ||              d d d        n1 t        ||             }t        j                  |j                  |       |dvrdj	                  ddd
d| dt        j                  d| d	      t        j                  d| d      d| dg      }t        j                  ||      5   t        ||      d       d d d        y  t        ||      d      }t        j                  |j                  |       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr"   cum)rM   rN   r_   r`   rX   r\   |zCategorical is not orderedzCannot perform z with non-ordered Categoricalagg function failed [how->,dtype->object]*function is not implemented for this dtypez(dtype 'str' does not support operation ''match)rW   r7   r8   r[   z-category type does not support sum operationsz,dtype->string]rS   rT   zcategory type does not supportFr>   )r@   
startswithNotImplementedError	TypeErrorjoinreescapepytestraisesrB   rC   assert_index_equalr-   )	r2   r3   r6   rK   rG   rH   	exceptionmsgrJ   s	            r4   rF   zTestNumericOnly._check   sC   ZZ 
 170A0A%0H ),i 	 LL((0%fX-JKII :6(/RS@>vhaH	C y4 &#F#%& &88((CII :6(/RSII :6(/RS>vhaH	C y4 &#F#%& & )WR(*F!!&..2JK**((04@%fX-JKII :6(/RSII :6(/RS>vhaH
C y4 8#F#78 8 )WR(e<F!!&..2BCC& && &$8 8s$   HH7H HH H)N)__name__
__module____qualname__rs   fixturer3   markparametrizerL   rR   rV   rZ   r^   rb   rF    r5   r4   r   r      s(    ^^ > [[X'9:!L ;!LF [[Xu~6L 7L& [[X'89L :L$ [[Xx'89	L :	L [[X	':;L <L [[X(';<	L =	L6Dr5   r   r?   )TFNc                 R   |dv rt        j                  d       |dv r1d}| j                  t         j                  j	                  |             t        t        j                  j                  d      j                  d      g d	      }d
|d<   g d}|j                  |      }t        ||      }t        ||      }	ddi}
|||
d<   d}d}d| d}|||v rd}|dv rQt        j                  t        |      5  t        j                   t"        |      5   ||	i |
 d d d        d d d        y t        j                  t        |      5   ||	i |
 d d d        y ||vr/d}t        j                  t        |      5   ||	i |
 d d d        y ||s|dvrd}|r2t        j$                  d      }t        |j&                  j(                  f}nt        }t        j                  |ddj+                  |       d      5  t        j                   t"        |      5   ||	i |
 d d d        d d d        y t        j                   t"        |      5   ||	i |
}d d d        |r|j-                  d	      j.                  n|j.                  } t        ||      |	 j.                  }|dk(  r|s|j1                  t2              }t        j4                  |       y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   xY w)N)idxmaxidxminz5idxmax and idx_min tested in test_idxmin_idxmax_axis1)corrwithskewzDGH#47723 groupby.corrwith and skew do not correctly implement axis=1)reasonr   )
      )ABCDr,   xE)
r   r   r   r   r   r   r   r   r   r   axisr   r?   )r\   rX   difffillna
pct_changerankshift)r\   rX   r   r   r   r   r`   r_   r   r   r   zDataFrameGroupBy.z with axis=1 is deprecated1got an unexpected keyword argument 'numeric_only')r\   rX   rj   z)got an unexpected keyword argument 'axis')r   r   )z"not supported between instances ofz2can't multiply sequence by non-int of type 'float'unsupported operand typezhas no kernelzBoperation 'sub' not supported for dtype 'str' with dtype 'float64'pyarrow(re   )r   )rs   skipapplymarkerr|   xfailr   nprandomdefault_rngstandard_normalr@   rB   r	   rt   ro   rC   assert_produces_warningFutureWarningimportorskipr   ArrowNotImplementedErrorrp   dropTr/   r$   assert_equal)requestgroupby_funcr?   using_infer_stringrw   r3   groupsrH   r6   argskwargsno_argshas_axiswarn_msgmsgspaerrsrJ   df_expectedrI   s                       r4   test_axis1_numeric_onlyr      s   ++KL++TFKK--S-9:	
		a 009CW
B BsG+F	F	BR&F"<4Da[F!-~ UGH #<.0JKHLG$;A00y4 ,//XN ,D+F+,, , y4 (''( (	X	%9]]9C0 	$D#F#	$ 	$ 
l M 9	
 $$Y/Brvv>>?DD]]4388D>*:!'<= 	(++MJ (''(	( 	( ''XF 	-T,V,F	- 1=bggcg*,,"$$57;5t<>>7"<  u-H
)Y, ,, ,( (	$ 	$0( (	( 	(	- 	-sl   8K!	KK!		K-<	K9<L	L!L	LK	K!!K*-K69LL	
LLL&zkernel, has_arg))allF)anyF)bfillF)corrT)r   T)covT)r`   T)r_   T)r\   T)rX   T)r   F)ffillF)r   F)rS   T)r   T)r   T)rT   T)rN   T)r7   T)r8   T)rM   T)nthF)nuniqueF)r   F)r[   T)quantileT)semT)r   T)stdT)rW   T)varTTFkeysa1a2c                 Z   t        ddgddgddgdt        gz  d      }t        | |      }|t        j                  u ri nd|i}|j                  |      }t        ||       }|r|du r ||i |}	d|	j                  vsJ y | d	v s| d
v rZ|t        j                  u rH| dk(  rt        nd }
d}t        j                  |
|      5   ||i |}	d d d        d	j                  v sJ y |r|dusJ | j                  d      rt        nt        }dj                  dddddt        j                   d|  d      g      }| dk(  rd}n| dk(  rd}n| dk(  rd}t#        j$                  ||      5   ||i | d d d        y |s?|t        j                  ur-t#        j$                  t        d      5   ||i | d d d        y | dv sJ |t        j                  u sJ t#        j$                  t        d      5   ||i | d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   r         )r   r   a3r   r?   Tr   rl   )r   r   r   r   r   r   r   r   %DataFrameGroupBy.fillna is deprecatedrj   rd   re   znot allowed for this dtypez+cannot be performed against 'object' dtypeszmust be a string or a.* numberr   rh   rf   rg   r   4dtype 'object' does not support operation 'quantile'r   z8'<' not supported between instances of 'type' and 'type'r   z8'>' not supported between instances of 'type' and 'type'r   )r   r   )r   r&   r	   r   
no_defaultr@   rB   r-   r   rC   r   rm   rn   ro   rp   rq   rr   rs   rt   )kernelhas_argr?   r   r3   r   r   rH   r6   rJ   warnrw   rv   s                r4   test_numeric_onlyr   3  sp   T 
1a&Aq!f1x<P	QB"62.D3>>1R7UF	D	BR F<4'((&..((( 	## RR. !'( 2}5''C8 	-T,V,F	-fnn$$$	4'''
 ,2+<+<U+C'	hh,=0*<		6vhoNO

 ZHCxLCxLC]]9C0 	$D#F#	$ 	$S^^;]]P
 	$ D#F#	$ 	$
 ////s~~---]]9,GH 	$D#F#	$ 	$O	- 	-8	$ 	$	$ 	$	$ 	$s0   ?	G<"	H	#	H*	H!<H	HH!H*z4ignore:Downcasting object dtype arrays:FutureWarningr   c                    g d}t        g d|       }|j                  |      }|dk(  rt        ||      rJ y t        ||      }t        g d      }|j                  |      }t        ||      }	t	        ||      }
d}d}||v rk| t
        u rc|dk(  rd}nd	}|d
k(  rt        nd }d}t        j                  ||      5  t        j                  t        |      5   ||
  d d d        d d d        n| t
        u r|d
k(  rt        nd }d}t        j                  ||      5   ||
 }d d d        t        j                  ||      5   |	|
 }d d d        ||v rj                  t
              }t        j                         d}||vr/d}t        j                  t        |      5   ||
ddi d d d        y | t
        u r@dj                  g d      }t        j                  t        |      5   ||
ddi d d d        y | t        k(  rR|dk(  rMd}t        j                  t        |      5   ||
ddi} ||
ddi}d d d        t        j                         y  ||
ddi} ||
ddi}t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   _xY w# 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   xY w)N)r   r   r   )r   r   r   r   r   )r   r   r`   r_   r\   rX   r   )rS   rT   r   r   r   r   rW   r   r   r   r7   r8   rM   rN   r[   r   r   r   z!is not supported for object dtyper   r   rj   z"SeriesGroupBy.fillna is deprecated)rS   rT   rN   r7   r8   rM   r[   r   r   r   r   rW   r   r`   r_   r\   rX   r   r?   Tre   )z@SeriesGroupBy.sem called with numeric_only=True and dtype objectz=Series.skew does not allow numeric_only=True with non-numericz7cum(sum|prod|min|max) is not supported for object dtypezCCannot use numeric_only=True with SeriesGroupBy\..* and non-numericz-Allowing bool dtype in SeriesGroupBy.quantileF)r   r@   hasattrrB   r	   r&   r   rC   r   rs   rt   ro   r/   assert_series_equalrp   bool)r   r   r   grouperserrH   r6   expected_serexpected_gbexpected_methodr   fails_on_numeric_object
obj_resultrw   r   r   rJ   rI   has_numeric_onlys                      r4   "test_deprecate_numeric_only_seriesr     s    G
%
(C	W	Bz!2|,,,R&F)$L&&w/Kk<8O"<5DJ* ..5F?:%HC5C , 8}d:''H= 	y4 	 	 
& , 8}d7''H= 	#T]F	#''H= 	.&-H	.:%v.H
vx0& ++A]]9C0 	-D,t,	- 	-	&hh
 ]]9C0 	-D,t,	- 	-	$<:5=''SA 	9T55Ft8%8H	9 	vx01D144e4
vx0s 	 		# 	#	. 	.6	- 	-	- 	-	9 	9s`   ;J
I=J
JJ$!	J1)	J=&K	=J	J

JJ!$J.1J:=K	K)rq   numpyr   rs   pandas._libsr   pandasr0   r   r   r   r   r   pandas._testing_testingrC   pandas.tests.groupbyr	   r   r|   r}   r   r   r   filterwarningsr   r#   r$   r&   r   r~   r5   r4   <module>r      s#   	       8CD CDL )<=U* >U*p  #H $s~~)FG4&4,!78B$ 9 HI#LB$J RS4eV"<=t1 > Tt1r5   