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)); }
private static void ReplaceBytes(int bitCount, ulong value, byte[] buffer, ref int bufferIndex) { switch (bitCount) { case Bits.kInt16BitCount: bufferIndex = ByteSwap.ReplaceBytes(buffer, bufferIndex, unchecked ((ushort)value)); break; case Bits.kInt32BitCount: bufferIndex = ByteSwap.ReplaceBytes(buffer, bufferIndex, unchecked ((uint)value)); break; case Bits.kInt64BitCount: bufferIndex = ByteSwap.ReplaceBytes(buffer, bufferIndex, unchecked ((ulong)value)); break; } }