Ë
    ž…jc9  ã                  óÆ  — 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 d dlmZ d dlmZmZmZmZ ej(                  d„ «       Zej(                  d„ «       Zej(                  d„ «       Zej(                  d	„ «       Zej(                  d
„ «       Zej(                  d„ «       Zej(                  d„ «       Zej(                  d„ «       Z G d„ dej:                  «      Zd„ Zd„ Z d„ Z!d„ Z"d„ Z# G d„ de«      Z$ G d„ de$«      Z%e%jM                  «        d„ Z'ejP                  jS                  ddg d¢g d¢fdg d¢g d ¢fg«      d!„ «       Z*d"„ Z+d#„ Z,d$„ Z-d%„ Z.d&„ Z/d'„ Z0d(„ Z1d)„ Z2d*„ Z3d+„ Z4y),é    )ÚannotationsN)ÚPandas4Warning)Úbase)ÚDecimalArrayÚDecimalDtypeÚ	make_dataÚ
to_decimalc                 ó   — t        «       S ©N)r   © ó    úl/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/extension/decimal/test_decimal.pyÚdtyper      s
   € ä‹>Ðr   c                 ó*   — t        t        d«      «      S )Né
   )r   r   r   r   r   Údatar      s   € äœ	 "›Ó&Ð&r   c                 óv   — t        t        d«      D � cg c]  } t        j                  d«      ‘Œ c} «      S c c} w )Nr   é   )r   ÚrangeÚdecimalÚDecimal)Ú_s    r   Údata_for_twosr      s(   € ä´U¸2³YÖ?°œŸ™¨Õ+Ò?Ó@Ð@ùÒ?s   “6c                 óh   — t        t        j                  d«      t        j                  d«      g«      S )NÚNaNé   ©r   r   r   r   r   r   Údata_missingr   $   s$   € äœŸ™¨Ó/´·±ÀÓ1CÐDÓEÐEr   c                 ó�   — t        t        j                  d«      t        j                  d«      t        j                  d«      g«      S )NÚ1Ú2Ú0r   r   r   r   Údata_for_sortingr#   )   s4   € äÜ	�‰˜Ó	œwŸ™¨sÓ3´W·_±_ÀSÓ5IÐJóð r   c                 ó�   — t        t        j                  d«      t        j                  d«      t        j                  d«      g«      S )Nr    r   r"   r   r   r   r   Údata_missing_for_sortingr%   0   s4   € äÜ	�‰˜Ó	œwŸ™¨uÓ5´w·±ÀsÓ7KÐLóð r   c                 ó   — d„ S )Nc                óF   — | j                  «       xr |j                  «       S r   )Úis_nan)ÚxÚys     r   ú<lambda>zna_cmp.<locals>.<lambda>9   s   € ˜Ÿ™›
Ò1 q§x¡x£z€ r   r   r   r   r   Úna_cmpr,   7   s   € á1Ð1r   c            
     óÐ   — t        j                  d«      } t        j                  d«      }t        j                  d«      }t        j                  d«      }t        | | ||||| |g«      S )Nú1.0z0.0ú2.0r   )r   r   r   )ÚbÚaÚcÚnas       r   Údata_for_groupingr4   <   sV   € ä�‰˜Ó€AÜ�‰˜Ó€AÜ�‰˜Ó€AÜ	�‰˜Ó	€BÜ˜˜A˜r 2 q¨!¨Q°Ð2Ó3Ð3r   c                  ó¦  ‡ — e Zd Z	 	 	 	 dd„Zdd„Zdˆ fd„Zˆ fd„Zˆ fd„Zd„ Zd„ Z	d„ Z
ˆ fd	„Zˆ fd
„Zˆ fd„Zˆ fd„Zˆ fd„Zej"                  j%                  d¬«      ˆ fd„«       Zd„ Zej"                  j%                  d¬«      ej"                  j+                  dej.                  ej0                  ej2                  g«      ˆ fd„«       «       Zˆ xZS )ÚTestDecimalArrayc                 ó   — y r   r   )ÚselfÚop_nameÚobjÚothers       r   Ú_get_expected_exceptionz(TestDecimalArray._get_expected_exceptionF   s   € ð r   c                ó   — |dv ryy)N)ÚkurtÚsemFTr   )r8   Úserr9   s      r   Ú_supports_reductionz$TestDecimalArray._supports_reductionK   s   € Ø�oÑ%ØØr   c                óÌ   •— |dk(  rt         ‰| �  |||«      S  t        ||«      |¬«      } t        t        j                  |«      |«      «       }t        j                  ||«       y )NÚcount)Úskipna)ÚsuperÚcheck_reduceÚgetattrÚnpÚasarrayÚtmÚassert_almost_equal)r8   r@   r9   rD   ÚresultÚexpectedÚ	__class__s         €r   rF   zTestDecimalArray.check_reduceP   s[   ø€ Ø�gÒÜ‘7Ñ'¨¨W°fÓ=Ð=à*”W˜S 'Ó*°&Ô9ˆFØ8”wœrŸz™z¨#›°Ó8Ó:ˆHÜ×"Ñ" 6¨8Õ4r   c                óš   •— |dv r5t         j                  j                  t        ¬«      }|j	                  |«       t
        ‰| �  |||«       y )N)r>   Úskewr?   Úmedian©Úraises)ÚpytestÚmarkÚxfailÚNotImplementedErrorÚapplymarkerrE   Útest_reduce_series_numeric)r8   r   Úall_numeric_reductionsrD   ÚrequestrU   rN   s         €r   rY   z+TestDecimalArray.test_reduce_series_numericX   sD   ø€ Ø!Ð%FÑFÜ—;‘;×$Ñ$Ô,?Ð$Ó@ˆDØ×Ñ Ô%Ü‰Ñ*¨4Ð1GÈÕPr   c                óœ   •— |}|dv r5t         j                  j                  t        ¬«      }|j	                  |«       t
        ‰| �  |||«      S )N)rP   rQ   rR   )rT   rU   rV   rW   rX   rE   Útest_reduce_frame)r8   r   rZ   rD   r[   r9   rU   rN   s          €r   r]   z"TestDecimalArray.test_reduce_frame^   sL   ø€ Ø(ˆØÐ(Ñ(Ü—;‘;×$Ñ$Ô,?Ð$Ó@ˆDØ×Ñ Ô%ä‰wÑ(¨Ð/EÀvÓNÐNr   c                óV   — t        j                  |«      }| j                  |||d«       y )Nç      à?)ÚpdÚSeriesÚ_compare_other)r8   r   Úcomparison_opr@   s       r   Útest_compare_scalarz$TestDecimalArray.test_compare_scalarf   s#   € Ü�i‰i˜‹oˆØ×Ñ˜C  }°cÕ:r   c           
     óZ  — t        j                  |«      }t        j                  j	                  d«      j                  g d¢t        |«      «      }t        j                  |«      |D �cg c]!  }t        j                  t        d|«      «      ‘Œ# c}z  }| j                  ||||«       y c c}w )Nr   )éÿÿÿÿr   r   g       @)r`   ra   rH   ÚrandomÚdefault_rngÚchoiceÚlenr   r   Úpowrb   )r8   r   rc   r@   ÚalterÚir;   s          r   Útest_compare_arrayz#TestDecimalArray.test_compare_arrayj   sz   € Ü�i‰i˜‹oˆä—	‘	×%Ñ% aÓ(×/Ñ/²
¼CÀ»IÓFˆä—	‘	˜$“ÈÖ"OÀA¤7§?¡?´3°s¸A³;Õ#?Ò"OÑOˆØ×Ñ˜C  }°eÕ<ùò #Ps   Á(&B(c           	     óÄ  — |}t        j                  |«      }t        j                  «       }|j                  t        j
                     }|j                  t        j                     }d|j                  t        j
                  <   d|j                  t        j                  <   t        j                  |D �cg c]  }t        |dz  «      ‘Œ c}«      }	| j                  |||	«       d|vr| j                  |||dz  «       | j                  ||d«       | j                  ||d«       ||j                  t        j
                  <   ||j                  t        j                  <   y c c}w )Nr   éd   Úmodr   é   )	r`   ra   r   Ú
getcontextÚtrapsÚDivisionByZeroÚInvalidOperationÚintÚcheck_opname)
r8   r   Úall_arithmetic_operatorsr9   r@   ÚcontextÚdivbyzerotrapÚinvalidoptrapÚdr;   s
             r   Útest_arith_series_with_arrayz-TestDecimalArray.test_arith_series_with_arrayr   s  € Ø*ˆÜ�i‰i˜‹oˆä×$Ñ$Ó&ˆØŸ™¤g×&<Ñ&<Ñ=ˆØŸ™¤g×&>Ñ&>Ñ?ˆØ01ˆ�‰”g×,Ñ,Ñ-Ø23ˆ�‰”g×.Ñ.Ñ/ô —	‘	°Ö6¨Aœ3˜q 3™w�<Ò6Ó7ˆØ×Ñ˜#˜w¨Ô.à˜ÑØ×Ñ˜c 7¨C°!©GÔ4à×Ñ˜#˜w¨Ô*Ø×Ñ˜#˜w¨Ô*Ø0=ˆ�‰”g×,Ñ,Ñ-Ø2?ˆ�‰”g×.Ñ.Ò/ùò 7s   Â3Ec                óŠ   •— d}t        j                  t        |d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY w©Nz,ExtensionArray.fillna added a 'copy' keywordF)ÚmatchÚcheck_stacklevel)rJ   Úassert_produces_warningr   rE   Útest_fillna_frame©r8   r   ÚmsgrN   s      €r   r„   z"TestDecimalArray.test_fillna_frameˆ   sA   ø€ Ø<ˆÜ×'Ñ'Ü #¸ô
ñ 	4ô ‰GÑ% lÔ3÷	4÷ 	4ñ 	4úó	    9¹Ac                óŠ   •— d}t        j                  t        |d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY wr€   )rJ   rƒ   ÚDeprecationWarningrE   Útest_fillna_seriesr…   s      €r   rŠ   z#TestDecimalArray.test_fillna_series�   sA   ø€ Ø<ˆÜ×'Ñ'Ü c¸Eô
ñ 	5ô ‰GÑ& |Ô4÷	5÷ 	5ñ 	5úr‡   c                óˆ   •— d}t        j                  t        |¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY w)Nz4conversion from NoneType to Decimal is not supported)r�   )rT   rS   Ú	TypeErrorrE   Útest_fillna_with_noner…   s      €r   r�   z&TestDecimalArray.test_fillna_with_none–   s;   ø€ ð EˆÜ�]‰]œ9¨CÔ0ñ 	8Ü‰GÑ)¨,Ô7÷	8÷ 	8ñ 	8ús	   Ÿ8¸Ac                óŠ   •— d}t        j                  t        |d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY wr€   )rJ   rƒ   r‰   rE   Útest_fillna_limit_framer…   s      €r   r�   z(TestDecimalArray.test_fillna_limit_framež   sA   ø€ à<ˆÜ×'Ñ'Ü c¸Eô
ñ 	:ô ‰GÑ+¨LÔ9÷	:÷ 	:ñ 	:úr‡   c                óŠ   •— d}t        j                  t        |d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY wr€   )rJ   rƒ   r‰   rE   Útest_fillna_limit_seriesr…   s      €r   r‘   z)TestDecimalArray.test_fillna_limit_series¦   sA   ø€ à<ˆÜ×'Ñ'Ü c¸Eô
ñ 	;ô ‰GÑ,¨\Ô:÷	;÷ 	;ñ 	;úr‡   zcopy keyword is missing)Úreasonc                ó$   •— t         ‰| �  |«       y r   )rE   Útest_fillna_readonly)r8   r   rN   s     €r   r”   z%TestDecimalArray.test_fillna_readonly®   s   ø€ ä‰Ñ$ \Õ2r   c                ó’   — t        j                  |«      }|j                  j                  t	        |«      v sJ ‚dt	        |«      v sJ ‚y )Nz	Decimal: )r`   ra   r   ÚnameÚrepr)r8   r   r@   s      r   Útest_series_reprz!TestDecimalArray.test_series_repr²   s=   € ô �i‰i˜‹oˆØ�z‰z�‰¤$ s£)Ñ+Ð+Ð+Øœd 3›iÑ'Ð'Ñ'r   z%Inconsistent array-vs-scalar behaviorÚufuncc                ó&   •— t         ‰| �  ||«       y r   )rE   Ú#test_unary_ufunc_dunder_equivalence)r8   r   r™   rN   s      €r   r›   z4TestDecimalArray.test_unary_ufunc_dunder_equivalence¹   s   ø€ ô 	‰Ñ3°D¸%Õ@r   )r9   ÚstrÚreturnz4type[Exception] | tuple[type[Exception], ...] | None)r@   ú	pd.Seriesr9   rœ   r�   Úbool)r@   rž   r9   rœ   rD   rŸ   )Ú__name__Ú
__module__Ú__qualname__r<   rA   rF   rY   r]   rd   rn   r~   r„   rŠ   r�   r�   r‘   rT   rU   rV   r”   r˜   ÚparametrizerH   ÚpositiveÚnegativeÚabsr›   Ú__classcell__)rN   s   @r   r6   r6   E   sÚ   ø„ ðØðà	=óó
õ
5ôQôOò;ò=ò@ô,4ô5ô8ô:ô;ð ‡[�[×ÑÐ7ÐÓ8ó3ó 9ð3ò(ð ‡[�[×ÑÐEÐÓFØ‡[�[×Ñ˜W r§{¡{°B·K±KÀÇÁÐ&HÓIóAó Jó GôAr   r6   c                 óN  — t        t        j                  d«      t        j                  d«      g«      } | j                  ddgdt        j                  d«      ¬«      }t        t        j                  d«      t        j                  d«      g«      }t	        j
                  ||«       y )Nr.   r/   r   rf   Tz-1.0)Ú
allow_fillÚ
fill_value)r   r   r   ÚtakerJ   Úassert_extension_array_equal©ÚarrrL   rM   s      r   Ú test_take_na_value_other_decimalr¯   ¿   su   € Ü
œŸ™¨Ó.´·±ÀÓ0FÐGÓ
H€CØ�X‰X�q˜"�g¨$¼7¿?¹?È6Ó;RˆXÓS€FÜœWŸ_™_¨UÓ3´W·_±_ÀVÓ5LÐMÓN€HÜ×#Ñ# F¨HÕ5r   c                 ó2  — t        «       } t        j                  g d¢| ¬«      }t        t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      g| ¬«      }t        j                  |«      }t        j                  ||«       y )N)r   r   r   ©r   r   r   r   )r   r`   ra   r   r   r   rJ   Úassert_series_equal)r   r@   r®   Úexps       r   Ú6test_series_constructor_coerce_data_to_extension_dtyper´   Æ   sj   € Ü‹N€EÜ
�)‰)’I UÔ
+€Cä
Ü	�‰˜Ó	œWŸ_™_¨QÓ/´·±ÀÓ1CÐDØô€Cô �)‰)�C‹.€CÜ×Ñ˜3 Õ$r   c                 ó\  — t        t        j                  d«      g«      } t        j                  | t        «       ¬«      }t        j                  | «      }t        j                  ||«       t        j                  | d¬«      }t        j                  dg«      }t        j                  ||«       y )Nú10.0r±   Úint64r   )r   r   r   r`   ra   r   rJ   r²   r­   s      r   Ú"test_series_constructor_with_dtyper¸   Ò   sv   € Ü
œŸ™¨Ó/Ð0Ó
1€CÜ�Y‰Y�s¤,£.Ô1€FÜ�y‰y˜‹~€HÜ×Ñ˜6 8Ô,ä�Y‰Y�s 'Ô*€FÜ�y‰y˜"˜‹€HÜ×Ñ˜6 8Õ,r   c                 óª  — t        t        j                  d«      g«      } t        j                  d| it        «       ¬«      }t        j                  d| i«      }t        j                  ||«       t        t        j                  d«      g«      } t        j                  d| id¬«      }t        j                  ddgi«      }t        j                  ||«       y )Nr¶   ÚAr±   r·   r   )r   r   r   r`   Ú	DataFramer   rJ   Úassert_frame_equalr­   s      r   Ú%test_dataframe_constructor_with_dtyper½   Ý   sž   € Ü
œŸ™¨Ó/Ð0Ó
1€Cä�\‰\˜3 ˜*¬L«NÔ;€FÜ�|‰|˜S #˜JÓ'€HÜ×Ñ˜& (Ô+ä
œŸ™¨Ó/Ð0Ó
1€CÜ�\‰\˜3 ˜*¨GÔ4€FÜ�|‰|˜S 2 $˜KÓ(€HÜ×Ñ˜& (Õ+r   c                ór  — t        j                  t        t        j                  d«      g«      d¬«      }t        j
                  «       }d|_         | |«      }|j                  t        |«      «      }| t         j                  u r|d   }|j                  j                  j                  |j                  k(  sJ ‚y )Nr   r1   )r–   rr   )r`   ra   r   r   r   ÚContextÚprecÚastyper   r»   r   rz   )Úframe_or_seriesr   ÚctxrL   s       r   Útest_astype_dispatchesrÄ   ê   sŒ   € ô
 �9‰9”\¤7§?¡?°1Ó#5Ð"6Ó7¸cÔB€DÜ
�/‰/Ó
€CØ€C„Há˜4Ó €Dà�[‰[œ cÓ*Ó+€Fàœ"Ÿ,™,Ñ&Ø˜‘ˆà�<‰<×Ñ×$Ñ$¨¯©Ò0Ð0Ñ0r   c                  ó(   — e Zd ZdZedddœd„«       Zy)ÚDecimalArrayWithoutFromSequencez:Helper class for testing error handling in _from_sequence.NF)r   Úcopyc               ó   — t        d«      ‚)NzFor the test)ÚKeyError)ÚclsÚscalarsr   rÇ   s       r   Ú_from_sequencez.DecimalArrayWithoutFromSequence._from_sequence   s   € ä�~Ó&Ð&r   )r    r¡   r¢   Ú__doc__ÚclassmethodrÌ   r   r   r   rÆ   rÆ   ý   s   „ ÙDàØ.2¸ó 'ó ñ'r   rÆ   c                  ó   — e Zd Zed„ «       Zy)ÚDecimalArrayWithoutCoercionc                ó(   — | j                  |d¬«      S )NF)Úcoerce_to_dtype)Ú_create_method)rÊ   Úops     r   Ú_create_arithmetic_methodz5DecimalArrayWithoutCoercion._create_arithmetic_method  s   € à×!Ñ! "°eÐ!Ó<Ð<r   N)r    r¡   r¢   rÎ   rÕ   r   r   r   rÐ   rÐ     s   „ Øñ=ó ñ=r   rÐ   c                 ó  — t        t        j                  d«      t        j                  d«      g«      } | | z   }t        j                  t        j                  d«      t        j                  d«      gd¬«      }t        j                  ||«       y )Nr.   r/   z4.0Úobjectr±   )rÐ   r   r   rH   ÚarrayrJ   Úassert_numpy_array_equalr­   s      r   Ú$test_scalar_ops_from_sequence_raisesrÚ     sj   € ô &¤w§¡°uÓ'=¼w¿¹ÈuÓ?UÐ&VÓ
W€CØ�3‰Y€FÜ�x‰xÜ	�‰˜Ó	¤§¡°Ó!7Ð8Àô€Hô ×Ñ ¨Õ1r   z#reverse, expected_div, expected_modF)r   r   r   r   )r   r   r   r   T)r   r   r   r   )r   r   r   r   c                óä   — t        g d¢«      }| rt        d|«      \  }}nt        |d«      \  }}t        |«      }t        |«      }t        j                  ||«       t        j                  ||«       y )N)r   r   é   é   r   )r	   ÚdivmodrJ   r¬   )ÚreverseÚexpected_divÚexpected_modr®   Údivrq   s         r   Útest_divmod_arrayrã     sc   € ô ’\Ó
"€CÙÜ˜!˜S“>‰ˆ‰Sä˜#˜q“>‰ˆˆSÜ˜lÓ+€LÜ˜lÓ+€Lä×#Ñ# C¨Ô6Ü×#Ñ# C¨Õ6r   c                ó  — | d d }t        j                  |t        dd«      ¬«      }t        j                  |«      }t        j                  t        j                  |«      t        dd«      ¬«      }t        j                  ||«       y )Nrr   rÜ   é   ©Úindex)r`   ra   r   rH   r¦   rJ   r²   )r   r1   ÚsrL   rM   s        r   Útest_ufunc_fallbackré   +  s^   € ØˆRˆaˆ€AÜ
�	‰	�!œ5  A›;Ô'€AÜ�V‰V�A‹Y€FÜ�y‰yœŸ™ ›¬%°°1«+Ô6€HÜ×Ñ˜6 8Õ,r   c                 óÄ   — t        g d¢«      } t        j                  | «      }t        t        j                  | j                  «      «      }t	        j
                  ||«       y ©N©r   r   rÜ   )r	   rH   r³   Ú_datarJ   r¬   )r1   rL   rM   s      r   Útest_array_ufuncrî   3  s?   € Ü’9Ó€AÜ�V‰V�A‹Y€FÜœ"Ÿ&™& §¡›/Ó*€HÜ×#Ñ# F¨HÕ5r   c                 ó  — t        g d¢«      } t        j                  | «      }t        j                  |«      }t        j                  t        t        j                  | j
                  «      «      «      }t        j                  ||«       y rë   )r	   r`   ra   rH   r³   rí   rJ   r²   ©r1   rè   rL   rM   s       r   Útest_array_ufunc_seriesrñ   :  sU   € Ü’9Ó€AÜ
�	‰	�!‹€AÜ�V‰V�A‹Y€FÜ�y‰yœ¤B§F¡F¨1¯7©7£OÓ4Ó5€HÜ×Ñ˜6 8Õ,r   c                 ó>  — t        g d¢«      } t        j                  | «      }t        j                  |t        j                  d«      «      }t        j                  t        j                  | t        j                  d«      «      «      }t        j                  ||«       y )Nrì   r   )	r	   r`   ra   rH   Úaddr   r   rJ   r²   rð   s       r   Ú$test_array_ufunc_series_scalar_otherrô   B  sd   € ä’9Ó€AÜ
�	‰	�!‹€AÜ�V‰V�A”w—‘ qÓ)Ó*€FÜ�y‰yœŸ™ ¤7§?¡?°1Ó#5Ó6Ó7€HÜ×Ñ˜6 8Õ,r   c                 ó8  — t        g d¢«      } t        j                  | «      }t        j                  t        g d¢«      «      }t        j                  || «      }t        j                  | |«      }t        j                  ||«       t        j                  ||«       y )Nrì   )r   rÝ   é   )r	   r`   ra   rH   ró   rJ   r²   )r1   rè   rM   Úr1Úr2s        r   Útest_array_ufunc_series_deferrù   K  sj   € Ü’9Ó€AÜ
�	‰	�!‹€Aä�y‰yœ¢IÓ.Ó/€HÜ	�‰��1‹€BÜ	�‰��1‹€Bä×Ñ˜2˜xÔ(Ü×Ñ˜2˜xÕ(r   c                 ó
  — t        d«      } t        j                  g d¢g d¢t        | «      dœ«      }t        j                  t        | d   | d   g«      «      }|j                  d«      d   j                  d	„ «      }t        j                  ||d
¬«       |d   j                  |d   «      j                  d„ «      }t        j                  ||d
¬«       t        j                  t        | d   | d   | d   g«      t        j                  j                  g d¢«      ¬«      }|j                  ddg«      d   j                  d„ «      }t        j                  ||d
¬«       |d   j                  |d   |d   g«      j                  d„ «      }t        j                  ||d
¬«       t        j                  ddgt        | d   | d   g«      dœ«      }|j                  d«      j                  d„ «      }t        j                  ||d
¬«       y )Nrr   ©r   r   r   r   r   )r   r   r   r   r   )Úid1Úid2Údecimalsr   rÜ   rü   rþ   c                ó    — | j                   d   S ©Nr   ©Úiloc©r)   s    r   r+   z"test_groupby_agg.<locals>.<lambda>b  s   € ¸¿¹À¹€ r   F©Úcheck_namesc                ó    — | j                   d   S r   r  r  s    r   r+   z"test_groupby_agg.<locals>.<lambda>d  s   € ¸Q¿V¹VÀA¹Y€ r   r   )©r   r   )r   r   )r   r   ræ   rý   c                ó    — | j                   d   S r   r  r  s    r   r+   z"test_groupby_agg.<locals>.<lambda>l  s   € À!Ç&Á&ÈÁ)€ r   c                ó    — | j                   d   S r   r  r  s    r   r+   z"test_groupby_agg.<locals>.<lambda>n  s   € È!Ï&É&ÐQRÉ)€ r   )rý   rþ   c                ó    — | j                   d   S r   r  r  s    r   r+   z"test_groupby_agg.<locals>.<lambda>s  s   € ¨Q¯V©V°A©Y€ r   )r   r`   r»   r   ra   r	   ÚgroupbyÚaggrJ   r²   Ú
MultiIndexÚfrom_tuplesr¼   )r   ÚdfrM   rL   s       r   Útest_groupby_aggr  W  sÀ  € ô �Q‹<€DÜ	�‰ÚªÄ\ÐRVÓEWÑXó
€Bô
 �y‰yœ T¨!¡W¨d°1©gÐ$6Ó7Ó8€HØ�Z‰Z˜Ó˜zÑ*×.Ñ.Ñ/BÓC€FÜ×Ñ˜6 8¸Õ?Ø�
‰^×#Ñ# B u¡IÓ.×2Ñ2Ñ3FÓG€FÜ×Ñ˜6 8¸Õ?ô �y‰yÜ�D˜‘G˜T !™W d¨1¡gÐ.Ó/Ü�m‰m×'Ñ'Ò(@ÓAô€Hð �Z‰Z˜ ˜Ó'¨
Ñ3×7Ñ7Ñ8KÓL€FÜ×Ñ˜6 8¸Õ?Ø�
‰^×#Ñ# R¨¡Y°°5±	Ð$:Ó;×?Ñ?Ñ@SÓT€FÜ×Ñ˜6 8¸Õ?ô �|‰| Q¨ F¼
ÀDÈÁGÈTÐRSÉWÐCUÓ8VÑWÓX€HØ�Z‰Z˜Ó×"Ñ"Ñ#6Ó7€FÜ×Ñ˜& (¸Ö>r   c                ó|  — d„ }| j                  t        d|d¬«       t        d«      }t        j                  g d¢t        |«      dœ«      }t        j
                  t        |d   |d	   z   |d
   z   |d   |d   z   g«      «      }|j                  d«      d   j                  d„ «      }t        j                  ||d¬«       t        j
                  t        |«      «      }t        j                  g d¢t        j                  ¬«      }|j                  |«      j                  d„ «      }t        j                  ||d¬«       y )Nc                óR   — t        j                  t        j                  | «      «      S r   )rH   ÚsumrØ   )r8   s    r   ÚDecimalArray__my_sumz8test_groupby_agg_ea_method.<locals>.DecimalArray__my_sum{  s   € Ü�v‰v”b—h‘h˜t“nÓ%Ð%r   Úmy_sumF©Úraisingrr   rû   )Úidrþ   r   r   r   rÜ   rÝ   r  rþ   c                ó6   — | j                   j                  «       S r   ©Úvaluesr  r  s    r   r+   z,test_groupby_agg_ea_method.<locals>.<lambda>„  s   € ¸¿¹¿¹Ó8I€ r   r  r±   c                ó6   — | j                   j                  «       S r   r  r  s    r   r+   z,test_groupby_agg_ea_method.<locals>.<lambda>ˆ  s   € ¨a¯h©h¯o©oÓ.?€ r   )Úsetattrr   r   r`   r»   ra   r	   r  r  rJ   r²   rH   rØ   r·   )Úmonkeypatchr  r   r  rM   rL   rè   Úgroupers           r   Útest_groupby_agg_ea_methodr   w  s  € ò&ð ×Ñœ hÐ0DÈeÐÔTä�Q‹<€DÜ	�‰š_¼,ÀtÓ:LÑMÓ	N€BÜ�y‰yœ T¨!¡W¨t°A©wÑ%6¸¸a¹Ñ%@À$ÀqÁ'ÈDÐQRÉGÑBSÐ$TÓUÓV€Hà�Z‰Z˜Ó˜jÑ)×-Ñ-Ñ.IÓJ€FÜ×Ñ˜6 8¸Õ?Ü
�	‰	”,˜tÓ$Ó%€AÜ�h‰h’¬b¯h©hÔ7€GØ�Y‰Y�wÓ×#Ñ#Ñ$?Ó@€FÜ×Ñ˜6 8¸Ö?r   c                ó@  — d
d„}| j                  t        d|d¬«       t        d«      }t        j                  t        |«      «      }t        j
                  |t        t        |«      «      dœ«      }||dkD      ||dkD      |j                  d    |j                  d	    y )Nc                ó   — t        d«      ‚)Nz0tried to convert a DecimalArray to a numpy array)Ú	Exception)r8   r   s     r   ÚDecimalArray__array__z;test_indexing_no_materialize.<locals>.DecimalArray__array__‘  s   € ÜÐJÓKÐKr   Ú	__array__Fr  r   )r1   r0   r_   r   )r   r1   r   )	r  r   r   r`   ra   r»   r   rj   Úat)r  r$  r   rè   r  s        r   Útest_indexing_no_materializer'  Œ  sˆ   € ó
Lð ×Ñœ kÐ3HÐRWÐÔXä�R‹=€DÜ
�	‰	”,˜tÓ$Ó%€AÜ	�‰˜A¤E¬#¨a«&£MÑ2Ó	3€Bð €aˆ#�g‚JØ€qˆ3�w‚KØ‡D�Dˆ‚GØ‡E�Eˆ&ƒMr   c                 óÊ  — t        j                  d«      t        j                  d«      g} t        j                  t        j                  d«      t        j                  d«      gd¬«      }t	        j                  | d¬«      }|j                  d¬	«      }t        j                  ||«       t	        j                  |«      j                  d¬	«      }t        j                  ||«       y )
Nz1.1111z2.2222z1.11z2.22r×   r±   r   r   )rþ   )	r   r   rH   rØ   r`   Úto_numpyrJ   rÙ   ra   )r  rM   r1   rL   s       r   Útest_to_numpy_keywordr*  ¡  s¥   € ä�o‰o˜hÓ'¬¯©¸Ó)BÐC€FÜ�x‰xÜ	�‰˜Ó	 ¤'§/¡/°&Ó"9Ð:À(ô€Hô 	�‰�˜yÔ)€AØ�Z‰Z ˆZÓ#€FÜ×Ñ ¨Ô1ä�Y‰Y�q‹\×"Ñ"¨AÐ"Ó.€FÜ×Ñ ¨Õ1r   c                 ó¼  — t        j                  dt        j                  d«      t        j                  d«      gid¬«      } | j	                  t        «       «      }d| j                  d<   t        j                  dt        j                  d«      t        j                  d«      git        «       ¬«      }t        j                  |j                  |j                  «       y )Nr1   r   rÜ   r×   r±   r   r  )
r`   r»   r   r   rÁ   r   r  rJ   Úassert_equalr  )r  Údf2rM   s      r   Útest_array_copy_on_writer.  ¯  s”   € Ü	�‰�sœWŸ_™_¨QÓ/´·±ÀÓ1CÐDÐEÈXÔ	V€BØ
�)‰)”L“NÓ
#€CØ€B‡G�GˆD�MÜ�|‰|Ø	Œw�‰˜qÓ!¤7§?¡?°1Ó#5Ð6Ð7¼|»~ô€Hô ‡O�O�C—J‘J §¡Õ0r   )5Ú
__future__r   r   ÚnumpyrH   rT   Úpandas.errorsr   Úpandasr`   Úpandas._testingÚ_testingrJ   Úpandas.tests.extensionr   Ú$pandas.tests.extension.decimal.arrayr   r   r   r	   Úfixturer   r   r   r   r#   r%   r,   r4   ÚExtensionTestsr6   r¯   r´   r¸   r½   rÄ   rÆ   rÐ   Ú_add_arithmetic_opsrÚ   rU   r£   rã   ré   rî   rñ   rô   rù   r  r   r'  r*  r.  r   r   r   ú<module>r:     s·  ðÝ "ã ã Û å (ã Ý Ý '÷ó ð ‡�ñó ðð ‡�ñ'ó ð'ð ‡�ñAó ðAð ‡�ñFó ðFð ‡�ñó ðð ‡�ñó ðð ‡�ñ2ó ð2ð ‡�ñ4ó ð4ôwA�t×*Ñ*ô wAòt6ò	%ò-ò
,ò1ô&' lô 'ô=Ð"Aô =ð × /Ñ /Ô 1ò2ð ‡�×ÑØ)ØŠ\š<Ð(¨4²º|Ð*LÐMóñ7ó	ð7ò-ò6ò-ò-ò	)ò?ò@@ò*ò*2ó1r   