public void BitManipulationSetClearBit1CompleteTest2() { // Start with -1 (1111_1111_1111_1111_1111_1111_1111_1111) int value = -1; // Clear some bits. value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 3, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 4, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 6, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 8, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 11, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 17, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 18, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 28, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 29, false); // Check value. Assert.AreEqual(-805701977, value); // -805701977 (Random #) (1100_1111_1111_1001_1111_0110_1010_0111) for (var index = 0; index < sizeof(int) * 8; index++) { bool expected = index != 3 && index != 4 && index != 6 && index != 8 && index != 11 && index != 17 && index != 18 && index != 28 && index != 29; Assert.AreEqual(expected, BitManipulationGetSetClearBit1Complete.GetBit(value, index)); } // Set same bits. value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 3); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 4); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 6); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 8); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 11); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 17); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 18); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 28); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 29); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 31); // Check value. Assert.AreEqual(-1, value); }
public void BitManipulationSetClearBit1CompleteTest1() { // Start with 0. var value = 0; // Set some bits. value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 2); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 3); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 4); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 6); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 7); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 10); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 12); // Check value. Assert.AreEqual(5340, value); // 5340 (Random #) (0000_0000_0000_0000_0001_0100_1101_1100) for (var index = 0; index < sizeof(int) * 8; index++) { bool expected = index == 2 || index == 3 || index == 4 || index == 6 || index == 7 || index == 10 || index == 12; Assert.AreEqual(expected, BitManipulationGetSetClearBit1Complete.GetBit(value, index)); } // Reset the bits. value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 2, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 3, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 4, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 6, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 7, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 10, false); value = BitManipulationGetSetClearBit1Complete.SetClearBit(value, 12, false); // Check value. Assert.AreEqual(0, value); }