summaryrefslogtreecommitdiffstats
path: root/tests/duration/test_add_sub.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/duration/test_add_sub.py')
-rw-r--r--tests/duration/test_add_sub.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/duration/test_add_sub.py b/tests/duration/test_add_sub.py
new file mode 100644
index 0000000..193a493
--- /dev/null
+++ b/tests/duration/test_add_sub.py
@@ -0,0 +1,54 @@
+from __future__ import annotations
+
+from datetime import timedelta
+
+import pendulum
+
+from tests.conftest import assert_duration
+
+
+def test_add_interval():
+ p1 = pendulum.duration(days=23, seconds=32)
+ p2 = pendulum.duration(days=12, seconds=30)
+
+ p = p1 + p2
+ assert_duration(p, 0, 0, 5, 0, 0, 1, 2)
+
+
+def test_add_timedelta():
+ p1 = pendulum.duration(days=23, seconds=32)
+ p2 = timedelta(days=12, seconds=30)
+
+ p = p1 + p2
+ assert_duration(p, 0, 0, 5, 0, 0, 1, 2)
+
+
+def test_add_unsupported():
+ p = pendulum.duration(days=23, seconds=32)
+ assert NotImplemented == p.__add__(5)
+
+
+def test_sub_interval():
+ p1 = pendulum.duration(days=23, seconds=32)
+ p2 = pendulum.duration(days=12, seconds=28)
+
+ p = p1 - p2
+ assert_duration(p, 0, 0, 1, 4, 0, 0, 4)
+
+
+def test_sub_timedelta():
+ p1 = pendulum.duration(days=23, seconds=32)
+ p2 = timedelta(days=12, seconds=28)
+
+ p = p1 - p2
+ assert_duration(p, 0, 0, 1, 4, 0, 0, 4)
+
+
+def test_sub_unsupported():
+ p = pendulum.duration(days=23, seconds=32)
+ assert NotImplemented == p.__sub__(5)
+
+
+def test_neg():
+ p = pendulum.duration(days=23, seconds=32)
+ assert_duration(-p, 0, 0, -3, -2, 0, 0, -32)