test_concatenate_chunks.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import numpy as np
  2. import pytest
  3. from pandas.errors import DtypeWarning
  4. import pandas._testing as tm
  5. from pandas.core.arrays import ArrowExtensionArray
  6. from pandas.io.parsers.c_parser_wrapper import _concatenate_chunks
  7. def test_concatenate_chunks_pyarrow():
  8. # GH#51876
  9. pa = pytest.importorskip("pyarrow")
  10. chunks = [
  11. {0: ArrowExtensionArray(pa.array([1.5, 2.5]))},
  12. {0: ArrowExtensionArray(pa.array([1, 2]))},
  13. ]
  14. result = _concatenate_chunks(chunks)
  15. expected = ArrowExtensionArray(pa.array([1.5, 2.5, 1.0, 2.0]))
  16. tm.assert_extension_array_equal(result[0], expected)
  17. def test_concatenate_chunks_pyarrow_strings():
  18. # GH#51876
  19. pa = pytest.importorskip("pyarrow")
  20. chunks = [
  21. {0: ArrowExtensionArray(pa.array([1.5, 2.5]))},
  22. {0: ArrowExtensionArray(pa.array(["a", "b"]))},
  23. ]
  24. with tm.assert_produces_warning(DtypeWarning, match="have mixed types"):
  25. result = _concatenate_chunks(chunks)
  26. expected = np.concatenate(
  27. [np.array([1.5, 2.5], dtype=object), np.array(["a", "b"])]
  28. )
  29. tm.assert_numpy_array_equal(result[0], expected)