123456789101112131415161718192021222324252627282930313233 |
- 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)
|