Files
DP44/Common/DTS.Common.Tests/LinearizationFormulaShould.cs
2026-04-17 14:55:32 -04:00

80 lines
3.3 KiB
C#

using DTS.Common.Classes.Sensors;
using DTS.Common.Utils;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DTS.Common.Tests
{
public class LinearizationFormulaShould
{
[Test]
public void GetLinearizedValue_ShouldReturnCorrectEU_OnNonLinearAndNonProportional()
{
//Arrange
LinearizationFormula linearizationFormula = new LinearizationFormula();
linearizationFormula.PolynomialCoefficients = new double[] { 1657.882, 4368.774, 204.5695, 24.8535 };
//Act
//Assert
var resultEU = linearizationFormula.GetLinearizedValue(-0.39272, 5, false);
Assert.That(resultEU, Is.EqualTo(-27.7773).Within(.0005));
var resultEU2 = linearizationFormula.GetLinearizedValue(-0.14947, 5, false);
Assert.That(resultEU2, Is.EqualTo(1009.369).Within(.0005));
var resultEU3 = linearizationFormula.GetLinearizedValue(0.73579, 5, false);
Assert.That(resultEU3, Is.EqualTo(4993.034).Within(.0005));
var resultEU4 = linearizationFormula.GetLinearizedValue(0.30645, 5, false);
Assert.That(resultEU4, Is.EqualTo(3016.62).Within(.0005));
}
[Test]
public void GetLinearizedValue_ShouldReturnCorrectEU_OnNonLinearAndProportional()
{
//Arrange
LinearizationFormula linearizationFormula = new LinearizationFormula();
linearizationFormula.PolynomialCoefficients = new double[] { 1657.882, 4368.774, 204.5695, 24.8535 };
//Act
//Assert
var resultEU = linearizationFormula.GetLinearizedValue(-0.39272, 5, true);
Assert.That(resultEU, Is.Not.EqualTo(-27.7773).Within(.0005));
var resultEU2 = linearizationFormula.GetLinearizedValue(-0.14947, 5, true);
Assert.That(resultEU2, Is.Not.EqualTo(1009.369).Within(.0005));
}
[Test]
public void GetLinearizedValue_ShouldReturnCorrectEU_OnNonLinearAndProportionalSpecifiedAsNull()
{
//Arrange
LinearizationFormula linearizationFormula = new LinearizationFormula();
linearizationFormula.PolynomialCoefficients = new double[] { 1657.882, 4368.774, 204.5695, 24.8535 };
//Act
//Assert
var resultEU = linearizationFormula.GetLinearizedValue(-0.39272, 5, null);
Assert.That(resultEU, Is.Not.EqualTo(-27.7773).Within(.0005));
var resultEU2 = linearizationFormula.GetLinearizedValue(-0.14947, 5, null);
Assert.That(resultEU2, Is.Not.EqualTo(1009.369).Within(.0005));
}
[Test]
public void GetLinearizedValue_ShouldNonLinearStyleBePolynomial_ByDefault()
{
//Arrange
LinearizationFormula linearizationFormula = new LinearizationFormula();
linearizationFormula.PolynomialCoefficients = new double[] { 1657.882, 4368.774, 204.5695, 24.8535 };
//Act
//Assert
Assert.That(linearizationFormula.NonLinearStyle, Is.EqualTo(Enums.Sensors.NonLinearStyles.Polynomial));
}
}
}