From 923a015de71f1a0d976ffd83b59522c2adac9c3a Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Fri, 25 Aug 2023 13:19:21 +0530 Subject: [PATCH 01/18] added Highest Set Bit algo --- .../bitmanipulation/HighestSetBit.java | 23 +++++++++++++++++++ .../bitmanipulation/HighestSetBitTest.java | 20 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java create mode 100644 src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java new file mode 100644 index 000000000000..1a7642611704 --- /dev/null +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -0,0 +1,23 @@ +package com.thealgorithms.bitmanipulation; + +/** + * Find Highest Set Bit + * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) + */ + +public class HighestSetBit { + + public static int findHighestSetBit(int num) { + if (num == 0) { + return -1; // No set bits + } + + int position = 0; + while (num > 0) { + num >>= 1; + position++; + } + + return position; + } +} \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java new file mode 100644 index 000000000000..adb093ae5924 --- /dev/null +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -0,0 +1,20 @@ +package com.thealgorithms.bitmanipulation; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +/** + * Test case for Highest Set Bit + * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) + */ + +class HighestSetBitTest { + + @Test + void testHighestSetBit() { + assertEquals(6, HighestSetBit.findHighestSetBit(37)); + assertEquals(-1, HighestSetBit.findHighestSetBit(0)); + assertEquals(3, HighestSetBit.findHighestSetBit(4)); + } +} \ No newline at end of file From ef2801fbd624fd51c2c9b0a74b5b8ca24dd5c1b7 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 27 Aug 2023 02:01:48 +0530 Subject: [PATCH 02/18] solved some issue --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 3 ++- .../com/thealgorithms/bitmanipulation/HighestSetBitTest.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 1a7642611704..019d52094eed 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -12,12 +12,13 @@ public static int findHighestSetBit(int num) { return -1; // No set bits } + num = Math.abs(num); int position = 0; while (num > 0) { num >>= 1; position++; } - return position; + return position-1; } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index adb093ae5924..9245207d1ad4 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,8 +13,9 @@ class HighestSetBitTest { @Test void testHighestSetBit() { - assertEquals(6, HighestSetBit.findHighestSetBit(37)); + assertEquals(5, HighestSetBit.findHighestSetBit(37)); + assertEquals(5, HighestSetBit.findHighestSetBit(-37)); assertEquals(-1, HighestSetBit.findHighestSetBit(0)); - assertEquals(3, HighestSetBit.findHighestSetBit(4)); + assertEquals(2, HighestSetBit.findHighestSetBit(4)); } } \ No newline at end of file From b05992b529ec93e2fd87d3435ca2ae4857cdfd68 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 27 Aug 2023 02:05:43 +0530 Subject: [PATCH 03/18] linter solved --- .../java/com/thealgorithms/bitmanipulation/HighestSetBit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 019d52094eed..819ec053087f 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -19,6 +19,6 @@ public static int findHighestSetBit(int num) { position++; } - return position-1; + return position - 1; } } \ No newline at end of file From 1717f357272150537a36a1ddda6776e9d683e069 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 29 Aug 2023 01:30:40 +0530 Subject: [PATCH 04/18] add negative number test case --- .../thealgorithms/bitmanipulation/HighestSetBit.java | 11 +++++++---- .../bitmanipulation/HighestSetBitTest.java | 8 +++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 819ec053087f..463fc6a002dc 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -8,17 +8,20 @@ public class HighestSetBit { public static int findHighestSetBit(int num) { + if (num < 0) { + throw new IllegalArgumentException("Input cannot be negative"); + } + if (num == 0) { return -1; // No set bits } - - num = Math.abs(num); + int position = 0; while (num > 0) { num >>= 1; position++; } - + return position - 1; - } + } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 9245207d1ad4..5950eca51a00 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -14,8 +14,10 @@ class HighestSetBitTest { @Test void testHighestSetBit() { assertEquals(5, HighestSetBit.findHighestSetBit(37)); - assertEquals(5, HighestSetBit.findHighestSetBit(-37)); assertEquals(-1, HighestSetBit.findHighestSetBit(0)); - assertEquals(2, HighestSetBit.findHighestSetBit(4)); + assertEquals(0, HighestSetBit.findHighestSetBit(1)); + + // Test case for negative input + assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); } -} \ No newline at end of file +} From 73db0017ae6ad13253786eb0d17078c798c46ba1 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 29 Aug 2023 01:40:38 +0530 Subject: [PATCH 05/18] linter solved --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 5 +++-- .../com/thealgorithms/bitmanipulation/HighestSetBitTest.java | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 463fc6a002dc..16653e9c7fb5 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -11,11 +11,11 @@ public static int findHighestSetBit(int num) { if (num < 0) { throw new IllegalArgumentException("Input cannot be negative"); } - + if (num == 0) { return -1; // No set bits } - + int position = 0; while (num > 0) { num >>= 1; @@ -23,5 +23,6 @@ public static int findHighestSetBit(int num) { } return position - 1; + } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 5950eca51a00..89ed84e1c5aa 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -16,8 +16,6 @@ void testHighestSetBit() { assertEquals(5, HighestSetBit.findHighestSetBit(37)); assertEquals(-1, HighestSetBit.findHighestSetBit(0)); assertEquals(0, HighestSetBit.findHighestSetBit(1)); - - // Test case for negative input assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); } } From 26126c6b751a3a191abbd6241c1cfe62970a5175 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 29 Aug 2023 01:46:06 +0530 Subject: [PATCH 06/18] linter solved2 --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 16653e9c7fb5..b4438d49096d 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -6,7 +6,6 @@ */ public class HighestSetBit { - public static int findHighestSetBit(int num) { if (num < 0) { throw new IllegalArgumentException("Input cannot be negative"); @@ -21,8 +20,7 @@ public static int findHighestSetBit(int num) { num >>= 1; position++; } - + return position - 1; - - } + } } \ No newline at end of file From ac355307e1c3e3e2fda8012c014eb77f9d3efccd Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 29 Aug 2023 01:48:37 +0530 Subject: [PATCH 07/18] linter solved3 --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index b4438d49096d..8addf4a578e1 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -10,17 +10,17 @@ public static int findHighestSetBit(int num) { if (num < 0) { throw new IllegalArgumentException("Input cannot be negative"); } - + if (num == 0) { return -1; // No set bits } - + int position = 0; while (num > 0) { num >>= 1; position++; } - + return position - 1; } } \ No newline at end of file From 095f22b3a1cb9a57d52e080f54a4a92bfe5465e3 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 29 Aug 2023 01:54:09 +0530 Subject: [PATCH 08/18] linter solved4 --- .../java/com/thealgorithms/bitmanipulation/HighestSetBit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 8addf4a578e1..af801aa05320 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -20,7 +20,7 @@ public static int findHighestSetBit(int num) { num >>= 1; position++; } - + return position - 1; } } \ No newline at end of file From 51e93f914582d1948cbdf887d04a1a540658dc94 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Thu, 31 Aug 2023 01:37:52 +0530 Subject: [PATCH 09/18] change code for efficient --- .../bitmanipulation/HighestSetBit.java | 18 +++++++++++------- .../bitmanipulation/HighestSetBitTest.java | 11 +++++++---- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index af801aa05320..e032441e8c50 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -1,26 +1,30 @@ package com.thealgorithms.bitmanipulation; +import java.util.Optional; /** * Find Highest Set Bit * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) */ -public class HighestSetBit { - public static int findHighestSetBit(int num) { +public final class HighestSetBit { + private HighestSetBit() { + } + + public final static Optional findHighestSetBit(int num) { if (num < 0) { throw new IllegalArgumentException("Input cannot be negative"); } - + if (num == 0) { - return -1; // No set bits + return Optional.empty(); } - + int position = 0; while (num > 0) { num >>= 1; position++; } - - return position - 1; + + return Optional.of(position - 1); } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 89ed84e1c5aa..31b3f1519281 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,9 +13,12 @@ class HighestSetBitTest { @Test void testHighestSetBit() { - assertEquals(5, HighestSetBit.findHighestSetBit(37)); - assertEquals(-1, HighestSetBit.findHighestSetBit(0)); - assertEquals(0, HighestSetBit.findHighestSetBit(1)); - assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); + assertEquals(5, HighestSetBit.findHighestSetBit(37).orElse(-1)); + assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); + assertEquals(0, HighestSetBit.findHighestSetBit(1).orElse(-1)); + + // Use assertThrows with a specific exception type and provide a lambda + assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37).orElse(-1)); } } + From 8b5c7c736774a44fb1f4c14a9fbd44ce66ca6407 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Thu, 31 Aug 2023 01:42:14 +0530 Subject: [PATCH 10/18] linter solve --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 6 +++--- .../thealgorithms/bitmanipulation/HighestSetBitTest.java | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index e032441e8c50..ecbd600808fc 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -14,17 +14,17 @@ public final static Optional findHighestSetBit(int num) { if (num < 0) { throw new IllegalArgumentException("Input cannot be negative"); } - + if (num == 0) { return Optional.empty(); } - + int position = 0; while (num > 0) { num >>= 1; position++; } - + return Optional.of(position - 1); } } \ No newline at end of file diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 31b3f1519281..7c4dc8d3aeca 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -16,9 +16,6 @@ void testHighestSetBit() { assertEquals(5, HighestSetBit.findHighestSetBit(37).orElse(-1)); assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); assertEquals(0, HighestSetBit.findHighestSetBit(1).orElse(-1)); - - // Use assertThrows with a specific exception type and provide a lambda assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37).orElse(-1)); } -} - +} \ No newline at end of file From ec8e63e510d9677e3e5e5ca4f3bf3d92bb1d9080 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Thu, 31 Aug 2023 01:47:29 +0530 Subject: [PATCH 11/18] linter solve2 --- .../java/com/thealgorithms/bitmanipulation/HighestSetBit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index ecbd600808fc..8a1e0ae573ef 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -24,7 +24,7 @@ public final static Optional findHighestSetBit(int num) { num >>= 1; position++; } - + return Optional.of(position - 1); } } \ No newline at end of file From 9155b7e609d43e91ab2d12102a6105f8a59edbfd Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Thu, 31 Aug 2023 12:54:35 +0530 Subject: [PATCH 12/18] add get method --- .../thealgorithms/bitmanipulation/HighestSetBitTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 7c4dc8d3aeca..10337b74b4f5 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,9 +13,9 @@ class HighestSetBitTest { @Test void testHighestSetBit() { - assertEquals(5, HighestSetBit.findHighestSetBit(37).orElse(-1)); + assertEquals(5, HighestSetBit.findHighestSetBit(37).get()); assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); - assertEquals(0, HighestSetBit.findHighestSetBit(1).orElse(-1)); - assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37).orElse(-1)); + assertEquals(0, HighestSetBit.findHighestSetBit(1).get()); + assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); } } \ No newline at end of file From 5319a524ca245f002784690b1a0948ac4e466292 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Thu, 31 Aug 2023 23:49:20 +0530 Subject: [PATCH 13/18] added test cases --- .../bitmanipulation/HighestSetBitTest.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 10337b74b4f5..e53a7aede7ba 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,9 +13,23 @@ class HighestSetBitTest { @Test void testHighestSetBit() { - assertEquals(5, HighestSetBit.findHighestSetBit(37).get()); - assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); - assertEquals(0, HighestSetBit.findHighestSetBit(1).get()); + assertEquals(1, HighestSetBit.findHighestSetBit(2).get()); + assertEquals(1, HighestSetBit.findHighestSetBit(3).get()); + assertEquals(2, HighestSetBit.findHighestSetBit(4).get()); + assertEquals(2, HighestSetBit.findHighestSetBit(5).get()); + assertEquals(2, HighestSetBit.findHighestSetBit(7).get()); + assertEquals(3, HighestSetBit.findHighestSetBit(8).get()); + assertEquals(3, HighestSetBit.findHighestSetBit(9).get()); + assertEquals(3, HighestSetBit.findHighestSetBit(15).get()); + assertEquals(4, HighestSetBit.findHighestSetBit(16).get()); + assertEquals(4, HighestSetBit.findHighestSetBit(17).get()); + assertEquals(4, HighestSetBit.findHighestSetBit(31).get()); + assertEquals(5, HighestSetBit.findHighestSetBit(32).get()); + assertEquals(5, HighestSetBit.findHighestSetBit(33).get()); + assertEquals(7, HighestSetBit.findHighestSetBit(255).get()); + assertEquals(8, HighestSetBit.findHighestSetBit(256).get()); + assertEquals(8, HighestSetBit.findHighestSetBit(511).get()); + assertEquals(9, HighestSetBit.findHighestSetBit(512).get()); assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); } } \ No newline at end of file From 6f1995d021e05929e3e241474c7e584475c28203 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Fri, 1 Sep 2023 00:14:49 +0530 Subject: [PATCH 14/18] add remaining test cases --- .../com/thealgorithms/bitmanipulation/HighestSetBitTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index e53a7aede7ba..dc148d2d230b 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,6 +13,7 @@ class HighestSetBitTest { @Test void testHighestSetBit() { + assertEquals(0, HighestSetBit.findHighestSetBit(1).get()); assertEquals(1, HighestSetBit.findHighestSetBit(2).get()); assertEquals(1, HighestSetBit.findHighestSetBit(3).get()); assertEquals(2, HighestSetBit.findHighestSetBit(4).get()); From 5d1ac8311463ff843a2e3c7bc7a10b087fa6c78d Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Fri, 1 Sep 2023 01:34:55 +0530 Subject: [PATCH 15/18] last commit --- .../com/thealgorithms/bitmanipulation/HighestSetBitTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index dc148d2d230b..54d036cbf6fd 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -13,6 +13,7 @@ class HighestSetBitTest { @Test void testHighestSetBit() { + assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); assertEquals(0, HighestSetBit.findHighestSetBit(1).get()); assertEquals(1, HighestSetBit.findHighestSetBit(2).get()); assertEquals(1, HighestSetBit.findHighestSetBit(3).get()); From e9580a367d880f18058432d8f952d241b85ec616 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 3 Sep 2023 02:13:57 +0530 Subject: [PATCH 16/18] clang formater solved --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 7 ++++++- .../thealgorithms/bitmanipulation/HighestSetBitTest.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index 8a1e0ae573ef..e2ad7dddc4c7 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -3,9 +3,14 @@ /** * Find Highest Set Bit + * + * This function calculates the position (or index) of the highest set bit (the leftmost 1 bit) + * in a given binary number. + * * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) */ + public final class HighestSetBit { private HighestSetBit() { } @@ -27,4 +32,4 @@ public final static Optional findHighestSetBit(int num) { return Optional.of(position - 1); } -} \ No newline at end of file +} diff --git a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java index 54d036cbf6fd..8dc61ae4fa9d 100644 --- a/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java +++ b/src/test/java/com/thealgorithms/bitmanipulation/HighestSetBitTest.java @@ -34,4 +34,4 @@ void testHighestSetBit() { assertEquals(9, HighestSetBit.findHighestSetBit(512).get()); assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); } -} \ No newline at end of file +} From f5cc5f4634cb2a8a06a718cd7cfa35476ab0e502 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 3 Sep 2023 02:21:24 +0530 Subject: [PATCH 17/18] clang formater solved --- .../com/thealgorithms/bitmanipulation/HighestSetBit.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index e2ad7dddc4c7..f6e774716bfe 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -3,14 +3,11 @@ /** * Find Highest Set Bit - * - * This function calculates the position (or index) of the highest set bit (the leftmost 1 bit) + * This function calculates the position (or index) of the highest set bit (the leftmost 1 bit) * in a given binary number. - * * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) */ - public final class HighestSetBit { private HighestSetBit() { } From 3c234f3c5055a609b3690d10f18d933d1bd53008 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Tue, 5 Sep 2023 02:19:12 +0530 Subject: [PATCH 18/18] documentation correct --- .../java/com/thealgorithms/bitmanipulation/HighestSetBit.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java index f6e774716bfe..398b6bbb67bb 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/HighestSetBit.java @@ -3,8 +3,8 @@ /** * Find Highest Set Bit - * This function calculates the position (or index) of the highest set bit (the leftmost 1 bit) - * in a given binary number. + * This class provides a function calculating the position (or index) + * of the most significant bit being set to 1 in a given integer. * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) */