Ë
    ¤eh
  ã                   óp   — d Z ddlZddlZddlmZmZmZmZ ddl	m
Z ddlmZmZ d
d„Zdd„Zddefd„Zd	„ Zy)z)
Assertion helpers for arithmetic tests.
é    N)Ú	DataFrameÚIndexÚSeriesÚarray)ÚBooleanArrayÚNumpyExtensionArrayc                 óØ   — t        j                  t        |¬«      5  | |z    ddd«       t        j                  t        |¬«      5  || z    ddd«       y# 1 sw Y   Œ3xY w# 1 sw Y   yxY w)z§
    Helper to assert that left and right cannot be added.

    Parameters
    ----------
    left : object
    right : object
    msg : str, default "cannot add"
    ©ÚmatchN©ÚpytestÚraisesÚ	TypeError©ÚleftÚrightÚmsgs      ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/arithmetic/common.pyÚassert_cannot_addr      s]   € ô 
�‰”y¨Ô	,ñ ØˆuŠ÷ä	�‰”y¨Ô	,ñ Ø�Š÷ð ÷ð ú÷ð ús   œAÁA ÁAÁ A)c                 ó¬  — t        j                  t        |¬«      5  | |z    ddd«       t        j                  t        |¬«      5  || z    ddd«       t        j                  t        |¬«      5  | |z
   ddd«       t        j                  t        |¬«      5  || z
   ddd«       y# 1 sw Y   Œ…xY w# 1 sw Y   ŒhxY w# 1 sw Y   ŒKxY w# 1 sw Y   yxY w)z»
    Helper to assert that left and right can be neither added nor subtracted.

    Parameters
    ----------
    left : object
    right : object
    msg : str or None, default None
    r
   Nr   r   s      r   Úassert_invalid_addsub_typer   $   s±   € ô 
�‰”y¨Ô	,ñ ØˆuŠ÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ ØˆuŠ÷ä	�‰”y¨Ô	,ñ Ø�Š÷ð ÷ð ú÷ð ú÷ð ú÷ð ús/   œB&ÁB2Á.B>ÂC
Â&B/Â2B;Â>CÃ
CÚis_cmpc                 ón  — t        | t        «      st        |t        «      rt        S t        | t        «      st        |t        «      r(|r t        | t        «      rt        j
                  S t        S t        | t        «      st        |t        «      r|rt        j
                  S t        S t        j                  S )zÛ
    Get the box to use for 'expected' in an arithmetic or comparison operation.

    Parameters
    left : Any
    right : Any
    is_cmp : bool, default False
        Whether the operation is a comparison method.
    )Ú
isinstancer   r   r   Únpr   ÚtmÚto_array)r   r   r   s      r   Úget_upcast_boxr   8   sx   € ô �$œ	Ô"¤j°¼	Ô&BÜÐÜ�$œÔ¤:¨e´VÔ#<Ù”j ¤uÔ-ä—8‘8ˆOÜˆÜ�$œÔ¤*¨U´EÔ":ÙÜ—8‘8ˆOÜˆÜ�;‰;Ðó    c                 ó¶  — |t         t        fvr|nt        j                  }d„ }|}t        |t         «      r t        | t        «      rt        j                  } || |k(  «      } |t        j
                  |j                  t        j                  ¬«      «      }t        j                  ||«        ||| k(  «      }t        j                  | ||«      «        || |k7  «      }t        j                  || «        ||| k7  «      }t        j                  | || «      «       dj                  g d¢«      }t        j                  t        |¬«      5  | |k   ddd«       t        j                  t        |¬«      5  | |k   ddd«       t        j                  t        |¬«      5  | |kD   ddd«       t        j                  t        |¬«      5  | |k\   ddd«       t        j                  t        |¬«      5  || k   ddd«       t        j                  t        |¬«      5  || k   ddd«       t        j                  t        |¬«      5  || kD   ddd«       t        j                  t        |¬«      5  || k\   ddd«       y# 1 sw Y   �Œ*xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒñxY w# 1 sw Y   ŒÔxY w# 1 sw Y   Œ·xY w# 1 sw Y   ŒšxY w# 1 sw Y   Œ}xY w# 1 sw Y   yxY w)a  
    Assert that comparison operations with mismatched types behave correctly.

    Parameters
    ----------
    left : np.ndarray, ExtensionArray, Index, or Series
    right : object
    box : {pd.DataFrame, pd.Series, pd.Index, pd.array, tm.to_array}
    c                 óˆ   — t        | t        «      r| j                  S t        | t        «      r| j	                  t
        «      S | S ©N)r   r   Ú_ndarrayr   ÚastypeÚbool)Úxs    r   Úxbox2z(assert_invalid_comparison.<locals>.xbox2`   s6   € ô �aÔ,Ô-Ø—:‘:ÐÜ�aœÔ&à—8‘8œD“>Ð!Øˆr   )Údtypeú|)zInvalid comparison betweenzCannot compare typeznot supported betweenzinvalid type promotionz¿The DTypes <class 'numpy.dtype\[datetime64\]'> and <class 'numpy.dtype\[int64\]'> do not have a common DType. For example they cannot be stored in a single array unless the dtype is `object`.r
   N)r   r   r   r   r   ÚzerosÚshapeÚbool_r   Úassert_equalÚjoinr   r   r   )	r   r   ÚboxÚxboxr'   Úrev_boxÚresultÚexpectedr   s	            r   Úassert_invalid_comparisonr4   Q   sG  € ð œe¤U˜^Ñ+‰3´·±€Dòð €GÜ�%œÔ¤J¨t´VÔ$<Ü—(‘(ˆá�4˜5‘=Ó!€FÙ”B—H‘H˜VŸ\™\´·±Ô:Ó;€Hä‡O�O�F˜HÔ%á�5˜D‘=Ó!€FÜ‡O�O�F™G HÓ-Ô.á�4˜5‘=Ó!€FÜ‡O�O�F˜X˜IÔ&á�5˜D‘=Ó!€FÜ‡O�O�F™G X IÓ.Ô/à
�(‰(ò	
ó€Cô 
�‰”y¨Ô	,ñ ØˆuŠ÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ ØˆuŠ÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ Ø�Š÷ä	�‰”y¨Ô	,ñ Ø�Š÷ð ÷ñ ú÷ñ ú÷ð ú÷ð ú÷ð ú÷ð ú÷ð ú÷ð ús`   ÅI9Å4JÆJÇJÇ/J+ÈJ7ÉKÉ*KÉ9JÊJÊJÊJ(Ê+J4Ê7K ËKËK)z
cannot addr"   )F)Ú__doc__Únumpyr   r   Úpandasr   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.arraysr   r   r   r   r%   r   r4   © r   r   ú<module>r<      sB   ðñó Û ÷ó õ ÷óó ñ(¨ó ó2Jr   