Inzynierka/Lib/site-packages/pandas/tests/util/test_assert_attr_equal.py
2023-06-02 12:51:02 +02:00

34 lines
1.0 KiB
Python

from types import SimpleNamespace
import pytest
from pandas.core.dtypes.common import is_float
import pandas._testing as tm
def test_assert_attr_equal(nulls_fixture):
obj = SimpleNamespace()
obj.na_value = nulls_fixture
tm.assert_attr_equal("na_value", obj, obj)
def test_assert_attr_equal_different_nulls(nulls_fixture, nulls_fixture2):
obj = SimpleNamespace()
obj.na_value = nulls_fixture
obj2 = SimpleNamespace()
obj2.na_value = nulls_fixture2
if nulls_fixture is nulls_fixture2:
tm.assert_attr_equal("na_value", obj, obj2)
elif is_float(nulls_fixture) and is_float(nulls_fixture2):
# we consider float("nan") and np.float64("nan") to be equivalent
tm.assert_attr_equal("na_value", obj, obj2)
elif type(nulls_fixture) is type(nulls_fixture2):
# e.g. Decimal("NaN")
tm.assert_attr_equal("na_value", obj, obj2)
else:
with pytest.raises(AssertionError, match='"na_value" are different'):
tm.assert_attr_equal("na_value", obj, obj2)