예제 #1
0
        public void ByteSwap_SwapBufferTest()
        {
            byte[] buffer       = new byte[sizeof(ulong)];
            byte[] buffer_bc    = null;
            ulong  value_before = kBeforeValue;
            ulong  value_after  = kAfterValue;

            // UInt64
            ByteSwap.ReplaceBytes(buffer, 0, value_before);
            ByteSwap.SwapInt64(buffer, 0);
            buffer_bc = BitConverter.GetBytes(value_after);
            Assert.IsTrue(buffer_bc.EqualsArray(buffer));

            // UInt32
            value_before >>= 32;
            value_after  >>= 32;
            Array.Clear(buffer, 0, buffer.Length);
            ByteSwap.ReplaceBytes(buffer, 0, (uint)value_before);
            ByteSwap.SwapInt32(buffer, 0);
            buffer_bc = BitConverter.GetBytes((uint)value_after);
            Assert.IsTrue(buffer_bc.EqualsArray(buffer));

            // UInt16
            value_before >>= 16;
            value_after  >>= 16;
            Array.Clear(buffer, 0, buffer.Length);
            ByteSwap.ReplaceBytes(buffer, 0, (ushort)value_before);
            ByteSwap.SwapInt16(buffer, 0);
            buffer_bc = BitConverter.GetBytes((ushort)value_after);
            Assert.IsTrue(buffer_bc.EqualsArray(buffer));

            // UInt40
            value_before = kBeforeValueUInt40;
            value_after  = kAfterValueUInt40;
            Array.Clear(buffer, 0, buffer.Length);
            ByteSwap.ReplaceBytesUInt40(buffer, 0, value_before);
            ByteSwap.SwapInt40(buffer, 0);
            buffer_bc = BitConverter.GetBytes(value_after);
            Assert.IsTrue(buffer_bc.EqualsArray(buffer));

            // UInt24
            value_before = kBeforeValueUInt24;
            value_after  = kAfterValueUInt24;
            Array.Clear(buffer, 0, buffer.Length);
            ByteSwap.ReplaceBytesUInt24(buffer, 0, (uint)value_before);
            ByteSwap.SwapInt24(buffer, 0);
            buffer_bc = BitConverter.GetBytes((uint)value_after);
            Assert.IsTrue(buffer_bc.EqualsArray(buffer));
        }