コード例 #1
0
        [InlineData(0x5E, 0xAF, 7, 0x57)] // 0x5EAF   0101111(0  1010111)1    => 0x57 (87)
        public void OffsetIsUsedDuringRead(byte upperByte, byte lowerByte, int offset, byte expected)
        {
            var shiftRegister = new ShiftRegister();

            Assert.Equal(0, shiftRegister.Read());

            shiftRegister.Write(lowerByte);
            shiftRegister.Write(upperByte);
            shiftRegister.SetOffset(offset);

            Assert.Equal(expected, shiftRegister.Read());

            // Ensure multiple reads aren't mutating the internal value during the offset shift operation.
            Assert.Equal(expected, shiftRegister.Read());
        }
コード例 #2
0
        public void ValuesAreShifted()
        {
            var shiftRegister = new ShiftRegister();

            Assert.Equal(0, shiftRegister.Read());

            shiftRegister.Write(0xAF);

            Assert.Equal(0xAF, shiftRegister.Read());

            shiftRegister.Write(0x5E);

            Assert.Equal(0x5E, shiftRegister.Read());

            shiftRegister.Write(0x29);

            Assert.Equal(0x29, shiftRegister.Read());
        }