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);
        }