Source code for pyam.testing
import pandas.testing as pdt
from . import compare
[docs]
def assert_iamframe_equal(left, right, **kwargs):
"""Check that left and right IamDataFrame instances are equal.
Parameters
----------
left, right : :class:`IamDataFrame`
Two IamDataFrame instances to be compared.
**kwargs
Passed to :meth:`IamDataFrame.compare`, comparing the `data` objects.
Raises
------
AssertionError if *left* and *right* are different.
Notes
-----
Columns of the *meta* attribute where all values are *nan* are ignored.
"""
diff = compare(left, right, **kwargs)
if not diff.empty:
msg = "IamDataFrame.data are different: \n {}"
raise AssertionError(msg.format(diff.head()))
pdt.assert_frame_equal(
left.meta.dropna(axis="columns", how="all"),
right.meta.dropna(axis="columns", how="all"),
check_column_type=False,
check_dtype=False,
check_like=True,
)
pdt.assert_series_equal(
left.exclude,
right.exclude,
)