summaryrefslogtreecommitdiffstats
path: root/tests/time/test_comparison.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/time/test_comparison.py')
-rw-r--r--tests/time/test_comparison.py185
1 files changed, 185 insertions, 0 deletions
diff --git a/tests/time/test_comparison.py b/tests/time/test_comparison.py
new file mode 100644
index 0000000..f1ef275
--- /dev/null
+++ b/tests/time/test_comparison.py
@@ -0,0 +1,185 @@
+from __future__ import annotations
+
+from datetime import time
+
+import pendulum
+
+from tests.conftest import assert_time
+
+
+def test_equal_to_true():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert t1 == t2
+ assert t1 == t3
+
+
+def test_equal_to_false():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 4)
+ t3 = time(1, 2, 4)
+
+ assert t1 != t2
+ assert t1 != t3
+
+
+def test_not_equal_to_none():
+ t1 = pendulum.time(1, 2, 3)
+
+ assert t1 != None # noqa
+
+
+def test_greater_than_true():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 2)
+ t3 = time(1, 2, 2)
+
+ assert t1 > t2
+ assert t1 > t3
+
+
+def test_greater_than_false():
+ t1 = pendulum.time(1, 2, 2)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert not t1 > t2
+ assert not t1 > t3
+
+
+def test_greater_than_or_equal_true():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 2)
+ t3 = time(1, 2, 2)
+
+ assert t1 >= t2
+ assert t1 >= t3
+
+
+def test_greater_than_or_equal_true_equal():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert t1 >= t2
+ assert t1 >= t3
+
+
+def test_greater_than_or_equal_false():
+ t1 = pendulum.time(1, 2, 2)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert not t1 >= t2
+ assert not t1 >= t3
+
+
+def test_less_than_true():
+ t1 = pendulum.time(1, 2, 2)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert t1 < t2
+ assert t1 < t3
+
+
+def test_less_than_false():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 2)
+ t3 = time(1, 2, 2)
+
+ assert not t1 < t2
+ assert not t1 < t3
+
+
+def test_less_than_or_equal_true():
+ t1 = pendulum.time(1, 2, 2)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert t1 <= t2
+ assert t1 <= t3
+
+
+def test_less_than_or_equal_true_equal():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 3)
+ t3 = time(1, 2, 3)
+
+ assert t1 <= t2
+ assert t1 <= t3
+
+
+def test_less_than_or_equal_false():
+ t1 = pendulum.time(1, 2, 3)
+ t2 = pendulum.time(1, 2, 2)
+ t3 = time(1, 2, 2)
+
+ assert not t1 <= t2
+ assert not t1 <= t3
+
+
+def test_closest():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 54)
+ t2 = pendulum.time(12, 34, 59)
+ closest = instance.closest(t1, t2)
+ assert t1 == closest
+
+ closest = instance.closest(t2, t1)
+ assert t1 == closest
+
+
+def test_closest_with_time():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 54)
+ t2 = pendulum.time(12, 34, 59)
+ closest = instance.closest(t1, t2)
+
+ assert_time(closest, 12, 34, 54)
+
+
+def test_closest_with_equals():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 56)
+ t2 = pendulum.time(12, 34, 59)
+ closest = instance.closest(t1, t2)
+ assert t1 == closest
+
+
+def test_farthest():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 54)
+ t2 = pendulum.time(12, 34, 59)
+ farthest = instance.farthest(t1, t2)
+ assert t2 == farthest
+
+ farthest = instance.farthest(t2, t1)
+ assert t2 == farthest
+
+
+def test_farthest_with_time():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 54)
+ t2 = pendulum.time(12, 34, 59)
+ farthest = instance.farthest(t1, t2)
+
+ assert_time(farthest, 12, 34, 59)
+
+
+def test_farthest_with_equals():
+ instance = pendulum.time(12, 34, 56)
+ t1 = pendulum.time(12, 34, 56)
+ t2 = pendulum.time(12, 34, 59)
+
+ farthest = instance.farthest(t1, t2)
+ assert t2 == farthest
+
+
+def test_comparison_to_unsupported():
+ t1 = pendulum.now().time()
+
+ assert t1 != "test"
+ assert t1 not in ["test"]