test_formats.py 1.2 KB

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