From 0473e9cb8875faaf62d8db6e71150604021d6a1b Mon Sep 17 00:00:00 2001 From: Suyash Dongre <109069262+Suyashd999@users.noreply.github.com> Date: Tue, 7 Nov 2023 23:43:07 +0530 Subject: [PATCH 1/7] Added doctest to skew_heap.py --- data_structures/heap/skew_heap.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index c4c13b08276a..ba2240f7c16f 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -21,7 +21,20 @@ def __init__(self, value: T) -> None: @property def value(self) -> T: - """Return the value of the node.""" + """ + Return the value of the node. + + >>> sn = SkewNode(10) + >>> sn.value + 10 + >>> sn = SkewNode(-10.5) + >>> sn.value + -10.5 + >>> sn = SkewNode() + Traceback (most recent call last): + ... + TypeError: SkewNode.__init__() missing 1 required positional argument: 'value' + """ return self._value @staticmethod From c6ee950d1d9517fbdc12c766298f1c66bacc928e Mon Sep 17 00:00:00 2001 From: Suyash Dongre <109069262+Suyashd999@users.noreply.github.com> Date: Tue, 7 Nov 2023 23:50:18 +0530 Subject: [PATCH 2/7] Update skew_heap.py --- data_structures/heap/skew_heap.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index ba2240f7c16f..6bf159073b73 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -41,7 +41,17 @@ def value(self) -> T: def merge( root1: SkewNode[T] | None, root2: SkewNode[T] | None ) -> SkewNode[T] | None: - """Merge 2 nodes together.""" + """ + Merge 2 nodes together. + >>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value + -10.5 + >>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value + 10 + >>> SkewNode.merge(SkewNode(10),SkewNode(10)).value + 10 + >>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value + -100 + """ if not root1: return root2 From 200907c80f15f87b3e4ff9684f3c1fee663b385f Mon Sep 17 00:00:00 2001 From: Suyash Dongre <109069262+Suyashd999@users.noreply.github.com> Date: Sun, 12 Nov 2023 10:01:36 +0530 Subject: [PATCH 3/7] Update data_structures/heap/skew_heap.py Co-authored-by: Saptadeep Banerjee <69459134+imSanko@users.noreply.github.com> --- data_structures/heap/skew_heap.py | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index 6bf159073b73..6d99822673c2 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -23,6 +23,50 @@ def __init__(self, value: T) -> None: def value(self) -> T: """ Return the value of the node. +""" +Return the value of the node. + +>>> sn = SkewNode(0) +>>> sn.value +0 + +>>> sn = SkewNode(3.14159) +>>> sn.value +3.14159 + +>>> sn = SkewNode("hello") +>>> sn.value +'hello' + +>>> sn = SkewNode(None) +>>> sn.value +None + +>>> sn = SkewNode(True) +>>> sn.value +True + +>>> sn = SkewNode([]) +>>> sn.value +[] + +>>> sn = SkewNode({}) +>>> sn.value +{} + +>>> sn = SkewNode(set()) +>>> sn.value +set() + +>>> sn = SkewNode(0.0) +>>> sn.value +0.0 + +>>> sn = SkewNode(-1e-10) +>>> sn.value +-1e-10 +""" + >>> sn = SkewNode(10) >>> sn.value From 0a6d7323d06ba71bd3f90b0b2197d28678231afe Mon Sep 17 00:00:00 2001 From: Suyash Dongre <109069262+Suyashd999@users.noreply.github.com> Date: Sun, 12 Nov 2023 10:03:35 +0530 Subject: [PATCH 4/7] Update skew_heap.py --- data_structures/heap/skew_heap.py | 86 +++++++++++++++---------------- 1 file changed, 41 insertions(+), 45 deletions(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index 6d99822673c2..41a6da98a358 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -23,51 +23,47 @@ def __init__(self, value: T) -> None: def value(self) -> T: """ Return the value of the node. -""" -Return the value of the node. - ->>> sn = SkewNode(0) ->>> sn.value -0 - ->>> sn = SkewNode(3.14159) ->>> sn.value -3.14159 - ->>> sn = SkewNode("hello") ->>> sn.value -'hello' - ->>> sn = SkewNode(None) ->>> sn.value -None - ->>> sn = SkewNode(True) ->>> sn.value -True - ->>> sn = SkewNode([]) ->>> sn.value -[] - ->>> sn = SkewNode({}) ->>> sn.value -{} - ->>> sn = SkewNode(set()) ->>> sn.value -set() - ->>> sn = SkewNode(0.0) ->>> sn.value -0.0 - ->>> sn = SkewNode(-1e-10) ->>> sn.value --1e-10 -""" - - + + >>> sn = SkewNode(0) + >>> sn.value + 0 + + >>> sn = SkewNode(3.14159) + >>> sn.value + 3.14159 + + >>> sn = SkewNode("hello") + >>> sn.value + 'hello' + + >>> sn = SkewNode(None) + >>> sn.value + None + + >>> sn = SkewNode(True) + >>> sn.value + True + + >>> sn = SkewNode([]) + >>> sn.value + [] + + >>> sn = SkewNode({}) + >>> sn.value + {} + + >>> sn = SkewNode(set()) + >>> sn.value + set() + + >>> sn = SkewNode(0.0) + >>> sn.value + 0.0 + + >>> sn = SkewNode(-1e-10) + >>> sn.value + -1e-10 + >>> sn = SkewNode(10) >>> sn.value 10 From 7e56ae6a7a2339044b1a0fa4edd168ae1ffe2471 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 12 Nov 2023 04:34:09 +0000 Subject: [PATCH 5/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- data_structures/heap/skew_heap.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index 41a6da98a358..4cb1ed8dc963 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -23,47 +23,47 @@ def __init__(self, value: T) -> None: def value(self) -> T: """ Return the value of the node. - + >>> sn = SkewNode(0) >>> sn.value 0 - + >>> sn = SkewNode(3.14159) >>> sn.value 3.14159 - + >>> sn = SkewNode("hello") >>> sn.value 'hello' - + >>> sn = SkewNode(None) >>> sn.value None - + >>> sn = SkewNode(True) >>> sn.value True - + >>> sn = SkewNode([]) >>> sn.value [] - + >>> sn = SkewNode({}) >>> sn.value {} - + >>> sn = SkewNode(set()) >>> sn.value set() - + >>> sn = SkewNode(0.0) >>> sn.value 0.0 - + >>> sn = SkewNode(-1e-10) >>> sn.value -1e-10 - + >>> sn = SkewNode(10) >>> sn.value 10 From c0a595246fe13b6c3f09d9953b67bc49e8024feb Mon Sep 17 00:00:00 2001 From: Suyash Dongre <109069262+Suyashd999@users.noreply.github.com> Date: Sun, 12 Nov 2023 10:12:40 +0530 Subject: [PATCH 6/7] Update skew_heap.py --- data_structures/heap/skew_heap.py | 50 +++++++++---------------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index 4cb1ed8dc963..2c6a3608e003 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -24,53 +24,31 @@ def value(self) -> T: """ Return the value of the node. - >>> sn = SkewNode(0) - >>> sn.value + >>> SkewNode(0).value 0 - - >>> sn = SkewNode(3.14159) - >>> sn.value + >>> SkewNode(3.14159).value 3.14159 - - >>> sn = SkewNode("hello") - >>> sn.value + >>> SkewNode("hello").value 'hello' - - >>> sn = SkewNode(None) - >>> sn.value - None - - >>> sn = SkewNode(True) - >>> sn.value + >>> SkewNode(None).value + + >>> SkewNode(True).value True - - >>> sn = SkewNode([]) - >>> sn.value + >>> SkewNode([]).value [] - - >>> sn = SkewNode({}) - >>> sn.value + >>> SkewNode({}).value {} - - >>> sn = SkewNode(set()) - >>> sn.value + >>> SkewNode(set()).value set() - - >>> sn = SkewNode(0.0) - >>> sn.value + >>> SkewNode(0.0).value 0.0 - - >>> sn = SkewNode(-1e-10) - >>> sn.value + >>> SkewNode(-1e-10).value -1e-10 - - >>> sn = SkewNode(10) - >>> sn.value + >>> SkewNode(10).value 10 - >>> sn = SkewNode(-10.5) - >>> sn.value + >>> SkewNode(-10.5).value -10.5 - >>> sn = SkewNode() + >>> SkewNode().value Traceback (most recent call last): ... TypeError: SkewNode.__init__() missing 1 required positional argument: 'value' From aaf0429238d2d3802861d507f26a338b2c0887b5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 12 Nov 2023 04:43:15 +0000 Subject: [PATCH 7/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- data_structures/heap/skew_heap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/heap/skew_heap.py b/data_structures/heap/skew_heap.py index 2c6a3608e003..0839db711cb1 100644 --- a/data_structures/heap/skew_heap.py +++ b/data_structures/heap/skew_heap.py @@ -31,7 +31,7 @@ def value(self) -> T: >>> SkewNode("hello").value 'hello' >>> SkewNode(None).value - + >>> SkewNode(True).value True >>> SkewNode([]).value