feat: refactor to proper app + write tests
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user