Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

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

adapt intersection of full-load curves: use dedicated equality comparer for fullloadentries

parent 87f096d4
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@
* limitations under the Licence.
*/
using System.Collections.Generic;
using System.Linq;
using TUGraz.VectoCore.Models;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
......@@ -141,13 +142,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return engineCurve;
}
var entries = gearCurve.FullLoadEntries.Concat(engineCurve.FullLoadEntries)
.Select(entry => entry.EngineSpeed)
.OrderBy(engineSpeed => engineSpeed)
.Distinct()
.Select(engineSpeed => new FullLoadCurve.FullLoadCurveEntry {
EngineSpeed = engineSpeed,
.OrderBy(x => x.EngineSpeed)
.Distinct(new FullLoadEntryEqualityComparer())
.Select(x => new FullLoadCurve.FullLoadCurveEntry {
EngineSpeed = x.EngineSpeed,
TorqueFullLoad =
VectoMath.Min(engineCurve.FullLoadStationaryTorque(engineSpeed), gearCurve.FullLoadStationaryTorque(engineSpeed))
VectoMath.Min(engineCurve.FullLoadStationaryTorque(x.EngineSpeed),
gearCurve.FullLoadStationaryTorque(x.EngineSpeed))
});
var flc = new EngineFullLoadCurve {
......@@ -157,5 +158,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
};
return flc;
}
internal class FullLoadEntryEqualityComparer : IEqualityComparer<FullLoadCurve.FullLoadCurveEntry>
{
public bool Equals(FullLoadCurve.FullLoadCurveEntry x, FullLoadCurve.FullLoadCurveEntry y)
{
return x.EngineSpeed.Value().IsEqual(y.EngineSpeed.Value());
}
public int GetHashCode(FullLoadCurve.FullLoadCurveEntry obj)
{
return obj.EngineSpeed.Value().GetHashCode();
}
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment