test_formats.py 1.0 KB

12345678910111213141516171819202122232425262728
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from pandas import Timedelta
  4. @pytest.mark.parametrize('td, expected_repr', [
  5. (Timedelta(10, unit='d'), "Timedelta('10 days 00:00:00')"),
  6. (Timedelta(10, unit='s'), "Timedelta('0 days 00:00:10')"),
  7. (Timedelta(10, unit='ms'), "Timedelta('0 days 00:00:00.010000')"),
  8. (Timedelta(-10, unit='ms'), "Timedelta('-1 days +23:59:59.990000')")])
  9. def test_repr(td, expected_repr):
  10. assert repr(td) == expected_repr
  11. @pytest.mark.parametrize('td, expected_iso', [
  12. (Timedelta(days=6, minutes=50, seconds=3, milliseconds=10, microseconds=10,
  13. nanoseconds=12), 'P6DT0H50M3.010010012S'),
  14. (Timedelta(days=4, hours=12, minutes=30, seconds=5), 'P4DT12H30M5S'),
  15. (Timedelta(nanoseconds=123), 'P0DT0H0M0.000000123S'),
  16. # trim nano
  17. (Timedelta(microseconds=10), 'P0DT0H0M0.00001S'),
  18. # trim micro
  19. (Timedelta(milliseconds=1), 'P0DT0H0M0.001S'),
  20. # don't strip every 0
  21. (Timedelta(minutes=1), 'P0DT0H1M0S')])
  22. def test_isoformat(td, expected_iso):
  23. assert td.isoformat() == expected_iso