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)); } } }