Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 1c76c247 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adding testcase where linear regression leads to negative torque when extrapolating

parent d363a69e
Branches
Tags v1.1.0
No related merge requests found
...@@ -406,6 +406,48 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData ...@@ -406,6 +406,48 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
Assert.IsFalse(lookupExt.Extrapolated); Assert.IsFalse(lookupExt.Extrapolated);
} }
[TestCase()]
public void TestLossMapExtensionNegativeRegressionSlope()
{
var entries = new[] {
"Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] # this is a comment",
"200,-2500,60",
"200,0,30",
"200,100,35",
"200,200,40",
"200,500,32",
"200,1000,30",
"200,2000,25",
"200,2500,23",
"500,-2500,60",
"500,0,35",
"500,2500,23"
};
var mstream = new MemoryStream();
var writer = new StreamWriter(mstream);
foreach (var entry in entries) {
writer.WriteLine(entry);
}
writer.Flush();
mstream.Flush();
mstream.Seek(0, SeekOrigin.Begin);
var lossMap = TransmissionLossMapReader.Create(VectoCSVFile.ReadStream(mstream), 1.0, "TestGear", true);
var validation = lossMap.Validate(ExecutionMode.Declaration, GearboxType.AMT, false);
Assert.AreEqual(0, validation.Count);
var lookup1 = lossMap.GetTorqueLoss(200.RPMtoRad(), 500.SI<NewtonMeter>());
Assert.IsFalse(lookup1.Extrapolated);
Assert.AreEqual(31.8725, lookup1.Value.Value(), 1e-3);
var lookup2 = lossMap.GetTorqueLoss(200.RPMtoRad(), 7000.SI<NewtonMeter>());
Assert.IsFalse(lookup2.Extrapolated);
Assert.AreEqual(23, lookup2.Value.Value());
}
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment