From 9d188c7a37b8fc90cbb5f49c970ad375a0e9fc22 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Thu, 1 Sep 2022 17:33:25 +0200 Subject: [PATCH] added PrimaryBus and Completed Bus RunDataFactories --- ...tionModeCompletedBusVectoRunDataFactory.cs | 34 ++ ...rationModeHeavyLorryVectoRunDataFactory.cs | 29 +- ...rationModePrimaryBusVectoRunDataFactory.cs | 91 +++++ .../Reader/VectoRunDataFactoryFactory.cs | 33 +- .../VectoRunDataFactoryNinjectModule.cs | 140 +++++++- .../RunDataFactoryFactoryTest.cs | 331 +++++++++++++++++- 6 files changed, 630 insertions(+), 28 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs index 0a36841a99..7b28e518da 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs @@ -291,5 +291,39 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl return simulationRunData; } + + } + + + public abstract class DeclarationModeCompletedBusRunDataFactory + { + public abstract class CompletedBusBase : IVectoRunDataFactory + { + #region Implementation of IVectoRunDataFactory + + public IEnumerable<VectoRunData> NextRun() + { + throw new NotImplementedException(); + } + + #endregion + } + + + public class Conventional : CompletedBusBase { } + public class HEV_S2 : CompletedBusBase { } + public class HEV_S3 : CompletedBusBase { } + public class HEV_S4 : CompletedBusBase { } + public class HEV_S_IEPC : CompletedBusBase { } + public class HEV_P1 : CompletedBusBase { } + public class HEV_P2 : CompletedBusBase { } + public class HEV_P2_5 : CompletedBusBase { } + public class HEV_P3 : CompletedBusBase { } + public class HEV_P4 : CompletedBusBase { } + public class PEV_E1 : CompletedBusBase { } + public class PEV_E2 : CompletedBusBase { } + public class PEV_E3 : CompletedBusBase { } + public class PEV_E4 : CompletedBusBase { } + public class PEV_E_IEPC : CompletedBusBase { } } } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs index 738351dfe7..8d7d6267cd 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs @@ -233,10 +233,13 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl - - public class DeclarationModeHeavyLorryRunDataFactory + /// <summary> + /// This class is just used to improve the readability + /// </summary> + public abstract class DeclarationModeHeavyLorryRunDataFactory { + public abstract class LorryBase : IVectoRunDataFactory { #region Implementation of IVectoRunDataFactory @@ -249,7 +252,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl #endregion } - public class Conventional : LorryBase { @@ -270,6 +272,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } + public class HEV_S_IEPC : LorryBase + { + + } + public class HEV_P1 : LorryBase { @@ -295,8 +302,24 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } + public class PEV_E2 : LorryBase + { + } + public class PEV_E3 : LorryBase + { + + } + + public class PEV_E4 : LorryBase + { + } + + public class PEV_E_IEPC : LorryBase + { + + } } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs index 5e162563ef..85dd672223 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs @@ -173,5 +173,96 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl mission, InputDataProvider.JobInputData.Vehicle, simulationRunData); return simulationRunData; } + + + + } + + + + public abstract class DeclarationModePrimaryBusRunDataFactory + { + public abstract class PrimaryBusBase : IVectoRunDataFactory + { + #region Implementation of IVectoRunDataFactory + + public IEnumerable<VectoRunData> NextRun() + { + throw new NotImplementedException(); + } + + #endregion + } + + public class Conventional : PrimaryBusBase + { + + } + + public class HEV_S2 : PrimaryBusBase + { + + } + + public class HEV_S3 : PrimaryBusBase + { + + } + + public class HEV_S4 : PrimaryBusBase + { + + } + + public class HEV_S_IEPC : PrimaryBusBase + { + + } + + public class HEV_P1 : PrimaryBusBase + { + + } + + public class HEV_P2 : PrimaryBusBase + { + + } + + public class HEV_P2_5 : PrimaryBusBase + { + + } + + public class HEV_P3 : PrimaryBusBase + { + + } + + public class HEV_P4 : PrimaryBusBase + { + + } + + + public class PEV_E2 : PrimaryBusBase + { + + } + + public class PEV_E3 : PrimaryBusBase + { + + } + + public class PEV_E4 : PrimaryBusBase + { + + } + + public class PEV_E_IEPC : PrimaryBusBase + { + + } } } diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs index b8eb907781..ccab1688dd 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs @@ -16,6 +16,8 @@ namespace TUGraz.VectoCore.InputData.Reader { public interface IInternalRunDataFactoryFactory { + IVectoRunDataFactory CreateDeclarationCompletedBusRunDataFactory(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc); IVectoRunDataFactory CreateDeclarationRunDataFactory(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, bool exempted, bool iepc, bool ihpc); } @@ -60,10 +62,19 @@ namespace TUGraz.VectoCore.InputData.Reader private IVectoRunDataFactory CreateRunDataReader(IMultistageVIFInputData multistageVifInputData, IDeclarationReport report) { + var vehicle = multistageVifInputData.MultistageJobInputData.PrimaryVehicleData.Vehicle; if (multistageVifInputData.VehicleInputData == null) { - return new DeclarationModeCompletedMultistageBusVectoRunDataFactory( - multistageVifInputData.MultistageJobInputData, - report); + var ihpc = (vehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0; + var iepc = (vehicle.Components?.IEPC != null); + return _internalFactory.CreateDeclarationRunDataFactory(vehicle.VehicleCategory, + vehicle.VehicleType, + vehicle.ArchitectureID, + vehicle.ExemptedVehicle, iepc, ihpc); + + + //return new DeclarationModeCompletedMultistageBusVectoRunDataFactory( + // multistageVifInputData.MultistageJobInputData, + // report); } else { return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); @@ -72,21 +83,7 @@ namespace TUGraz.VectoCore.InputData.Reader private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report) { - //var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory; - //if (vehicleCategory.IsLorry()) { - // return new DeclarationModeTruckVectoRunDataFactory(declDataProvider, report); - //} - - //if (vehicleCategory.IsBus()) - // switch (declDataProvider.JobInputData.Vehicle.VehicleCategory) - // { - // case VehicleCategory.HeavyBusCompletedVehicle: - // return new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, report); - // case VehicleCategory.HeavyBusPrimaryVehicle: - // return new DeclarationModePrimaryBusVectoRunDataFactory(declDataProvider, report); - // default: - // break; - // } + //TODO: encapsulate arguments into object var vehicle = declDataProvider.JobInputData.Vehicle; try { diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs index 9647492cd2..907c6f7db2 100644 --- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs @@ -24,11 +24,19 @@ namespace TUGraz.VectoCore.InputData.Reader Bind<IVectoRunDataFactoryFactory>().To<VectoRunDataFactoryFactory>().InSingletonScope(); - Bind<IInternalRunDataFactoryFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider( - _vehicleStringHelper.CreateName, - 6, 6, - typeof(IInternalRunDataFactoryFactory).GetMethod(nameof(IInternalRunDataFactoryFactory - .CreateDeclarationRunDataFactory)))).InSingletonScope(); + Bind<IInternalRunDataFactoryFactory>().ToFactory( + () => new CombineArgumentsToNameInstanceProvider( + _vehicleStringHelper.CreateName, + 6, 6, + typeof(IInternalRunDataFactoryFactory) + .GetMethod(nameof(IInternalRunDataFactoryFactory + .CreateDeclarationRunDataFactory)), + typeof(IInternalRunDataFactoryFactory) + .GetMethod(nameof(IInternalRunDataFactoryFactory + .CreateDeclarationCompletedBusRunDataFactory)) + ) + ) + .InSingletonScope(); #region Lorries @@ -48,6 +56,11 @@ namespace TUGraz.VectoCore.InputData.Reader _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, ArchitectureID.S4)); + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.HEV_S_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC)); + + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.HEV_P1>().Named( _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P1)); @@ -68,8 +81,125 @@ namespace TUGraz.VectoCore.InputData.Reader _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle, ArchitectureID.P4)); + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.PEV_E2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2)); + + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.PEV_E3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3)); + + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.PEV_E4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4)); + + Bind<IVectoRunDataFactory>().To<DeclarationModeHeavyLorryRunDataFactory.PEV_E_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.Lorry, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC)); + + #endregion + #region PrimaryBus + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.Conventional>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_S2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_S3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_S4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4)); + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_S_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P1>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P1)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P2)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P2_5>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P2_5)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P3)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.HEV_P4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P4)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.PEV_E2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2)); + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.PEV_E3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3)); + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.PEV_E4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4)); + + Bind<IVectoRunDataFactory>().To<DeclarationModePrimaryBusRunDataFactory.PEV_E_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC)); + #endregion + + + #region CompletedBus + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.Conventional>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_S2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S2)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_S3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S3)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_S4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S4)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_S_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.SerialHybridVehicle, + ArchitectureID.S_IEPC)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_P1>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P1)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_P2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P2)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_P2_5>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P2_5)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_P3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P3)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.HEV_P4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ParallelHybridVehicle, + ArchitectureID.P4)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.PEV_E2>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E2)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.PEV_E3>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E3)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.PEV_E4>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E4)); + Bind<IVectoRunDataFactory>().To<DeclarationModeCompletedBusRunDataFactory.PEV_E_IEPC>().Named( + _vehicleStringHelper.GetName(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.E_IEPC)); + + #endregion } #endregion diff --git a/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs index 2f45df2608..9e1ea3606a 100644 --- a/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs +++ b/VectoCore/VectoCoreTest/InputData/RunDataFactory/RunDataFactoryFactoryTest.cs @@ -38,6 +38,7 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory Assert.IsTrue(result.GetType() == expectedType); } + #region HeavyLorry [TestCase()] public void ConventionalHeavyLorryTest() { @@ -75,6 +76,15 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_S4)); } + [TestCase()] + public void HEV_S_IEPC_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S_IEPC) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_S_IEPC)); + } + [TestCase()] public void HEV_P1_HeavyLorryTest() { @@ -118,6 +128,305 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.HEV_P4)); } + [TestCase()] + public void PEV_E2_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E2) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.PEV_E2)); + } + [TestCase()] + public void PEV_E3_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E3) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.PEV_E3)); + } + [TestCase()] + public void PEV_E4_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E4) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.PEV_E4)); + } + [TestCase()] + public void PEV_E_IEPC_HeavyLorryTest() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E_IEPC) + .Lorry(); + CreateRunDataFactory(input, typeof(DeclarationModeHeavyLorryRunDataFactory.PEV_E_IEPC)); + } + + + #endregion HeavyLorry + #region PrimaryBus + [TestCase()] + public void ConventionalPrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .Conventional() + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.Conventional)); + } + + [TestCase()] + public void HEV_S2_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S2) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S2)); + } + + [TestCase()] + public void HEV_S3_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S3) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S3)); + } + + [TestCase()] + public void HEV_S4_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S4) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S4)); + } + + [TestCase()] + public void HEV_S_IEPC_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S_IEPC) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S_IEPC)); + } + + [TestCase()] + public void HEV_P1_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P1) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P1)); + } + + + [TestCase()] + public void HEV_P2_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S2) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_S2)); + } + + + [TestCase()] + public void HEV_P3_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P3) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P3)); + } + + + [TestCase()] + public void HEV_P2_5_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P2_5) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P2_5)); + } + + + [TestCase()] + public void HEV_P4_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P4) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.HEV_P4)); + } + + + [TestCase()] + public void PEV_E2_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E2) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.PEV_E2)); + } + + + [TestCase()] + public void PEV_E3_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E3) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.PEV_E3)); + } + [TestCase()] + public void PEV_E4_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E4) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.PEV_E4)); + } + + [TestCase()] + public void PEV_E_IEPC_PrimaryBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E_IEPC) + .PrimaryBus(); + CreateRunDataFactory(input, typeof(DeclarationModePrimaryBusRunDataFactory.PEV_E_IEPC)); + } + + #endregion PrimaryBus + + [TestCase()] + public void ConventionalCompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .Conventional() + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.Conventional)); + } + + [TestCase()] + public void HEV_S2_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S2) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_S2)); + } + + [TestCase()] + public void HEV_S3_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S3) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_S3)); + } + + [TestCase()] + public void HEV_S4_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S4) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_S4)); + } + + [TestCase()] + public void HEV_S_IEPC_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S_IEPC) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_S_IEPC)); + } + + [TestCase()] + public void HEV_P1_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P1) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_P1)); + } + + + [TestCase()] + public void HEV_P2_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.S2) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_S2)); + } + + + [TestCase()] + public void HEV_P3_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P3) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_P3)); + } + + + [TestCase()] + public void HEV_P2_5_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P2_5) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_P2_5)); + } + + + [TestCase()] + public void HEV_P4_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .HEV(ArchitectureID.P4) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.HEV_P4)); + } + + + [TestCase()] + public void PEV_E2_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E2) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.PEV_E2)); + } + + + [TestCase()] + public void PEV_E3_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E3) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.PEV_E3)); + } + [TestCase()] + public void PEV_E4_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E4) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.PEV_E4)); + } + + [TestCase()] + public void PEV_E_IEPC_CompletedBus() + { + var input = new Mock<IDeclarationInputDataProvider>() + .PEV(ArchitectureID.E_IEPC) + .CompletedBus(); + CreateRunDataFactory(input, typeof(DeclarationModeCompletedBusRunDataFactory.PEV_E_IEPC)); + } } internal static class InputDataProviderMockExtension @@ -133,14 +442,20 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory internal static Mock<IDeclarationInputDataProvider> HEV(this Mock<IDeclarationInputDataProvider> mock, ArchitectureID arch) { - - mock.Setup(p => p.JobInputData.Vehicle.ArchitectureID).Returns(arch); mock.Setup(p => p.JobInputData.JobType).Returns(arch.ToString().StartsWith("P") ? VectoSimulationJobType.ParallelHybridVehicle : VectoSimulationJobType.SerialHybridVehicle); return mock; } + + internal static Mock<IDeclarationInputDataProvider> PEV(this Mock<IDeclarationInputDataProvider> mock, ArchitectureID arch) + { + mock.Setup(p => p.JobInputData.Vehicle.ArchitectureID).Returns(arch); + mock.Setup(p => p.JobInputData.JobType).Returns( + VectoSimulationJobType.BatteryElectricVehicle); + return mock; + } internal static Mock<IDeclarationInputDataProvider> Lorry(this Mock<IDeclarationInputDataProvider> mock) { mock.Setup(provider => provider.JobInputData.Vehicle.VehicleCategory) @@ -148,6 +463,18 @@ namespace TUGraz.VectoCore.Tests.InputData.RunDataFactory return mock; } + internal static Mock<IDeclarationInputDataProvider> PrimaryBus(this Mock<IDeclarationInputDataProvider> mock) + { + mock.Setup(p => p.JobInputData.Vehicle.VehicleCategory).Returns(VehicleCategory.HeavyBusPrimaryVehicle); + return mock; + } + + internal static Mock<IDeclarationInputDataProvider> CompletedBus(this Mock<IDeclarationInputDataProvider> mock) + { + mock.Setup(p => p.JobInputData.Vehicle.VehicleCategory).Returns(VehicleCategory.HeavyBusCompletedVehicle); + return mock; + } + } } -- GitLab