test_repeat.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import numpy as np
  2. import pytest
  3. from pandas import (
  4. MultiIndex,
  5. Series,
  6. )
  7. import pandas._testing as tm
  8. class TestRepeat:
  9. def test_repeat(self):
  10. ser = Series(np.random.randn(3), index=["a", "b", "c"])
  11. reps = ser.repeat(5)
  12. exp = Series(ser.values.repeat(5), index=ser.index.values.repeat(5))
  13. tm.assert_series_equal(reps, exp)
  14. to_rep = [2, 3, 4]
  15. reps = ser.repeat(to_rep)
  16. exp = Series(ser.values.repeat(to_rep), index=ser.index.values.repeat(to_rep))
  17. tm.assert_series_equal(reps, exp)
  18. def test_numpy_repeat(self):
  19. ser = Series(np.arange(3), name="x")
  20. expected = Series(
  21. ser.values.repeat(2), name="x", index=ser.index.values.repeat(2)
  22. )
  23. tm.assert_series_equal(np.repeat(ser, 2), expected)
  24. msg = "the 'axis' parameter is not supported"
  25. with pytest.raises(ValueError, match=msg):
  26. np.repeat(ser, 2, axis=0)
  27. def test_repeat_with_multiindex(self):
  28. # GH#9361, fixed by GH#7891
  29. m_idx = MultiIndex.from_tuples([(1, 2), (3, 4), (5, 6), (7, 8)])
  30. data = ["a", "b", "c", "d"]
  31. m_df = Series(data, index=m_idx)
  32. assert m_df.repeat(3).shape == (3 * len(data),)