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(true, Number.ToBit(0xFF, 3).Value); Assert.Equal(false, Number.ToBit(0x00, 3).Value); Assert.Equal(true, Number.ToBit(0xAA, 3).Value); Assert.Equal(false, Number.ToBit(0xAA, 2).Value); } [Fact] public void ReverseBits() { Assert.Equal((byte)0x05, Common.Number.ReverseBits((byte)0xA0)); var bytesSrc = new byte[] { 0xAB, 0x00, 0x00, 0x01 }; var bytes = new byte[4]; for (int i = 0; i < 4; i++) bytes[i] = Common.Number.ReverseBits(bytesSrc[i]); Assert.Equal(new byte[] { 0xD5, 0x00, 0x00, 0x80 }, bytes); } }