
    PiC+                     L   d dl Zd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ ej                            dddg           G d	 d
                      Zd Zej                            dddg          d             Zej                            dej        ej        ej        ej        g          ej                            deej        feej        fg          d                         Zd Zd Z d Z!d Z"d Z#ej                            dej$        gej$        gej$        ggej$        gej$        ggfej$        gej$        gej$         ggej$        gej%        ggfej$        gej$         gej$        ggej$        gej%        ggfej$        gej$         gej$         ggej$        gej$         ggfg          d             Z&ej                            d ej'        ej                  j(        ej$        ggf ej'        ej                  j)        ej$         ggf ej*         ej'        ej                  j)         ej'        ej                  j(        dz  z              e+ej$         ej$                  ggf ej*         ej'        ej                  j(         ej'        ej                  j)        dz  z              e+ej$        ej$                   ggf ej*         ej'        ej                  j(         ej'        ej                  j(        dz  z              e+ej$        ej$                  ggf ej*         ej'        ej                  j)         ej'        ej                  j)        dz  z              e+ej$         ej$                   ggf ej*        d ej'        ej                  j)        dz  z              e+dej$                   ggf ej*         ej'        ej                  j(        dz              e+ej$        d          ggfg          d             Z,dS )    N)groupby)group_cumprodgroup_cumsum
group_mean	group_sum	group_var)ensure_platform_int)isnazdtype, rtol)float32g{Gz?)float64gh㈵>c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestGroupVarc                    t           j                            d          }t           j        t          j        d          z                      |          }t          j        dd          }d|                    d                              |          z  }t          j        t          j        d          d                              d	          }t          j	        |          
                    d
d                              dd          dz  d d t           j        f         }|dz   }	t          ||||           t          j        |||          sJ t          j        ||	           d S )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
             x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/groupby/test_libgroupby.pytest_group_var_generic_1dz&TestGroupVar.test_group_var_generic_1d   s9   y$$Q''v'//66!7+++dkk'**11%8881t,,33F;; Jv&&vS&99==11=MMQRR
!!RZ- !1*#vvv...{3d33333
#FO<<<<<    c                 <   t           j                            d          }t           j        t          j        d          z                      |          }t          j        dd          }d|                    d                              |          z  }t          j        dd	          }t          j        |                    d
          dz  gg          }|dz   }	t          ||||           t          j
        |||          sJ t          j        ||	           d S )Nr   r   r   r   r   r   r   r   r   r   )r   )r    r!   r"   r#   r$   r%   r&   arrayr+   r   r-   r.   r/   r0   s
             r:   %test_group_var_generic_1d_flat_labelsz2TestGroupVar.test_group_var_generic_1d_flat_labels&   s    y$$Q''v'//66!7+++dkk&))00777!6***x&**!*"4"4"9!: ;<< 1*#vvv...{3d33333
#FO<<<<<r<   c                    t           j                            d          }t           j        t          j        d          z                      |          }t          j        dd          }d|                    d                              |          z  }t          j        t          j        d          d                              d	          }t          j	        |
                    ddd          d
d          dz  }|dz   }	t          ||||           t          j        |||          sJ t          j        ||	           d S )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.   r/   r0   s
             r:   $test_group_var_generic_2d_all_finitez1TestGroupVar.test_group_var_generic_2d_all_finite6   s   y$$Q''v'//66!7+++dkk'**11%8881t,,33F;;vfnnQ155AAFFF!K 1*#vvv...{3d33333
#FO<<<<<r<   c                 X   t           j                            d          }t           j        t          j        d          z                      |          }t          j        dd          }d|                    d                              |          z  }t           j        |d d df<   t          j        t          j        d          d	                              d
          }t          j	        |d d df         
                    ddd                              dd          dz  t           j        t          j        d          z  g          j                            |          }|dz   }	t          ||||           t          j        ||d           t          j        ||	           d S )Nr   rB   r   r   r   r   rC   r   rD   r   r   r   r   rE   gƠ>r2   )r    r!   r"   r#   r$   r%   r&   r'   r(   vstackr*   r+   Tr   r.   assert_almost_equalr/   r0   s
             r:   "test_group_var_generic_2d_some_nanz/TestGroupVar.test_group_var_generic_2d_some_nanE   sq   y$$Q''v'//66!7+++dkk'**11%888vqqq!t1t,,33F;;yqqq!t$$Q$5599qq9IIQN#
 

 FF5MM 	 !1*#vvv...
sLw????
#FO<<<<<r<   c                 h   t          j        t           j        gg|          }t          j        dgd          }dt          j        d|          z  }t          j        dd          }t          ||||           |d         dk    sJ |d         dk    sJ t          j        |d         d	           d S )
Nr   r   r   gUUUժ?)r   r   r   r   r   r   g        )r    r?   r#   r$   r&   r   r.   rK   )r1   r   r2   r4   r5   r6   r7   s          r:   test_group_var_constantz$TestGroupVar.test_group_var_constantZ   s     hz///1#W---"RWV5%A%A%AA!6***#vvv...ayA~~~~4yA~~~~
s4y#.....r<   N)__name__
__module____qualname__r;   r@   rF   rL   rO    r<   r:   r   r      s_        = = ="= = = = = == = =*/ / / / /r<   r   c                     t           j        } t           j                            d          }t          j        t           j        gg|           }t          j        dgd          }|                    d          dz                       |           }t          j        dd          }t          ||||           |d         dk    sJ t          j
        |d	         d
d           d S )Nr   r   r   r   )@B r   l    J)rU   r   rN   gUUUUUU?gMb@?rH   )r    r   r!   r"   r?   r#   r%   r&   r   r.   rK   )r   r3   r4   r5   r6   r7   s         r:   test_group_var_large_inputsrV   i   s    JE9  ##D
(RVH:U
+
+
+CXqc)))Fkk*%%.66u==FXe6***Fc666***!93t9hV<<<<<<r<   r   r   r   c           
         t          j        t           j                            d                              d          |           }t          j        g d          }t          j        d|           }t          j        t          |          t           j                  }t          t          j	        t          j
        d          t          j        t           j        d|f                                       }t          j        } ||||d d d f         |           d }t          j         ||d d	                    ||d	d
                    ||d
d                    g          }t          j        ||           t          j        |t          j        g dt           j                             t           j        |d d	<    ||||d d d f         |           t           j        |d<   t          j        ||           d S )Nr      r   )      rX   )r      r   r   c                     t          |                                           rt          j        t          j        d          S | d         |                                 |                                 | d         gS )Nr[   r   )r
   allr    repeatr#   maxmin)groups    r:   _ohlcztest_group_ohlc.<locals>._ohlc   sU    ;;?? 	(9RVQ'''a%))++uyy{{E"I>>r<   rY   rZ   )rY   rY      )r    r?   r!   r"   standard_normalr&   lenr   r	   r_   r(   diffr_
libgroupby
group_ohlcr.   rK   r/   r#   )	r   objbinsr4   r5   r7   funcrc   expecteds	            r:   test_group_ohlcro   x   s   
(29((++;;B??u
M
M
MC8KKK  D
(65
!
!CXc#hhbh///F 29Q<<q$w9P9P!Q!QRRF DDfc!!!T'lF+++? ? ?
 xs2A2ws1R4y)9)955RSS??KLLH3)))"((K(K(KLLLfCGDfc!!!T'lF+++&HQK3)))))r<   zpd_op, np_opc                 (   d}t          j        dgdgdgdgg|           }t          j        |          }t          j        g dt           j                  }d} ||||||           t	          j         ||          |d d df         d	           d S )
NFr   r   r   r[   r   )r   r   r   r   r   )check_dtype)r    r?   
zeros_liker   r.   r/   )r   pd_opnp_opis_datetimelikedataanswerr7   ngroupss           r:   test_cython_group_transformry      s     O8aS1#sQC(666D]4  FXlll"'222FG	E&$999dVAAAqD\uMMMMMMr<   c            
         d} t          j        g dt           j                  }d}t          j        dgdgdgt           j        gdggd          }t          j        |          }|                    t           j                   t          |||||            t          j        ddd	t           j        d
gd          }t          j        |d d df         |           t          j        |          }|                    t           j                   t          |||||            t          j        ddd	t           j        dgd          }t          j        |d d df         |           d} t          j        t          j
        dd          gdz  d          d d d f         }t          j        |d          }t          ||                    d          |||            t          j        t          j
        dd          t          j
        dd          t          j
        dd          t          j
        dd          t          j
        dd          g          }t          j        |d d df                             d          |           d S )NF)r   r   r   r   r   r   r   r   r   r[   r   rY      r   r   Tnsr   m8[ns]r   )r    r?   r   r#   rr   fillr   r.   r/   r   timedelta64view)ru   r7   rx   rv   actualrn   s         r:   !test_cython_group_transform_algosr      sM   O XoooRW555FG8aS1#sRVHqc2)DDDD]4  F
KK&$AAAxAq"&"-Y???Hqqq!th777]4  F
KKvw@@@xAq"&"-Y???Hqqq!th777 O8R^At,,-1BBB111d7KD]4w///F7++VWoNNNxN1d##N1d##N1d##N1d##N1d##	
 H qqq!t 1 1( ; ;XFFFFFr<   c                  L   t          j        dd          } t          j        dgd          }t          j        t          j        dd          t          j        d	d          t          j        d
          gd          d d d f                             d                              d          }t          j        t          |          t           j                  }t          | |||d           t          j
        | d d df         t          j        dgd                     d S )Nr>   r   shaper   r   r   r   r   r|   r[   NaTr}   Tru   r   )r    r&   r?   r   r   r%   rf   r   r   r.   r/   r   r5   rv   r7   s       r:   #test_cython_group_mean_datetimeliker      s   XF)444FXqc)))F
^At$$bnQ&=&=r~e?T?TU	
 	
 	
 !!T'	 
g				 	 Xc$iirw///FvvtVTBBBBqqq!tbhs).L.L.LMMMMMr<   c            	      p   t          j        dd          } t          j        dd          }t          j        dd          d d d f         }t          j        dt           j                  }t          j        t
          d          5  t          | |||d	d
           d d d            d S # 1 swxY w Y   d S )Nr>   r   r   r   r   r   	min_count)matchTr   )ru   r   )r    r&   r   pytestraisesAssertionErrorr   r   s       r:   &test_cython_group_mean_wrong_min_countr      s
   XF)444FXaw'''F8AY'''40DXarw'''F	~[	9	9	9 T T664QRSSSST T T T T T T T T T T T T T T T T Ts   B++B/2B/c                     t          j        dd          } t          j        dgd          }t          j        t          j        d          t          j        d          gd          d d d f                             d                              d          }t          j        t          |          t           j                  }t          | |||d	
           t          j
        | d d df         t          j        t          j        t          j        |d         |d                   d          d                     d S )Nr>   r   r   r   r   r   r   r}   Fr   r   r   )r    r&   r?   r   r   r%   rf   r   r   r.   r/   divideaddr   s       r:   :test_cython_group_mean_not_datetimelike_but_has_NaT_valuesr      s&   XF)444FXqc)))F
^E""BN5$9$9:	
 	
 	
 !!T'	 
g				 	 Xc$iirw///FvvtVUCCCCqqq!tbhryQa)A)A1EEYWWW    r<   c            	      ,   t          j        t           j        t           j        gt           j        t           j        ggd          } t          j        ddgd          }t          j        t           j        dgddgddgddgdd	gd
t           j        ggd          }t          j        g dt           j                  }t          | |||d           t          j        t           j        dgdt           j        ggd          }t          j        | |           d S )Nr   r   r   r   g      ?g       @      @g      @g      @r   )r   r   r   r   r   r   Fr   r   )r    r?   r#   infr   r   r.   r/   )r   r5   rv   r7   rn   s        r:   /test_cython_group_mean_Inf_at_beginning_and_endr      s   X'"&"&)9:)LLLFXq!fG,,,F8
&#c
S#Jc
S#JBFT  D X(((888FvvtVUCCCCx"&!q"&k2)DDDH    r<   zvalues, outc                    t          j        t           j        gt           j        ggd          }t          j        ddgd          }t          j        | d          }t          j        g dt           j                  }t	          ||||d d           t          j        |d          }t          j        ||           d S )Nr   r   r   r   )r   r   r   Fr   )r    r?   r#   r   r   r.   r/   )r6   r4   r   r5   rv   r7   rn   s          r:   .test_cython_group_sum_Inf_at_beginning_and_endr     s     Xx"&*)<<<FXq!fG,,,F8F),,,DXiiirw///FffdFD%HHHHx9---H    r<   zvalues, expected_valuesy              ?r   g      "@y              @c                     t          j         fdt          d          D                       }t          j        g dt           j                  }t          j        dgd          }t          j        | j                  }t          j        |          }t          ||||d d           t          j        ||           d S )	Nc                     g | ]}gS rS   rS   ).0_r6   s     r:   
<listcomp>z2test_cython_group_sum_overflow.<locals>.<listcomp>O  s    000!fX000r<   r   )r   r   r   r   r   r   Fr   )	r    r?   ranger   r   rr   r   r.   r/   )r6   expected_valuesrv   r7   r5   rn   r   s   `      r:   test_cython_group_sum_overflowr   .  s    B 80000uQxx00011DXiiirw///FXqc)))Fxv|<<<H]8$$FffdFD%HHHH11111r<   )-numpyr    r   pandas._libsr   ri   pandas._libs.groupbyr   r   r   r   r   pandas.core.dtypes.commonr	   pandasr
   pandas._testing_testingr.   markparametrizer   rV   ro   r   uint64r   r   cumsumcumprodry   r   r   r   r   r   r   r#   r   finfor`   ra   
complex128complexr   rS   r<   r:   <module>r      s~        . . . . . .              : 9 9 9 9 9             ):<M(NOOR/ R/ R/ R/ R/ R/ R/ POR/j= = = 9i"899* * :9*6 28RY
BJ"OPP	ry!	
# N N  QPN#G #G #GLN N N$T T T  (  ( 6(RVHrvh	'26(RVH)=>6(RVHwi	(BF8bfX*>?6(bfWIx	(BF8bfX*>?6(bfWIy	)RVHwi+@A	   " 	"*			!RVH:.	"*			!bfWI;/BM("(2:..2XRXbj5I5I5MPR5RRSSgrvgrv&&'(	

 BM("(2:..2XRXbj5I5I5MPR5RRSSgbfrvg&&'(	

 BM("(2:..2XRXbj5I5I5MPR5RRSSgbfbf%%&'	

 BM("(2:..2XRXbj5I5I5MPR5RRSSgrvgw''()	

 BM# 4 4 82 ==>>gcBF7##$%	

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