ó
    ­œ‘hÙ(  ã            	       ó   • 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   " S S5      r " S S	\5      r " S
 S\5      r\R,                  R/                  SSS/5      S 5       rS r\R,                  R/                  S/ SQ5      S 5       rS rS rS rS rS rS r \R,                  R/                  S\RB                  /\RB                  /\RB                  //\RB                  /\RB                  //4\RB                  /\RB                  /\RB                  * //\RB                  /\RD                  //4\RB                  /\RB                  * /\RB                  //\RB                  /\RD                  //4\RB                  /\RB                  * /\RB                  * //\RB                  /\RB                  * //4/5      S 5       r#g)é    N)Úgroupby)Úgroup_cumprodÚgroup_cumsumÚ
group_meanÚ	group_sumÚ	group_var)Úensure_platform_int)Úisnac                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚGroupVarTestMixiné   c                 óø  • [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U R                  5      n[         R                  " SSS9nSUR                  S5      R                  U R                  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U R                  X#XE5        [         R                  " X&U R                   5      (       d   e["        R$                  " X75        g )Né   ©é   é   r   Úint64©Údtypeé
   )é   r   )é   Úintp)r   r   ÚF©Úorderr   )ÚaxisÚddofr   )ÚnpÚrandomÚdefault_rngÚnanÚonesÚastyper   ÚzerosÚtileÚarangeÚsqueezeÚreshapeÚstdÚnewaxisÚalgoÚallcloseÚrtolÚtmÚassert_numpy_array_equal©ÚselfÚprngÚoutÚcountsÚvaluesÚlabelsÚexpected_outÚexpected_countss           ÚhC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/groupby/test_libgroupby.pyÚtest_group_var_generic_1dÚ+GroupVarTestMixin.test_group_var_generic_1d   s  € Ü�y‰y×$Ñ$ QÓ'ˆä�v‰vœŸš ›Ñ'×/Ñ/°·
±
Ó;ˆÜ—’˜! 7Ñ+ˆØ�d—k‘k 'Ó*×1Ñ1°$·*±*Ó=Ñ=ˆÜ—’œŸš 1› tÓ,×3Ñ3°FÓ;ˆô �JŠJ�vÓ×&Ñ& v°SÐ&Ð9×=Ñ=À1È1Ð=ÐMÐQRÑRÚ
ŒR�Z‰Zˆ-ñˆð ! 1™*ˆà�	‰	�#˜vÔ.Ü�{Š{˜3¨d¯i©i×8Ñ8Ð8Ð8Ü
×#Ò# FÕ<ó    c                 ój  • [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U R                  5      n[         R                  " SSS9nSUR                  S5      R                  U R                  5      -  n[         R                  " SS	S9n[         R                  " UR                  SS
9S-  //5      nUS-   nU R                  X#XE5        [         R                  " X&U R                  5      (       d   e[        R                  " X75        g )Nr   ©r   r   r   r   r   r   r   r   r   )r   )r   r    r!   r"   r#   r$   r   r%   Úarrayr*   r,   r-   r.   r/   r0   r1   s           r:   Ú%test_group_var_generic_1d_flat_labelsÚ7GroupVarTestMixin.test_group_var_generic_1d_flat_labels%   sá   € Ü�y‰y×$Ñ$ QÓ'ˆä�v‰vœŸš ›Ñ'×/Ñ/°·
±
Ó;ˆÜ—’˜! 7Ñ+ˆØ�d—k‘k &Ó)×0Ñ0°·±Ó<Ñ<ˆÜ—’˜! 6Ñ*ˆä—x’x &§*¡*°! *Ð"4¸Ñ"9Ð!:Ð ;Ó<ˆØ  1™*ˆà�	‰	�#˜vÔ.ä�{Š{˜3¨d¯i©i×8Ñ8Ð8Ð8Ü
×#Ò# FÕ<r=   c                 ó¸  • [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U R                  5      n[         R                  " SSS9nSUR                  S5      R                  U R                  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U R                  X#XE5        [         R                  " X&U R                  5      (       d   e[        R                   " X75        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-   r.   r/   r0   r1   s           r:   Ú$test_group_var_generic_2d_all_finiteÚ6GroupVarTestMixin.test_group_var_generic_2d_all_finite5   sô   € Ü�y‰y×$Ñ$ QÓ'ˆä�v‰vœŸš ›Ñ'×/Ñ/°·
±
Ó;ˆÜ—’˜! 7Ñ+ˆØ�d—k‘k 'Ó*×1Ñ1°$·*±*Ó=Ñ=ˆÜ—’œŸš 1› tÓ,×3Ñ3°FÓ;ˆä—v’v˜fŸn™n¨Q°°1Ó5¸AÀAÑFÈ!ÑKˆØ  1™*ˆà�	‰	�#˜vÔ.Ü�{Š{˜3¨d¯i©i×8Ñ8Ð8Ð8Ü
×#Ò# FÕ<r=   c                 óz  • [         R                  R                  S5      n[         R                  [         R                  " S5      -  R                  U R                  5      n[         R                  " SSS9nSUR                  S5      R                  U R                  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 R                  5      nUS-   nU R                  X#XE5        [        R                   " X&SS9  [        R"                  " X75        g )Nr   rD   r   r   r   r   rE   r   rF   r   r   r   r   rG   g�íµ ÷Æ >©r.   )r   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Ú4GroupVarTestMixin.test_group_var_generic_2d_some_nanD   sH  € Ü�y‰y×$Ñ$ QÓ'ˆä�v‰vœŸš ›Ñ'×/Ñ/°·
±
Ó;ˆÜ—’˜! 7Ñ+ˆØ�d—k‘k 'Ó*×1Ñ1°$·*±*Ó=Ñ=ˆÜ—v‘vˆŠq�!ˆt‰Ü—’œŸš 1› tÓ,×3Ñ3°FÓ;ˆä—y’yà’q˜!�t‘×$Ñ$ Q¨°Ð$Ð5×9Ñ9¸qÀqÐ9ÐIÈQÑNÜ—‘œŸš ›Ñ#ðó
÷
 ‰!�F‰F�4—:‘:Óð 	ð ! 1™*ˆà�	‰	�#˜vÔ.Ü
×Ò˜s°wÒ?Ü
×#Ò# FÕ<r=   c                 ó€  • [         R                  " [         R                  //U R                  S9n[         R                  " S/SS9nS[         R                  " SU R                  S9-  n[         R
                  " SSS9nU R                  XX45        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   r@   r"   r   r#   r%   r,   r/   rN   )r2   r4   r5   r6   r7   s        r:   Útest_group_var_constantÚ)GroupVarTestMixin.test_group_var_constantY   s�   € ô �hŠhœŸ™˜�z¨¯©Ñ4ˆÜ—’˜1˜# WÑ-ˆØ"¤R§W¢W¨V¸4¿:¹:Ñ%FÑFˆÜ—’˜! 6Ñ*ˆà�	‰	�#˜vÔ.à�a‰y˜A‹~Ðˆ~Ø�4‰y˜A‹~Ðˆ~Ü
×Ò˜s 4™y¨#Õ.r=   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r;   rA   rH   rO   rS   Ú__static_attributes__rU   r=   r:   r   r      s   † ò=ò"=ò =ò=õ*/r=   r   c                   óJ   • \ rS rSrSr\" \5      r\R                  r
SrS rSrg)ÚTestGroupVarFloat64éh   Tgñhãˆµøä>c                 óÊ  • [         R                  R                  S5      n[         R                  " [         R                  //U R
                  S9n[         R                  " S/SS9nUR                  S5      S-   R                  U R
                  5      nSUl        [         R                  " SSS9nU R                  X#XE5        US   S:X  d   e[        R                  " US	   S
SS9  g )Nr   r   r   r   é@B l    J)£)r_   r   r   rR   gUUUUUUµ?gü©ñÒMb@?rK   )r   r    r!   r@   r"   r   r$   Úshaper%   r,   r/   rN   )r2   r3   r4   r5   r6   r7   s         r:   Útest_group_var_large_inputsÚ/TestGroupVarFloat64.test_group_var_large_inputso   s³   € Ü�y‰y×$Ñ$ QÓ'ˆä�hŠhœŸ™˜�z¨¯©Ñ4ˆÜ—’˜1˜# WÑ-ˆØ—+‘+˜eÓ$ vÑ-×5Ñ5°d·j±jÓAˆØ!ˆŒÜ—’˜% vÑ.ˆà�	‰	�#˜vÔ.à�a‰y˜EÓ!Ð!Ð!Ü
×Ò˜s 4™y¨(¸Ó@r=   rU   N)rV   rW   rX   rY   Ú__test__Ústaticmethodr   r,   r   Úfloat64r   r.   ra   rZ   rU   r=   r:   r\   r\   h   s%   † Ø€Há˜	Ó"€DØ�J‰J€EØ€DõAr=   r\   c                   óD   • \ rS rSrSr\" \5      r\R                  r
SrSrg)ÚTestGroupVarFloat32é~   Tg{®Gáz„?rU   N)rV   rW   rX   rY   rc   rd   r   r,   r   Úfloat32r   r.   rZ   rU   r=   r:   rg   rg   ~   s   † Ø€Há˜	Ó"€DØ�J‰J€EØƒDr=   rg   r   ri   re   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   )é   é   rk   )r   é   r   r   c                 óØ   • [        U 5      R                  5       (       a%  [        R                  " [        R                  S5      $ U S   U R                  5       U R                  5       U S   /$ )Nrn   r   éÿÿÿÿ)r
   Úallr   Úrepeatr"   ÚmaxÚmin)Úgroups    r:   Ú_ohlcÚtest_group_ohlc.<locals>._ohlc’   sK   € Ü�‹;�?‰?×ÑÜ—9’9œRŸV™V QÓ'Ð'Ø�a‘˜%Ÿ)™)›+ u§y¡y£{°E¸"±IÐ>Ð>r=   rl   rm   )rl   rl   é   )r   r@   r    r!   Ústandard_normalr%   Úlenr   r	   rr   r'   ÚdiffÚr_Ú
libgroupbyÚ
group_ohlcr/   rN   r0   r"   )	r   ÚobjÚbinsr4   r5   r7   Úfuncrv   Úexpecteds	            r:   Útest_group_ohlcrƒ   †   sY  € ä
�(Š(”2—9‘9×(Ñ(¨Ó+×;Ñ;¸BÓ?ÀuÑ
M€Cä�8Š8’KÓ €DÜ
�(Š(�6˜5Ó
!€CÜ�XŠX”c˜#“h¤b§h¡hÑ/€FÜ ¤§¢¬2¯9ª9°Q«<¼¿ºÄÇÁÀqÈ$ÀwÁÓ9PÓ!QÓR€Fä× Ñ €DÙˆ�cš!˜T˜'‘l FÔ+ò?ô
 �xŠx™˜s 2 A˜w›©¨s°1°R¨yÓ)9¹5ÀÀRÀSÀ»?ÐKÓL€Hä×Ò˜3Ô)Ü×Ò ¬¯ª²Ä"Ç(Á(Ñ(KÔLä�f‰f€Cˆˆ€GÙˆ�cš!˜T˜'‘l FÔ+Ü—&‘&€HˆQ�KÜ×Ò˜3Õ)r=   c                 ó  • 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)zí
Check a group transform that executes a cumulative function.

Parameters
----------
pd_op : callable
    The pandas cumulative function.
np_op : callable
    The analogous one in NumPy.
dtype : type
    The specified dtype of the data.
Fr   r   r   rn   r   )r   r   r   r   Nr   )Úcheck_dtype)r   r@   Ú
zeros_liker   r/   r0   )Úpd_opÚnp_opr   Úis_datetimelikeÚdataÚanswerr7   Úngroupss           r:   Ú(_check_cython_group_transform_cumulativer�   ¢   s{   € ð €Oä�8Š8�a�S˜1˜# ˜s Q CÐ(°Ñ6€DÜ�]Š]˜4Ó €Fä�XŠX’l¬"¯'©'Ñ2€FØ€GÙ	ˆ&˜¨Ô9ä×Ò¡ d£¨V²A°q°D©\ÀuÓMr=   Únp_dtype)r   Úuint64ri   re   c                 ó†   • [         R                  " U 5      R                  n[        [         R                  p2[        X#U5        g ©N)r   r   Útyper   Úcumsumr�   )rŽ   r   r‡   rˆ   s       r:   Ú"test_cython_group_transform_cumsumr”   »   s-   € ô �HŠH�XÓ×#Ñ#€EÜ¤§¡ˆ5Ü,¨U¸5ÕAr=   c                  óf   • [         R                  n [        [         R                  p![	        XU 5        g r‘   )r   re   r   Úcumprodr�   )r   r‡   rˆ   s      r:   Ú#test_cython_group_transform_cumprodr—   Ã   s    € ä�J‰J€EÜ ¤"§*¡*ˆ5Ü,¨U¸5ÕAr=   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   rn   re   rl   é   r   r   TÚnsr   úm8[ns]r   )r   r@   r   r"   r†   Úfillr   r/   r0   r   Útimedelta64Úview)r‰   r7   rŒ   rŠ   Úactualr‚   s         r:   Ú!test_cython_group_transform_algosr    Ê   sã  € à€Oô �XŠX’o¬R¯W©WÑ5€FØ€Gä�8Š8�a�S˜1˜# ˜s¤R§V¡V H¨q¨cÐ2¸)ÑD€DÜ�]Š]˜4Ó €FØ
‡K�K”—‘ÔÜ�& °ÔAÜ�xŠx˜˜A˜q¤"§&¡&¨"Ð-°YÑ?€HÜ×Ò ¢q¨! t¡¨hÔ7ä�]Š]˜4Ó €FØ
‡K�K”—‘ÔÜ�˜v°Ô@Ü�xŠx˜˜A˜q¤"§&¡&¨"Ð-°YÑ?€HÜ×Ò ¢q¨! t¡¨hÔ7ð €OÜ�8Š8”R—^’^ A tÓ,Ð-°Ñ1¸ÑBÂ1ÀdÀ7ÑK€DÜ�]Š]˜4 wÑ/€FÜ�Ÿ™ 7Ó+¨V¸oÔNÜ�xŠxä�NŠN˜1˜dÓ#Ü�NŠN˜1˜dÓ#Ü�NŠN˜1˜dÓ#Ü�NŠN˜1˜dÓ#Ü�NŠN˜1˜dÓ#ð	
ó€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?   re   ©r`   r   r   r   r   r   rš   rn   ÚNaTr›   T©r‰   r   )r   r%   r@   r�   rž   r$   rz   r   r   r/   r0   ©rŸ   r5   rŠ   r7   s       r:   Ú#test_cython_group_mean_datetimeliker¦   ð   sÏ   € Ü�XŠX˜F¨)Ñ4€FÜ�XŠX�q�c Ñ)€Fä
�ŠÜ�^Š^˜A˜tÓ$¤b§n¢n°Q¸Ó&=¼r¿~º~ÈeÓ?TÐUØñ	
ò ˆTˆ'ñ	÷ 
‰ˆg‹ß	‰�	Ó	ð 	ô �XŠX”c˜$“i¤r§w¡wÑ/€Fäˆv˜t¸TÒBä×Ò ¢q¨! t¡¬b¯hªh¸°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?   re   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   € Ü�XŠX˜F¨)Ñ4€FÜ�XŠX�a˜wÑ'€FÜ�8Š8�A˜YÑ'ª¨4¨Ñ0€DÜ�XŠX�aœrŸw™wÑ'€Fä	�Š”~¨[Ó	9Ü�6 4ÀÐQRÒS÷ 
:×	9Ö	9ús   Â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?   re   r¢   r   r   r   r£   r›   Fr¤   r   r   )r   r%   r@   r�   rž   r$   rz   r   r   r/   r0   ÚdivideÚaddr¥   s       r:   Ú:test_cython_group_mean_not_datetimelike_but_has_NaT_valuesr±     sß   € Ü�XŠX˜F¨)Ñ4€FÜ�XŠX�q�c Ñ)€Fä
�ŠÜ�^Š^˜EÓ"¤B§N¢N°5Ó$9Ð:Øñ	
ò ˆTˆ'ñ	÷ 
‰ˆg‹ß	‰�	Ó	ð 	ô �XŠX”c˜$“i¤r§w¡wÑ/€Fäˆv˜t¸UÒCä×ÒØŠq�!ˆt‰”b—h’hœrŸyšy¬¯ª°°Q±¸¸a¹Ó)AÀ1ÓEÈYÑ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 )Nre   r   r   r   g      ð?g       @g      @g      @g      @r   )r   r   r   r   r   r   Fr¤   r   )r   r@   r"   Úinfr   r   r/   r0   )rŸ   r5   rŠ   r7   r‚   s        r:   Ú.test_cython_group_mean_Inf_at_begining_and_endr´      sâ   € ä�XŠXœŸ™¤§¡Ð'¬"¯&©&´"·&±&Ð)9Ð:À)ÑL€FÜ�XŠX�q˜!�f GÑ,€FÜ�8Š8Ü
�&‰&�#ˆ˜˜c˜
 S¨# J°°c°
¸SÀ#¸JÈÌBÏFÉFÈÐTØñ€Dô �XŠXÒ(´·±Ñ8€Fäˆv˜t¸UÒCä�xŠxœ"Ÿ&™& !˜ q¬"¯&©& kÐ2¸)ÑD€Hä×ÒØØõ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 )Nre   r   r   r   )r   r   r   Fr¤   )r   r@   r"   r   r   r/   r0   )r6   r4   rŸ   r5   rŠ   r7   r‚   s          r:   Ú-test_cython_group_sum_Inf_at_begining_and_endr¶   4  s�   € ô �XŠXœŸ™�x¤"§&¡& Ð*°)Ñ<€FÜ�XŠX�q˜!�f GÑ,€FÜ�8Š8�F )Ñ,€DÜ�XŠX’i¤r§w¡wÑ/€Fäˆf˜d¨DÀ%ÒHä�xŠx˜ 9Ñ-€Hä×ÒØØõr=   )$Únumpyr   rª   Úpandas._libsr   r}   Úpandas._libs.groupbyr   r   r   r   r   Úpandas.core.dtypes.commonr	   Úpandasr
   Úpandas._testingÚ_testingr/   r   r\   rg   ÚmarkÚparametrizerƒ   r�   r”   r—   r    r¦   r­   r±   r´   r³   r"   r¶   rU   r=   r:   Ú<module>rÀ      sÅ  ðÛ Û å .÷õ õ :å Ý ÷R/ñ R/ôjAÐ+ô Aô,Ð+ô ð ‡�×Ñ˜ 9¨iÐ"8Ó9ñ*ó :ð*ò6Nð2 ‡�×Ñ˜Ò%NÓOñBó PðBòBò#GòLNò$Tòò(ð( ‡�×ÑØà�6‰6ˆ(�R—V‘V�H˜rŸv™v˜hÐ	'¨2¯6©6¨(°R·V±V°HÐ)=Ð>Ø�6‰6ˆ(�R—V‘V�H §¡˜w˜iÐ	(¨B¯F©F¨8°b·f±f°XÐ*>Ð?Ø�6‰6ˆ(�b—f‘f�W�I §¡˜xÐ	(¨B¯F©F¨8°b·f±f°XÐ*>Ð?Ø�6‰6ˆ(�b—f‘f�W�I §¡ ˜yÐ	)¨R¯V©V¨H¸¿¹°w°iÐ+@ÐAð	óñóñr=   