
    4iC+                     
   S SK rS SKrS SKJr  S SKJrJrJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  \R&                  R)                  SSS/5       " S	 S
5      5       rS r\R&                  R)                  SSS/5      S 5       r\R&                  R)                  S\R0                  \R2                  \R4                  \R6                  /5      \R&                  R)                  S\\R8                  4\\R:                  4/5      S 5       5       rS rS r S r!S r"S r#\R&                  R)                  S\RH                  /\RH                  /\RH                  //\RH                  /\RH                  //4\RH                  /\RH                  /\RH                  * //\RH                  /\RJ                  //4\RH                  /\RH                  * /\RH                  //\RH                  /\RJ                  //4\RH                  /\RH                  * /\RH                  * //\RH                  /\RH                  * //4/5      S 5       r&\R&                  R)                  S\RN                  " \R6                  5      RP                  \RH                  //4\RN                  " \R6                  5      RR                  \RH                  * //4\RT                  " \RN                  " \R6                  5      RR                  \RN                  " \R6                  5      RP                  S-  -   5      \+" \RH                  * \RH                  5      //4\RT                  " \RN                  " \R6                  5      RP                  \RN                  " \R6                  5      RR                  S-  -   5      \+" \RH                  \RH                  * 5      //4\RT                  " \RN                  " \R6                  5      RP                  \RN                  " \R6                  5      RP                  S-  -   5      \+" \RH                  \RH                  5      //4\RT                  " \RN                  " \R6                  5      RR                  \RN                  " \R6                  5      RR                  S-  -   5      \+" \RH                  * \RH                  * 5      //4\RT                  " S\RN                  " \R6                  5      RR                  S-  -   5      \+" S\RH                  * 5      //4\RT                  " \RN                  " \R6                  5      RP                  S-   5      \+" \RH                  S5      //4/5      S 5       r,g)    N)groupby)group_cumprodgroup_cumsum
group_mean	group_sum	group_var)ensure_platform_int)isnazdtype, rtol)float32g{Gz?)float64gh㈵>c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestGroupVar   c                    [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U5      n[         R                  " SSS9nSUR                  S5      R                  U5      -  n[         R                  " [         R                  " S5      S5      R                  S	5      n[         R                  " U5      R                  S
SS9R                  SSS9S-  S S 2[         R                  4   nUS-   n	[        XEXg5        [         R                  " XHU5      (       d   e[        R                   " XY5        g )N         r   int64dtype
   )   r   )   intp)r   r   Forderr   )axisddofr   )nprandomdefault_rngnanonesastypezerostilearangesqueezereshapestdnewaxisr   allclosetmassert_numpy_array_equal
selfr   rtolprngoutcountsvalueslabelsexpected_outexpected_countss
             f/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/groupby/test_libgroupby.pytest_group_var_generic_1d&TestGroupVar.test_group_var_generic_1d   s   yy$$Q'vv'//6!7+dkk'*11%881t,33F; JJv&&vS&9==11=MQRR
RZZ- !1*#v.{{3d3333
##F<    c                 "   [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U5      n[         R                  " SSS9nSUR                  S5      R                  U5      -  n[         R                  " SS	S9n[         R                  " UR                  SS
9S-  //5      nUS-   n	[        XEXg5        [         R                  " XHU5      (       d   e[        R                  " XY5        g )Nr   r   r   r   r   r   r   r   r   r   )r    )r!   r"   r#   r$   r%   r&   r'   arrayr,   r   r.   r/   r0   r1   s
             r;   %test_group_var_generic_1d_flat_labels2TestGroupVar.test_group_var_generic_1d_flat_labels&   s    yy$$Q'vv'//6!7+dkk&)0077!6*xx&**!*"4"9!: ;< 1*#v.{{3d3333
##F<r>   c                 p   [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U5      n[         R                  " SSS9nSUR                  S5      R                  U5      -  n[         R                  " [         R                  " S5      S5      R                  S	5      n[         R                  " UR                  SSS5      S
SS9S-  nUS-   n	[        XEXg5        [         R                  " XHU5      (       d   e[        R                  " XY5        g )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r    r   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r,   r+   r   r.   r/   r0   r1   s
             r;   $test_group_var_generic_2d_all_finite1TestGroupVar.test_group_var_generic_2d_all_finite6   s    yy$$Q'vv'//6!7+dkk'*11%881t,33F;vvfnnQ15AAF!K 1*#v.{{3d3333
##F<r>   c                 2   [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U5      n[         R                  " SSS9nSUR                  S5      R                  U5      -  n[         R                  US S 2S4'   [         R                  " [         R                  " S5      S	5      R                  S
5      n[         R                  " US S 2S4   R                  SSSS9R                  SSS9S-  [         R                  [         R                  " S5      -  /5      R                  R                  U5      nUS-   n	[        XEXg5        [        R                  " XHSS9  [        R                   " XY5        g )Nr   rE   r   r   r   r   rF   r   rG   r   r   r   r   rH   gƠ>r3   )r!   r"   r#   r$   r%   r&   r'   r(   r)   vstackr+   r,   Tr   r/   assert_almost_equalr0   r1   s
             r;   "test_group_var_generic_2d_some_nan/TestGroupVar.test_group_var_generic_2d_some_nanE   s7   yy$$Q'vv'//6!7+dkk'*11%88vvq!t1t,33F;yyq!t$$Q$599qq9IQN#

 !FF5M 	 !1*#v.
sw?
##F<r>   c                 L   [         R                  " [         R                  //US9n[         R                  " S/SS9nS[         R                  " SUS9-  n[         R                  " SSS9n[        X4XV5        US   S:X  d   eUS   S:  d   e[        R                  " US   S	5        g )
Nr   r   r   gUUUժ?)r   r   r   r   r   r   g        )r!   rA   r$   r%   r'   r   r/   rO   )r2   r   r3   r5   r6   r7   r8   s          r;   test_group_var_constant$TestGroupVar.test_group_var_constantZ   s     hhz/1#W-"RWWV5%AA!6*#v.ayA~~4yA~~
s4y#.r>    N)
__name__
__module____qualname____firstlineno__r<   rB   rI   rP   rT   __static_attributes__rV   r>   r;   r   r      s    ="= ==*/r>   r   c                     [         R                  n [         R                  R                  S5      n[         R                  " [         R
                  //U S9n[         R                  " S/SS9nUR                  S5      S-   R                  U 5      n[         R                  " SSS9n[        X#XE5        US   S:X  d   e[        R                  " US	   S
SS9  g )Nr   r   r   r   )@B r   l    J)r]   r   rS   gUUUUUU?gMb@?rL   )r!   r   r"   r#   rA   r$   r&   r'   r   r/   rO   )r   r4   r5   r6   r7   r8   s         r;   test_group_var_large_inputsr^   i   s    JJE99  #D
((RVVH:U
+CXXqc)Fkk*%.66u=FXXe6*Fc6*!93t9hV<r>   r   r   r   c           
         [         R                  " [         R                  R                  S5      R	                  S5      U S9n[         R                  " / SQ5      n[         R
                  " SU 5      n[         R
                  " [        U5      [         R                  S9n[        [         R                  " [         R                  " S5      [         R                  " [         R                  SU4   5      5      5      n[        R                  nU" X4US S 2S 4   U5        S n[         R                  " U" US S	 5      U" US	S
 5      U" US
S  5      /5      n[        R                   " X85        [        R"                  " U[         R                  " / SQ[         R                  S95        [         R$                  US S	& U" X4US S 2S 4   U5        [         R$                  US'   [        R                   " X85        g )Nr      r   )      r`   )r      r   r   c                     [        U 5      R                  5       (       a%  [        R                  " [        R                  S5      $ U S   U R                  5       U R                  5       U S   /$ )Nrc   r   )r
   allr!   repeatr$   maxmin)groups    r;   _ohlctest_group_ohlc.<locals>._ohlc   sK    ;??99RVVQ''a%))+uyy{E"I>>r>   ra   rb   )ra   ra      )r!   rA   r"   r#   standard_normalr'   lenr   r	   rg   r)   diffr_
libgroupby
group_ohlcr/   rO   r0   r$   )	r   objbinsr5   r6   r8   funcrk   expecteds	            r;   test_group_ohlcrx   x   sY   
((299((+;;B?u
MC88K D
((65
!CXXc#hbhh/F 299Q<q$w9P!QRF  Dc!T'lF+?
 xxs2Aws1Ry)95RS?KLH3)"(((KLffCGc!T'lF+&&HQK3)r>   zpd_op, np_opc                    Sn[         R                  " S/S/S/S//U S9n[         R                  " U5      n[         R                  " / SQ[         R                  S9nSnU" XTXgU5        [        R
                  " U" U5      US S 2S4   SS	9  g )
NFr   r   r   rc   r   )r   r   r   r   r   )check_dtype)r!   rA   
zeros_liker   r/   r0   )r   pd_opnp_opis_datetimelikedataanswerr8   ngroupss           r;   test_cython_group_transformr      s{     O88aS1#sQC(6D]]4 FXXl"''2FG	&9dVAqD\uMr>   c            
         Sn [         R                  " / SQ[         R                  S9nSn[         R                  " S/S/S/[         R                  /S//SS9n[         R                  " U5      nUR                  [         R                  5        [        XCXU 5        [         R                  " SSS	[         R                  S
/SS9n[        R                  " US S 2S4   U5        [         R                  " U5      nUR                  [         R                  5        [        XCXU 5        [         R                  " SSS	[         R                  S/SS9n[        R                  " US S 2S4   U5        Sn [         R                  " [         R                  " SS5      /S-  SS9S S 2S 4   n[         R                  " USS9n[        XCR                  S5      XU 5        [         R                  " [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      [         R                  " SS5      /5      n[        R                  " US S 2S4   R                  S5      U5        g )NF)r   r   r   r   r   r   r   r   r   rc   r   ra      r   r   Tnsr   m8[ns]r   )r!   rA   r   r$   r{   fillr   r/   r0   r   timedelta64view)r~   r8   r   r   actualrw   s         r;   !test_cython_group_transform_algosr      s   O XXoRWW5FG88aS1#sRVVHqc2)DD]]4 F
KK&AxxAq"&&"-Y?Hq!th7]]4 F
KKv@xxAq"&&"-Y?Hq!th7 O88R^^At,-1B1d7KD]]4w/F7+VoNxxNN1d#NN1d#NN1d#NN1d#NN1d#	
H q!t 1 1( ;XFr>   c                  "   [         R                  " SSS9n [         R                  " S/SS9n[         R                  " [         R                  " SS5      [         R                  " S	S5      [         R                  " S
5      /SS9S S 2S 4   R	                  S5      R                  S5      n[         R                  " [        U5      [         R                  S9n[        XX#SS9  [        R                  " U S S 2S4   [         R                  " S/SS95        g )Nr@   r   shaper   r   r   r   r   r   rc   NaTr   Tr~   r   )r!   r'   rA   r   r   r&   ro   r   r   r/   r0   r   r6   r   r8   s       r;   #test_cython_group_mean_datetimeliker      s    XXF)4FXXqc)F
^^At$bnnQ&=r~~e?TU	
 T'	 
g			 	 XXc$irww/FvtTBq!tbhhs).LMr>   c            
      T   [         R                  " SSS9n [         R                  " SSS9n[         R                  " SSS9S S 2S 4   n[         R                  " S[         R                  S9n[        R                  " [
        SS9   [        XX#S	S
S9  S S S 5        g ! , (       d  f       g = f)Nr@   r   r   r   r   r   	min_count)matchTr   )r~   r   )r!   r'   r   pytestraisesAssertionErrorr   r   s       r;   &test_cython_group_mean_wrong_min_countr      sx    XXF)4FXXaw'F88AY'40DXXarww'F	~[	964QRS 
:	9	9s   B
B'c                  R   [         R                  " SSS9n [         R                  " S/SS9n[         R                  " [         R                  " S5      [         R                  " S5      /SS9S S 2S 4   R	                  S5      R                  S5      n[         R                  " [        U5      [         R                  S9n[        XX#S	S
9  [        R                  " U S S 2S4   [         R                  " [         R                  " [         R                  " US   US   5      S5      SS95        g )Nr@   r   r   r   r   r   r   r   Fr   r   r   )r!   r'   rA   r   r   r&   ro   r   r   r/   r0   divideaddr   s       r;   :test_cython_group_mean_not_datetimelike_but_has_NaT_valuesr      s    XXF)4FXXqc)F
^^E"BNN5$9:	
 T'	 
g			 	 XXc$irww/FvtUCq!tbhhryyQa)A1EYWr>   c            	      Z   [         R                  " [         R                  [         R                  /[         R                  [         R                  //SS9n [         R                  " SS/SS9n[         R                  " [         R                  S/SS/SS/SS/SS	/S
[         R                  //SS9n[         R                  " / SQ[         R                  S9n[        XX#SS9  [         R                  " [         R                  S/S[         R                  //SS9n[        R                  " U U5        g )Nr   r   r   r   g      ?g       @      @g      @g      @r   )r   r   r   r   r   r   Fr   r   )r!   rA   r$   infr   r   r/   r0   )r   r6   r   r8   rw   s        r;   /test_cython_group_mean_Inf_at_beginning_and_endr      s    XX'"&&"&&)9:)LFXXq!fG,F88
&&#c
S#Jc
S#JBFFTD XX(8FvtUCxx"&&!q"&&k2)DHr>   zvalues, outc           	         [         R                  " [         R                  /[         R                  //SS9n[         R                  " SS/SS9n[         R                  " U SS9n[         R                  " / SQ[         R                  S9n[	        X#XES SS9  [         R                  " USS9n[
        R                  " UU5        g )Nr   r   r   r   )r   r   r   Fr   )r!   rA   r$   r   r   r/   r0   )r7   r5   r   r6   r   r8   rw   s          r;   .test_cython_group_sum_Inf_at_beginning_and_endr     s     XXx"&&*)<FXXq!fG,F88F),DXXirww/FfdD%Hxx9-Hr>   zvalues, expected_valuesy              ?r   g      "@y              @c           	         [         R                  " [        S5       Vs/ s H  o /PM     sn5      n[         R                  " / SQ[         R                  S9n[         R                  " S/SS9n[         R                  " XR                  S9n[         R
                  " U5      n[        XuX4S SS9  [        R                  " Xv5        g s  snf )Nr   )r   r   r   r   r   r   Fr   )	r!   rA   ranger   r   r{   r   r/   r0   )r7   expected_values_r   r8   r6   rw   r   s           r;   test_cython_group_sum_overflowr   .  s    B 88uQx0x!Xx01DXXirww/FXXqc)Fxx||<H]]8$FfdD%H1 1s   C)-numpyr!   r   pandas._libsr   rr   pandas._libs.groupbyr   r   r   r   r   pandas.core.dtypes.commonr	   pandasr
   pandas._testing_testingr/   markparametrizer   r^   rx   r   uint64r   r   cumsumcumprodr   r   r   r   r   r   r   r$   r   finforh   ri   
complex128complexr   rV   r>   r;   <module>r      s     .  :   ):<M(NOR/ R/ PR/j= 9i"89* :*6 288RYY

BJJ"OP	ryy!	

#N QN#GLN$T(( 66(RVVHrvvh	'266(RVVH)=>66(RVVHwi	(BFF8bffX*>?66(bffWIx	(BFF8bffX*>?66(bffWIy	)RVVHwi+@A	" 	"**		!	!RVVH:.	"**		!	!bffWI;/MM"((2::.22RXXbjj5I5M5MPR5RRSrvvgrvv&'(	

 MM"((2::.22RXXbjj5I5M5MPR5RRSbffrvvg&'(	

 MM"((2::.22RXXbjj5I5M5MPR5RRSbffbff%&'	

 MM"((2::.22RXXbjj5I5M5MPR5RRSrvvgw'()	

 MM# 4 8 82 ==>cBFF7#$%	

 MM"((2::.22V;<bffc"#$	
/>2?>2r>   