|
| 1 | +package com.thealgorithms.bitmanipulation; |
| 2 | + |
| 3 | +import static org.junit.jupiter.api.Assertions.*; |
| 4 | + |
| 5 | +import org.junit.jupiter.api.Test; |
| 6 | + |
| 7 | +/** |
| 8 | + * Test case for Highest Set Bit |
| 9 | + * @author Bama Charan Chhandogi (https://github.com/BamaCharanChhandogi) |
| 10 | + */ |
| 11 | + |
| 12 | +class HighestSetBitTest { |
| 13 | + |
| 14 | + @Test |
| 15 | + void testHighestSetBit() { |
| 16 | + assertFalse(HighestSetBit.findHighestSetBit(0).isPresent()); |
| 17 | + assertEquals(0, HighestSetBit.findHighestSetBit(1).get()); |
| 18 | + assertEquals(1, HighestSetBit.findHighestSetBit(2).get()); |
| 19 | + assertEquals(1, HighestSetBit.findHighestSetBit(3).get()); |
| 20 | + assertEquals(2, HighestSetBit.findHighestSetBit(4).get()); |
| 21 | + assertEquals(2, HighestSetBit.findHighestSetBit(5).get()); |
| 22 | + assertEquals(2, HighestSetBit.findHighestSetBit(7).get()); |
| 23 | + assertEquals(3, HighestSetBit.findHighestSetBit(8).get()); |
| 24 | + assertEquals(3, HighestSetBit.findHighestSetBit(9).get()); |
| 25 | + assertEquals(3, HighestSetBit.findHighestSetBit(15).get()); |
| 26 | + assertEquals(4, HighestSetBit.findHighestSetBit(16).get()); |
| 27 | + assertEquals(4, HighestSetBit.findHighestSetBit(17).get()); |
| 28 | + assertEquals(4, HighestSetBit.findHighestSetBit(31).get()); |
| 29 | + assertEquals(5, HighestSetBit.findHighestSetBit(32).get()); |
| 30 | + assertEquals(5, HighestSetBit.findHighestSetBit(33).get()); |
| 31 | + assertEquals(7, HighestSetBit.findHighestSetBit(255).get()); |
| 32 | + assertEquals(8, HighestSetBit.findHighestSetBit(256).get()); |
| 33 | + assertEquals(8, HighestSetBit.findHighestSetBit(511).get()); |
| 34 | + assertEquals(9, HighestSetBit.findHighestSetBit(512).get()); |
| 35 | + assertThrows(IllegalArgumentException.class, () -> HighestSetBit.findHighestSetBit(-37)); |
| 36 | + } |
| 37 | +} |
0 commit comments