test_subclass.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import numpy as np
  2. import pytest
  3. from pandas import (
  4. DataFrame,
  5. Series,
  6. )
  7. import pandas._testing as tm
  8. from pandas.io.pytables import (
  9. HDFStore,
  10. read_hdf,
  11. )
  12. pytest.importorskip("tables")
  13. class TestHDFStoreSubclass:
  14. # GH 33748
  15. def test_supported_for_subclass_dataframe(self, tmp_path):
  16. data = {"a": [1, 2], "b": [3, 4]}
  17. sdf = tm.SubclassedDataFrame(data, dtype=np.intp)
  18. expected = DataFrame(data, dtype=np.intp)
  19. path = tmp_path / "temp.h5"
  20. sdf.to_hdf(path, "df")
  21. result = read_hdf(path, "df")
  22. tm.assert_frame_equal(result, expected)
  23. path = tmp_path / "temp.h5"
  24. with HDFStore(path) as store:
  25. store.put("df", sdf)
  26. result = read_hdf(path, "df")
  27. tm.assert_frame_equal(result, expected)
  28. def test_supported_for_subclass_series(self, tmp_path):
  29. data = [1, 2, 3]
  30. sser = tm.SubclassedSeries(data, dtype=np.intp)
  31. expected = Series(data, dtype=np.intp)
  32. path = tmp_path / "temp.h5"
  33. sser.to_hdf(path, "ser")
  34. result = read_hdf(path, "ser")
  35. tm.assert_series_equal(result, expected)
  36. path = tmp_path / "temp.h5"
  37. with HDFStore(path) as store:
  38. store.put("ser", sser)
  39. result = read_hdf(path, "ser")
  40. tm.assert_series_equal(result, expected)