test_formats.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. import pandas as pd
  4. from pandas import TimedeltaIndex
  5. class TestTimedeltaIndexRendering(object):
  6. @pytest.mark.parametrize('method', ['__repr__', '__unicode__', '__str__'])
  7. def test_representation(self, method):
  8. idx1 = TimedeltaIndex([], freq='D')
  9. idx2 = TimedeltaIndex(['1 days'], freq='D')
  10. idx3 = TimedeltaIndex(['1 days', '2 days'], freq='D')
  11. idx4 = TimedeltaIndex(['1 days', '2 days', '3 days'], freq='D')
  12. idx5 = TimedeltaIndex(['1 days 00:00:01', '2 days', '3 days'])
  13. exp1 = """TimedeltaIndex([], dtype='timedelta64[ns]', freq='D')"""
  14. exp2 = ("TimedeltaIndex(['1 days'], dtype='timedelta64[ns]', "
  15. "freq='D')")
  16. exp3 = ("TimedeltaIndex(['1 days', '2 days'], "
  17. "dtype='timedelta64[ns]', freq='D')")
  18. exp4 = ("TimedeltaIndex(['1 days', '2 days', '3 days'], "
  19. "dtype='timedelta64[ns]', freq='D')")
  20. exp5 = ("TimedeltaIndex(['1 days 00:00:01', '2 days 00:00:00', "
  21. "'3 days 00:00:00'], dtype='timedelta64[ns]', freq=None)")
  22. with pd.option_context('display.width', 300):
  23. for idx, expected in zip([idx1, idx2, idx3, idx4, idx5],
  24. [exp1, exp2, exp3, exp4, exp5]):
  25. result = getattr(idx, method)()
  26. assert result == expected
  27. def test_representation_to_series(self):
  28. idx1 = TimedeltaIndex([], freq='D')
  29. idx2 = TimedeltaIndex(['1 days'], freq='D')
  30. idx3 = TimedeltaIndex(['1 days', '2 days'], freq='D')
  31. idx4 = TimedeltaIndex(['1 days', '2 days', '3 days'], freq='D')
  32. idx5 = TimedeltaIndex(['1 days 00:00:01', '2 days', '3 days'])
  33. exp1 = """Series([], dtype: timedelta64[ns])"""
  34. exp2 = ("0 1 days\n"
  35. "dtype: timedelta64[ns]")
  36. exp3 = ("0 1 days\n"
  37. "1 2 days\n"
  38. "dtype: timedelta64[ns]")
  39. exp4 = ("0 1 days\n"
  40. "1 2 days\n"
  41. "2 3 days\n"
  42. "dtype: timedelta64[ns]")
  43. exp5 = ("0 1 days 00:00:01\n"
  44. "1 2 days 00:00:00\n"
  45. "2 3 days 00:00:00\n"
  46. "dtype: timedelta64[ns]")
  47. with pd.option_context('display.width', 300):
  48. for idx, expected in zip([idx1, idx2, idx3, idx4, idx5],
  49. [exp1, exp2, exp3, exp4, exp5]):
  50. result = repr(pd.Series(idx))
  51. assert result == expected
  52. def test_summary(self):
  53. # GH#9116
  54. idx1 = TimedeltaIndex([], freq='D')
  55. idx2 = TimedeltaIndex(['1 days'], freq='D')
  56. idx3 = TimedeltaIndex(['1 days', '2 days'], freq='D')
  57. idx4 = TimedeltaIndex(['1 days', '2 days', '3 days'], freq='D')
  58. idx5 = TimedeltaIndex(['1 days 00:00:01', '2 days', '3 days'])
  59. exp1 = ("TimedeltaIndex: 0 entries\n"
  60. "Freq: D")
  61. exp2 = ("TimedeltaIndex: 1 entries, 1 days to 1 days\n"
  62. "Freq: D")
  63. exp3 = ("TimedeltaIndex: 2 entries, 1 days to 2 days\n"
  64. "Freq: D")
  65. exp4 = ("TimedeltaIndex: 3 entries, 1 days to 3 days\n"
  66. "Freq: D")
  67. exp5 = ("TimedeltaIndex: 3 entries, 1 days 00:00:01 to 3 days "
  68. "00:00:00")
  69. for idx, expected in zip([idx1, idx2, idx3, idx4, idx5],
  70. [exp1, exp2, exp3, exp4, exp5]):
  71. result = idx._summary()
  72. assert result == expected