FPGA_WebLab/server.test/CommonTest.cs

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(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 });
}
}