Files
bgr/src/BGR.Console.Tests/Unit/ModelTests.cs
T

94 lines
2.7 KiB
C#

namespace BGR.Console.Tests.Unit;
public class ModelTests
{
internal sealed class TestModel(byte[] modelBytes) : Model(modelBytes)
{
public override int InputWidth => 100;
public override int InputHeight => 100;
public override float RedNormalizationMean => 0.5f;
public override float GreenNormalizationMean => 0.5f;
public override float BlueNormalizationMean => 0.5f;
public override float RedNormalizationStd => 0.25f;
public override float GreenNormalizationStd => 0.25f;
public override float BlueNormalizationStd => 0.25f;
}
private readonly byte[] _sampleBytes = [0x01, 0x02, 0x03];
private readonly TestModel _sut;
private const float Delta = 0.00001f;
public ModelTests()
{
_sut = new TestModel(_sampleBytes);
}
[Theory]
[InlineData(0f)]
[InlineData(127.5f)]
[InlineData(255f)]
public void NormalizeRed_WhenCalled_ItShouldNormalizeCorrectly(float value)
{
var result = _sut.NormalizeRed(value);
var expected = ((value / 255f) - _sut.RedNormalizationMean) / _sut.RedNormalizationStd;
result.ShouldBe(expected, Delta);
}
[Theory]
[InlineData(0f)]
[InlineData(127.5f)]
[InlineData(255f)]
public void NormalizeGreen_WhenCalled_ItShouldNormalizeCorrectly(float value)
{
var result = _sut.NormalizeGreen(value);
var expected = ((value / 255f) - _sut.GreenNormalizationMean) / _sut.GreenNormalizationStd;
result.ShouldBe(expected, Delta);
}
[Theory]
[InlineData(0f)]
[InlineData(127.5f)]
[InlineData(255f)]
public void NormalizeBlue_WhenCalled_ItShouldNormalizeCorrectly(float value)
{
var result = _sut.NormalizeBlue(value);
var expected = ((value / 255f) - _sut.BlueNormalizationMean) / _sut.BlueNormalizationStd;
result.ShouldBe(expected, Delta);
}
[Theory]
[InlineData(-1f)]
[InlineData(256f)]
public void NormalizeRed_WhenCalledWithOutOfRangeValues_ItShouldStillNormalize(float value)
{
var result = _sut.NormalizeRed(value);
var expected = ((value / 255f) - _sut.RedNormalizationMean) / _sut.RedNormalizationStd;
result.ShouldBe(expected, Delta);
}
[Theory]
[InlineData(-1f)]
[InlineData(256f)]
public void NormalizeGreen_WhenCalledWithOutOfRangeValues_ItShouldStillNormalize(float value)
{
var result = _sut.NormalizeGreen(value);
var expected = ((value / 255f) - _sut.GreenNormalizationMean) / _sut.GreenNormalizationStd;
result.ShouldBe(expected, Delta);
}
[Theory]
[InlineData(-1f)]
[InlineData(256f)]
public void NormalizeBlue_WhenCalledWithOutOfRangeValues_ItShouldStillNormalize(float value)
{
var result = _sut.NormalizeBlue(value);
var expected = ((value / 255f) - _sut.BlueNormalizationMean) / _sut.BlueNormalizationStd;
result.ShouldBe(expected, Delta);
}
}