62 lines
1.6 KiB
C#
62 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|