using System.Buffers.Binary; using Common; namespace server.test; public class CommonTest { [Fact] public void ReverseBytesTest() { var rnd = new Random(); var bytesLen = 8; var bytesArray = new byte[bytesLen]; rnd.NextBytes(bytesArray); var rev2Bytes = new byte[] { bytesArray[1], bytesArray[0], bytesArray[3], bytesArray[2], bytesArray[5], bytesArray[4], bytesArray[7], bytesArray[6], }; Assert.Equal(Number.ReverseBytes(bytesArray, 2).Value, rev2Bytes); var rev4Bytes = new byte[] { bytesArray[3], bytesArray[2], bytesArray[1], bytesArray[0], bytesArray[7], bytesArray[6], bytesArray[5], bytesArray[4], }; Assert.Equal(Number.ReverseBytes(bytesArray, 4).Value, rev4Bytes); } [Fact] public void ToBitTest() { Assert.Equal(Number.ToBit(0xFF, 3).Value, true); Assert.Equal(Number.ToBit(0x00, 3).Value, false); Assert.Equal(Number.ToBit(0xAA, 3).Value, true); Assert.Equal(Number.ToBit(0xAA, 2).Value, false); } [Fact] public void ReverseBits() { Assert.Equal(BinaryPrimitives.ReverseEndianness((byte)0xA0), (byte)0x50); var bytesSrc = new byte[] { 0xAB, 0x00, 0x00, 0x01 }; var bytes = new byte[4]; for (int i = 0; i < 4; i++) bytes[i] = BinaryPrimitives.ReverseEndianness(bytesSrc[i]); Assert.Equal(bytesSrc, new byte[] { 0xD5, 0x00, 0x00, 0x80 }); } }