80 lines
3.3 KiB
C#
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));
|
|
|
|
}
|
|
|
|
}
|
|
}
|