test_to_dict.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import collections
  2. import numpy as np
  3. import pytest
  4. from pandas import Series
  5. import pandas._testing as tm
  6. class TestSeriesToDict:
  7. @pytest.mark.parametrize(
  8. "mapping", (dict, collections.defaultdict(list), collections.OrderedDict)
  9. )
  10. def test_to_dict(self, mapping, datetime_series):
  11. # GH#16122
  12. result = Series(datetime_series.to_dict(mapping), name="ts")
  13. expected = datetime_series.copy()
  14. expected.index = expected.index._with_freq(None)
  15. tm.assert_series_equal(result, expected)
  16. from_method = Series(datetime_series.to_dict(collections.Counter))
  17. from_constructor = Series(collections.Counter(datetime_series.items()))
  18. tm.assert_series_equal(from_method, from_constructor)
  19. @pytest.mark.parametrize(
  20. "input",
  21. (
  22. {"a": np.int64(64), "b": 10},
  23. {"a": np.int64(64), "b": 10, "c": "ABC"},
  24. {"a": np.uint64(64), "b": 10, "c": "ABC"},
  25. ),
  26. )
  27. def test_to_dict_return_types(self, input):
  28. # GH25969
  29. d = Series(input).to_dict()
  30. assert isinstance(d["a"], int)
  31. assert isinstance(d["b"], int)