gL i pdZddlZddlZddlmZmZmZmZddl m Z ddl m Z mZd dZd dZd defdZd Zy) z) Assertion helpers for arithmetic tests. N) DataFrameIndexSeriesarray) BooleanArrayNumpyExtensionArrayctjt|5||zdddtjt|5||zdddy#1swY3xYw#1swYyxYw)z Helper to assert that left and right cannot be added. Parameters ---------- left : object right : object msg : str, default "cannot add" matchNpytestraises TypeErrorleftrightmsgs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/arithmetic/common.pyassert_cannot_addrs] y , u  y ,  sAA A A)ctjt|5||zdddtjt|5||zdddtjt|5||z dddtjt|5||z dddy#1swYxYw#1swYhxYw#1swYKxYw#1swYyxYw)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 rs rassert_invalid_addsub_typer$s y , u  y ,   y , u  y ,   s/B&B2.B>C &B/2B;>C Cis_cmpcnt|tst|trtSt|tst|tr(|r t|trtj StSt|tst|tr|rtj StSt jS)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. ) isinstancerrrnprtmto_array)rrrs rget_upcast_boxr8sx$ "j &B$:eV#< ju-88O $*UE": 88O ;;c|ttfvr|ntj}d}|}t|tr t|trtj}|||k(}|tj |j tj}tj|||||k(}tj||||||k7}tj|||||k7}tj|||djgd}tjt|5||kdddtjt|5||kdddtjt|5||kDdddtjt|5||k\dddtjt|5||kdddtjt|5||kdddtjt|5||kDdddtjt|5||k\dddy#1swY*xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY}xYw#1swYyxYw)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} ct|tr |jSt|tr|j t S|SN)rr_ndarrayrastypebool)xs rxbox2z(assert_invalid_comparison..xbox2`s6 a, -::  a &88D> !r)dtype|)zInvalid comparison betweenzCannot compare typeznot supported betweenzinvalid type promotionzThe DTypes and do not have a common DType. For example they cannot be stored in a single array unless the dtype is `object`.r N)rrrrrzerosshapebool_r assert_equaljoinr rr) rrboxxboxr'rev_boxresultexpectedrs rassert_invalid_comparisonr4QsGeU^+3DG%JtV$<(( 45= !FBHHV\\:;HOOFH% 5D= !FOOFGH-. 45= !FOOFXI& 5D= !FOOFGXI./ ((  C y , u  y ,   y , u  y ,   y ,   y ,   y ,   y ,  s` I94JJJ/J+J7K*K9JJJJ(+J47KK K)z cannot addr")F)__doc__numpyrr pandasrrrrpandas._testing_testingrpandas.core.arraysrrrrr%rr4rrr<sB    (2Jr