|
 |
5730c10 |
See https://github.com/simonpercivall/orderedset/pull/22.
|
|
 |
5730c10 |
|
|
 |
5730c10 |
--- a/lib/orderedset/_orderedset.pyx
|
|
 |
5730c10 |
+++ b/lib/orderedset/_orderedset.pyx
|
|
 |
5730c10 |
@@ -499,13 +499,15 @@ class OrderedSet(_OrderedSet, MutableSet
|
|
 |
5730c10 |
return NotImplemented
|
|
 |
5730c10 |
|
|
 |
5730c10 |
def __ge__(self, other):
|
|
 |
5730c10 |
- ret = self < other
|
|
 |
5730c10 |
- if ret is NotImplemented:
|
|
 |
5730c10 |
- return ret
|
|
 |
5730c10 |
- return not ret
|
|
 |
5730c10 |
+ if isinstance(other, Set):
|
|
 |
5730c10 |
+ return len(self) >= len(other) and set(self) >= set(other)
|
|
 |
5730c10 |
+ elif isinstance(other, list):
|
|
 |
5730c10 |
+ return len(self) >= len(other) and list(self) >= list(other)
|
|
 |
5730c10 |
+ return NotImplemented
|
|
 |
5730c10 |
|
|
 |
5730c10 |
def __gt__(self, other):
|
|
 |
5730c10 |
- ret = self <= other
|
|
 |
5730c10 |
- if ret is NotImplemented:
|
|
 |
5730c10 |
- return ret
|
|
 |
5730c10 |
- return not ret
|
|
 |
5730c10 |
+ if isinstance(other, Set):
|
|
 |
5730c10 |
+ return len(self) > len(other) and set(self) > set(other)
|
|
 |
5730c10 |
+ elif isinstance(other, list):
|
|
 |
5730c10 |
+ return len(self) > len(other) and list(self) > list(other)
|
|
 |
5730c10 |
+ return NotImplemented
|
|
 |
5730c10 |
--- a/tests/test_orderedset.py
|
|
 |
5730c10 |
+++ b/tests/test_orderedset.py
|
|
 |
5730c10 |
@@ -371,6 +371,20 @@ class TestOrderedset(unittest.TestCase):
|
|
 |
5730c10 |
self.assertGreater(oset1, set(oset3))
|
|
 |
5730c10 |
self.assertGreater(oset1, list(oset3))
|
|
 |
5730c10 |
|
|
 |
5730c10 |
+ oset4 = OrderedSet(self.lst[1:])
|
|
 |
5730c10 |
+
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < oset4)
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < set(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < list(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= oset4)
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= set(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= list(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < oset4)
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < set(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 < list(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= oset4)
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= set(oset4))
|
|
 |
5730c10 |
+ self.assertFalse(oset3 >= list(oset4))
|
|
 |
5730c10 |
|
|
 |
5730c10 |
if __name__ == '__main__':
|
|
 |
5730c10 |
unittest.main()
|