Ë
    u™ãjßi  ã                  óf  — d dl mZ d dlmZmZ d dlmZ d dlZd dlZ	d dl
Z
d dlmZ d dlZd dlmZ  e
j$                  d«      Zd dlmZ  G d„ d	«      Ze
j.                  j1                  d
ddg«      e
j.                  j1                  dg d¢«      e
j.                  j1                  dej3                   eddd«       eddd«      d eddd«      g«      ej3                   ed«       ed«      d ed«      g«      ej3                  g d¢«      ej3                  g d¢«      ej3                  g d¢«      j5                  «       ej3                  dgdgddgg«      gd„ ¬«      d„ «       «       «       Ze
j.                  j1                  dg d¢«      e
j.                  j1                  dddg«      d„ «       «       Zd„ Zd „ Zy)!é    )Úannotations)ÚdateÚtime)ÚDecimalN)Ú
ArrowDtypeÚpyarrow)ÚArrowExtensionArrayc                  óf  — e Zd ZdZej
                  j                  dd ed«       ed«       ed«      gfd ed«       ed	«       ed«      gfd
 ed«       ed«       ed«      gfd ed«       ed«       ed«      gfd ed«       ed«       ed«      gfdg d¢fg«      d„ «       Zej
                  j                  dg d¢«      d„ «       Z	ej
                  j                  dd
g d¢fdg d¢fdg d¢fg«      ej
                  j                  de
j                  «       e
j                  «       g«      d„ «       «       Zej
                  j                  dd
dg«      ej
                  j                  d ej                  dej"                  ¬«       ej                  dej$                  ¬«       ee
j                  «       «       ee
j                  «       «      gg d¢¬«      d„ «       «       Zej
                  j                  dd
dg«      ej
                  j                  d ej                  dej"                  ¬«       ej                  dej$                  ¬«       ee
j                  «       «       ee
j                  «       «      gg d¢¬«      d „ «       «       Zej
                  j                  dd
dg«      ej
                  j                  d ej                  dej"                  ¬«       ej                  dej$                  ¬«       ee
j                  «       «       ee
j                  «       «      gg d¢¬«      d!„ «       «       Zej
                  j                  d"e
j/                  d#d$«       ed%«      d& ed'«      d&g ed%«       ed'«      gd
fe
j                  «       g d(¢d)d*gd
fe
j                  «       g d(¢d)d*gdfg«      d+„ «       Zej
                  j                  d,g d-¢g d.¢d/d/gfd0d$gd0d$gd1d1gfg d2¢g d.¢d/d1gfg«      d3„ «       Zej
                  j                  d,g d4¢g d5¢d/d1gfg d6¢g d7¢d1d/gfg«      ej
                  j                  d8g d9¢«      d:„ «       «       Zej
                  j                  d;d<d=g«      d>„ «       Zej
                  j                  d8d
dg«      ej
                  j                  d? ed«       ed«       ed«       ed«      g ee
j/                  d#d$«      «      f ed@«       ee
j                  «       «      f ed@«       ej                  dej"                  ¬«      fgg dA¢¬«      dB„ «       «       Zej
                  j                  dCdDdEg«      dF„ «       Zej
                  j                  dGd1d)dHgfd/g dI¢fg«      ej
                  j                  d ej                  dej"                  ¬«       ej                  dej$                  ¬«       ee
j                  «       «      gg dJ¢¬«      dK„ «       «       Zej
                  j                  dg dL¢«      dM„ «       Z ej
                  j                  d8ddg«      ej
                  j                  dNe
j/                  d#d$«      e
jC                  dOd$«      ge"¬«      dP„ «       «       Z#ej
                  j                  dd edQ«      fd edR«      fg«      dS„ «       Z$ej
                  j                  dTde
j/                  dUdV«       edW«       edX«      g edYd#dZz  z  «      fde
j/                  d[dV«       ed\d#dZz  z  «      gd]z   ed^d#dZz  z  «      fde
j/                  d[dV«       edW«       edX«      g edYd#dZz  z  «      fg«      d_„ «       Z%ej
                  jM                  d`¬a«      db„ «       Z'ej
                  j                  ddcddg«      de„ «       Z(ej
                  j                  dg df¢«      ej
                  j                  dgg d4¢«      dh„ «       «       Z)ej
                  j                  dg di¢«      ej
                  j                  d ee
j/                  d#d$«      «       ee
j                  «       «       ej                  dej"                  ¬«      gg dA¢¬«      dj„ «       «       Z*dk„ Z+ej
                  j                  d ej                  dej"                  ¬«       ej                  dej$                  ¬«       ee
j                  «       «      gg dJ¢¬«      dl„ «       Z,ej
                  j                  dg dm¢«      dn„ «       Z- e.dod0d$«       e.dod0d0«       e.dpd0dq«       e.dpd0d\«      gZ/ e0d0«       e0dV«       e0d\«       e0d$«      gZ1g dr¢Z2e
jg                  «       e/fe
ji                  «       e/fe
jk                  ds«      e1fe
jk                  dt«      e1fe
jm                  du«      e1fe
jm                  dv«      e1fe
jo                  «       e2fe
jq                  «       e2fe
jo                  d0«      e2ff	D � ����cg c]&  \  }}t	        jr                  ||tE        |«      ¬w«      ‘Œ( c}}}}} Z:ej
                  j                  dd
dg«      ej
                  j                  dxe:«      dy„ «       «       Z;ej
                  j                  dd
dg«      ej
                  j                  dxe:«      dz„ «       «       Z<ej
                  j                  dd
dg«      ej
                  j                  dxe:«      d{„ «       «       Z=ej
                  j                  dxe:«      d|„ «       Z>ej
                  j                  d ee
j                  «       «       ej                  d«       ee
jo                  «       «       ee
jq                  «       «      gg d}¢¬«      d~„ «       Z?ej
                  j                  dg d€¢«      ej
                  j                  d�d1d/g«      ej
                  j                  dd
dg«      d‚„ «       «       «       Z@ej
                  j                  dd
dg«      dƒ„ «       ZAy&c c}}}}} w )„ÚTestGroupbyAggPyArrowNativezJTests for PyArrow-native groupby aggregations on decimal and string types.zagg_func, expectedÚsumÚ1Ú5Ú4ÚprodÚ0Ú6ÚminÚ2ÚmaxÚ3Úmeanz0.5z2.5Úcount)é   r   é   c           	     ó²  — t        d«      D �cg c]  }t        t        |«      «      ‘Œ }}t        j                  |t        t        j                  dd«      «      ¬«      }|j                  g d¢«      j                  |«      }|j                  j                  «       g d¢k(  sJ ‚t        |j                  t
        «      sJ ‚|j                  «       |k(  sJ ‚y c c}w )Né   é
   r   ©Údtype©r   r   r   r   é   ©r   r   r!   )Úranger   ÚstrÚpdÚSeriesr   ÚpaÚ
decimal128ÚgroupbyÚaggÚindexÚtolistÚ
isinstancer   ©ÚselfÚagg_funcÚexpectedÚiÚvaluesÚserÚresults          úq/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/arrays/arrow/test_groupby.pyÚ!test_groupby_decimal_aggregationsz=TestGroupbyAggPyArrowNative.test_groupby_decimal_aggregations   s¤   € ô ,1°«8Ö4 a”'œ#˜a›&•/Ð4ˆÐ4Ü�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆà—‘š_Ó-×1Ñ1°(Ó;ˆØ�|‰|×"Ñ"Ó$ª	Ò1Ð1Ð1Ü˜&Ÿ,™,¬
Ô3Ð3Ð3à�}‰}‹ (Ò*Ð*Ñ*ùò 5s   ŽC))Úvarç      à?)ÚstdgÍ;fž æ?)Úsemr9   c           	     óJ  — t        d«      D �cg c]  }t        t        |«      «      ‘Œ }}t        j                  |t        t        j                  dd«      «      ¬«      }|j                  g d¢«      j                  |«      }|j                  t        t        j                  «       «      k(  sJ ‚|j                  d   t        j                  |«      k(  sJ ‚|j                  d   t        j                  |«      k(  sJ ‚t        j                  |j                  d   «      sJ ‚y c c}w )Nr   r   r   r   r    r   r   )r#   r   r$   r%   r&   r   r'   r(   r)   r*   r   Úfloat64ÚilocÚpytestÚapproxÚisnar.   s          r6   Ú*test_groupby_decimal_variance_aggregationszFTestGroupbyAggPyArrowNative.test_groupby_decimal_variance_aggregations2   sÖ   € ô ,1°«8Ö4 a”'œ#˜a›&•/Ð4ˆÐ4Ü�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆà—‘š_Ó-×1Ñ1°(Ó;ˆØ�|‰|œz¬"¯*©*«,Ó7Ò7Ð7Ð7Ø�{‰{˜1‰~¤§¡¨xÓ!8Ò8Ð8Ð8Ø�{‰{˜1‰~¤§¡¨xÓ!8Ò8Ð8Ð8Ü�w‰w�v—{‘{ 1‘~Ô&Ð&Ñ&ùò 5s   ŽD )ÚaÚcÚe)ÚbÚdrE   r   c                ó>  — t        j                  t        d«      t        |«      ¬«      }|j	                  g d¢«      j                  |«      }|j                  j                  «       g d¢k(  sJ ‚t        |j                  t        «      sJ ‚|j                  «       |k(  sJ ‚y )NÚabcder   r    r"   )
r%   r&   Úlistr   r)   r*   r+   r,   r-   r   )r/   r   r0   r1   r4   r5   s         r6   Ú test_groupby_string_aggregationsz<TestGroupbyAggPyArrowNative.test_groupby_string_aggregationsE   sy   € ô �i‰iœ˜W›¬Z¸Ó->Ô?ˆà—‘š_Ó-×1Ñ1°(Ó;ˆØ�|‰|×"Ñ"Ó$ª	Ò1Ð1Ð1Ü˜&Ÿ,™,¬
Ô3Ð3Ð3Ø�}‰}‹ (Ò*Ð*Ñ*ó    Úhowr   )Úna_value)ústr[pyarrow]ústring[pyarrow]r   ÚArrowDtype_large©Úidsc                óô   — t        j                  g d¢|¬«      } t        |j                  g d¢«      |«      «       }|dk(  rddgnddg}|j                  |j                  k(  sJ ‚|j                  «       |k(  sJ ‚y )	N©rF   rC   rG   rD   r   ©r   r   r   r   r   rC   rD   rF   rG   )r%   r&   Úgetattrr)   r   r,   )r/   r   rM   r4   r5   r1   s         r6   Ú"test_groupby_string_dtypes_min_maxz>TestGroupbyAggPyArrowNative.test_groupby_string_dtypes_min_maxW   sn   € ô �i‰iÒ,°EÔ:ˆØ8”˜Ÿ™¢\Ó2°CÓ8Ó:ˆØ!$¨¢�C˜‘:°C¸°:ˆØ�|‰|˜sŸy™yÒ(Ð(Ð(Ø�}‰}‹ (Ò*Ð*Ñ*rL   c                ó2  — t        j                  g d¢|¬«      } t        |j                  g d¢«      |«      d¬«      }|j                  |j                  k(  sJ ‚t        j
                  |j                  d   «      sJ ‚|j                  d   |dk(  rd	nd
k(  sJ ‚y )N©rF   NrG   rD   r   rV   F©Úskipnar   r   r   rD   rG   ©r%   r&   rW   r)   r   rA   r>   ©r/   r   rM   r4   r5   s        r6   Ú'test_groupby_string_dtypes_skipna_falsezCTestGroupbyAggPyArrowNative.test_groupby_string_dtypes_skipna_falsej   s   € ô �i‰iÒ-°UÔ;ˆØ8”˜Ÿ™¢\Ó2°CÓ8ÀÔFˆØ�|‰|˜sŸy™yÒ(Ð(Ð(Ü�w‰w�v—{‘{ 1‘~Ô&Ð&Ð&Ø�{‰{˜1‰~¨°ª¡#¸3Ò?Ð?Ñ?rL   c                ó2  — t        j                  g d¢|¬«      } t        |j                  g d¢«      |«      d¬«      }|j                  |j                  k(  sJ ‚t        j
                  |j                  d   «      sJ ‚|j                  d   |dk(  rd	nd
k(  sJ ‚y )NrZ   r   rV   r   ©Ú	min_countr   r   r   rD   rG   r]   r^   s        r6   Ú$test_groupby_string_dtypes_min_countz@TestGroupbyAggPyArrowNative.test_groupby_string_dtypes_min_count~   s   € ô �i‰iÒ-°UÔ;ˆØ8”˜Ÿ™¢\Ó2°CÓ8À1ÔEˆØ�|‰|˜sŸy™yÒ(Ð(Ð(Ü�w‰w�v—{‘{ 1‘~Ô&Ð&Ð&Ø�{‰{˜1‰~¨°ª¡#¸3Ò?Ð?Ñ?rL   zdtype,values,expected,agg_funcr   r   ú1.0Nz3.0)rC   NrD   NrC   rD   c                ó  — t        j                  |t        |«      ¬«      }|j                  g d¢«      j	                  |«      }t        |«      dk(  sJ ‚|j                  d   |d   k(  sJ ‚|j                  d   |d   k(  sJ ‚y )Nr   rV   r   r   r   )r%   r&   r   r)   r*   Úlenr>   )r/   r   r3   r1   r0   r4   r5   s          r6   Útest_groupby_with_nullsz3TestGroupbyAggPyArrowNative.test_groupby_with_nulls’   sx   € ô �i‰i˜¤j°Ó&7Ô8ˆØ—‘š\Ó*×.Ñ.¨xÓ8ˆÜ�6‹{˜aÒÐÐØ�{‰{˜1‰~ ¨!¡Ò,Ð,Ð,Ø�{‰{˜1‰~ ¨!¡Ò,Ð,Ñ,rL   zvalues,keys,expected_na)r   r   r   r!   rV   Fr   T)r   r   NNc           
     ó¤  — t        j                  |D �cg c]  }|�t        t        |«      «      nd ‘Œ c}t	        t
        j                  dd«      «      ¬«      }|j                  |«      j                  «       }|j                  t	        t
        j                  «       «      k(  sJ ‚t        j                  |«      j                  «       |k(  sJ ‚y c c}w )Nr   r   r   )r%   r&   r   r$   r   r'   r(   r)   r;   r   r=   rA   r,   )r/   r3   ÚkeysÚexpected_naÚvr4   r5   s          r6   Útest_groupby_semz,TestGroupbyAggPyArrowNative.test_groupby_sem§   sŸ   € ô �i‰iØAGÖH¸A  ŒW”S˜“VŒ_°4Ñ7ÒHÜœRŸ]™]¨2¨qÓ1Ó2ô
ˆð —‘˜TÓ"×&Ñ&Ó(ˆØ�|‰|œz¬"¯*©*«,Ó7Ò7Ð7Ð7Ü�w‰w�v‹×%Ñ%Ó'¨;Ò6Ð6Ñ6ùò Is   ”C©r   r   r   ©r   r   r   )r   Nr   r!   N)r   r   r   r   r   r0   )r   r   r   r   c           
     óR  — t        j                  |D �cg c]  }|�t        t        |«      «      nd ‘Œ c}t	        t
        j                  dd«      «      ¬«      }|j                  |«      j                  |d¬«      }t        j                  |«      j                  «       |k(  sJ ‚y c c}w )Nr   r   r   ra   )r%   r&   r   r$   r   r'   r(   r)   r*   rA   r,   )r/   r0   r3   ri   rj   rk   r4   r5   s           r6   Útest_groupby_min_countz2TestGroupbyAggPyArrowNative.test_groupby_min_count¼   s‰   € ô �i‰iØAGÖH¸A  ŒW”S˜“VŒ_°4Ñ7ÒHÜœRŸ]™]¨2¨qÓ1Ó2ô
ˆð —‘˜TÓ"×&Ñ& x¸1Ð&Ó=ˆÜ�w‰w�v‹×%Ñ%Ó'¨;Ò6Ð6Ñ6ùò	 Is   ”B$zagg_func,default_value)r   r   )r   r   c           	     ó°  — t        d«      D �cg c]  }t        t        |«      «      ‘Œ }}t        j                  |t        t        j                  dd«      «      ¬«      }t        j                  g d¢g d¢¬«      }|j                  |d¬	«      j                  |«      }t        |«      d
k(  sJ ‚|j                  d   t        t        |«      «      k(  sJ ‚y c c}w )Né   r   r   r   ©r   r   r   r   rm   ©Ú
categoriesF©Úobservedr!   r   )r#   r   r$   r%   r&   r   r'   r(   ÚCategoricalr)   r*   rf   r>   )r/   r0   Údefault_valuer2   r3   r4   ri   r5   s           r6   Útest_groupby_missing_groupsz7TestGroupbyAggPyArrowNative.test_groupby_missing_groupsÐ   s§   € ô ,1°«8Ö4 a”'œ#˜a›&•/Ð4ˆÐ4Ü�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆÜ�~‰~šl²yÔAˆØ—‘˜T¨E�Ó2×6Ñ6°xÓ@ˆÜ�6‹{˜aÒÐÐØ�{‰{˜1‰~¤¬¨]Ó);Ó!<Ò<Ð<Ñ<ùò 5s   ŽCzvalues, dtypeÚbadc)Údecimalr   rO   c                ó˜  — t        j                  ||¬«      }t        j                  g d¢g d¢¬«      } t        |j	                  |d¬«      |«      «       }t        |«      dk(  sJ ‚t        j                  |j                  d   «      sJ ‚|j                  d	   |d
k(  r|d	   n|d   k(  sJ ‚|j                  d   |d
k(  r|d   n|d   k(  sJ ‚y )Nr   rs   rm   rt   Frv   r!   r   r   r   r   )r%   r&   rx   rW   r)   rf   rA   r>   )r/   r3   r   r0   r4   ri   r5   s          r6   Ú#test_groupby_missing_groups_min_maxz?TestGroupbyAggPyArrowNative.test_groupby_missing_groups_min_maxà   s¼   € ô" �i‰i˜ eÔ,ˆÜ�~‰~šl²yÔAˆØE”˜Ÿ™ T°E˜Ó:¸HÓEÓGˆÜ�6‹{˜aÒÐÐÜ�w‰w�v—{‘{ 1‘~Ô&Ð&Ð&Ø�{‰{˜1‰~¨x¸5Ò/@ &¨¢)ÀfÈQÁiÒPÐPÐPØ�{‰{˜1‰~¨x¸5Ò/@ &¨¢)ÀfÈQÁiÒPÐPÑPrL   zdropna, expected_len)Tr   )Fr!   c           	     óä  — t        d«      D �cg c]  }t        t        |«      «      ‘Œ }}t        j                  |t        t        j                  dd«      «      ¬«      }|j                  g d¢|¬«      j                  «       }t        |«      |k(  sJ ‚|j                  d   t        d«      k(  sJ ‚|j                  d	   t        d
«      k(  sJ ‚|s|j                  d   t        d
«      k(  sJ ‚y y c c}w )Né   r   r   r   )r   r   Nr   r   N©Údropnar   rd   r   z7.0)r#   r   r$   r%   r&   r   r'   r(   r)   r   rf   r>   )r/   r‚   Úexpected_lenr2   r3   r4   r5   s          r6   Útest_groupby_dropnaz/TestGroupbyAggPyArrowNative.test_groupby_dropnaù   sÌ   € ô ,1°«8Ö4 a”'œ#˜a›&•/Ð4ˆÐ4Ü�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆØ—‘Ò5¸f�ÓE×IÑIÓKˆÜ�6‹{˜lÒ*Ð*Ð*Ø�{‰{˜1‰~¤¨£Ò/Ð/Ð/Ø�{‰{˜1‰~¤¨£Ò/Ð/Ð/ÙØ—;‘;˜q‘>¤W¨U£^Ò3Ð3Ñ3ð ùò 5s   ŽC-zdropna, expectedrG   )rC   rD   rG   )rO   rP   r   c                óê   — t        j                  t        d«      |¬«      }|j                  g d¢|¬«      j	                  «       }|j
                  |j
                  k(  sJ ‚|j                  «       |k(  sJ ‚y )NÚbaedcr   )r   r   Nr   Nr�   )r%   r&   rJ   r)   r   r   r,   )r/   r   r‚   r1   r4   r5   s         r6   Útest_groupby_string_dropnaz6TestGroupbyAggPyArrowNative.test_groupby_string_dropna  s^   € ô �i‰iœ˜W›¨UÔ3ˆØ—‘Ò2¸6�ÓB×FÑFÓHˆØ�|‰|˜sŸy™yÒ(Ð(Ð(Ø�}‰}‹ (Ò*Ð*Ñ*rL   )r   r   r   r   r   r:   r8   r;   c           	     óz  — t        d«      d t        d«      t        d«      g}t        j                  |t        t        j                  dd«      «      ¬«      } t        |j                  g d¢«      |«      d¬	«      }|j                  d
   t        j                  u sJ ‚|j                  d   t        j                  usJ ‚y )Nr   r   r   r   r   r   rV   Fr[   r   r   )
r   r%   r&   r   r'   r(   rW   r)   r>   ÚNA)r/   rM   r3   r4   r5   s        r6   Útest_groupby_skipna_falsez5TestGroupbyAggPyArrowNative.test_groupby_skipna_false   sŽ   € ô
 ˜#“, ¤g¨c£l´G¸C³LÐAˆÜ�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆØ8”˜Ÿ™¢\Ó2°CÓ8ÀÔFˆà�{‰{˜1‰~¤§¡Ñ&Ð&Ð&Ø�{‰{˜1‰~¤R§U¡UÑ*Ð*Ñ*rL   Úpa_typeé(   c                ó.  — t        j                  t        d«      t        d«      t        d«      gt        |«      ¬«      } t	        |j                  g d¢«      |«      «       }t        j                  j                  |«      r!t        j                  d|j                  «      }n t        j                  d|j                  «      }|j                  j                  |k(  sJ ‚|j                  g d¢«      j                  «       j                  |j                  k(  sJ ‚y )Nr   r   r   r   rn   é&   éL   )r%   r&   r   r   rW   r)   r'   ÚtypesÚis_decimal128r(   ÚscaleÚ
decimal256r   Úpyarrow_dtyper   )r/   r‹   r0   r4   r5   Úexpected_types         r6   Ú-test_groupby_sum_prod_widen_decimal_precisionzITestGroupbyAggPyArrowNative.test_groupby_sum_prod_widen_decimal_precision,  sÇ   € ô �i‰iÜ�S‹\œ7 3›<¬°«Ð6¼jÈÓ>Qô
ˆð ;”˜Ÿ™¢YÓ/°Ó:Ó<ˆÜ�8‰8×!Ñ! 'Ô*ÜŸM™M¨"¨g¯m©mÓ<‰MäŸM™M¨"¨g¯m©mÓ<ˆMØ�|‰|×)Ñ)¨]Ò:Ð:Ð:à�{‰{š9Ó%×)Ñ)Ó+×1Ñ1°S·Y±YÒ>Ð>Ñ>rL   Ú1998Ú998001c           	     óF  — t        j                  t        d«      t        d«      gt        t        j                  dd«      «      ¬«      } t        |j                  ddg«      |«      «       }|j                  d   |k(  sJ ‚|j                  d    t        ||«      «       k(  sJ ‚y )NÚ999r!   r   r   r   )	r%   r&   r   r   r'   r(   rW   r)   r>   )r/   r0   r1   r4   r5   s        r6   Ú+test_groupby_sum_prod_no_precision_overflowzGTestGroupbyAggPyArrowNative.test_groupby_sum_prod_no_precision_overflow@  sŽ   € ô
 �i‰iÜ�U‹^œW U›^Ð,´J¼r¿}¹}ÈQÐPQÓ?RÓ4Sô
ˆð 8”˜Ÿ™ a¨ VÓ,¨hÓ7Ó9ˆØ�{‰{˜1‰~ Ò)Ð)Ð)Ø�{‰{˜1‰~Ð!7¤¨¨hÓ!7Ó!9Ò9Ð9Ñ9rL   zhow, pa_type, values, expectedé   r   l     Ð9V l     `1¯AD4
 é   é%   rŽ   r!   r   é   c           	     ó"  — t        j                  |t        |«      ¬«      } t        |j	                  dgt        |«      z  «      |«      «       }|j                  t        t        j                  dd«      «      k(  sJ ‚|j                  d   |k(  sJ ‚y )Nr   r   é'   r   )
r%   r&   r   rW   r)   rf   r   r'   r“   r>   )r/   rM   r‹   r3   r1   r4   r5   s          r6   Ú+test_groupby_sum_prod_exceeds_max_precisionzGTestGroupbyAggPyArrowNative.test_groupby_sum_prod_exceeds_max_precisionL  sw   € ôB �i‰i˜¤j°Ó&9Ô:ˆØ=”˜Ÿ™ a S¬3¨v«;Ñ%6Ó7¸Ó=Ó?ˆØ�|‰|œz¬"¯-©-¸¸AÓ*>Ó?Ò?Ð?Ð?Ø�{‰{˜1‰~ Ò)Ð)Ñ)rL   z®PyArrow's product wraps silently once the result exceeds int256, so the group result is a wrong (negative) value; this predates the PyArrow-native path and is unchanged by it)Úreasonc           	     ó"  — t        j                  t        ddz  «      t        ddz  «      gt        t        j                  dd«      «      ¬«      }|j                  ddg«      j                  «       }|j                  d   t        ddz  «      k(  sJ ‚y )Nr   r¡   rŒ   r   r   r   éN   )	r%   r&   r   r   r'   r“   r)   r   r>   )r/   r4   r5   s      r6   Ú test_groupby_prod_exceeds_int256z<TestGroupbyAggPyArrowNative.test_groupby_prod_exceeds_int256r  sx   € ô �i‰iÜ�R˜‘V‹_œg b¨"¡f›oÐ.´jÄÇÁÈrÐSTÓAUÓ6Vô
ˆð —‘˜a ˜VÓ$×)Ñ)Ó+ˆØ�{‰{˜1‰~¤¨¨R©£Ò0Ð0Ñ0rL   r:   r;   c           	     ó¸  — t        j                  t        d«      t        d«      t        d«      t        d«      gt        t        j                  dd«      «      ¬«      } t        |j                  g d¢«      |«      «       } t        t        j                  g d	¢«      j                  g d¢«      |«      «       }t        j                  |j                  d
«      |«       y )Nr   r   r   r   r   r   r   rV   ©g      ð?g       @g      @g      @r=   )r%   r&   r   r   r'   r(   rW   r)   ÚtmÚassert_series_equalÚastype)r/   rM   r4   r5   r1   s        r6   Útest_groupby_std_sem_supportedz:TestGroupbyAggPyArrowNative.test_groupby_std_sem_supported€  s�   € ô �i‰iÜ�S‹\œ7 3›<¬°«´w¸s³|ÐDÜœRŸ]™]¨2¨qÓ1Ó2ô
ˆð 9”˜Ÿ™¢\Ó2°CÓ8Ó:ˆØV”7œ2Ÿ9™9Ò%9Ó:×BÑBÂ<ÓPÐRUÓVÓXˆÜ
×Ñ˜vŸ}™}¨YÓ7¸ÕBrL   )r8   r:   r;   Úddofc           	     óÄ  — t        d«      t        d«      t        d«      t        d«      g}t        j                  |t        t        j                  dd«      «      ¬«      } t        |j                  g d¢«      |«      |¬	«      } t        t        j                  g d
¢«      j                  g d¢«      |«      |¬	«      }t        j                  |j                  d«      |«       y )Nr   r   r   r   r   r   r   rV   )r­   r¨   r=   )r   r%   r&   r   r'   r(   rW   r)   r©   rª   r«   )r/   rM   r­   r3   r4   r5   r1   s          r6   Útest_groupby_decimal_ddofz5TestGroupbyAggPyArrowNative.test_groupby_decimal_ddof‹  s¥   € ô ˜#“,¤¨£¬g°c«l¼GÀC»LÐIˆÜ�i‰i˜¤j´·±¸rÀ1Ó1EÓ&FÔGˆØ8”˜Ÿ™¢\Ó2°CÓ8¸dÔCˆØV”7œ2Ÿ9™9Ò%9Ó:×BÑBÂ<ÓPÐRUÓVØô
ˆô 	×Ñ˜vŸ}™}¨YÓ7¸ÕBrL   )r   r   r   c                ó’   — t        j                  g |¬«      } t        |j                  g «      |«      «       }t	        |«      dk(  sJ ‚y )Nr   r   )r%   r&   rW   r)   rf   r^   s        r6   Útest_groupby_emptyz.TestGroupbyAggPyArrowNative.test_groupby_empty—  s?   € ô �i‰i˜ %Ô(ˆØ.”˜Ÿ™ R›¨#Ó.Ó0ˆÜ�6‹{˜aÒÐÑrL   c                óº  — t        j                  g d¢t        j                  t        d«      D �cg c]  }t	        t        |«      «      ‘Œ c}t        t        j                  dd«      «      ¬«      t        j                  t        d«      t        t        j                  «       «      ¬«      dœ«      }|j                  d«      j                  «       }|d	   j                  |d	   j                  k(  sJ ‚|d
   j                  |d
   j                  k(  sJ ‚|d	   j                  «       t	        d«      t	        d«      gk(  sJ ‚|d
   j                  «       ddgk(  sJ ‚y c c}w )NrV   rr   r   r   r   r{   )ÚkeyÚdecÚstringr³   r´   rµ   r   r   rC   rD   )r%   Ú	DataFrameÚarrayr#   r   r$   r   r'   r(   rJ   rµ   r)   r   r   r,   )r/   r2   Údfr5   s       r6   Ú)test_groupby_dataframe_decimal_and_stringzETestGroupbyAggPyArrowNative.test_groupby_dataframe_decimal_and_string§  s  € ä�\‰\â#Ü—x‘xÜ.3°A«hÖ7¨”WœS ›V•_Ò7Ü$¤R§]¡]°2°qÓ%9Ó:ôô Ÿ(™(¤4¨£<´zÄ"Ç)Á)Ã+Ó7NÔOñó	
ˆð —‘˜EÓ"×&Ñ&Ó(ˆØ�e‰}×"Ñ" b¨¡i§o¡oÒ5Ð5Ð5Ø�hÑ×%Ñ%¨¨H©×);Ñ);Ò;Ð;Ð;Ø�e‰}×#Ñ#Ó%¬'°#«,¼À»Ð)EÒEÐEÐEØ�hÑ×&Ñ&Ó(¨S°#¨JÒ6Ð6Ñ6ùò 8s   ¯Ec                óÜ   — t        j                  g d¢|¬«      }|j                  g d¢«      j                  «       }|j                  |j                  k(  sJ ‚|j                  «       ddgk(  sJ ‚y )NrU   r   rV   ÚbaÚdc)r%   r&   r)   r   r   r,   )r/   r   r4   r5   s       r6   Ú"test_groupby_string_sum_falls_backz>TestGroupbyAggPyArrowNative.test_groupby_string_sum_falls_back¹  sZ   € ô �i‰iÒ,°EÔ:ˆØ—‘š\Ó*×.Ñ.Ó0ˆØ�|‰|˜sŸy™yÒ(Ð(Ð(Ø�}‰}‹ 4¨ ,Ò.Ð.Ñ.rL   )r   r:   r8   r;   r   c                óâ   — t        j                  g d¢d¬«      }t        j                  t        d|› d�¬«      5   t        |j                  g d¢«      |«      «        d d d «       y # 1 sw Y   y xY w)NrU   rP   r   zdoes not support operation 'ú'©ÚmatchrV   )r%   r&   r?   ÚraisesÚ	TypeErrorrW   r)   )r/   rM   r4   s      r6   Ú)test_groupby_string_unsupported_ops_raisezETestGroupbyAggPyArrowNative.test_groupby_string_unsupported_ops_raiseÊ  s[   € ô �i‰iÒ,Ð4EÔFˆÜ�]‰]œ9Ð.JÈ3È%ÈqÐ,QÔRñ 	6Ø3ŒG�C—K‘K¢Ó-¨sÓ3Ô5÷	6÷ 	6ñ 	6ús   ¹#A%Á%A.éä  iå  rr   )ó   bó   aó   dó   cÚsÚmsÚusÚns)Úidzpa_type, valuesc                ó�  — t        j                  g |¢d ‘t        |«      ¬«      }t        j                  g d¢g d¢¬«      } t	        |j                  |d¬«      |«      «       }t        j                  |dk(  r|d   d |d	   gn
|d
   d |d   gt        j                  g d¢«      t        |«      ¬«      }t        j                  ||«       y )Nr   )r   r   r   r   r   rm   rt   Frv   r   r   r   r   r!   ©r+   r   )	r%   r&   r   rx   rW   r)   ÚCategoricalIndexr©   rª   )r/   r‹   r3   rM   r4   ri   r5   r1   s           r6   Ú$test_groupby_temporal_binary_min_maxz@TestGroupbyAggPyArrowNative.test_groupby_temporal_binary_min_maxä  s²   € ô �i‰i˜˜&˜ $˜¬z¸'Ó/BÔCˆÜ�~‰~šoº)ÔDˆØ@”˜Ÿ™ T°E˜Ó:¸CÓ@ÓBˆÜ—9‘9à�eŠ|ð �A‰Y˜˜f Q™iÑ(à˜‘)˜T 6¨!¡9Ð-Ü×%Ñ%¢iÓ0Ü˜WÓ%ô
ˆô 	×Ñ˜v xÕ0rL   c                ó  — t        j                  |d   d |d   d gt        |«      ¬«      } t        |j	                  g d¢«      |«      d¬«      }t        j                  d d gddgt        |«      ¬«      }t        j                  ||«       y )Nr   r   r   ©r   r   r   r   Fr[   rÐ   ©r%   r&   r   rW   r)   r©   rª   ©r/   r‹   r3   rM   r4   r5   r1   s          r6   Ú/test_groupby_temporal_binary_all_na_keeps_dtypezKTestGroupbyAggPyArrowNative.test_groupby_temporal_binary_all_na_keeps_dtypeô  su   € ô �i‰i˜ ™ D¨&°©)°TÐ:Ä*ÈWÓBUÔVˆØ8”˜Ÿ™¢\Ó2°CÓ8ÀÔFˆÜ—9‘9˜d D˜\°!°Q°¼zÈ'Ó?RÔSˆÜ
×Ñ˜v xÕ0rL   c                ó6  — t        j                  |d   d |d   |d   gt        |«      ¬«      } t        |j	                  g d¢«      |«      d¬«      }t        j                  d |dk(  r|d   n|d   gddgt        |«      ¬	«      }t        j                  ||«       y )
Nr   r   r!   r   rÔ   ra   r   r   rÐ   rÕ   rÖ   s          r6   Ú.test_groupby_temporal_binary_min_max_min_countzJTestGroupbyAggPyArrowNative.test_groupby_temporal_binary_min_max_min_countý  s–   € ô �i‰iØ�A‰Y˜˜f Q™i¨°©Ð3¼:ÀgÓ;Nô
ˆð 9”˜Ÿ™¢\Ó2°CÓ8À1ÔEˆÜ—9‘9Ø  u¢�6˜!’9°&¸±)Ð<Ø�a�&Ü˜WÓ%ô
ˆô
 	×Ñ˜v xÕ0rL   c                ó’  — t         j                  t         j                  |d d |«      t         j                  |dd  |«      g«      }t        j                  t        |«      «      }|j                  g d¢d¬«      j                  «       }t        j                  |d   |d   gddgt        |«      ¬«      }t        j                  ||«       y )Nr   )r   Nr   r   F)Úsortr   r   rÐ   )r'   Úchunked_arrayr·   r%   r&   r	   r)   r   r   r©   rª   )r/   r‹   r3   Úarrr4   r5   r1   s          r6   Ú1test_groupby_temporal_binary_min_chunked_unsortedzMTestGroupbyAggPyArrowNative.test_groupby_temporal_binary_min_chunked_unsorted  s¬   € ô ×ÑÜ�X‰X�f˜R˜a�j 'Ó*¬B¯H©H°V¸A¸B°ZÀÓ,IÐJó
ˆô �i‰iÔ+¨CÓ0Ó1ˆØ—‘š_°5�Ó9×=Ñ=Ó?ˆÜ—9‘9Ø�A‰Y˜˜q™	Ð"¨1¨a¨&¼
À7Ó8Kô
ˆô 	×Ñ˜v xÕ0rL   )rµ   rO   ÚbinaryÚlarge_binaryc                ój  — d}t        d|z  «      D �cg c]  }d|› �‘Œ	 }}|t        t        j                  «       «      k(  s |t        t        j	                  «       «      k(  r|D �cg c]  }|j                  «       ‘Œ }}t        j                  ||¬«      }t        j                  d|z  «      |z  }|j                  |«      j                  d¬«      }|j                  j                  j                  d¬«       t        j                   ||j                  |«      j                  «       «       y c c}w c c}w )	Ni@œ  r   rk   r   r   ra   T)Úfull)r#   r   r'   rß   rà   Úencoder%   r&   ÚnpÚaranger)   r   r·   Ú	_pa_arrayÚvalidater©   rª   )	r/   r   Úngroupsr2   r3   Úvaluer4   ri   r5   s	            r6   Ú"test_groupby_min_count_many_groupsz>TestGroupbyAggPyArrowNative.test_groupby_min_count_many_groups  sò   € ð ˆÜ#(¨¨W©Ó#5Ö6˜a�A�a�S’'Ð6ˆÐ6Ø”JœrŸy™y›{Ó+Ò+¨u¼
Ä2Ç?Á?ÓCTÓ8UÒ/UØ28Ö9¨�e—l‘l•nÐ9ˆFÐ9Ü�i‰i˜ eÔ,ˆÜ�y‰y˜˜W™Ó%¨Ñ/ˆØ—‘˜TÓ"×&Ñ&°Ð&Ó3ˆØ�‰×Ñ×'Ñ'¨TÐ'Ô2Ü
×Ñ˜v s§{¡{°4Ó'8×'<Ñ'<Ó'>Õ?ùò 7ùâ9s   “D+Á%D0rb   )r   r   r!   r\   c                ó¢  — t        j                  t        t        j	                  d«      «      «      }t        j
                  g d¢g d¢¬«      } t        |j                  |d¬«      |«      ||¬«      }t        j                  t        t        j	                  d«      «      t        j                  g d¢«      ¬	«      }t        j                  ||«       y )
Nrr   rs   rm   rt   Frv   )r\   rb   r!   ©r+   )r%   r&   r	   r'   Únullsrx   rW   r)   rÑ   r©   rª   )r/   rM   r\   rb   r4   ri   r5   r1   s           r6   Útest_groupby_null_min_maxz5TestGroupbyAggPyArrowNative.test_groupby_null_min_max/  s”   € ô
 �i‰iÔ+¬B¯H©H°Q«KÓ8Ó9ˆÜ�~‰~šl²yÔAˆØ@”˜Ÿ™ T°E˜Ó:¸CÓ@Ø Yô
ˆô —9‘9Ü¤§¡¨£Ó,´B×4GÑ4GÊ	Ó4Rô
ˆô 	×Ñ˜v xÕ0rL   c           	     ó  — t         j                  g d¢t         j                  «       «      j                  t         j	                  d«      «      }t        j                  t        |«      «      } t        |j                  g d¢«      |«      d¬«      }t        j                  t        t         j                  |dk(  rdndd g«      j                  t         j	                  d«      «      «      «      }t        j                  ||«       y )Nr"   rÍ   )r   r   r   r   ra   r   r   )r'   r·   Úint64ÚcastÚtime64r%   r&   r	   rW   r)   r©   rª   )r/   rM   rÝ   r4   r5   r1   s         r6   Ú2test_groupby_time64_ns_min_count_keeps_nanosecondszNTestGroupbyAggPyArrowNative.test_groupby_time64_ns_min_count_keeps_nanoseconds>  s±   € ô �h‰h’y¤"§(¡(£*Ó-×2Ñ2´2·9±9¸T³?ÓCˆÜ�i‰iÔ+¨CÓ0Ó1ˆØ5”˜Ÿ™¢YÓ/°Ó5ÀÔBˆÜ—9‘9ÜÜ—‘˜s eš|™!°°DÐ9Ó:×?Ñ?ÄÇ	Á	È$ÃÓPóó
ˆô
 	×Ñ˜v xÕ0rL   )BÚ__name__Ú
__module__Ú__qualname__Ú__doc__r?   ÚmarkÚparametrizer   r7   rB   r'   rµ   Úlarge_stringrK   r%   ÚStringDtyperä   Únanr‰   r   rX   r_   rc   r(   rg   rl   rp   rz   rJ   r~   r„   r‡   rŠ   r“   r$   r–   r›   r¢   Úxfailr¦   r¬   r¯   r±   r¹   r½   rÄ   r   Ú_datesr   Ú_timesÚ_bytesÚdate32Údate64Útime32rò   rß   rà   ÚparamÚ_temporal_binary_casesrÒ   r×   rÙ   rÞ   rê   rî   ró   )Ú.0r‹   r3   r?   r$   s   00000r6   r   r      s°  „ ÙTà‡[�[×ÑØà‘W˜S“\¡7¨3£<±¸³Ð>Ð?Ø‘g˜c“l¡G¨C£L±'¸#³,Ð?Ð@Ø‘W˜S“\¡7¨3£<±¸³Ð>Ð?Ø‘W˜S“\¡7¨3£<±¸³Ð>Ð?Ø‘g˜e“n¡g¨e£n±g¸c³lÐCÐDØ’iÐ ð	
ó
ñ	+ó
ð	+ð ‡[�[×ÑØò	
óñ	'óð	'ð ‡[�[×ÑØà’OÐ$Ø’OÐ$Ø’iÐ ð	
óð ‡[�[×Ñ˜W r§y¡y£{°B·O±OÓ4EÐ&FÓGñ+ó Hóð+ð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑØàˆB�N‰N˜9¨r¯v©vÔ6ØˆB�N‰N˜9¨r¯u©uÔ5Ù�r—y‘y“{Ó#Ù�r—‘Ó(Ó)ð		
ò Rð ó 	ñ+ó	ó 4ð+ð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑØàˆB�N‰N˜9¨r¯v©vÔ6ØˆB�N‰N˜9¨r¯u©uÔ5Ù�r—y‘y“{Ó#Ù�r—‘Ó(Ó)ð		
ò Rð ó 	ñ@ó	ó 4ð@ð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑØàˆB�N‰N˜9¨r¯v©vÔ6ØˆB�N‰N˜9¨r¯u©uÔ5Ù�r—y‘y“{Ó#Ù�r—‘Ó(Ó)ð		
ò Rð ó 	ñ@ó	ó 4ð@ð ‡[�[×ÑØ(ð —‘˜b !Ó$Ù˜“ ¡w¨u£~°tÐ<Ù˜“¡¨£Ð0Øð	ð �Y‰Y‹[Ò0°3¸°*¸eÐDØ�Y‰Y‹[Ò0°3¸°*¸eÐDð		
óñ-óð-ð ‡[�[×ÑØ!ò š<¨%°¨Ð8à�ˆV�a˜�V˜d D˜\Ð*â¢°°t¨}Ð=ð	
ó
ñ7ó
ð7ð ‡[�[×ÑØ!ò š	 E¨4 =Ð1ò #¢O°d¸E°]ÐCð	
ó	ð ‡[�[×Ñ˜ZÒ)FÓGñ7ó Hó	ð7ð ‡[�[×ÑØ àØð	
óñ=óð=ð ‡[�[×Ñ˜Z¨%°¨Ó8Ø‡[�[×ÑØñ ˜“™w s›|©W°S«\¹7À3»<ÐHÙ˜2Ÿ=™=¨¨QÓ/Ó0ðñ �&‹\™: b§i¡i£kÓ2Ð3Ù�&‹\˜>˜2Ÿ>™>¨)¸b¿f¹fÔEÐFð	
ò 6ð ó ñ	Qóó 9ð	Qð ‡[�[×ÑØàØð	
óñ	4óð	4ð ‡[�[×ÑØ˜d S¨# JÐ/°%ºÐ1IÐJóð ‡[�[×ÑØàˆB�N‰N˜9¨r¯v©vÔ6ØˆB�N‰N˜9¨r¯u©uÔ5Ù�r—y‘y“{Ó#ð	
ò
 >ð ó ñ+óóð+ð ‡[�[×ÑØÒIóñ+óð+ð ‡[�[×Ñ˜Z¨%°¨Ó9Ø‡[�[×ÑØ�B—M‘M " aÓ(¨"¯-©-¸¸AÓ*>Ð?ÀSð ó ñ?óó :ð?ð  ‡[�[×ÑØ ¡w¨v£Ð7¸&Á'È(ÓBSÐ9TÐUóñ:óð:ð ‡[�[×ÑØ(ð Ø—‘˜b !Ó$Ù˜“¡'¨+Ó"6Ð7Ù˜˜R ™V™Ó$ð	ð Ø—‘˜b !Ó$Ù˜˜R ™V™Ó$Ð%¨Ñ)Ù˜˜R ™V™Ó$ð	ð Ø—‘˜b !Ó$Ù˜“¡'¨+Ó"6Ð7Ù˜˜R ™V™Ó$ð	ð#	
óñ6	*ó7ð6	*ð ‡[�[×Ñð5ð ó ñ
1óð
1ð ‡[�[×Ñ˜U U¨E NÓ3ñCó 4ðCð ‡[�[×Ñ˜UÒ$9Ó:Ø‡[�[×Ñ˜V¢YÓ/ñCó 0ó ;ðCð ‡[�[×Ñ˜UÒ$9Ó:Ø‡[�[×ÑØá�r—}‘} R¨Ó+Ó,Ù�r—y‘y“{Ó#ØˆB�N‰N˜9¨r¯v©vÔ6ð	
ò
 6ð ó ñ óó ;ð ò7ð$ ‡[�[×ÑØàˆB�N‰N˜9¨r¯v©vÔ6ØˆB�N‰N˜9¨r¯u©uÔ5Ù�r—y‘y“{Ó#ð	
ò
 >ð ó ñ/óð/ð ‡[�[×Ñ˜UÒ$IÓJñ6ó Kð6ñ �4˜˜AÓ¡ T¨1¨aÓ 0±$°t¸QÀÓ2BÁDÈÈqÐRSÓDTÐU€FÙ�1‹g‘t˜A“w¡ Q£©¨a«Ð1€FÚ%€Fð �Y‰Y‹[˜&Ð!Ø�Y‰Y‹[˜&Ð!Ø�Y‰Y�s‹^˜VÐ$Ø�Y‰Y�t‹_˜fÐ%Ø�Y‰Y�t‹_˜fÐ%Ø�Y‰Y�t‹_˜fÐ%Ø�Y‰Y‹[˜&Ð!Ø�_‰_Ó Ð'Ø�Y‰Y�q‹\˜6Ð"ð
 
÷ò áˆG�Vô 	�‰�W˜f¬¨W«Ö6öÐð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑÐ.Ð0FÓGñ1ó Hó 4ð1ð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑÐ.Ð0FÓGñ1ó Hó 4ð1ð ‡[�[×Ñ˜U U¨E NÓ3Ø‡[�[×ÑÐ.Ð0FÓGñ1ó Hó 4ð1ð ‡[�[×ÑÐ.Ð0FÓGñ
1ó Hð
1ð ‡[�[×ÑØá�r—y‘y“{Ó#ØˆB�N‰N˜9Ó%Ù�r—y‘y“{Ó#Ù�r—‘Ó(Ó)ð		
ò Að ó 	ñ
@ó	ð
@ð ‡[�[×Ñ˜[ª)Ó4Ø‡[�[×Ñ˜X¨¨e }Ó5Ø‡[�[×Ñ˜U U¨E NÓ3ñ
1ó 4ó 6ó 5ð
1ð ‡[�[×Ñ˜U U¨E NÓ3ñ
1ó 4ñ
1ùöUs   è+p*r   ÚframeTFrM   )ÚanyÚallr:   r;   ÚidxminÚidxmaxrÝ   rÅ   r   r   r!   )rÆ   rÇ   NrÉ   )rF   rC   NrD   c                ó,   — t        | j                  «      S )N)r$   Útype)rÝ   s    r6   ú<lambda>r  X  s   € ”C˜Ÿ™“M€ rL   rR   c                óh  — t        j                  t        | «      «      }|r|j                  «       n|}|› dt	        j
                  t        |j                  «      «      › d�}t        j                  t        |¬«      5   t        |j                  g d¢«      |«      «        d d d «       y # 1 sw Y   y xY w)Nz is not supported for z dtyperÀ   rÔ   )r%   r&   r	   Úto_frameÚreÚescaper$   r   r?   rÂ   rÃ   rW   r)   )rÝ   rM   r  r4   ÚobjÚmsgs         r6   Ú,test_groupby_unsupported_op_raises_typeerrorr  L  s‡   € ô  �)‰)Ô'¨Ó,Ó
-€CÙ!ˆ#�,‰,Œ. s€CØˆEÐ'¬¯	©	´#°c·i±i³.Ó(AÐ'BÀ&Ð
I€CÜ	�‰”y¨Ô	,ñ 2Ø/Œ�—‘šLÓ)¨3Ó/Ô1÷2÷ 2ñ 2ús   Á<#B(Â(B1Úop_name)r8   r:   r;   r   r   úint64[pyarrow]zfloat64[pyarrow]c                óî  — t        j                  g d¢|¬«      }t        j                  g d¢|dœ«      }|j                  d«      }t	        t
        j                  «       «      } t        || «      «       }|d   j                  |k(  sJ ‚|j                  | «      }|d   j                  |k(  sJ ‚ t        |d   | «      «       }|j                  |k(  sJ ‚|d   j                  | «      }|j                  |k(  sJ ‚y )N)r   r   r!   rr   r   )rC   rC   rF   rF   )r³   Úcolr³   r  )
r%   r·   r¶   r)   r   r'   r=   rW   r   Ú	aggregate)r  r   rÝ   r¸   ÚgroupedÚexpected_dtyper5   s          r6   Ú/test_groupby_cython_agg_pyarrow_dtype_retentionr  c  sä   € ô �(‰(’< uÔ
-€CÜ	�‰Ò2¸3Ñ?Ó	@€BØ�j‰j˜Ó€GÜ¤§
¡
£Ó-€Nà&ŒW�W˜gÓ&Ó(€FØ�%‰=×Ñ .Ò0Ð0Ð0à×Ñ˜wÓ'€FØ�%‰=×Ñ .Ò0Ð0Ð0à-ŒW�W˜U‘^ WÓ-Ó/€FØ�<‰<˜>Ò)Ð)Ð)à�U‰^×%Ñ% gÓ.€FØ�<‰<˜>Ò)Ð)Ñ)rL   c                óà   — t        j                  | d d g d¢¬«      }|j                  d¬«      j                  «       }t        j                  ddgdd	d
g¬«      }t	        j
                  ||«       y )Nr!   )rC   rC   rF   rì   r   )Úlevelr   r   r  rC   rF   )r   r+   )r%   r&   r)   Úsizer©   rª   )Údatar4   r5   r1   s       r6   Ú'test_groupby_series_size_returns_pa_intr"  y  s\   € ä
�)‰)�D˜˜!�H¢OÔ
4€CØ�[‰[˜qˆ[Ó!×&Ñ&Ó(€FÜ�y‰y˜!˜Q˜Ð'7ÀÀS¸zÔJ€HÜ×Ñ˜6 8Õ,rL   c                ó  — t        j                  ddg| | dœ«      }|j                  d«      j                  «       }t        j                  ddggt        j                  dgd¬«      ddgd¬«      }t        j                  ||«       y )	Nr   )ÚAÚBÚCr$  )Únamer%  r&  r  )r+   Úcolumnsr   )r%   r¶   r)   r   ÚIndexr©   Úassert_frame_equal)Údata_missingr¸   r5   r1   s       r6   Ú%test_groupby_count_return_arrow_dtyper,  �  st   € Ü	�‰˜Q ˜F¨¸LÑIÓ	J€BØ�Z‰Z˜‹_×"Ñ"Ó$€FÜ�|‰|Ø
ˆQˆˆÜ�h‰h˜�s Ô%Ø�c�
Øô	€Hô ×Ñ˜& (Õ+rL   )Ú
__future__r   Údatetimer   r   r|   r   r  Únumpyrä   r?   Úpandas.core.dtypes.dtypesr   Úpandasr%   Úpandas._testingÚ_testingr©   Úimportorskipr'   Úpandas.core.arrays.arrow.arrayr	   r   rø   rù   r·   Údictionary_encoder  r  r"  r,  © rL   r6   ú<module>r8     s¥  ðÝ "÷õ Û 	ã Û õó Ý à€V×Ñ˜Ó#€å >÷p1ñ p1ðf ‡�×Ñ˜ 4¨ -Ó0Ø‡�×Ñ˜Ò PÓQØ‡�×ÑØ	à
�‰‘$�t˜Q Ó"¡D¨¨q°!Ó$4°d¹DÀÀqÈ!Ó<LÐMÓNØ
�‰‘$�q“'™4 ›7 D©$¨q«'Ð2Ó3Ø
�‰Ò)Ó*Ø
�‰Ò&Ó'Ø
�‰Ò&Ó'×9Ñ9Ó;Ø
�‰�1�#˜�s˜D 1 #Ð&Ó'ðñ 	"ð ó ñ2óó Ró 1ð2ð ‡�×Ñ˜Ò$AÓBØ‡�×Ñ˜Ð#3Ð5GÐ"HÓIñ*ó Jó Cð*ò(-ó	,rL   