From 28a91c6606a4085d4727cda909edfe3d59b6b8a8 Mon Sep 17 00:00:00 2001 From: Alan Yee Date: Wed, 30 Sep 2020 10:09:23 -0700 Subject: [PATCH 1/3] Update treeset.py --- treeset.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/treeset.py b/treeset.py index f601f9b..aabfa60 100644 --- a/treeset.py +++ b/treeset.py @@ -32,14 +32,19 @@ def ceiling(self, e): index = bisect.bisect_right(self._treeset, e) if self[index - 1] == e: return e - return self._treeset[bisect.bisect_right(self._treeset, e)] + try: + return self._treeset[bisect.bisect_right(self._treeset, e)] + except IndexError: + return None def floor(self, e): index = bisect.bisect_left(self._treeset, e) if self[index] == e: return e - else: - return self._treeset[bisect.bisect_left(self._treeset, e) - 1] + check = self._treeset[bisect.bisect_left(self._treeset, e) - 1] + if check <= e: + return check + return None def __getitem__(self, num): return self._treeset[num] @@ -94,7 +99,7 @@ def __contains__(self, e): """ try: return e == self._treeset[bisect.bisect_left(self._treeset, e)] - except: + except Exception: return False if __name__ == '__main__': From 48bb60427e419d203ee35a1b68dababe2e7585d5 Mon Sep 17 00:00:00 2001 From: Alan Yee Date: Wed, 30 Sep 2020 10:16:32 -0700 Subject: [PATCH 2/3] PEP 8 --- treeset.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/treeset.py b/treeset.py index aabfa60..1cf1b3e 100644 --- a/treeset.py +++ b/treeset.py @@ -53,21 +53,15 @@ def __len__(self): return len(self._treeset) def clear(self): - """ - Delete all elements in TreeSet. - """ + """Delete all elements in TreeSet.""" self._treeset = [] def clone(self): - """ - Return shallow copy of self. - """ + """Return shallow copy of self.""" return TreeSet(self._treeset) def remove(self, element): - """ - Remove element if element in TreeSet. - """ + """Remove element if element in TreeSet.""" try: self._treeset.remove(element) except ValueError: @@ -75,9 +69,7 @@ def remove(self, element): return True def __iter__(self): - """ - Do ascending iteration for TreeSet - """ + """Do ascending iteration for TreeSet""" for element in self._treeset: yield element @@ -92,11 +84,10 @@ def __eq__(self, target): return self._treeset == target.treeset elif isinstance(target, list): return self._treeset == target + return None def __contains__(self, e): - """ - Fast attribution judgment by bisect - """ + """Fast attribution judgment by bisect""" try: return e == self._treeset[bisect.bisect_left(self._treeset, e)] except Exception: From 5f56d4f2183851e70707138b604b9e52e2adbb46 Mon Sep 17 00:00:00 2001 From: Alan Yee Date: Wed, 30 Sep 2020 10:19:02 -0700 Subject: [PATCH 3/3] Update test_treeset.py --- test_treeset.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test_treeset.py b/test_treeset.py index da42fae..86c3071 100644 --- a/test_treeset.py +++ b/test_treeset.py @@ -50,6 +50,10 @@ def test_treeset(self): ts.clear() self.assertEqual(ts._treeset, []) + + ts = TreeSet([int(x) for x in '934853458236']) + self.assertEqual(ts.ceiling(100), None) + self.assertEqual(ts.floor(0), None) if __name__ == '__main__': unittest.main()