Ë
    ž…jJ­  ã                   óà   — d Z ddlmZmZ ddlZddlZddlmZm	Z	 ddl
Zddl
mZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ  G d„ d«      Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Zd„ Zd„ Zy)zG
test where we are determining what we are grouping, or getting groups
é    )ÚdateÚ	timedeltaN)ÚPandas4WarningÚSpecificationError)	ÚCategoricalIndexÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚperiod_range)ÚGroupingc                   óˆ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  dd	„ d
„ g«      d„ «       Zd„ Zy)ÚTestSelectionc                 ó$  — t        ddggddg¬«      }|j                  d«      }t        j                  t        d¬«      5  |dg    d d d «       t        j                  t        d	¬«      5  |ddg    d d d «       y # 1 sw Y   Œ5xY w# 1 sw Y   y xY w)
Né   é   ÚAÚB©Úcolumnsz"Columns not found: 'C'"©ÚmatchÚCz^[^A]+$)r   ÚgroupbyÚpytestÚraisesÚKeyError)ÚselfÚdfÚgs      úc/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/groupby/test_grouping.pyÚtest_select_bad_colsz"TestSelection.test_select_bad_cols&   s‰   € Ü˜˜A˜�x¨#¨s¨Ô4ˆØ�J‰J�s‹OˆÜ�]‰]œ8Ð+GÔHñ 	ØˆsˆeŠH÷	ô �]‰]œ8¨9Ô5ñ 	ð ˆs�CˆjŠM÷	ð 	÷	ð 	ú÷	ð 	ús   ¿A:Á)BÁ:BÂBc           
      ó  — t        g d¢t        d«      t        dd«      t        ddd«      g¬«      }d}t        j                  t        |¬	«      5  |j                  d
«       d d d «       t        j                  t        |¬	«      5  |j                  d
dg«       d d d «       |j                  d«      }|j                  «       }|j                  j                  dk(  sJ ‚|j                  j                  dk(  sJ ‚y # 1 sw Y   Œ˜xY w# 1 sw Y   ŒmxY w)N)r   r   r   r   é   r   é   r   é   )r   Údataz!Grouper for 'A' not 1-dimensionalr   r   r   r   é   )
r   Úranger   r   Ú
ValueErrorr   Úcountr   ÚnlevelsÚsize)r!   r"   ÚmsgÚgroupedÚcs        r$   Ú'test_groupby_duplicated_column_errormsgz5TestSelection.test_groupby_duplicated_column_errormsg1   sÜ   € äÚ(´°a³¼%ÀÀ1»+ÄuÈQÐPQÐSTÃ~Ð/Vô
ˆð 2ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�J‰J�sŒO÷	ä�]‰]œ:¨SÔ1ñ 	#Ø�J‰J˜˜S�zÔ"÷	#ð —*‘*˜S“/ˆØ�M‰M‹OˆØ�y‰y× Ñ  AÒ%Ð%Ð%Ø�y‰y�~‰~ Ò"Ð"Ñ"÷	ð 	ú÷	#ð 	#ús   ÁC7ÂDÃ7D ÄDc                 óˆ  — |j                  d«      j                  j                  «       }|j                  d«      d   j                  «       }t        j                  ||«       d|d<   |j                  d«      j                  d¬«      }|j                  d«      g d¢   j                  d«      }t        j                  ||«       y )Nr   r   g      ø?ÚmeanT©Únumeric_only)r   ÚDr6   )r   r   ÚsumÚtmÚassert_series_equalr6   ÚaggÚassert_frame_equal©r!   r"   ÚresultÚexpecteds       r$   Útest_column_select_via_attrz)TestSelection.test_column_select_via_attrB   s›   € Ø—‘˜C“×"Ñ"×&Ñ&Ó(ˆØ—:‘:˜c“? 3Ñ'×+Ñ+Ó-ˆÜ
×Ñ˜v xÔ0àˆˆ6‰
Ø—‘˜C“×%Ñ%°4Ð%Ó8ˆØ—:‘:˜c“?Ò#5Ñ6×:Ñ:¸6ÓBˆÜ
×Ñ˜f hÕ/ó    c           	      ó˜  — t        g d¢g d¢t        j                  j                  d«      j	                  d«      t        j                  j                  d«      j	                  d«      t        j                  j                  d«      j	                  d«      dœ«      }|j                  d«      ddg   j                  «       }|j                  d«      |j                  dd	    j                  «       }|j                  d d …g d
¢f   j                  d«      j                  «       }t        j                  ||«       t        j                  ||«       y )N©ÚfooÚbarrF   rG   rF   rG   rF   rF   ©ÚonerI   ÚtwoÚthreerJ   rJ   rI   rK   r   r)   ©r   r   r   r9   ÚEr   r   r9   r'   )r   r   r9   )r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   r6   r   Úlocr;   r>   ©r!   r"   r@   Úresult2rA   s        r$   Útest_getitem_list_of_columnsz*TestSelection.test_getitem_list_of_columnsL   sû   € ÜâMÚQÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó
ˆð —‘˜C“ # s Ñ,×1Ñ1Ó3ˆØ—*‘*˜S“/ "§*¡*¨Q¨q /Ñ2×7Ñ7Ó9ˆà—6‘6š!š_Ð,Ñ-×5Ñ5°cÓ:×?Ñ?ÓAˆä
×Ñ˜f hÔ/Ü
×Ñ˜g xÕ0rC   c                 óJ  — t        t        d«      dz  t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      dœ«      }|j                  d«      |j                  dd    j                  «       }|j                  d«      ddg   j                  «       }|j                  d d …g d	¢f   j                  d«      j                  «       }t        j                  ||«       t        j                  ||«       t        j                  t        d
¬«      5  |j                  d«      d   j                  «        d d d «       y # 1 sw Y   y xY w)NÚabcdr   r)   )r   r   r'   r(   r   r   r+   r'   )r   r   r'   ú"Cannot subset columns with a tupler   )r   r'   )r   ÚlistrN   rO   rP   rQ   r   r   r6   rR   r;   r>   r   r   r-   rS   s        r$   Ú!test_getitem_numeric_column_namesz/TestSelection.test_getitem_numeric_column_names_   s?  € ää˜“< !Ñ#Ü—9‘9×(Ñ(¨Ó+×;Ñ;¸AÓ>Ü—9‘9×(Ñ(¨Ó+×;Ñ;¸AÓ>Ü—9‘9×(Ñ(¨Ó+×;Ñ;¸AÓ>ñ	ó
ˆð —‘˜A“˜rŸz™z¨!¨A˜Ñ/×4Ñ4Ó6ˆØ—*‘*˜Q“-  A Ñ'×,Ñ,Ó.ˆà—6‘6š!šY˜,Ñ'×/Ñ/°Ó2×7Ñ7Ó9ˆä
×Ñ˜f hÔ/Ü
×Ñ˜g xÔ0ô �]‰]œ:Ð-QÔRñ 	'Ø�J‰J�q‹M˜$Ñ×$Ñ$Ô&÷	'÷ 	'ñ 	'ús   Å-#FÆF"c                 ó¨   — t        j                  t        d¬«      5  |j                  d«      d   j	                  «        d d d «       y # 1 sw Y   y xY w)NrX   r   r   )r   r9   )r   r   r-   r   r6   ©r!   r"   s     r$   Ú+test_getitem_single_tuple_of_columns_raisesz9TestSelection.test_getitem_single_tuple_of_columns_raisesu   s?   € ä�]‰]œ:Ð-QÔRñ 	-Ø�J‰J�s‹O˜HÑ%×*Ñ*Ô,÷	-÷ 	-ñ 	-ús   œ#AÁAc           	      ó4  — t        g d¢g d¢t        j                  j                  d«      j	                  d«      t        j                  j                  d«      j	                  d«      t        j                  j                  d«      j	                  d«      dœ«      }|j                  d«      d   j                  «       }|j                  d d …ddgf   j                  d«      j                  «       }|j                  d d …df   }|}t        j                  ||«       y )	NrE   rH   r   r)   rL   r   r   r   )r   rN   rO   rP   rQ   r   r6   rR   Úilocr;   r<   )r!   r"   r@   Úas_frameÚ	as_seriesrA   s         r$   Útest_getitem_single_columnz(TestSelection.test_getitem_single_columnz   sÜ   € ÜâMÚQÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@Ü—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó
ˆð —‘˜C“ Ñ%×*Ñ*Ó,ˆà—6‘6š!˜c 3˜Z˜-Ñ(×0Ñ0°Ó5×:Ñ:Ó<ˆØ—M‘M¢! Q $Ñ'ˆ	Øˆä
×Ñ˜v xÕ0rC   Úfuncc                 ó"   — | j                  «       S ©N©r:   ©Úxs    r$   ú<lambda>zTestSelection.<lambda>Ž   s   € ˜1Ÿ5™5›7€ rC   c                 ó&   — | j                  d„ «      S )Nc                 ó"   — | j                  «       S re   rf   )Úys    r$   ri   z(TestSelection.<lambda>.<locals>.<lambda>Ž   s   € ¸a¿e¹e»g€ rC   )r=   rg   s    r$   ri   zTestSelection.<lambda>Ž   s   € ¨a¯e©eÑ4EÓ.F€ rC   c                 óò   — t        g d¢ddddœ«      }|j                  ddg«      ddg   }t        j                  d	d
gddg¬«      }t        ddgddgdœ|¬«      } ||«      }t	        j
                  ||«       y )N©r   r   r   r+   r'   é   ©ÚaÚbr3   Údrq   rr   r3   )r   r+   ©r   r+   ©Únamesr   r)   )rq   r3   ©Úindex)r   r   r   Úfrom_tuplesr;   r>   )r!   rc   r"   ÚgbÚidxrA   r@   s          r$   Útest_getitem_from_grouperz'TestSelection.test_getitem_from_grouper�   s   € ô
 šY¨Q°Q¸QÑ?Ó@ˆØ�Z‰Z˜˜c˜
Ó# S¨# JÑ/ˆä×$Ñ$ f¨fÐ%5¸cÀ3¸ZÔHˆÜ A q 6°°A°Ñ7¸sÔCˆÙ�b“ˆä
×Ñ˜f hÕ/rC   c                 óÔ   ‡— t        dd„ dD «       i«      Š‰j                  d«      }‰j                  ˆfd„«      }|j                  }|j                  }t        j                  ||«       y )NÚTuplesc              3   óŽ   K  — | ]=  }t         j                  j                  d «      j                  ddd«      D ]  }||f–— Œ
 Œ? y­w©r   r+   ro   N©rN   rO   rP   Úintegers©Ú.0rh   rl   s      r$   ú	<genexpr>zJTestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<genexpr>Ÿ   óO   è ø€ ò àÜŸY™Y×2Ñ2°1Ó5×>Ñ>¸qÀ!ÀQÓGòð ð ˜”FðØñùó   ‚AA©r   r   c                 ó&   •— ‰j                   | df   S ©Nr   ©r_   ©rh   r"   s    €r$   ri   zITestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<lambda>¨   ó   ø€ ¨¯©°°A°©€ rC   )r   r   Úindicesr;   Úassert_dict_equal©r!   rz   Ú	gb_lambdarA   r@   r"   s        @r$   Ú)test_indices_grouped_by_tuple_with_lambdaz7TestSelection.test_indices_grouped_by_tuple_with_lambda›   se   ø€ äàñ à#ôðó
ˆð �Z‰Z˜Ó!ˆØ—J‘JÓ6Ó7ˆ	à—:‘:ˆØ×"Ñ"ˆä
×Ñ˜V XÕ.rC   N)Ú__name__Ú
__module__Ú__qualname__r%   r4   rB   rU   rZ   r]   rb   r   ÚmarkÚparametrizer|   r’   © rC   r$   r   r   %   sY   „ ò	ò#ò"0ò1ò&'ò,-ò
1ð& ‡[�[×ÑØÑ"Ñ$FÐGóñ	0óð	0ó/rC   r   c                   ó  — e Zd Zej                  j                  d e ed«      «       e ej                  d«      «       e ej                  de
¬«      «       edd¬«       edd¬«      g«      d„ «       Zd„ 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d„ Zd„ Zej                  j                  dg d¢g d¢ ed«      D � ��cg c]  }t9        ddd|z   «      ‘Œ c}}} g«      d„ «       Zd„ Zd „ Zd!„ Z d"„ Z!d#„ Z"d$„ Z#d%„ Z$d&„ Z%d'„ Z&d(„ Z'd)„ Z(d*„ Z)ej                  j                  d+dg d,¢gdg d-¢gg«      d.„ «       Z*d/„ Z+d0„ Z,ej                  j                  d1d2 e-d3ej\                  ¬4«      fd5 e-d3ej\                   eg ej\                  d6¬7«      ¬8«      fd9 e-d3ej\                   eg ej\                  d6¬7«      ¬8«      fg«      d:„ «       Z/d;„ Z0d<„ Z1d=„ Z2d>„ Z3d?„ Z4d@„ Z5yAc c}}} w )BÚTestGroupingrx   Úabcdero   ©Údtypez
2020-01-01©Úperiodsc                 óV  — t        t        j                  d«      j                  dd«      t	        d«      |¬«      }|j                  t	        d«      d¬«      j                  d	„ «       |j                  d d d
…   |_        |j                  t	        d«      d¬«      j                  d„ «       y )Né
   ro   r   ÚAB)r   rx   r›   F©Ú
group_keysc                 ó   — | S re   r˜   rg   s    r$   ri   z7TestGrouping.test_grouper_index_types.<locals>.<lambda>Ä   ó   € ÀA€ rC   éÿÿÿÿc                 ó   — | S re   r˜   rg   s    r$   ri   z7TestGrouping.test_grouper_index_types.<locals>.<lambda>Ç   r¦   rC   )r   rN   ÚarangeÚreshaperY   r   Úapplyrx   )r!   rx   r"   s      r$   Útest_grouper_index_typesz%TestGrouping.test_grouper_index_typesµ   s|   € ô ”r—y‘y “}×,Ñ,¨Q°Ó2¼DÀ»JÈeÔTˆà
�
‰
”4˜“=¨Uˆ
Ó3×9Ñ9¹+ÔFà—8‘8™D˜b˜D‘>ˆŒØ
�
‰
”4˜“=¨Uˆ
Ó3×9Ñ9¹+ÕFrC   c                 ó  — t        j                  «       t        d¬«      z
  }t        |t        j                  «       «      }t	        j
                  ||gddg¬«      }t        t        j                  j                  d«      j                  ddd	«      |¬
«      }|j                  «       j                  t        dd¬«      t        dd¬«      g«      j                  «       }t        dgd¬«      |_        |j                  t        dd¬«      t        dd¬«      g«      j                  «       }t#        j$                  ||«       |j                  t        dd¬«      t        dd¬«      g«      j                  «       }t#        j$                  ||«       y )Né   )ÚdaysrF   rG   ru   r   r   éd   éá   rw   ÚW©ÚkeyÚfreqÚint64rœ   ©Úlevelrµ   r   )r   Útodayr   r   r   Úfrom_productr   rN   rO   rP   r‚   Úreset_indexr   r	   r:   r
   r   r;   r>   )r!   Úd0ÚdatesÚ
date_indexr"   rA   r@   s          r$   Útest_grouper_multilevel_freqz)TestGrouping.test_grouper_multilevel_freqÉ   s9  € ô �Z‰Z‹\œI¨2Ô.Ñ.ˆÜ˜2œtŸz™z›|Ó,ˆÜ×,Ñ,¨e°U¨^ÀEÈ5À>ÔRˆ
Ü”r—y‘y×,Ñ,¨QÓ/×8Ñ8¸¸CÀÓEÈZÔXˆð �N‰NÓß‰W”g %¨cÔ2´GÀÈCÔ4PÐQÓRß‰S‹Uð 	ô ! ! ¨GÔ4ˆÔà—‘Ü˜5 sÔ+¬W¸5ÀsÔ-KÐLó
ç
‰#‹%ð 	ô 	×Ñ˜f hÔ/ð —‘Ü˜1 3Ô'¬°q¸sÔ)CÐDó
ç
‰#‹%ð 	ô 	×Ñ˜f hÕ/rC   c                 ó<  — t        g d¢g d¢dœ«      }|j                  d«      }|j                  «       }|j                  t        d¬«      «      }|j                  «       }t	        j
                  ||«       |j                  d„ «      }t	        j
                  ||«       y )N)r   r   r   r   r   r   ©r   r   r+   r'   ro   r(   ©r   r   r   ©r´   c                 ó"   — | j                  «       S re   rf   rg   s    r$   ri   z8TestGrouping.test_grouper_creation_bug.<locals>.<lambda>ï   s   €  1§5¡5£7€ rC   )r   r   r:   r	   r;   r>   r«   )r!   r"   r#   rA   r@   s        r$   Útest_grouper_creation_bugz&TestGrouping.test_grouper_creation_bugå   sx   € äÒ/Ò6HÑIÓJˆØ�J‰J�s‹OˆØ—5‘5“7ˆà�J‰J”w 3Ô'Ó(ˆØ—‘“ˆÜ
×Ñ˜f hÔ/à—‘Ñ*Ó+ˆÜ
×Ñ˜f hÕ/rC   c                 óØ  — t        g d¢g d¢g d¢dœ«      }|j                  d«      j                  «       }|j                  t        d¬«      g«      }|j                  «       }t	        j
                  ||«       |j                  ddg«      j                  «       }|j                  t        d¬«      t        d¬«      g«      }|j                  «       }t	        j
                  ||«       |j                  dt        d¬«      g«      }|j                  «       }t	        j
                  ||«       |j                  t        d¬«      dg«      }|j                  «       }t	        j
                  ||«       y )N)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"   rA   r#   r@   s        r$   Útest_grouper_creation_bug2z'TestGrouping.test_grouper_creation_bug2ò   s$  € ô Ú$Ò+=ÒDVÑWó
ˆð —:‘:˜c“?×&Ñ&Ó(ˆØ�J‰Jœ CÔ(Ð)Ó*ˆØ—‘“ˆÜ
×Ñ˜f hÔ/ð —:‘:˜s C˜jÓ)×-Ñ-Ó/ˆð �J‰Jœ CÔ(¬'°cÔ*:Ð;Ó<ˆØ—‘“ˆÜ
×Ñ˜f hÔ/ð �J‰J˜œW¨Ô-Ð.Ó/ˆØ—‘“ˆÜ
×Ñ˜f hÔ/ð �J‰Jœ CÔ(¨#Ð.Ó/ˆØ—‘“ˆÜ
×Ñ˜f hÕ/rC   c                 ó|  — t        dd|¬«      }t        j                  t        d«      t	        d«      |gg d¢¬«      }t        t        j                  dd¬	«      |¬
«      }|j                  t        dd¬«      «      j                  «       }t        j                  t        d«      gdd¬«      j                  |«      }t        dg|¬
«      }t        j                   ||«       |j                  t        d¬«      «      j                  «       }|j                  d¬«      j                  «       }t        j                   ||«       y )NÚ20130101r   )rŸ   ÚunitÚab)rI   rJ   rK   ru   r)   r¶   rœ   rw   rK   ÚMEr·   z
2013-01-31)rµ   Únameé   rI   ©r¸   )r   r   rº   rY   r,   r   rN   r©   r   r	   r:   ÚpdÚDatetimeIndexr   Úas_unitr;   r<   )r!   rË   ÚdtiÚmiÚserr@   Úexp_dtirA   s           r$   Útest_grouper_creation_bug3z'TestGrouping.test_grouper_creation_bug3  s
  € ä˜¨Q°TÔ:ˆÜ×$Ñ$Ü�$‹Zœ˜q› 3Ð'Ú)ô
ˆô Ü�I‰I�a˜wÔ'Øô
ˆð —‘œW¨7¸Ô>Ó?×CÑCÓEˆÜ×"Ñ"Ü�|Ó$Ð%¨D°wô
ç
‰'�$‹-ð 	ô ØˆDØô
ˆô 	×Ñ˜v xÔ0ð —‘œW¨5Ô1Ó2×6Ñ6Ó8ˆØ—;‘; U�;Ó+×/Ñ/Ó1ˆÜ
×Ñ˜v xÕ0rC   rc   FTc                 óV  ‡— t        g d¢g d¢dœ«      }t        t        t        d«      ddgdz  d¬	«      «      Š|r|j	                  ˆfd
„d¬«      }n|j	                  ‰d¬«      }t        t        |«      «      \  }}|dk(  sJ ‚|j                  |«      }t        j                  ||«       y )N©r   r   r   r   )r   r'   r+   r   )ÚXÚYr'   )r   ro   )r9   r(   r   T)Ústrictc                 ó   •— ‰|    S re   r˜   )r{   Úmappings    €r$   ri   z<TestGrouping.test_grouper_returning_tuples.<locals>.<lambda>2  s   ø€ ¨7°3©<€ rC   F)ÚbyÚsort)
r   ÚdictÚzipr,   r   ÚnextÚiterÚ	get_groupr;   r>   )r!   rc   r"   rz   rÎ   rA   r@   rß   s          @r$   Útest_grouper_returning_tuplesz*TestGrouping.test_grouper_returning_tuples+  s›   ø€ ô Ò1ºÑEÓFˆÜ”sœ5 ›8 h°Ð%9¸AÑ%=ÀdÔKÓLˆáØ—‘Ó7¸e�ÓD‰Bà—‘˜w¨U�Ó3ˆBäœd 2›h›‰ˆˆhØ�xÒÐÐØ—‘˜dÓ#ˆä
×Ñ˜f hÕ/rC   c                 óP  — t        j                  g d¢«      }ddg|_        t        t	        j
                  d«      g d¢dœ|¬«      }|j                  dt        d¬	«      g«      j                  d
¬«      }|j                  «       j                  ddg«      j                  d
¬«      }t        j                  ||«       |j                  t        d¬	«      dg«      j                  d
¬«      }|j                  «       j                  ddg«      j                  d
¬«      }t        j                  ||«       |j                  d«      }|j                  dt        d¬	«      g«      j                  d
¬«      }|j                  «       j                  ddg«      j                  d
¬«      }t        j                  ||«       |j                  t        d¬	«      dg«      j                  d
¬«      }|j                  «       j                  ddg«      j                  d
¬«      }t        j                  ||«       y )N)©rq   r   )rq   r   )rq   r+   ©rr   r   ©rr   r   )rr   r+   ÚouterÚinnerr(   )rI   rI   rJ   rJ   rI   rI   rÂ   rw   r   rÐ   Tr7   )r   ry   rv   r   rN   r©   r   r	   r6   r»   r;   r>   )r!   r{   Údf_multir@   rA   Ú	df_singles         r$   Útest_grouper_column_and_indexz*TestGrouping.test_grouper_column_and_index<  s  € ô
 ×$Ñ$ÚHó
ˆð ˜gÐ&ˆŒ	ÜÜ—)‘)˜A“,Ò%OÑPØô
ˆð ×!Ñ! 3¬°gÔ(>Ð"?Ó@×EÑEÐSWÐEÓXˆà× Ñ Ó"×*Ñ*¨C°¨>Ó:×?Ñ?ÈTÐ?ÓRð 	ô 	×Ñ˜f hÔ/ð ×!Ñ!¤7°Ô#9¸3Ð"?Ó@×EÑEÐSWÐEÓXˆà× Ñ Ó"×*Ñ*¨G°S¨>Ó:×?Ñ?ÈTÐ?ÓRð 	ô 	×Ñ˜f hÔ/ð ×(Ñ(¨Ó1ˆ	Ø×"Ñ" C¬°wÔ)?Ð#@ÓA×FÑFØð Gó 
ˆð ×!Ñ!Ó#×+Ñ+¨S°'¨NÓ;×@Ñ@ÈdÐ@ÓSð 	ô 	×Ñ˜f hÔ/ð ×"Ñ"¤G°'Ô$:¸CÐ#@ÓA×FÑFØð Gó 
ˆð ×!Ñ!Ó#×+Ñ+¨W°c¨NÓ;×@Ñ@ÈdÐ@ÓSð 	ô 	×Ñ˜f hÕ/rC   c                 óÀ  — ddg}t        j                  g d¢|¬«      }t        t        j                  d«      j                  dd«      |¬«      }|j                  |¬	«      j                  «       }|j                  «       j                  |«      j                  «       }|j                  j                  t        j                  «      |_	        t        j                  ||«       y )
Nrh   rl   ))r   r   ©r   r   )r+   r'   )ro   r(   ru   é   r§   r+   rw   rÐ   )r   ry   r   rN   r©   rª   r   r6   r»   r   Úastyper¶   r;   r>   )r!   Ú	idx_namesr{   r"   Ú	by_levelsÚ
by_columnss         r$   Útest_groupby_levels_and_columnsz,TestGrouping.test_groupby_levels_and_columnsj  s§   € à˜#�Jˆ	Ü×$Ñ$Ò%EÈYÔWˆÜ”r—y‘y “}×,Ñ,¨R°Ó3¸3Ô?ˆà—J‘J Y�JÓ/×4Ñ4Ó6ˆ	à—^‘^Ó%×-Ñ-¨iÓ8×=Ñ=Ó?ˆ
ð (×/Ñ/×6Ñ6´r·x±xÓ@ˆ
ÔÜ
×Ñ˜i¨Õ4rC   c                 óº  — g d¢}ddg}t        j                  g d¢g d¢g d¢g d¢g d¢gt        «      }t        ||d¬«      }t        j                  ddgddgddgddgddggt        «      }t        ||d¬«      }t	        |j
                  |¬	«      }|j                  d
|¬«      j                  «       }	t	        |j
                  |¬«      }
t        j                  |	|
«       y )NrÚ   r   r   )r   r   r   r   T)Ú
categoriesÚorderedr'   r   rw   r   )r¸   Úobserved)r*   rx   )
rN   ÚarrayÚintr   r   ÚTr   r:   r;   r>   )r!   rü   r   rú   r*   Úcat_columnsÚexpected_dataÚexpected_columnsr"   r@   rA   s              r$   Ú*test_groupby_categorical_index_and_columnsz7TestGrouping.test_groupby_categorical_index_and_columnsx  sÎ   € â&ˆØ˜3�Zˆ
Ü�x‰xÚš<ª²|Â\ÐRÔTWó
ˆô ' w¸:ÈtÔTˆÜŸ™ 1 a &¨1¨a¨&°1°a°&¸1¸a¸&À1ÀaÀ&Ð!IÌ3ÓOˆÜ+Ø :°tô
Ðô
 �t—v‘v [Ô1ˆØ—‘ !¨h�Ó7×;Ñ;Ó=ˆÜ -§/¡/Ð9IÔJˆÜ
×Ñ˜f hÕ/rC   c                 ó’  — t        ddit        j                  t        d«      t	        dd¬«      gddg¬	«      ¬
«      }|j                  t        d¬«      t        dd¬«      g«      j                  «       }t        dg d¢it        j                  t        d«      t	        ddd¬«      gddg¬	«      ¬
«      }t        j                  ||«       y )Nr   r   rÌ   rÊ   éP   rž   rI   rJ   ru   rw   rÐ   rÍ   r·   )é   rÏ   é   r  rÏ   r  r+   )rµ   rŸ   )
r   r   rº   rY   r   r   r	   r:   r;   r>   r?   s       r$   Ú#test_grouper_getting_correct_binnerz0TestGrouping.test_grouper_getting_correct_binner‹  s¼   € ô Ø�!ˆHÜ×)Ñ)Ü�d“œZ¨
¸BÔ?Ð@ÈÐPUÈôô
ˆð —‘Ü˜5Ô!¤7°¸TÔ#BÐCó
ç
‰#‹%ð 	ô ØÒ*Ð+Ü×)Ñ)Ü�d“œZ¨
¸ÀqÔIÐJØ˜e�nôô
ˆô 	×Ñ˜f hÕ/rC   c                 ój   — |j                  d«      }|j                  }t        |«      }ddg}||k(  sJ ‚y )Nr   rG   rF   )r   Ú_grouperÚsorted)r!   r"   rz   Úgrouperr@   rA   s         r$   Útest_grouper_iterzTestGrouping.test_grouper_iter¡  s8   € Ø�Z‰Z˜‹_ˆØ—+‘+ˆÜ˜“ˆØ˜5�>ˆØ˜Ò!Ð!Ñ!rC   c                 ó†   — t        j                  t        d¬«      5  |j                  g «       d d d «       y # 1 sw Y   y xY w)NzNo group keys passed!r   )r   r   r-   r   r\   s     r$   Útest_empty_groupszTestGrouping.test_empty_groups¨  s1   € ä�]‰]œ:Ð-DÔEñ 	Ø�J‰J�rŒN÷	÷ 	ñ 	ús	   œ7·A c                 óÐ   — |j                  d«      }|j                  }|j                  |«      j                  d¬«      }|j                  d¬«      }t        j                  ||«       y )Nr   Tr7   )r   r
  r6   r;   r>   )r!   r"   r2   r  r@   rA   s         r$   Útest_groupby_grouperz!TestGrouping.test_groupby_grouper­  sV   € Ø—*‘*˜S“/ˆØ×"Ñ"ˆØ—‘˜GÓ$×)Ñ)°tÐ)Ó<ˆØ—<‘<¨T�<Ó2ˆÜ
×Ñ˜f hÕ/rC   c                 óÚ  — t        ddi«      }|j                  ddi«      j                  d«      }|j                  dg«      j                  d«      }t        j                  ||«       t        g d¢t        d«      ¬«      }ddd	d	d
œ}|j                  |«      j                  «       }|j                  |«      j                  d«      }t        j                  g d¢t        j                  ¬«      }|j                  |«      j                  «       }|j                  |«      j                  «       }t        j                  ||«       t        j                  ||«       t        j                  ||«       y )NÚT1ro   ÚT2r:   )ç      ð?ç       @g      @g      @rW   rw   r   r   rp   r6   )r   r   r   r   rœ   )
r   r   r=   r;   r<   rY   r6   rN   rý   r¶   )r!   Úsr@   rA   rß   rT   Úexp_keyÚ	expected2s           r$   Útest_groupby_dict_mappingz&TestGrouping.test_groupby_dict_mapping´  s  € ä�D˜!�9ÓˆØ—‘˜D $˜<Ó(×,Ñ,¨UÓ3ˆØ—9‘9˜d˜VÓ$×(Ñ(¨Ó/ˆÜ
×Ñ˜v xÔ0äÒ'¬t°F«|Ô<ˆØ ¨°Ñ2ˆà—‘˜7Ó#×(Ñ(Ó*ˆØ—)‘)˜GÓ$×(Ñ(¨Ó0ˆÜ—(‘(š<¬r¯x©xÔ8ˆØ—9‘9˜WÓ%×*Ñ*Ó,ˆØ—I‘I˜gÓ&×+Ñ+Ó-ˆ	Ü
×Ñ˜v xÔ0Ü
×Ñ˜v wÔ/Ü
×Ñ˜v yÕ1rC   ©r   r   r   r+   rp   r'   iå  é   rÏ   c                 óÜ   —  |g d¢|¬«      }t        g d¢|d¬«      }|j                  |«      j                  «       } |ddg«      }d|j                  _        t        j                  ||«       y )N©r   r   r+   r'   rw   )r   r   r   r   )rq   rq   )rx   rÎ   r'   r+   )r   r   Úlastrx   rÎ   r;   Úassert_equal)r!   Úframe_or_seriesrx   ÚobjÚgroupsr@   rA   s          r$   Ú$test_groupby_series_named_with_tuplez1TestGrouping.test_groupby_series_named_with_tupleÇ  s]   € ñ šl°%Ô8ˆÜš¨E¸
ÔCˆØ—‘˜VÓ$×)Ñ)Ó+ˆÙ" A q 6Ó*ˆØ(ˆ�‰ÔÜ
�‰˜ Õ)rC   c                 óú  — t        ddd¬«      }t        t        j                  j	                  d«      j                  d«      |¬«      }d}t        j                  t        |¬«      5  |j                  d	„ «       d d d «       |j                  d
„ «      j                  «       }|j                  |j                  «      j                  «       }d |j                  _        t        j                  ||«       y # 1 sw Y   ŒzxY w)Nz01-Jan-2013ró   ÚMS©rŸ   rµ   r   rw   z''Timestamp' object is not subscriptabler   c                 ó   — | dd S )Nr   r(   r˜   rÃ   s    r$   ri   zDTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>à  s   €  3 q¨ 8€ rC   c                 ó   — | S re   r˜   rg   s    r$   ri   zDTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>â  s   €  a€ rC   )r   r   rN   rO   rP   rQ   r   r   Ú	TypeErrorr   r:   rx   rµ   r;   r<   )r!   r½   Útsr1   r@   rA   s         r$   Ú%test_groupby_grouper_f_sanity_checkedz2TestGrouping.test_groupby_grouper_f_sanity_checkedØ  s½   € Ü˜=°"¸4Ô@ˆÜ”B—I‘I×)Ñ)¨!Ó,×<Ñ<¸RÓ@ÈÔNˆð 8ˆÜ�]‰]œ9¨CÔ0ñ 	-Ø�J‰JÑ+Ô,÷	-ð —‘™KÓ(×,Ñ,Ó.ˆØ—:‘:˜bŸh™hÓ'×+Ñ+Ó-ˆØ"ˆ�‰ÔÜ
×Ñ˜v xÕ0÷	-ð 	-ús   Á%C1Ã1C:c           	      óŠ  — t        ddgdz  t        ddd¬«      dœ«      }t        dd	¬
«      }|j                  |dg«      }t	        d«      dfddgt	        d«      dfdgt	        d«      dfdgt	        d«      dfddgi}t        j                  |j                  |«       t        |j                  j                  «       «      dk(  sJ ‚y )Nrq   rr   r+   z
2000-01-01z
2000-01-03Ú9h©rµ   )Úidrr   r9   r³   r0  r   r   r   z
2000-01-02r'   ro   )
r   r   r	   r   r   r;   r�   r#  ÚlenÚkeys)r!   r"   r  rz   rA   s        r$   Útest_groupby_with_datetime_keyz+TestGrouping.test_groupby_with_datetime_keyç  sÏ   € äà˜C�j 1‘nÜ ¨lÀÔFñó
ˆô ˜c¨Ô,ˆØ�Z‰Z˜ $˜Ó(ˆô �|Ó$ cÐ*¨Q°¨FÜ�|Ó$ cÐ*¨Q¨CÜ�|Ó$ cÐ*¨Q¨CÜ�|Ó$ cÐ*¨Q°¨Fð	
ˆô 	×Ñ˜RŸY™Y¨Ô1ô �2—9‘9—>‘>Ó#Ó$¨Ò)Ð)Ñ)rC   c                 óž   — d}t        j                  t        |¬«      5  t        |j                  |ddg   «       d d d «       y # 1 sw Y   y xY w)Nz:Grouper for '<class 'pandas.DataFrame'>' not 1-dimensionalr   r   )r   r   r-   r   rx   ©r!   r"   r1   s      r$   Ú%test_grouping_error_on_multidim_inputz2TestGrouping.test_grouping_error_on_multidim_inputþ  s@   € ØJˆÜ�]‰]œ:¨SÔ1ñ 	/Ü�R—X‘X˜r 3¨ *™~Ô.÷	/÷ 	/ñ 	/ús   žAÁAc                 ó   — |j                  d¬«      j                  «       }|j                  d¬«      j                  «       }t        j                  ||«       |j                  d¬«      j                  «       }|j                  d¬«      j                  «       }t        j                  ||«       |j                  ddg¬«      j                  «       }|j	                  «       }t        j                  ||«       |j                  ddg¬«      j                  «       }|j                  ddg¬«      j                  «       }t        j                  ||«       y )Nr§   rÐ   ÚsecondéþÿÿÿÚfirst)r   r:   r;   r>   Ú
sort_index)r!   Ú multiindex_dataframe_random_datar@   rA   s       r$   Útest_multiindex_negative_levelz+TestGrouping.test_multiindex_negative_level  s)  € à1×9Ñ9ÀÐ9ÓC×GÑGÓIˆØ3×;Ñ;À(Ð;ÓK×OÑOÓQˆÜ
×Ñ˜f hÔ/à1×9Ñ9ÀÐ9ÓC×GÑGÓIˆØ3×;Ñ;À'Ð;ÓJ×NÑNÓPˆÜ
×Ñ˜f hÔ/à1×9Ñ9ÀÀRÀÐ9ÓI×MÑMÓOˆØ3×>Ñ>Ó@ˆÜ
×Ñ˜f hÔ/à1×9Ñ9ÀÀWÀÐ9ÓN×RÑRÓTˆØ3×;Ñ;Ø˜WÐ%ð <ó 
ç
‰#‹%ð 	ô 	×Ñ˜f hÕ/rC   c                 ó,  — t        j                  t        |j                  «      «      |_        d}t	        j
                  t        |¬«      5  |j                  dd¬«      d   j                  dt         j                  i«       d d d «       y # 1 sw Y   y xY w)Nznested renamer is not supportedr   r   F©Úas_indexr   ÚQ)
rN   r©   r1  r   r   r   r   r   r=   r6   r5  s      r$   Útest_agg_with_dict_raisesz&TestGrouping.test_agg_with_dict_raises  so   € Ü—Y‘Yœs 2§:¡:›Ó/ˆŒ
Ø/ˆÜ�]‰]Ô-°SÔ9ñ 	AØ�J‰J�q 5ˆJÓ)¨!Ñ,×0Ñ0°#´r·w±w°Ô@÷	A÷ 	Añ 	Aús   Á6B
Â
Bc                 ó€  — ddgddgg}t        j                  |«      }t        ddgg|¬«      }d}|j                  d«      j                  }|d   d	gk(  sJ ‚t        j                  t        |¬
«      5  |j                  dg«      j                  }d d d «       |d   d	gk(  sJ ‚t        ddgddgg|¬«      }|j                  d«      j                  }t        j                  t        |¬
«      5  |j                  dg«      j                  }d d d «       |k(  sJ ‚t        ddgddgg|¬«      }|j                  d«      j                  }t        j                  t        |¬
«      5  |j                  dg«      j                  }d d d «       t        j                  ||«       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ¢xY w# 1 sw Y   Œ9xY w)Nr.   Úvaluesú	to filterÚ r   r   r   úIn a future version, the keysr   r   )rE  rF  r   r   )	r   ry   r   r   r#  r;   Úassert_produces_warningr   r�   )r!   ÚlstÚmidxr"   r1   r2   rA   r@   s           r$   Ú#test_multiindex_columns_empty_levelz0TestGrouping.test_multiindex_columns_empty_level  s¨  € Ø˜Ð" [°"Ð$5Ð6ˆÜ×%Ñ% cÓ*ˆä˜˜C˜�z¨4Ô0ˆà-ˆØ—*‘*˜[Ó)×0Ñ0ˆØ�s‰| ˜sÒ"Ð"Ð"ä×'Ñ'¬¸cÔBñ 	=Ø—j‘jÐ"3Ð!4Ó5×<Ñ<ˆG÷	=à�s‰| ˜sÒ"Ð"Ð"ä˜˜C˜ 1 c (Ð+°TÔ:ˆà—:‘:˜kÓ*×1Ñ1ˆÜ×'Ñ'¬¸cÔBñ 	<Ø—Z‘ZÐ!2Ð 3Ó4×;Ñ;ˆF÷	<à˜Ò!Ð!Ð!ä˜˜C˜ 1 c (Ð+°TÔ:ˆà—:‘:˜kÓ*×1Ñ1ˆÜ×'Ñ'¬¸cÔBñ 	<Ø—Z‘ZÐ!2Ð 3Ó4×;Ñ;ˆF÷	<ä
×Ñ˜V XÕ.÷!	=ñ 	=ú÷	<ð 	<ú÷	<ð 	<ús$   Á1FÃ*F(ÅF4ÆF%Æ(F1Æ4F=c                 óè  — t        g d¢g d¢g d¢gt        j                  g d¢g d¢g«      ¬«      }d}t        j                  t
        |¬«      5  |j                  d	g«      j                  }d d d «       |j                  d	«      j                  }t        j                  |«       t        |j                  t        j                  g d¢g d
¢g«      ¬«      }t        j                  t
        |¬«      5  |j                  dg«      j                  }d d d «       |j                  d	«      j                  }t        j                  ||«       t        |j                  g d¢¬«      }t        j                  t
        |¬«      5  |j                  dg«      j                  }d d d «       |j                  d	«      j                  }t        j                  ||«       y # 1 sw Y   �ŒgxY w# 1 sw Y   ŒÒxY w# 1 sw Y   ŒTxY w)Nr  ©r+   r'   ro   r(   ©r   r'   r   r+   ©rq   rr   rr   r3   ©r   r   r   r   r   rG  r   rê   )rs   rs   ÚerQ  ©rr   rs   ))rq   rs   rR  )rr   rQ  r3   )
r   r   Úfrom_arraysr;   rH  r   r   r#  r�   rD  )r!   r"   r1   rA   r@   Údf2Údf3s          r$   Útest_groupby_multiindex_tuplez*TestGrouping.test_groupby_multiindex_tuple9  s‰  € äÚš<ªÐ6Ü×*Ñ*Ò,@Â,Ð+OÓPô
ˆð
 .ˆÜ×'Ñ'¬¸cÔBñ 	5Ø—z‘z 8 *Ó-×4Ñ4ˆH÷	5à—‘˜HÓ%×,Ñ,ˆÜ
×Ñ˜X vÔ.äØ�I‰IÜ×*Ñ*Ú%Ò';Ð<óô
ˆô ×'Ñ'¬¸cÔBñ 	8Ø—{‘{ J <Ó0×7Ñ7ˆH÷	8à—‘˜HÓ%×,Ñ,ˆÜ
×Ñ˜X vÔ.ä˜Ÿ	™	Ò+TÔUˆä×'Ñ'¬¸cÔBñ 	8Ø—{‘{ J <Ó0×7Ñ7ˆH÷	8à—‘˜HÓ%×,Ñ,ˆÜ
×Ñ˜X vÕ.÷-	5ñ 	5ú÷	8ð 	8ú÷	8ð 	8ús$   ÁGÃ.GÅ8G(ÇGÇG%Ç(G1c                 ó  — t        g d¢g d¢g d¢gt        j                  g d¢g d¢g«      ¬«      }|j                  dg«      dd	g   j	                  «       }|j                  dg«      d
   j	                  «       }t        j                  ||«       |j                  dg«      dd	g   j                  «       }|j                  dg«      d
   j                  «       }t        j                  ||«       |j                  dg«      dd	g   j                  «       }|j                  dg«      d
   j                  «       }t        j                  ||«       |j                  dg«      dd	g   j                  «       }|j                  dg«      d
   j                  «       }	t        j                  ||	«       |j                  dg«      dd	g   j                  «       }
|j                  dg«      d
   j                  «       }t        j                  |
|«       d}t        j                  t        |¬«      5  |j                  dg«      dd	g   j                  }|j                  dg«      d
   j                  }d d d «       t        j                  «       y # 1 sw Y   Œ xY w)Nr  rM  rN  rO  rP  r   ré   rê   rë   rr   rG  r   )r   r   rS  r   r6   r;   r>   r:   r.   ÚminÚmaxrH  r   r#  r�   )r!   r"   Úexpected_meanÚresult_meanÚexpected_sumÚ
result_sumÚexpected_countÚresult_countÚexpected_minÚ
result_minÚexpected_maxÚ
result_maxr1   Úexpected_groupsÚresult_groupss                  r$   Ú4test_groupby_multiindex_partial_indexing_equivalencezATestGrouping.test_groupby_multiindex_partial_indexing_equivalenceY  s8  € äÚš<ªÐ6Ü×*Ñ*Ò,@Â,Ð+OÓPô
ˆð
 Ÿ
™
 H :Ó.°¸(Ð/CÑD×IÑIÓKˆØ—j‘j ( Ó,¨SÑ1×6Ñ6Ó8ˆÜ
×Ñ˜m¨[Ô9à—z‘z 8 *Ó-¨x¸Ð.BÑC×GÑGÓIˆØ—Z‘Z  
Ó+¨CÑ0×4Ñ4Ó6ˆ
Ü
×Ñ˜l¨JÔ7àŸ™ X JÓ/°¸8Ð0DÑE×KÑKÓMˆØ—z‘z 8 *Ó-¨cÑ2×8Ñ8Ó:ˆÜ
×Ñ˜n¨lÔ;à—z‘z 8 *Ó-¨x¸Ð.BÑC×GÑGÓIˆØ—Z‘Z  
Ó+¨CÑ0×4Ñ4Ó6ˆ
Ü
×Ñ˜l¨JÔ7à—z‘z 8 *Ó-¨x¸Ð.BÑC×GÑGÓIˆØ—Z‘Z  
Ó+¨CÑ0×4Ñ4Ó6ˆ
Ü
×Ñ˜l¨JÔ7à-ˆÜ×'Ñ'¬¸cÔBñ 	?Ø Ÿj™j¨(¨Ó4°hÀÐ5IÑJ×QÑQˆOØŸJ™J¨ zÓ2°3Ñ7×>Ñ>ˆM÷	?ô 	×Ñ˜_¨mÕ<÷	?ð 	?ús   È#AJÊJc                 ó˜  — |}|j                  «       }|j                  d|¬«      j                  «       }|j                  d|¬«      j                  «       }|j                  |d   j                  |¬«      j                  «       }|j                  |d   j                  |¬«      j                  «       }	d|j                  _        d|	j                  _        |j                  j
                  dk(  sJ ‚|j                  j
                  dk(  sJ ‚t        j                  ||«       t        j                  ||	«       |j                  j
                  |j                  j                  d   k(  sJ ‚|j                  j
                  |j                  j                  d   k(  sJ ‚|j                  d|¬«      j                  «       }|j                  d|¬«      j                  «       }t        j                  ||«       t        j                  ||	«       d}
t        j                  t        |
¬«      5  |j                  d¬	«       d d d «       y # 1 sw Y   y xY w)
Nr   ©r¸   rá   r   r:  )rá   r8  z2level > 0 or level < -1 only valid with MultiIndexr   rÐ   )r»   r   r:   rD  rx   rÎ   r;   r>   rv   r   r   r-   )r!   rá   r<  r"   ÚframeÚ	deleveledÚresult0Úresult1Ú	expected0Ú	expected1r1   s              r$   Útest_groupby_levelzTestGrouping.test_groupby_levelz  sÞ  € à0ˆØ×%Ñ%Ó'ˆ	à—-‘- a¨d�-Ó3×7Ñ7Ó9ˆØ—-‘- a¨d�-Ó3×7Ñ7Ó9ˆà—M‘M )¨GÑ"4×";Ñ";À$�MÓG×KÑKÓMˆ	Ø—M‘M )¨HÑ"5×"<Ñ"<À4�MÓH×LÑLÓNˆ	à&ˆ	�‰ÔØ'ˆ	�‰Ôà�}‰}×!Ñ! WÒ,Ð,Ð,Ø�}‰}×!Ñ! XÒ-Ð-Ð-ä
×Ñ˜g yÔ1Ü
×Ñ˜g yÔ1Ø�}‰}×!Ñ! U§[¡[×%6Ñ%6°qÑ%9Ò9Ð9Ð9Ø�}‰}×!Ñ! U§[¡[×%6Ñ%6°qÑ%9Ò9Ð9Ð9ð —-‘- g°D�-Ó9×=Ñ=Ó?ˆØ—-‘- h°T�-Ó:×>Ñ>Ó@ˆÜ
×Ñ˜g yÔ1Ü
×Ñ˜g yÔ1ð CˆÜ�]‰]œ:¨SÔ1ñ 	 Ø�J‰J˜QˆJÔ÷	 ÷ 	 ñ 	 ús   È$I É I	c                 ó  — t        dgdz  dgdz  z   t        d«      dœ«      j                  d«      }|j                  d¬«       d}t	        j
                  t        |¬	«      5  |j                  d
¬«       d d d «       y # 1 sw Y   y xY w)Nr   r+   r   r(   )ÚexpÚvar1rq  rÐ   z+level name foo is not the name of the indexr   rF   )r   r,   Ú	set_indexr   r   r   r-   r5  s      r$   Útest_groupby_level_index_namesz+TestGrouping.test_groupby_level_index_names›  sz   € ä ˜u q™y¨C¨5°1©9Ñ4¼eÀA»hÑGÓH×RÑRØó
ˆð 	�
‰
˜ˆ
ÔØ;ˆÜ�]‰]œ:¨SÔ1ñ 	$Ø�J‰J˜UˆJÔ#÷	$÷ 	$ñ 	$ús   Á!A=Á=Bc                 ó  — t        ddgg d¢gg d¢g d¢g¬«      }t        t        j                  d«      |¬«      }|j	                  d|¬	«      j                  «       }t        d
dgddg¬«      }t        j                  ||«       t        ddgg d¢gg d¢g d¢g¬«      }t        t        j                  d«      |¬«      }|j	                  d|¬	«      j                  «       }t        d
dgddg¬«      }t        j                  ||«       y )Nr   r   r  )r   r   r   r   r   r   r   r   )r   r   r   r+   r   r   r   r+   )ÚlevelsÚcodesg       @rw   rh  g      @g      6@)r   r   r   r   r§   r   r   r   g      2@g        r  )r   r   rN   r©   r   r:   r;   r<   )r!   rá   rx   r  r@   rA   s         r$   Útest_groupby_level_with_nasz(TestGrouping.test_groupby_level_with_nas¥  sê   € äØ˜�FšLÐ)Ú+Ò-EÐFô
ˆô ”2—9‘9˜S“>¨Ô/ˆØ—‘ ¨�Ó.×2Ñ2Ó4ˆÜ˜3 ˜+¨a°¨VÔ4ˆÜ
×Ñ˜v xÔ0äØ˜�FšLÐ)Ú,Ò.FÐGô
ˆô ”2—9‘9˜S“>¨Ô/ˆØ—‘ ¨�Ó.×2Ñ2Ó4ˆÜ˜3 ˜+¨c°3¨ZÔ8ˆÜ
×Ñ˜v xÕ0rC   c                 ó  — |}d}t        j                  t        |¬«      5  |j                  «        d d d «       d}t        j                  t        |¬«      5  |j                  d d ¬«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)Nz*You have to supply one of 'by' and 'level'r   )rà   r¸   )r   r   r*  r   )r!   r<  ri  r1   s       r$   Útest_groupby_argszTestGrouping.test_groupby_args½  sw   € à0ˆà:ˆÜ�]‰]œ9¨CÔ0ñ 	Ø�M‰MŒO÷	ð ;ˆÜ�]‰]œ9¨CÔ0ñ 	/Ø�M‰M˜T¨ˆMÔ.÷	/ð 	/÷		ð 	ú÷	/ð 	/ús    A3ÁA?Á3A<Á?Bzsort,labels©
r   r   r   r   r   r   r   r+   r+   r+   )
r   r   r   r   r   r   r   r+   r+   r+   c                 óÆ   — |j                  d|¬«      }t        j                  |t        j                  «      }t	        j
                  |j                  j                  |«       y )Nr   rh  )r   rN   rý   Úintpr;   Úassert_almost_equalr
  Úids)r!   rá   Úlabelsr<  r2   Ú
exp_labelss         r$   Útest_level_preserve_orderz&TestGrouping.test_level_preserve_orderÉ  sI   € ð 3×:Ñ:ÀÈÐ:ÓNˆÜ—X‘X˜f¤b§g¡gÓ.ˆ
Ü
×Ñ˜w×/Ñ/×3Ñ3°ZÕ@rC   c                 ó   — |j                  |j                  j                  d«      «      }t        j                  g d¢t        j
                  ¬«      }t        j                  |j                  j                  d   |«       y )Nr   r{  rœ   )
r   rx   Úget_level_valuesrN   rý   r}  r;   r~  r
  rw  )r!   r<  r2   r�  s       r$   Útest_grouping_labelsz!TestGrouping.test_grouping_labelsÖ  s^   € Ø2×:Ñ:Ø,×2Ñ2×CÑCÀAÓFó
ˆô —X‘XÒ<ÄBÇGÁGÔLˆ
Ü
×Ñ˜w×/Ñ/×5Ñ5°aÑ8¸*ÕErC   c                 ó"  — t        dt        ddd¬«      i«      }t        j                  |j                  d<   t        dd¬«      }d	}|j                  |g«      }t        d
«      t        t        t        d«      «      «      i}t        j                  t        |¬«      5  |j                  }d d d «       t        j                  |«       |j                  |«      }t        d
«      di}t        j                  |j                  |«       y # 1 sw Y   Œ^xY w)Nr   z1/1/2011im  r9   r'  r§   ÚYSr³   rG  z
2011-01-01il  r   )r   r   rÑ   ÚNaTr_   r	   r   r   r
   rY   r,   r;   rH  r   r#  r�   )r!   r"   r  r1   rz   rA   r@   s          r$   Útest_list_grouper_with_natz'TestGrouping.test_list_grouper_with_natÝ  sÜ   € ä˜¤
¨:¸sÈÔ MÐNÓOˆÜ—f‘fˆ�‰�‰Ü˜f¨4Ô0ˆØ-ˆð �Z‰Z˜˜	Ó"ˆÜ˜lÓ+¬U´4¼¸c»
Ó3CÓ-DÐEˆÜ×'Ñ'¬¸cÔBñ 	Ø—Y‘YˆF÷	ä
×Ñ˜V XÔ.ð —‘˜GÓ$ˆÜ˜lÓ+¨SÐ1ˆÜ
×Ñ˜VŸ]™]¨HÕ5÷	ð 	ús   ÂDÄDzfunc,expectedÚ	transformr   ©rÎ   r�   r=   r   ©r�   rÎ   )rÎ   r�   rx   r«   c                 óž   — t        g g dœ«      }|j                  dd¬«      } t        |d   |«      d„ «      }t        j                  ||«       y )Nrò   r   Tr£   r   c                 ó   — | S re   r˜   rg   s    r$   ri   z>TestGrouping.test_evaluate_with_empty_groups.<locals>.<lambda>  s   € ¨q€ rC   )r   r   Úgetattrr;   r<   )r!   rc   rA   r"   r#   r@   s         r$   Útest_evaluate_with_empty_groupsz,TestGrouping.test_evaluate_with_empty_groupsð  sK   € ô4 ˜2 "‘~Ó&ˆØ�J‰J�q TˆJÓ*ˆØ$”˜˜1™˜tÓ$¡[Ó1ˆÜ
×Ñ˜v xÕ0rC   c                 ó¸   — t        g g g dœ«      }|j                  dd¬«      }|j                  d„ «      }t        g g dœd ¬«      }t        j                  ||«       y )NrÇ   r   Fr£   c                 ó(   — | | j                  «       z  S re   rf   rg   s    r$   ri   zMTestGrouping.test_groupby_apply_empty_with_group_keys_false.<locals>.<lambda>  s   €  1 q§u¡u£w¡;€ rC   )r   r   rw   )r   r   r«   r;   r>   )r!   r"   r#   r@   rA   s        r$   Ú.test_groupby_apply_empty_with_group_keys_falsez;TestGrouping.test_groupby_apply_empty_with_group_keys_false  sW   € ô
 ˜R b¨rÑ2Ó3ˆØ�J‰J�s uˆJÓ-ˆØ—‘Ñ.Ó/ˆÜ 2¨BÑ/°tÔ<ˆÜ
×Ñ˜f hÕ/rC   c           	      ó†  — t        g dd¬«      }|j                  g «      }|j                  «       }|j                  t	        g t
        j                  ¬«      «      }t        j                  ||«       t        |j                  j                  «      dk(  sJ ‚t        j                  |j                  j                  t        j                  g t        j                  t
        j                  «      ¬«      «       |j                  j                   dk(  sJ ‚|j                  |«      }|j                  }|j"                  }dg}||k(  sJ ‚y )NrÎ   Úfloat64r‹  rœ   r   r   )r   r   r6   Úset_axisr
   rN   r}  r;   r<   r1  r
  Ú	groupingsÚassert_numpy_array_equalr  rý   r�   Úngroupsrv   )r!   r  Úgrr@   rA   rz   r  s          r$   Útest_groupby_emptyzTestGrouping.test_groupby_empty  só   € ä�2˜F¨)Ô4ˆØ�Y‰Y�r‹]ˆà—‘“ˆØ—:‘:œe B¬b¯g©gÔ6Ó7ˆÜ
×Ñ˜v xÔ0ô �2—;‘;×(Ñ(Ó)¨QÒ.Ð.Ð.Ü
×#Ñ#Ø�K‰K�O‰OœRŸX™X b´·±¼¿¹Ó0AÔBô	
ð �{‰{×"Ñ" aÒ'Ð'Ð'ð �Y‰Y�q‹\ˆØ—+‘+ˆØ—‘ˆØ�8ˆØ˜Ò!Ð!Ñ!rC   c           
      ón  — t        dt        j                  dgd t        j                  dggg d¢¬«      j                  ddg«      }|j	                  ddg¬«      j                  «       }t        g t        t        dgd	¬
«      t        g d¬
«      gg g gddg¬«      dgd¬«      }t        j                  ||«       y )Nrh   r¡   é   rÇ   r   r   r   rÐ   Ústrrœ   r•  )rv  rw  rv   r   r¶   )r*   rx   r   r�   )
r   rN   Únanrs  r   r:   r   r
   r;   r>   r?   s       r$   Ú%test_groupby_level_index_value_all_naz2TestGrouping.test_groupby_level_index_value_all_na2  s³   € äØ”2—6‘6˜2Ð ¤r§v¡v¨rÐ 2Ð3º_ô
ç
‰)�S˜#�JÓ
ð 	ð —‘ 3¨ *�Ó-×1Ñ1Ó3ˆÜØÜÜ˜s˜e¨5Ô1´5¸À9Ô3MÐNØ˜2�hØ˜C�jôð
 �EØô	
ˆô 	×Ñ˜f hÕ/rC   c           	      ó4  — t        g d¢g d¢gg d¢¬«      }|j                  ddg«      }||j                  dk     }|j                  d«      j	                  «       }t        dd	gt        g t        j                  d¬
«      ¬«      }t        j                  ||«       y )N)é{   rq   r  )r¢  rr   r  )r0  ÚcategoryÚvaluer   r0  r£  r   r•  r¤  rŒ  )r�   r   rx   )
r   rs  r¤  r   r:   r
   rN   r¶   r;   r>   )r!   r"   Úemptyr@   rA   s        r$   Ú#test_groupby_multiindex_level_emptyz0TestGrouping.test_groupby_multiindex_level_emptyD  s‰   € äÚšoÐ.Ò8Sô
ˆð �\‰\˜4 Ð,Ó-ˆØ�2—8‘8˜a‘<Ñ ˆØ—‘˜tÓ$×(Ñ(Ó*ˆÜØØ�IÜ˜¤"§(¡(°Ô6ô
ˆô
 	×Ñ˜f hÕ/rC   c           	      ó  — t        g d¢g d¢g d¢g d¢t        d«      dœ«      }|j                  ddg¬	«      }|j                  d«      j	                  d
„ «      }||j
                     }t        j                  |j                  d¬«      |«       y )N)
r   r)   é	   r'   r+   r+   ro   r¨  r+   r(   )
r+   r)   r(   r'   r¨  r   r   r  r   r¨  )
r(   ro   r  r)   ro   r   r   r¡   r  r)   )
rˆ   rˆ   rˆ   )r   r'   rt   rt   rt   rt   )ro   )r(   Ú
aaabbbbcde)Únum1Únum2Únum3Úcategory_tupleÚcategory_stringr­  rª  ©rà   c                 ó&   — | j                  d¬«      S )Nrª  r¯  )Úsort_valuesrg   s    r$   ri   zHTestGrouping.test_groupby_tuple_keys_handle_multiindex.<locals>.<lambda>j  s   € ¸a¿m¹mÈv¸mÓ>V€ rC   T)Údrop)	r   rY   r±  r   r«   r   r;   r>   r»   )r!   r"   rA   r@   s       r$   Ú)test_groupby_tuple_keys_handle_multiindexz6TestGrouping.test_groupby_tuple_keys_handle_multiindexS  sˆ   € äâ6Ú6Ú7ò#ô $(¨Ó#5ñ!ó
ˆð( —>‘>Ð&6¸Ð%?�>Ó@ˆØ—‘Ð,Ó-×3Ñ3Ñ4VÓWˆØ˜FŸN™NÑ+ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFrC   c                 ó  — t        dgdggdg¬«      j                  d„ ¬«      }t        dg¬«      j                  d„ ¬«      }t        dd¬	«      g}|j                  |«      j	                  «        |j                  |«      j	                  «        y )
Nz
05/29/2019z
05/28/2019r   r   c                 ó2   — t        j                  | d   «      S ©Nr   ©rÑ   Úto_datetime©r"   s    r$   ri   zGTestGrouping.test_groupby_grouper_immutable_list_item.<locals>.<lambda>r  ó   € œBŸN™N¨2¨f©:Ó6€ rC   )r   c                 ó2   — t        j                  | d   «      S r¶  r·  r¹  s    r$   ri   zGTestGrouping.test_groupby_grouper_immutable_list_item.<locals>.<lambda>u  rº  rC   Ú1Dr³   )r   Úassignr	   r   Úhead)r!   Údf1rT  Úgrouperss       r$   Ú(test_groupby_grouper_immutable_list_itemz5TestGrouping.test_groupby_grouper_immutable_list_itemn  s‹   € ô ˜,˜¨,¨Ð8À6À(ÔK×RÑRÙ6ð Só 
ˆô   Ô)×0Ñ0Ù6ð 1ó 
ˆô  ¨TÔ2Ð3ˆà�‰�HÓ×"Ñ"Ô$à�‰�HÓ×"Ñ"Õ$rC   N)6r“   r”   r•   r   r–   r—   r
   rY   rN   r©   Úfloatr   r   r¬   r¿   rÅ   rÈ   rØ   rç   rð   rø   r  r  r  r  r  r  r,   r   r$  r,  r3  r6  r=  rB  rK  rV  rf  ro  rt  rx  rz  r‚  r…  r‰  r   r•  r�  r“  r›  r   r¦  r³  rÁ  )r„   Úir   s   000r$   rš   rš   ´   su  „ Ø‡[�[×ÑØá‘$�w“-Ó Ù�)�"—)‘)˜A“,ÓÙ�)�"—)‘)˜A UÔ+Ó,Ù�|¨QÔ/Ù˜¨qÔ1ð	
ó	ñGó	ðGò0ò80ò0ò>1ð4 ‡[�[×Ñ˜V e¨T ]Ó3ñ0ó 4ð0ò ,0ò\5ò0ò&0ò,"òò
0ò2ð& ‡[�[×ÑØâÚ Ù16°q³×:Ð:¨AŒY�t˜Q  Q¡Õ'Ô:ð	
óñ*óð*ò1ò*ò./ò
0ò(Aò/ò8/ò@=òB òB$ò1ò0
/ð ‡[�[×ÑØàÒ1Ð2ØÒ2Ð3ð	
óñAóðAòFò6ð& ‡[�[×ÑØð Ù˜A R§Z¡ZÔ0ðð
 ÙØ "§*¡*±E¸"ÀBÇJÁJÐUVÔ4Wôðð ÙØ "§*¡*±E¸"ÀBÇJÁJÐUVÔ4Wôðð	
óñ*1ó+ð*1ò	0ò"ò00ò$0òGó6%ùôE ;s   Ã&G?rš   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestGetGroupc                 óâ  — t        t        j                  g d¢«      g d¢g d¢dœ«      }|j                  d«      }t	        t        |j                  «      «      }|j                  |«      }|j                  t        |«      j                  «       «      }|j                  t        t        |«      «      «      }t        j                  ||«       t        j                  ||«       |j                  ddg«      }t	        t        |j                  «      «      }|j                  |«      }|j                  t        |d   «      j                  «       |d   f«      }|j                  t        t        |d   «      «      |d   f«      }t        j                  ||«       t        j                  ||«       d	}t        j                  t        |¬
«      5  |j                  d«       d d d «       t        j                  t        |¬
«      5  |j                  d«       d d d «       d}t        j                  t        |¬
«      5  |j                  d«       d d d «       y # 1 sw Y   ŒvxY w# 1 sw Y   ŒMxY w# 1 sw Y   y xY w)N)ú10-Oct-2013rÇ  rÇ  ú11-Oct-2013rÈ  rÈ  )rF   rF   rG   rF   rF   rG   rÁ   )ÚDATEÚlabelÚVALrÉ  rÊ  r   r   z<must supply a tuple to get_group with multiple grouping keysr   rF   zHmust supply a same-length tuple to get_group with multiple grouping keys)rF   rG   Úbaz)r   rÑ   r¸  r   rä   rå   r#  ræ   r   Úto_pydatetimerž  r;   r>   r   r   r-   )r!   r"   r#   r´   rl  rT   Úresult3r1   s           r$   Útest_get_groupzTestGetGroup.test_get_group„  sð  € ô äŸ™òó	ò DÚ)ñó
ˆð" �J‰J�vÓˆÜ”4˜Ÿ™“>Ó"ˆØ—+‘+˜cÓ"ˆØ—+‘+œi¨›n×:Ñ:Ó<Ó=ˆØ—+‘+œc¤)¨C£.Ó1Ó2ˆÜ
×Ñ˜g wÔ/Ü
×Ñ˜g wÔ/à�J‰J˜ Ð(Ó)ˆä”4˜Ÿ™“>Ó"ˆØ—+‘+˜cÓ"ˆØ—+‘+œy¨¨Q©Ó0×>Ñ>Ó@À#ÀaÁ&ÐIÓJˆØ—+‘+œs¤9¨S°©VÓ#4Ó5°s¸1±vÐ>Ó?ˆÜ
×Ñ˜g wÔ/Ü
×Ñ˜g wÔ/ð MˆÜ�]‰]œ:¨SÔ1ñ 	Ø�K‰K˜Ô÷	ä�]‰]œ:¨SÔ1ñ 	Ø�K‰K˜Ô÷	àXˆÜ�]‰]œ:¨SÔ1ñ 	/Ø�K‰KÐ-Ô.÷	/ð 	/÷	ð 	ú÷	ð 	ú÷	/ð 	/ús$   ÇIÇ;IÈ2I%ÉIÉI"É%I.c                 óÀ  — t        g d¢«      }g d¢}|j                  t        j                  |d   |«      |¬«      }|j	                  t        j
                  dd«      «      }t        ddgddg¬«      }t        j                  ||«       d	}t        j                  t        |¬
«      5  |j	                  t        j
                  dd«      «       d d d «       y # 1 sw Y   y xY w)N)r+   r   r  r(   )r   ro   r¡   é   r   )rü   ro   r+   r   rw   z"Interval\(10, 15, closed='right'\)r   r¡   rÑ  )r   r   rÑ   Úcutræ   ÚIntervalr;   r>   r   r   r    )r!   rü   rs   Úbinsr#   r@   rA   r1   s           r$   Útest_get_group_empty_binsz&TestGetGroup.test_get_group_empty_bins³  s°   € Ü’lÓ#ˆÚˆØ�I‰I”b—f‘f˜Q˜q™T 4Ó(°8ˆIÓ<ˆð —‘œRŸ[™[¨¨AÓ.Ó/ˆÜ˜a ˜V¨A¨q¨6Ô2ˆÜ
×Ñ˜f hÔ/à3ˆÜ�]‰]œ8¨3Ô/ñ 	-Ø�K‰KœŸ™ B¨Ó+Ô,÷	-÷ 	-ñ 	-ús   Â%&CÃCc                 óæ  — t        g d¢gdg¬«      j                  }|j                  d«      }t        dddgiddg¬«      }|j                  d«      }t	        j
                  ||«       t        j                  g d¢«      }t        d|D �cg c]  }|f‘Œ c}i«      }|j                  d«      }|j                  d«      }t        d|d   f|d   fgiddg¬«      }t	        j
                  ||«       y c c}w )	N)©r   rò   r×  rò   r  rw   r×  r   r   )ú
2010-01-01ú
2010-01-02rØ  rÙ  )rØ  )r   rÿ   r   ræ   r;   r>   rÑ   r¸  )r!   r"   rš  rA   r@   Údtrh   s          r$   Útest_get_group_grouped_by_tuplez,TestGetGroup.test_get_group_grouped_by_tupleÂ  sá   € äÒ4Ð5¸e¸WÔE×GÑGˆØ�Z‰Z˜ÓˆÜ˜e d¨D \Ð2¸1¸a¸&ÔAˆØ—‘˜dÓ#ˆÜ
×Ñ˜f hÔ/ä�^‰^ÒTÓUˆÜ˜¨bÖ1¨ ¢Ò1Ð2Ó3ˆØ�Z‰Z˜ÓˆØ—‘˜oÓ.ˆÜ˜e r¨!¡u h°°A±°Ð%9Ð:À1ÀaÀ&ÔIˆÜ
×Ñ˜f hÕ/ùò	  2s   Â
C.
c                 ó�  ‡— t        dd„ dD «       i«      Š‰j                  d«      }‰j                  ˆfd„«      }|j                  t        t	        |j
                  j                  «       «      «      «      }|j                  t        t	        |j
                  j                  «       «      «      «      }t        j                  ||«       y )Nr~   c              3   óŽ   K  — | ]=  }t         j                  j                  d «      j                  ddd«      D ]  }||f–— Œ
 Œ? y­wr€   r�   rƒ   s      r$   r…   zKTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<genexpr>Õ  r†   r‡   rˆ   c                 ó&   •— ‰j                   | df   S rŠ   r‹   rŒ   s    €r$   ri   zJTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<lambda>Þ  r�   rC   )	r   r   ræ   rä   rå   r#  r2  r;   r>   r�   s        @r$   Ú+test_get_group_grouped_by_tuple_with_lambdaz8TestGetGroup.test_get_group_grouped_by_tuple_with_lambdaÑ  s�   ø€ äàñ à#ôðó
ˆð �Z‰Z˜Ó!ˆØ—J‘JÓ6Ó7ˆ	à—<‘<¤¤T¨"¯)©)¯.©.Ó*:Ó%;Ó <Ó=ˆØ×$Ñ$¤T¬$¨y×/?Ñ/?×/DÑ/DÓ/FÓ*GÓ%HÓIˆä
×Ñ˜f hÕ/rC   c                 ó¾   — t        j                  d«      }d}t        ||t        ¬«      }t	        d¬«      }|j                  |«      }t        t        |«      d «      �J ‚y )Nr˜   rœ   r9   r/  )rÑ   rÒ   r   Úobjectr	   r   rä   rå   )r!   rx   r*   Úseriesr  r2   s         r$   Útest_groupby_with_emptyz$TestGetGroup.test_groupby_with_emptyå  sT   € Ü× Ñ  Ó$ˆØˆÜ˜˜e¬6Ô2ˆÜ˜sÔ#ˆØ—.‘. Ó)ˆÜ”D˜“M 4Ó(Ð0Ð0Ñ0rC   c                 óV  — t        dt        d«      i«      }t        j                  |j	                  d«      j                  d«      |j                  ddg   «       t        t        g d¢d¬«      t        g d¬«      ¬	«      }t        j                  |j	                  d«      j                  «       |«       t        j                  |j	                  d«      j                  «       |«       |j                  g d
¢   }t        j                  |j	                  d«      j                  d«      |«       y )Nrq   Úabssbabr   ro   )rq   rr   r  )rÎ   rž  rœ   )rx   r   ©r+   r'   ro   r   )r   rY   r;   r>   r   ræ   r_   r
   r.   r:   Únth)r!   r"   rq  s      r$   Útest_groupby_with_single_columnz,TestGetGroup.test_groupby_with_single_columní  sÖ   € Ü˜œT )›_Ð-Ó.ˆÜ
×Ñ˜bŸj™j¨›o×7Ñ7¸Ó<¸b¿g¹gÀqÈ!Àf¹oÔNäÜš¨cÔ2¼EÀ"ÈEÔ<Rô
ˆô 	×Ñ˜bŸj™j¨›o×3Ñ3Ó5°sÔ;Ü
×Ñ˜bŸj™j¨›o×1Ñ1Ó3°SÔ9à�g‰g’iÑ ˆÜ
×Ñ˜bŸj™j¨›o×1Ñ1°!Ó4°cÕ:rC   c                 óì   — t        g d¢g d¢g d¢gg d¢¬«      }|j                  ddg«      }|j                  g d¢«      j                  «       }|j                  d	   d
k(  sJ ‚|j                  d   dk(  sJ ‚y )N)rF   rG   r   r   )rF   rG   r   r   )rF   rÌ  r   r+   )r:  r8  ÚthirdrI   r   r:  r8  )r:  r8  rê  )rF   rG   r   r   )rF   rÌ  r   r   )r   rs  r   r0   rR   r\   s     r$   Útest_gb_key_len_equal_axis_lenz+TestGetGroup.test_gb_key_len_equal_axis_lenú  sz   € ô Ú#Ò%;Ò=SÐTÚ7ô
ˆð �\‰\˜7 HÐ-Ó.ˆØ�Z‰ZÒ4Ó5×:Ñ:Ó<ˆØ�v‰vÐ)Ñ*¨aÒ/Ð/Ð/Ø�v‰vÐ)Ñ*¨aÒ/Ð/Ñ/rC   N)
r“   r”   r•   rÏ  rÕ  rÛ  rß  rã  rè  rë  r˜   rC   r$   rÅ  rÅ  ƒ  s&   „ ò-/ò^-ò0ò0ò(1ò;ó0rC   rÅ  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestIterationc                 ón  — |j                  dg«      }d}t        j                  t        |¬«      5  |j                  }||j                  u sJ ‚	 d d d «       j                  «       D ]*  \  }}|j                  |   d   |k(  j                  «       rŒ*J ‚ |j                  ddg«      }|j                  }||j                  u sJ ‚|j                  «       D ]U  \  }}|j                  |   d   |d   k(  j                  «       sJ ‚|j                  |   d   |d   k(  j                  «       rŒUJ ‚ y # 1 sw Y   ŒÞxY w)Nr   rG  r   r   r   r   )r   r;   rH  r   r#  ÚitemsrR   Úall)r!   r"   r2   r1   r#  ÚkÚvs          r$   Útest_groupszTestIteration.test_groups  s+  € Ø—*‘*˜c˜UÓ#ˆØ-ˆä×'Ñ'¬¸cÔBñ 	,Ø—^‘^ˆFØ˜WŸ^™^Ñ+Ð+Ñ+÷	,ð —L‘L“Nò 	/‰DˆAˆqØ—F‘F˜1‘I˜c‘N aÑ'×,Ñ,Õ.Ð.Ð.ð	/ð —*‘*˜c 3˜ZÓ(ˆØ—‘ˆØ˜Ÿ™Ñ'Ð'Ð'à—L‘L“Nò 	2‰DˆAˆqØ—F‘F˜1‘I˜c‘N a¨¡dÑ*×/Ñ/Ô1Ð1Ð1Ø—F‘F˜1‘I˜c‘N a¨¡dÑ*×/Ñ/Õ1Ð1Ð1ñ	2÷	,ð 	,ús   °D+Ä+D4c                 ój   — |j                  d„ d„ g«      }|j                  j                  d   D ]  }Œ y )Nc                 ó"   — | j                  «       S re   )Úweekdayrg   s    r$   ri   z9TestIteration.test_grouping_is_iterable.<locals>.<lambda>#  s   € ¨Q¯Y©Y«[€ rC   c                 ó   — | j                   S re   )Úyearrg   s    r$   ri   z9TestIteration.test_grouping_is_iterable.<locals>.<lambda>#  s
   € ÀAÇFÁF€ rC   r   )r   r
  r—  )r!   Útsframer2   r#   s       r$   Útest_grouping_is_iterablez'TestIteration.test_grouping_is_iterable   s>   € ð —/‘/Ñ#8Ñ:JÐ"KÓLˆð ×!Ñ!×+Ñ+¨AÑ.ò 	ˆAØñ	rC   c                 ó¬  — t        t        j                  d«      «      }t        j                  g d¢«      }t        j                  g d¢«      }|j	                  ||g«      }t        |«      }dd|ddg   fdd|d	g   fd
d|dg   fd
d|ddg   fg}t        |«      D ]8  \  }\  \  }}	}
||   \  }}}||k(  sJ ‚||	k(  sJ ‚t        j                  |
|«       Œ: y )Nr(   )rq   rq   rq   rr   rr   rr   ©Ú1Ú2rý  rþ  rý  rþ  rq   rý  r   r   rþ  r   rr   r'   r+   ro   )	r   rN   r©   rý   r   rY   Ú	enumerater;   r<   )r!   r  Úk1Úk2r2   ÚiteratedrA   rÃ  rI   rJ   rK   Úe1Úe2Úe3s                 r$   Útest_multi_iterzTestIteration.test_multi_iter)  só   € Ü”2—9‘9˜Q“<Ó ˆÜ�X‰XÒ4Ó5ˆÜ�X‰XÒ4Ó5ˆà—)‘)˜R ˜HÓ%ˆä˜“=ˆà�#�q˜!˜Q˜‘yÐ!Ø�#�q˜!˜‘vÐØ�#�q˜!˜‘vÐØ�#�q˜!˜Q˜‘yÐ!ð	
ˆô '0°Ó&9ò 	.Ñ"ˆAÑ"‘
��c˜EØ! !™‰JˆB��BØ˜’9Ð�9Ø˜’9Ð�9Ü×"Ñ" 5¨"Õ-ñ		.rC   c                 ó¬  — t        j                  g d¢«      }t        j                  g d¢«      }t        t         j                  j	                  d«      j                  d«      t         j                  j	                  d«      j                  d«      ||dœg d¢¬«      }|j                  dd	g«      }t        |«      }|j                  }d
d|j                  |dg      fd
d|j                  |ddg      fdd|j                  |ddg      fdd|j                  |dg      fg}t        |«      D ]8  \  }	\  \  }
}}||	   \  }}}||
k(  sJ ‚||k(  sJ ‚t        j                  ||«       Œ: t        j                  g d¢«      |d<   t        j                  g d¢«      |d	<   |j                  dd	g«      }|D ��ci c]  \  }}||“Œ
 }}}t        |«      dk(  sJ ‚y c c}}w )N)rr   rr   rr   rq   rq   rq   rü  r   r(   )Úv1Úv2r   r  )rI   rJ   rK   ÚfourÚfiveÚsixrw   r   r  rq   rý  r'   rþ  r+   ro   rr   r   r   )rý  rý  rý  rþ  rþ  rþ  )rN   rý   r   rO   rP   rQ   r   rY   rx   rR   rÿ  r;   r>   r1  )r!   Úthree_groupr   r  r"   r2   r  r{   rA   rÃ  rI   rJ   rK   r  r  r  r´   Úgpr#  s                      r$   Útest_multi_iter_framez#TestIteration.test_multi_iter_frame=  sÕ  € Ü�X‰XÒ4Ó5ˆÜ�X‰XÒ4Ó5ˆÜä—i‘i×+Ñ+¨AÓ.×>Ñ>¸qÓAÜ—i‘i×+Ñ+¨AÓ.×>Ñ>¸qÓAØØñ	ò Aô
ˆð —*‘*˜d D˜\Ó*ˆô ˜“=ˆØ�h‰hˆà�#�r—v‘v˜c 1 #™hÑ'Ð(Ø�#�r—v‘v˜c 1 a &™kÑ*Ð+Ø�#�r—v‘v˜c 1 a &™kÑ*Ð+Ø�#�r—v‘v˜c 1 #™hÑ'Ð(ð	
ˆô '0°Ó&9ò 	-Ñ"ˆAÑ"‘
��c˜EØ! !™‰JˆB��BØ˜’9Ð�9Ø˜’9Ð�9Ü×!Ñ! %¨Õ,ð		-ô —8‘8Ò:Ó;ˆˆ4‰Ü—8‘8Ò:Ó;ˆˆ4‰Ø—*‘*˜d D˜\Ó*ˆð *1×1™g˜c 2�#�r‘'Ð1ˆÑ1Ü�6‹{˜aÒÐÑùó 2s   Æ/Gc           	      óÞ  — t        t        |j                  d«      «      «       t        t        |j                  ddg«      «      «       t        t        |d   j                  |d   «      «      «       t        t        |d   j                  |d   |d   g«      «      «       t        t        |j                  d«      d   «      «       t        t        |j                  ddg«      d   «      «       y )Nr   r   r   )râ   rå   r   r\   s     r$   Útest_dictifyzTestIteration.test_dictifyd  s¯   € ÜŒT�"—*‘*˜S“/Ó"Ô#ÜŒT�"—*‘*˜c 3˜ZÓ(Ó)Ô*ÜŒT�"�S‘'—/‘/ " S¡'Ó*Ó+Ô,ÜŒT�"�S‘'—/‘/ 2 c¡7¨B¨s©GÐ"4Ó5Ó6Ô7ÜŒT�"—*‘*˜S“/ #Ñ&Ó'Ô(ÜŒT�"—*‘*˜c 3˜ZÓ(¨Ñ-Ó.Õ/rC   c                 óÞ  — t        ddgddgdœt        j                  ddg«      ¬«      }|j                  t	        d¬	«      d
g«      }t        |j                  «      dk(  sJ ‚|j                  dk(  sJ ‚t        d«      df|j                  v sJ ‚t        d«      df|j                  v sJ ‚|j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       |j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       t        g d¢g d¢dœt        j                  g d¢«      ¬«      }|j                  t	        d¬	«      d
g«      }t        |j                  «      dk(  sJ ‚|j                  dk(  sJ ‚t        d«      df|j                  v sJ ‚t        d«      df|j                  v sJ ‚|j                  t        d«      df«      }t        j                  ||j                  ddgd d …f   «       |j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       t        g d¢g d¢dœt        j                  g d¢«      ¬«      }|j                  t	        d¬	«      d
g«      }t        |j                  «      dk(  sJ ‚|j                  dk(  sJ ‚t        d«      df|j                  v sJ ‚t        d«      df|j                  v sJ ‚t        d«      df|j                  v sJ ‚|j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       |j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       |j                  t        d«      df«      }t        j                  ||j                  dgd d …f   «       y )NÚstartéÒ  é.  )ÚeventÚchangeú
2014-09-10ú
2013-10-10rw   rÍ   r/  r  r   z
2014-09-30z
2013-10-31r   r   )r  r  r  )r  r  i£#  )r  r  z
2014-09-15)r  r  z
2014-08-05r+   z
2014-08-31)r   rÑ   rÒ   r   r	   r1  r#  r™  r   ræ   r;   r>   r_   )r!   r"   r2   Úress       r$   Útest_groupby_with_small_elemz*TestIteration.test_groupby_with_small_eleml  s�  € ô Ø Ð(°T¸4°LÑAÜ×"Ñ" L°,Ð#?Ó@ô
ˆð —*‘*œg¨4Ô0°'Ð:Ó;ˆÜ�7—>‘>Ó" aÒ'Ð'Ð'Ø�‰ !Ò#Ð#Ð#Ü˜,Ó'¨Ð1°W·^±^ÑCÐCÐCÜ˜,Ó'¨Ð1°W·^±^ÑCÐCÐCà×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Ô3Ø×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Ô3äÚ1Ò=OÑPÜ×"Ñ"Ò#MÓNô
ˆð —*‘*œg¨4Ô0°'Ð:Ó;ˆÜ�7—>‘>Ó" aÒ'Ð'Ð'Ø�‰ !Ò#Ð#Ð#Ü˜,Ó'¨Ð1°W·^±^ÑCÐCÐCÜ˜,Ó'¨Ð1°W·^±^ÑCÐCÐCà×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨q¨6²1¨9Ñ#5Ô6Ø×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Ô3ô Ú1Ò=OÑPÜ×"Ñ"Ò#MÓNô
ˆð —*‘*œg¨4Ô0°'Ð:Ó;ˆÜ�7—>‘>Ó" aÒ'Ð'Ð'Ø�‰ !Ò#Ð#Ð#Ü˜,Ó'¨Ð1°W·^±^ÑCÐCÐCÜ˜,Ó'¨Ð1°W·^±^ÑCÐCÐCÜ˜,Ó'¨Ð1°W·^±^ÑCÐCÐCà×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Ô3Ø×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Ô3Ø×Ñ¤¨<Ó!8¸'Ð BÓCˆÜ
×Ñ˜c 2§7¡7¨A¨3²¨6¡?Õ3rC   c                 óþ   — t        j                  t        d«      t        d«      g«      }t        g d¢g|¬«      }|j	                  |d   «      }|j
                  j                  d   j                  «       }d}||k(  sJ ‚y )NÚAABÚaba)r   r   r+   r   )r   rq   r   zGrouping(('A', 'a')))r   rS  rY   r   r   r
  r—  Ú__repr__)r!   rÕ   r"   rš  r@   rA   s         r$   Útest_grouping_string_reprz'TestIteration.test_grouping_string_repr   so   € ä×#Ñ#¤T¨%£[´$°u³+Ð$>Ó?ˆÜš	�{¨BÔ/ˆØ�Z‰Z˜˜:™Ó'ˆà—‘×&Ñ& qÑ)×2Ñ2Ó4ˆØ)ˆØ˜Ò!Ð!Ñ!rC   N)
r“   r”   r•   ró  rú  r  r  r  r  r   r˜   rC   r$   rí  rí    s'   „ ò2ò&ò.ò(% òN0ò24óh"rC   rí  c                  ó¨  — t        g d¢g d¢g d¢dœ«      j                  d«      } | j                  t        d¬«      t        d¬«      gd¬	«      }|j                  j
                  d
   j                  rJ ‚|j                  j
                  d   j                  sJ ‚|j                  «       }t        ddgddgddgdœ«      }t        j                  ||«       y )Nrn   ræ  )rq   rr   r3   rq   rÐ   rr   rÃ   Fr?  r   r   r   r  ro   )
r   rs  r   r	   r
  r—  Úin_axisr:   r;   r>   )r"   rz   r@   rA   s       r$   Útest_grouping_by_key_is_in_axisr#  «  s³   € ä	šªºÑCÓ	D×	NÑ	NÈsÓ	S€BØ	�‰”W 3Ô'¬°SÔ)9Ð:ÀUˆÓ	K€BØ�{‰{×$Ñ$ QÑ'×/Ò/Ð/Ð/Ø�;‰;× Ñ  Ñ#×+Ò+Ð+Ð+à�V‰V‹X€FÜ  1˜v¨Q°¨F¸!¸Q¸Ñ@ÓA€HÜ×Ñ˜& (Õ+rC   c                  ó¤  — t        dt        j                  d«      t        j                  gi«      } | j	                  t        j                  ddgt
        j                  ¬«      «      d   j                  «       }t        dddœdt        ¬«      }|j                  j                  t
        j                  «      |_        t        j                  ||«       y )	Nr¤  r   r   rœ   TFrˆ   r‹  )r   rÑ   Ú	Timedeltarˆ  r   rN   rý   r¶   Úanyr   Úboolrx   rô   r;   r<   )r"   r@   rA   s      r$   Útest_groupby_any_with_timedeltar(  ·  sŽ   € ä	�GœbŸl™l¨1›o¬r¯v©vÐ6Ð7Ó	8€Bà�Z‰ZœŸ™ ! Q ¬r¯x©xÔ8Ó9¸'ÑB×FÑFÓH€Fä˜$ 5Ñ)°¼tÔD€HØ—^‘^×*Ñ*¬2¯8©8Ó4€H„Nä×Ñ˜6 8Õ,rC   ) Ú__doc__Údatetimer   r   ÚnumpyrN   r   Úpandas.errorsr   r   ÚpandasrÑ   r   r   r	   r
   r   r   r   r   r   Úpandas._testingÚ_testingr;   Úpandas.core.groupby.grouperr   r   rš   rÅ  rí  r#  r(  r˜   rC   r$   ú<module>r1     sv   ðñ÷ó
 Û ÷ó
 ÷
÷ 
õ 
õ Ý 0÷H/ñ H/÷^H%ñ H%÷^B0ñ B0÷R\"ñ \"ò~	,ó	-rC   