§
    tŠtjM  ã                   ór   — 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dS )z)
Assertion helpers for arithmetic tests.
é    N)Ú	DataFrameÚIndexÚSeriesÚarray)ÚBooleanArrayÚNumpyExtensionArrayú
cannot addc                 óè   — t          j        t          |¬¦  «        5  | |z    ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  || z    ddd¦  «         dS # 1 swxY w Y   dS )a  
    Helper function to assert that two objects cannot be added.

    Parameters
    ----------
    left : object
        The first operand.
    right : object
        The second operand.
    msg : str, default "cannot add"
        The error message expected in the TypeError.
    ©ÚmatchN©ÚpytestÚraisesÚ	TypeError©ÚleftÚrightÚmsgs      ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/arithmetic/common.pyÚassert_cannot_addr      sù   € õ 
Œ•y¨Ð	,Ñ	,Ô	,ð ð Øˆu‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�‰ˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   œ.®2µ2ÁA'Á'A+Á.A+c                 óÈ  — t          j        t          |¬¦  «        5  | |z    ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  || z    ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  | |z
   ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  || z
   ddd¦  «         dS # 1 swxY w Y   dS )a1  
    Helper function to assert that two objects can
    neither be added nor subtracted.

    Parameters
    ----------
    left : object
        The first operand.
    right : object
        The second operand.
    msg : str or None, default None
        The error message expected in the TypeError.
    r   Nr   r   s      r   Úassert_invalid_addsub_typer   (   sß  € õ 
Œ•y¨Ð	,Ñ	,Ô	,ð ð Øˆu‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Øˆu‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�‰ˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sB   œ.®2µ2ÁA&Á&A*Á-A*ÂBÂB"Â%B"ÃCÃCÃCFÚis_cmpc                 ó¢  — 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   @   s´   € õ �$�	Ñ"Ô"ð ¥j°½	Ñ&BÔ&Bð ÝÐÝ�$�ÑÔð ¥:¨eµVÑ#<Ô#<ð Øð 	•j ¥uÑ-Ô-ð 	å”8ˆOÝˆÝ�$�ÑÔð ¥*¨UµEÑ":Ô":ð Øð 	Ý”8ˆOÝˆÝŒ;Ðó    c                 ó¬  — |t           t          fvr|nt          j        }d„ } || |k    ¦  «        } |t          j        |j        t          j        ¬¦  «        ¦  «        }t          j        ||¦  «          ||| k    ¦  «        }t          j        | ||¦  «        ¦  «          || |k    ¦  «        }t          j        || ¦  «          ||| k    ¦  «        }t          j        | || ¦  «        ¦  «         d                     g d¢¦  «        }t          j
        t          |¬¦  «        5  | |k      ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  | |k     ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  | |k     ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  | |k     ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  || k      ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  || k     ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  || k     ddd¦  «         n# 1 swxY w Y   t          j
        t          |¬¦  «        5  || k     ddd¦  «         dS # 1 swxY w Y   dS )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|                      t
          ¦  «        S | S ©N)r   r   Ú_ndarrayr   ÚastypeÚbool)Úxs    r   Úxbox2z(assert_invalid_comparison.<locals>.xbox2h   sF   € õ �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   ÚzerosÚshapeÚbool_r   Úassert_equalÚjoinr   r   r   )r   r   ÚboxÚxboxr(   ÚresultÚexpectedr   s           r   Úassert_invalid_comparisonr4   Y   sÃ  € ð �e¥U˜^Ð+Ð+ˆ3ˆ3µ´€Dðð ð ð ˆU�4˜5’=Ñ!Ô!€FØˆt•B”H˜Vœ\µ´Ð:Ñ:Ô:Ñ;Ô;€Hå„O�F˜HÑ%Ô%Ð%àˆU�5˜D’=Ñ!Ô!€FÝ„O�F˜D˜D ™NœNÑ+Ô+Ð+àˆU�4˜5’=Ñ!Ô!€FÝ„O�F˜X˜IÑ&Ô&Ð&àˆU�5˜D’=Ñ!Ô!€FÝ„O�F˜D˜D ( ™OœOÑ,Ô,Ð,à
�(Š(ð	
ð 	
ð 	
ñô €Cõ 
Œ•y¨Ð	,Ñ	,Ô	,ð ð ØˆuŠˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð ØˆuŠˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�Šˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s�   Ä&D9Ä9D=Å D=ÅE2Å2E6Å9E6ÆF+Æ+F/Æ2F/ÇG$Ç$G(Ç+G(È
HÈH!È$H!ÉIÉIÉIÉ<JÊJÊJÊ5K	Ë	KËK)r	   r#   )F)Ú__doc__Únumpyr   r   Úpandasr   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.arraysr   r   r   r   r&   r   r4   © r    r   ú<module>r<      s  ððð ð Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ðð ð ð ð&ð ð ð ð0ð ¨ð ð ð ð ð2Eð Eð Eð Eð Er    