From c0e250b811b91b15dfd12d705d007d5546f65056 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Fri, 3 Mar 2023 16:24:24 +0100
Subject: [PATCH] refactor serial hybrid strategy parameter test: use
 assertionhelper to ensure an exception is thrown extend testcase to CD and CS
 mode

---
 .../HybridStrategyDataAdapterTest.cs          | 31 +++++++++++--------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/HybridStrategyDataAdapterTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/HybridStrategyDataAdapterTest.cs
index 7e368295fb..124d841eb7 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/HybridStrategyDataAdapterTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/HybridStrategyDataAdapterTest.cs
@@ -20,10 +20,15 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter;
 public class HybridStrategyDataAdapterTest
 {
 
-    [TestCase(0.7375, 0.2625, 11273.9176, 778.61, 247500, false, 0.624646591, 0.307641364)]
-	[TestCase(0.6, 0.2, 11000, 778.61, 80000, false, 0.582967134, 0.234065732)]
-	[TestCase(0.6, 0.2, 11000, 778.61, 5000, true, 0.268131464, 0.634065732)]
-	public void SerialHybridStrategyTest(double bat_soc_max, double bat_soc_min, double vehicle_mass, double nominalVoltage, double nominalCapacity, bool exception, double expected_target_soc, double expected_min_soc)
+    [TestCase("SerialHybridStrategyParamsTest A", 0.7375, 0.2625, 11273.9176, 778.61, 247500,VectoRunData.OvcHevMode.ChargeDepleting, false, 0.49, 0.307641364)]
+	[TestCase("SerialHybridStrategyParamsTest B", 0.6, 0.2, 11000, 778.61, 80000,  VectoRunData.OvcHevMode.ChargeDepleting, false, 0.39, 0.234065732)]
+	[TestCase("SerialHybridStrategyParamsTest C", 0.6, 0.2, 11000, 778.61, 2000,  VectoRunData.OvcHevMode.ChargeDepleting, true, 0.39, 0.634065732)]
+	[TestCase("SerialHybridStrategyParamsTest D", 0.7375, 0.2625, 11273.9176, 778.61, 247500,  VectoRunData.OvcHevMode.ChargeSustaining, false, 0.624646591, 0.307641364)]
+	[TestCase("SerialHybridStrategyParamsTest E", 0.6, 0.2, 11000, 778.61, 80000,  VectoRunData.OvcHevMode.ChargeSustaining, false, 0.582967134, 0.234065732)]
+	[TestCase("SerialHybridStrategyParamsTest F", 0.6, 0.2, 11000, 778.61, 2000,  VectoRunData.OvcHevMode.ChargeSustaining, true, 0.268131464, 0.634065732)]
+	public void SerialHybridStrategyTest(string testName, double bat_soc_max, double bat_soc_min, double vehicle_mass,
+		double nominalVoltage, double nominalCapacity, VectoRunData.OvcHevMode mode,
+		bool exception, double expected_target_soc, double expected_min_soc)
 	{
 		var mass = vehicle_mass.SI<Kilogram>();
 		var v_nom = nominalVoltage.SI<Volt>();
@@ -59,16 +64,16 @@ public class HybridStrategyDataAdapterTest
 			}
 		};
 
-		HybridStrategyParameters parameters = null;
-		try {
-			parameters = dataAdapter.CreateHybridStrategyParameters(batterySystemData, null, mass,
-				VectoRunData.OvcHevMode.NotApplicable);
-		} catch (Exception) {
-			Assert.IsTrue(exception);
-			Assert.Pass();
+		if (exception) {
+			AssertHelper.Exception<Exception>(() => dataAdapter.CreateHybridStrategyParameters(batterySystemData, null, mass, mode), messageContains: "Min SOC higher than Target SOC");
+		} else {
+			var parameters = dataAdapter.CreateHybridStrategyParameters(batterySystemData, null, mass,
+				mode);
+			Assert.AreEqual(expected_target_soc, parameters!.TargetSoC, 1e-6, "target soc mismatch");
+			Assert.AreEqual(expected_min_soc, parameters.MinSoC, 1e-6, "min soc mismatch");
 		}
-		Assert.IsTrue(parameters!.TargetSoC.IsEqual(expected_target_soc));
-		Assert.IsTrue(parameters.MinSoC.IsEqual(expected_min_soc));
+
+		
 
 	}
 
-- 
GitLab