diff --git a/python/cudf/cudf/core/multiindex.py b/python/cudf/cudf/core/multiindex.py index 7c132e3fb71..8c4f87d5f67 100644 --- a/python/cudf/cudf/core/multiindex.py +++ b/python/cudf/cudf/core/multiindex.py @@ -1422,15 +1422,21 @@ def _clean_nulls_from_index(self): ) def memory_usage(self, deep=False): + if deep: + warnings.warn( + "The deep parameter is ignored and is only included " + "for pandas compatibility." + ) + n = 0 - for col in self._data._columns: - n += col._memory_usage(deep=deep) - if self._levels: - for level in self._levels: + for col in self._data.columns: + n += col.memory_usage() + if self.levels: + for level in self.levels: n += level.memory_usage(deep=deep) - if self._codes: - for col in self._codes._columns: - n += col._memory_usage(deep=deep) + if self.codes: + for col in self.codes._data.columns: + n += col.memory_usage() return n def difference(self, other, sort=None): diff --git a/python/cudf/cudf/tests/test_dataframe.py b/python/cudf/cudf/tests/test_dataframe.py index 8fac730fe54..d07caef11d5 100644 --- a/python/cudf/cudf/tests/test_dataframe.py +++ b/python/cudf/cudf/tests/test_dataframe.py @@ -5406,9 +5406,8 @@ def test_memory_usage_list(): assert expected == df.A.memory_usage() -@pytest.mark.xfail -def test_memory_usage_multi(): - rows = int(100) +@pytest.mark.parametrize("rows", [10, 100]) +def test_memory_usage_multi(rows): deep = True df = pd.DataFrame( { @@ -5418,7 +5417,6 @@ def test_memory_usage_multi(): } ).set_index(["B", "C"]) gdf = cudf.from_pandas(df) - # Assume MultiIndex memory footprint is just that # of the underlying columns, levels, and codes expect = rows * 16 # Source Columns