93 lines
2.6 KiB
C#
93 lines
2.6 KiB
C#
using System;
|
|
using System.Buffers;
|
|
using Server.Network;
|
|
using Xunit;
|
|
|
|
namespace Server.Tests.Network.Packets
|
|
{
|
|
[Collection("Sequential Tests")]
|
|
public class AttributeNormalizerTests
|
|
{
|
|
[Fact]
|
|
public void TestAttributeNormalizerEnabled()
|
|
{
|
|
AttributeNormalizer.Enabled = true;
|
|
AttributeNormalizer.Maximum = 25;
|
|
|
|
var stream = new PacketWriter(4);
|
|
|
|
const ushort cur = 50;
|
|
const ushort max = 100;
|
|
|
|
AttributeNormalizer.Write(stream, cur, max);
|
|
|
|
Span<byte> expectedData = stackalloc byte[4];
|
|
var pos = 0;
|
|
expectedData.Write(ref pos, (ushort)AttributeNormalizer.Maximum);
|
|
expectedData.Write(ref pos, (ushort)(cur * 25 / max));
|
|
|
|
AssertThat.Equal(stream.ToArray(), expectedData);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestAttributeNormalizerReversedEnabled()
|
|
{
|
|
AttributeNormalizer.Enabled = true;
|
|
AttributeNormalizer.Maximum = 25;
|
|
|
|
var stream = new PacketWriter(4);
|
|
|
|
const ushort cur = 50;
|
|
const ushort max = 100;
|
|
|
|
AttributeNormalizer.WriteReverse(stream, cur, max);
|
|
|
|
Span<byte> expectedData = stackalloc byte[4];
|
|
var pos = 0;
|
|
expectedData.Write(ref pos, (ushort)(cur * 25 / max));
|
|
expectedData.Write(ref pos, (ushort)AttributeNormalizer.Maximum);
|
|
|
|
AssertThat.Equal(stream.ToArray(), expectedData);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestAttributeNormalizerDisabled()
|
|
{
|
|
AttributeNormalizer.Enabled = false;
|
|
|
|
var stream = new PacketWriter(4);
|
|
|
|
const ushort cur = 50;
|
|
const ushort max = 100;
|
|
|
|
AttributeNormalizer.Write(stream, cur, max);
|
|
|
|
Span<byte> expectedData = stackalloc byte[4];
|
|
var pos = 0;
|
|
expectedData.Write(ref pos, max);
|
|
expectedData.Write(ref pos, cur);
|
|
|
|
AssertThat.Equal(stream.ToArray(), expectedData);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestAttributeNormalizerReversedDisabled()
|
|
{
|
|
AttributeNormalizer.Enabled = false;
|
|
|
|
var stream = new PacketWriter(4);
|
|
|
|
const ushort cur = 50;
|
|
const ushort max = 100;
|
|
|
|
AttributeNormalizer.WriteReverse(stream, cur, max);
|
|
|
|
Span<byte> expectedData = stackalloc byte[4];
|
|
var pos = 0;
|
|
expectedData.Write(ref pos, cur);
|
|
expectedData.Write(ref pos, max);
|
|
|
|
AssertThat.Equal(stream.ToArray(), expectedData);
|
|
}
|
|
}
|
|
}
|