From 30520fe6054085544b632f0085c8224a24227e72 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 16 Nov 2022 20:20:36 +0100
Subject: [PATCH] additional testcases for heating power demand of different
 technologies

---
 .../BusAux/SSMTestHeatingCooling.cs           | 1410 +++++++++++++++--
 1 file changed, 1266 insertions(+), 144 deletions(-)

diff --git a/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMTestHeatingCooling.cs b/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMTestHeatingCooling.cs
index c8a691ee6e..e97a181531 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMTestHeatingCooling.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMTestHeatingCooling.cs
@@ -21,126 +21,162 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration.BusAux;
 [TestFixture, Parallelizable(ParallelScope.All)]
 public class SSMTestHeatingCooling
 {
+	private const BusHVACSystemConfiguration CFG1 = BusHVACSystemConfiguration.Configuration1;
+	private const BusHVACSystemConfiguration CFG2 = BusHVACSystemConfiguration.Configuration2;
+	private const BusHVACSystemConfiguration CFG3 = BusHVACSystemConfiguration.Configuration3;
+	private const BusHVACSystemConfiguration CFG4 = BusHVACSystemConfiguration.Configuration4;
+	private const BusHVACSystemConfiguration CFG5 = BusHVACSystemConfiguration.Configuration5;
+	private const BusHVACSystemConfiguration CFG6 = BusHVACSystemConfiguration.Configuration6;
+	private const BusHVACSystemConfiguration CFG7 = BusHVACSystemConfiguration.Configuration7;
+	private const BusHVACSystemConfiguration CFG8 = BusHVACSystemConfiguration.Configuration8;
+	private const BusHVACSystemConfiguration CFG9 = BusHVACSystemConfiguration.Configuration9;
+	private const BusHVACSystemConfiguration CFG10 = BusHVACSystemConfiguration.Configuration10;
+
+	private const HeatingDistributionCase HDC1 = HeatingDistributionCase.HeatingDistribution1;
+	private const HeatingDistributionCase HDC2 = HeatingDistributionCase.HeatingDistribution2;
+	private const HeatingDistributionCase HDC3 = HeatingDistributionCase.HeatingDistribution3;
+	private const HeatingDistributionCase HDC4 = HeatingDistributionCase.HeatingDistribution4;
+	private const HeatingDistributionCase HDC5 = HeatingDistributionCase.HeatingDistribution5;
+	private const HeatingDistributionCase HDC6 = HeatingDistributionCase.HeatingDistribution6;
+	private const HeatingDistributionCase HDC7 = HeatingDistributionCase.HeatingDistribution7;
+	private const HeatingDistributionCase HDC8 = HeatingDistributionCase.HeatingDistribution8;
+	private const HeatingDistributionCase HDC9 = HeatingDistributionCase.HeatingDistribution9;
+	private const HeatingDistributionCase HDC10 = HeatingDistributionCase.HeatingDistribution10;
+	private const HeatingDistributionCase HDC11 = HeatingDistributionCase.HeatingDistribution11;
+	private const HeatingDistributionCase HDC12 = HeatingDistributionCase.HeatingDistribution12;
+
+	private const HeatPumpType HeatPumpNone = HeatPumpType.none;
+	private const HeatPumpType HeatPumpR744 = HeatPumpType.R_744;
+	private const HeatPumpType HeatPump2Stage = HeatPumpType.non_R_744_2_stage;
+	private const HeatPumpType HeatPump3Stage = HeatPumpType.non_R_744_3_stage;
+	private const HeatPumpType HeatPumpCont = HeatPumpType.non_R_744_continuous;
+	private const HeaterType NoElHtr = HeaterType.None;
+	private const HeaterType AirElHtr = HeaterType.AirElectricHeater;
+	private const HeaterType WaterElHtr = HeaterType.WaterElectricHeater;
+	private const HeaterType OthrElHtr = HeaterType.OtherElectricHeating;
+	private const double AuxHtrPwr0 = 0.0;
+	private const double AuxHtrPwr30 = 30.0e3;
+
 
 	[
 	// only mechanical heatpumps
-	TestCase(BusHVACSystemConfiguration.Configuration1  , 1  , HeatPumpType.none                 , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration1  , 6  , HeatPumpType.none                 , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration1  , 8  , HeatPumpType.none                 , HeatPumpType.none                 , 287.8848  , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration1  , 11 , HeatPumpType.none                 , HeatPumpType.none                 , 287.8848  , 0.0)       ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 287.8848  , 1.0156)    ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 287.8848  , 1351.1654) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration3  , 1  , HeatPumpType.none                 , HeatPumpType.none                 , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration3  , 6  , HeatPumpType.none                 , HeatPumpType.none                 , 856.800   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration3  , 8  , HeatPumpType.none                 , HeatPumpType.none                 , 822.5280  , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration3  , 11 , HeatPumpType.none                 , HeatPumpType.none                 , 822.5280  , 0.0)       ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 822.5280  , 633.1093)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.none                 , 822.5280  , 2000.0)    ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 612.7957)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 2965.1077) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 612.7957)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 2965.1077) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 822.528   , 616.1931)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 822.528   , 2984.8347) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 612.7957)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 2965.1077) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 822.528   , 616.1931)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_3_stage    , 822.528   , 2984.8347) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 612.7957)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_3_stage    , 822.528   , 2965.1077) ,
+	TestCase(CFG1  , 1  , HeatPumpNone      , HeatPumpNone                 , 299.88    , 0.0)       ,
+	TestCase(CFG1  , 6  , HeatPumpNone      , HeatPumpNone                 , 299.88    , 0.0)       ,
+	TestCase(CFG1  , 8  , HeatPumpNone      , HeatPumpNone                 , 287.8848  , 0.0)       ,
+	TestCase(CFG1  , 11 , HeatPumpNone      , HeatPumpNone                 , 287.8848  , 0.0)       ,
+
+	TestCase(CFG2  , 1  , HeatPump2Stage    , HeatPumpNone                 , 299.88    , 0.0)       ,
+	TestCase(CFG2  , 6  , HeatPump2Stage    , HeatPumpNone                 , 299.88    , 0.0)       ,
+	TestCase(CFG2  , 8  , HeatPump2Stage    , HeatPumpNone                 , 287.8848  , 1.0156)    ,
+	TestCase(CFG2  , 11 , HeatPump2Stage    , HeatPumpNone                 , 287.8848  , 1351.1654) ,
+
+	TestCase(CFG3  , 1  , HeatPumpNone       , HeatPumpNone                 , 428.400   , 0.0)       ,
+	TestCase(CFG3  , 6  , HeatPumpNone       , HeatPumpNone                 , 856.800   , 0.0)       ,
+	TestCase(CFG3  , 8  , HeatPumpNone       , HeatPumpNone                 , 822.5280  , 0.0)       ,
+	TestCase(CFG3  , 11 , HeatPumpNone       , HeatPumpNone                 , 822.5280  , 0.0)       ,
+
+	TestCase(CFG4  , 1  , HeatPump2Stage     , HeatPumpNone                 , 428.400   , 0.0)       ,
+	TestCase(CFG4  , 6  , HeatPump2Stage     , HeatPumpNone                 , 428.4     , 0.0)       ,
+	TestCase(CFG4  , 8  , HeatPump2Stage     , HeatPumpNone                 , 822.5280  , 1.0157)  ,
+	TestCase(CFG4  , 11 , HeatPump2Stage     , HeatPumpNone                 , 822.5280  , 1351.1654)    ,
+
+	TestCase(CFG5  , 1  , HeatPumpNone       , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG5  , 6  , HeatPumpNone       , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG5  , 8  , HeatPumpNone       , HeatPump3Stage    , 822.528   , 612.7957)  ,
+	TestCase(CFG5  , 11 , HeatPumpNone       , HeatPump3Stage    , 822.528   , 2965.1077) ,
+
+	TestCase(CFG6  , 1  , HeatPumpNone       , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG6  , 6  , HeatPumpNone       , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG6  , 8  , HeatPumpNone       , HeatPump3Stage    , 822.528   , 612.7957)  ,
+	TestCase(CFG6  , 11 , HeatPumpNone       , HeatPump3Stage    , 822.528   , 2965.1077) ,
+
+	TestCase(CFG7  , 1  , HeatPump2Stage     , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG7  , 6  , HeatPump2Stage     , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG7  , 8  , HeatPump2Stage     , HeatPump3Stage    , 822.528   , 616.1931)  ,
+	TestCase(CFG7  , 11 , HeatPump2Stage     , HeatPump3Stage    , 822.528   , 2984.8347) ,
+
+	TestCase(CFG8  , 1  , HeatPumpNone       , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG8  , 6  , HeatPumpNone       , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG8  , 8  , HeatPumpNone       , HeatPump3Stage    , 822.528   , 612.7957)  ,
+	TestCase(CFG8  , 11 , HeatPumpNone       , HeatPump3Stage    , 822.528   , 2965.1077) ,
+
+	TestCase(CFG9  , 1  , HeatPump2Stage     , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG9  , 6  , HeatPump2Stage     , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG9  , 8  , HeatPump2Stage     , HeatPump3Stage    , 822.528   , 616.1931)  ,
+	TestCase(CFG9  , 11 , HeatPump2Stage     , HeatPump3Stage    , 822.528   , 2984.8347) ,
+
+	TestCase(CFG10 , 1  , HeatPumpNone       , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG10 , 6  , HeatPumpNone       , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG10 , 8  , HeatPumpNone       , HeatPump3Stage    , 822.528   , 612.7957)  ,
+	TestCase(CFG10 , 11 , HeatPumpNone       , HeatPump3Stage    , 822.528   , 2965.1077) ,
 
 	// only electrical heatpumps
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 299.88    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 288.8324  , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration2  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 1520.7    , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration4  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.none                 , 2647.3455 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration5  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration6  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration8  , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 1  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 6  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 8  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1413.2125 , 0)         ,
-	TestCase(BusHVACSystemConfiguration.Configuration10 , 11 , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 3636.1338 , 0)         ,
+	TestCase(CFG2  , 1  , HeatPumpCont       , HeatPumpType.none                 , 299.88    , 0.0)       ,
+	TestCase(CFG2  , 6  , HeatPumpCont       , HeatPumpType.none                 , 299.88    , 0.0)       ,
+	TestCase(CFG2  , 8  , HeatPumpCont       , HeatPumpType.none                 , 288.8324  , 0)         ,
+	TestCase(CFG2  , 11 , HeatPumpCont       , HeatPumpType.none                 , 1520.7    , 0)         ,
+
+	TestCase(CFG4  , 1  , HeatPumpCont       , HeatPumpType.none                 , 428.400   , 0.0)       ,
+	TestCase(CFG4  , 6  , HeatPumpCont       , HeatPumpType.none                 , 428.4     , 0.0)       ,
+	TestCase(CFG4  , 8  , HeatPumpCont       , HeatPumpType.none                 , 823.4756  , 0)         ,
+	TestCase(CFG4  , 11 , HeatPumpCont       , HeatPumpType.none                 , 2055.3432 , 0)         ,
+
+	TestCase(CFG5  , 1  , HeatPumpNone       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG5  , 6  , HeatPumpNone       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG5  , 8  , HeatPumpNone       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG5  , 11 , HeatPumpNone       , HeatPumpCont , 3636.1338 , 0)         ,
+
+	TestCase(CFG6  , 1  , HeatPumpNone       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG6  , 6  , HeatPumpNone       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG6  , 8  , HeatPumpNone       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG6  , 11 , HeatPumpNone       , HeatPumpCont , 3636.1338 , 0)         ,
+
+	TestCase(CFG7  , 1  , HeatPumpCont       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG7  , 6  , HeatPumpCont       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG7  , 8  , HeatPumpCont       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG7  , 11 , HeatPumpCont       , HeatPumpCont , 3636.1338 , 0)         ,
+
+	TestCase(CFG8  , 1  , HeatPumpNone       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG8  , 6  , HeatPumpNone       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG8  , 8  , HeatPumpNone       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG8  , 11 , HeatPumpNone       , HeatPumpCont , 3636.1338 , 0)         ,
+
+	TestCase(CFG9  , 1  , HeatPumpCont       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG9  , 6  , HeatPumpCont       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG9  , 8  , HeatPumpCont       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG9  , 11 , HeatPumpCont       , HeatPumpCont , 3636.1338 , 0)         ,
+
+	TestCase(CFG10 , 1  , HeatPumpNone       , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG10 , 6  , HeatPumpNone       , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG10 , 8  , HeatPumpNone       , HeatPumpCont , 1413.2125 , 0)         ,
+	TestCase(CFG10 , 11 , HeatPumpNone       , HeatPumpCont , 3636.1338 , 0)         ,
 
 	// mixed electrical and mechanical heatpumps
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 883.4159  , 547.9913)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 1116.3204 , 2644.1315) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 1360.3368 , 59.7565)   ,
-	TestCase(BusHVACSystemConfiguration.Configuration7  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 3393.4694 , 285.6602)  ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 1  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 6  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 8  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 883.4159  , 547.9913)  ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 11 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 1116.3204 , 2644.1315) ,
-
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 1  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 6  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 8  , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 1360.3368 , 59.7565)   ,
-	TestCase(BusHVACSystemConfiguration.Configuration9  , 11 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 3393.4694 , 285.6602)  ,
+	TestCase(CFG7  , 1  , HeatPumpCont       , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG7  , 6  , HeatPumpCont       , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG7  , 8  , HeatPumpCont       , HeatPump3Stage    , 883.4159  , 547.9913)  ,
+	TestCase(CFG7  , 11 , HeatPumpCont       , HeatPump3Stage    , 1116.3204 , 2644.1315) ,
+
+	TestCase(CFG7  , 1  , HeatPump2Stage    , HeatPumpType.non_R_744_continuous , 428.400   , 0.0)       ,
+	TestCase(CFG7  , 6  , HeatPump2Stage    , HeatPumpType.non_R_744_continuous , 856.80    , 0.0)       ,
+	TestCase(CFG7  , 8  , HeatPump2Stage    , HeatPumpType.non_R_744_continuous , 1360.3368 , 59.7565)   ,
+	TestCase(CFG7  , 11 , HeatPump2Stage    , HeatPumpType.non_R_744_continuous , 3393.4694 , 285.6602)  ,
+
+	TestCase(CFG9  , 1  , HeatPumpCont      , HeatPump3Stage    , 428.400   , 0.0)       ,
+	TestCase(CFG9  , 6  , HeatPumpCont      , HeatPump3Stage    , 856.80    , 0.0)       ,
+	TestCase(CFG9  , 8  , HeatPumpCont      , HeatPump3Stage    , 883.4159  , 547.9913)  ,
+	TestCase(CFG9  , 11 , HeatPumpCont      , HeatPump3Stage    , 1116.3204 , 2644.1315) ,
+
+	TestCase(CFG9  , 1  , HeatPump2Stage    , HeatPumpCont , 428.400   , 0.0)       ,
+	TestCase(CFG9  , 6  , HeatPump2Stage    , HeatPumpCont , 856.80    , 0.0)       ,
+	TestCase(CFG9  , 8  , HeatPump2Stage    , HeatPumpCont , 1360.3368 , 59.7565)   ,
+	TestCase(CFG9  , 11 , HeatPump2Stage    , HeatPumpCont , 3393.4694 , 285.6602)  ,
 
     ]
 	public void SSMTest_Cooling_SingleEnvironment(BusHVACSystemConfiguration cfg, int envId, HeatPumpType driverHeatpump,
 		HeatPumpType passengerHeatpump,  double expectedElPwrW, double expectedMechPwrW)
 	{
-		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatpump, passengerHeatpump);
+		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatpumpCooling: driverHeatpump, passengerHeatpumpCooling: passengerHeatpump);
 
 		// set list of environmental conditions to a single entry
 		var ssmInputs = auxData.SSMInputsCooling as SSMInputs;
@@ -169,42 +205,40 @@ public class SSMTestHeatingCooling
 	[
 		// only mechanical heatpumps
 		// electric: only ventilation, mechanic: heatpump
-		TestCase(BusHVACSystemConfiguration.Configuration1  , HeatPumpType.none              , HeatPumpType.none              , 295.3949 , 0.0)       ,
-		TestCase(BusHVACSystemConfiguration.Configuration2  , HeatPumpType.non_R_744_2_stage , HeatPumpType.none              , 295.3949 , 109.29748) ,
-		TestCase(BusHVACSystemConfiguration.Configuration3  , HeatPumpType.none              , HeatPumpType.none              , 664.4004 , 0.0)       ,
-		TestCase(BusHVACSystemConfiguration.Configuration4  , HeatPumpType.non_R_744_2_stage , HeatPumpType.none              , 664.4004 , 398.5246)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration5  , HeatPumpType.none              , HeatPumpType.non_R_744_3_stage , 664.4004 , 429.8231)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration6  , HeatPumpType.none              , HeatPumpType.non_R_744_3_stage , 664.4004 , 429.8231)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration7  , HeatPumpType.non_R_744_2_stage , HeatPumpType.non_R_744_3_stage , 664.4004 , 432.3237)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration8  , HeatPumpType.none              , HeatPumpType.non_R_744_3_stage , 664.4004 , 429.8231)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration9  , HeatPumpType.non_R_744_2_stage , HeatPumpType.non_R_744_3_stage , 664.4004 , 432.3237)  ,
-		TestCase(BusHVACSystemConfiguration.Configuration10 , HeatPumpType.none              , HeatPumpType.non_R_744_3_stage , 664.4004 , 429.8231)  ,
+		TestCase(CFG1  , HeatPumpNone     , HeatPumpNone   , 295.3949 , 0.0)       ,
+		TestCase(CFG2  , HeatPump2Stage   , HeatPumpNone   , 295.3949 , 109.29748) ,
+		TestCase(CFG3  , HeatPumpNone     , HeatPumpNone   , 664.4004 , 0.0)       ,
+		TestCase(CFG4  , HeatPump2Stage   , HeatPumpNone   , 575.7645 , 109.2975)  ,
+		TestCase(CFG5  , HeatPumpNone     , HeatPump3Stage , 664.4004 , 429.8231)  ,
+		TestCase(CFG6  , HeatPumpNone     , HeatPump3Stage , 664.4004 , 429.8231)  ,
+		TestCase(CFG7  , HeatPump2Stage   , HeatPump3Stage , 664.4004 , 432.3237)  ,
+		TestCase(CFG8  , HeatPumpNone     , HeatPump3Stage , 664.4004 , 429.8231)  ,
+		TestCase(CFG9  , HeatPump2Stage   , HeatPump3Stage , 664.4004 , 432.3237)  ,
+		TestCase(CFG10 , HeatPumpNone     , HeatPump3Stage , 664.4004 , 429.8231)  ,
 
 		// only electrical heatpumps
 		// electric: ventilation + heatpump
-		//TestCase(BusHVACSystemConfiguration.Configuration1, HeatPumpType.none, HeatPumpType.none, 0, 0.0),
-		TestCase(BusHVACSystemConfiguration.Configuration2, HeatPumpType.non_R_744_continuous, HeatPumpType.none, 395.9945, 0.0),
-		//TestCase(BusHVACSystemConfiguration.Configuration3, HeatPumpType.none, HeatPumpType.none, 0.0, 0.0),
-		TestCase(BusHVACSystemConfiguration.Configuration4, HeatPumpType.non_R_744_continuous, HeatPumpType.none, 1033.8823, 0.0),
-
-		TestCase(BusHVACSystemConfiguration.Configuration5  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
-		TestCase(BusHVACSystemConfiguration.Configuration6  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
-		TestCase(BusHVACSystemConfiguration.Configuration7  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
-		TestCase(BusHVACSystemConfiguration.Configuration8  , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
-		TestCase(BusHVACSystemConfiguration.Configuration9  , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
-		TestCase(BusHVACSystemConfiguration.Configuration10 , HeatPumpType.none                 , HeatPumpType.non_R_744_continuous , 1076.1036 , 0) ,
+		TestCase(CFG2, HeatPumpCont, HeatPumpNone, 395.9945, 0.0),
+		TestCase(CFG4, HeatPumpCont, HeatPumpNone, 676.364, 0),
+
+		TestCase(CFG5  , HeatPumpNone  , HeatPumpCont , 1076.1036 , 0) ,
+		TestCase(CFG6  , HeatPumpNone  , HeatPumpCont , 1076.1036 , 0) ,
+		TestCase(CFG7  , HeatPumpCont  , HeatPumpCont , 1076.1036 , 0) ,
+		TestCase(CFG8  , HeatPumpNone  , HeatPumpCont , 1076.1036 , 0) ,
+		TestCase(CFG9  , HeatPumpCont  , HeatPumpCont, 1076.1036 , 0) ,
+		TestCase(CFG10 , HeatPumpNone  , HeatPumpCont, 1076.1036 , 0) ,
 
 		// mixed electrical and mechanical heatpumps
-		TestCase(BusHVACSystemConfiguration.Configuration7 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 707.0598  , 383.9348) ,
-		TestCase(BusHVACSystemConfiguration.Configuration7 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 1039.7276 , 41.703)   ,
-		TestCase(BusHVACSystemConfiguration.Configuration9 , HeatPumpType.non_R_744_continuous , HeatPumpType.non_R_744_3_stage    , 707.0598  , 383.9348) ,
-		TestCase(BusHVACSystemConfiguration.Configuration9 , HeatPumpType.non_R_744_2_stage    , HeatPumpType.non_R_744_continuous , 1039.7276 , 41.703)   ,
+		TestCase(CFG7 , HeatPumpCont   , HeatPump3Stage , 707.0598  , 383.9348) ,
+		TestCase(CFG7 , HeatPump2Stage , HeatPumpCont   , 1039.7276 , 41.703)   ,
+		TestCase(CFG9 , HeatPumpCont   , HeatPump3Stage , 707.0598  , 383.9348) ,
+		TestCase(CFG9 , HeatPump2Stage , HeatPumpCont  , 1039.7276 , 41.703)   ,
 
 	]
 	public void SSMTest_Cooling_AvgAllEnvironments(BusHVACSystemConfiguration cfg, HeatPumpType driverHeatpump,
 		HeatPumpType passengerHeatpump, double expectedElPwrW, double expectedMechPwrW)
 	{
-		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatpump, passengerHeatpump);
+		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatpumpCooling: driverHeatpump, passengerHeatpumpCooling: passengerHeatpump);
 
 		var ssmInputs = auxData.SSMInputsCooling as SSMInputs;
 		Assert.NotNull(ssmInputs);
@@ -219,8 +253,1096 @@ public class SSMTestHeatingCooling
 
 	}
 
-	private IAuxiliaryConfig GetAuxParametersConventionalSingleDeckForTest(BusHVACSystemConfiguration hvacConfig, HeatPumpType driverHeatpump,
-		HeatPumpType passengerHeatpump)
+	
+
+	[
+		// check that the heating demand is equal for all configurations
+		TestCase(CFG1, 1,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG1, 2,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG1, 3,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG1, 4,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG1, 5,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG1, 6,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+		TestCase(CFG1, 7,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+		TestCase(CFG1, 8,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+		TestCase(CFG1, 9,  HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+		TestCase(CFG1, 10, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+		TestCase(CFG1, 11, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG2, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG2, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG2, 3, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG2, 4, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG2, 5, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG2, 6, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG3, 1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG3, 2, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG3, 3, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG3, 4, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG3, 5, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG3, 6, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG4, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG4, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG4, 3, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG4, 4, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG4, 5, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG4, 6, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG5, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG5, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG5, 3, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG5, 4, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG5, 5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG5, 6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG6, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG6, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG6, 3, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG6, 4, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG6, 5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG6, 6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG7, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG7, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG7, 3, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG7, 4, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG7, 5, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG7, 6, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG8, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG8, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG8, 3, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG8, 4, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG8, 5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG8, 6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG9, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG9, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG9, 3, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG9, 4, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG9, 5, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG9, 6, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+		TestCase(CFG10, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 13475.4938),
+		TestCase(CFG10, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 7261.9812),
+		TestCase(CFG10, 3, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 4395.4812),
+		TestCase(CFG10, 4, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1973.9875),
+		TestCase(CFG10, 5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 1494.6531),
+		TestCase(CFG10, 6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, 0),
+
+	]
+	public void SSMTest_HeatingDemand_SingleEnvironment(BusHVACSystemConfiguration cfg, int envId, HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr, double expectedHeatingPower)
+	{
+		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatPumpHeating: driverHeatpump, passengerHeatPumpHeating: passengerHeatpump,
+			electricHeater: electricHeater, auxHeaterPower: auxHeaterPwr.SI<Watt>());
+
+		// set list of environmental conditions to a single entry
+		var ssmInputs = auxData.SSMInputsHeating as SSMInputs;
+		Assert.NotNull(ssmInputs);
+		var envAll = ssmInputs.EnvironmentalConditions;
+		var selectedEnv = envAll.EnvironmentalConditionsMap.GetEnvironmentalConditions().Where(x => x.ID == envId).FirstOrDefault();
+		Assert.NotNull(selectedEnv);
+		var newEnv = new EnvironmentalConditionMapEntry(selectedEnv.ID, selectedEnv.Temperature, selectedEnv.Solar, 1.0,
+			selectedEnv.HeatPumpCoP.ToDictionary(x => x.Key, x => x.Value),
+			selectedEnv.HeaterEfficiency.ToDictionary(x => x.Key, x => x.Value));
+		ssmInputs.EnvironmentalConditionsMap = new EnvironmentalConditionsMap(new[] { newEnv });
+		// ---
+
+		Assert.AreEqual(cfg, ssmInputs.HVACSystemConfiguration);
+
+		var ssm = new SSMTOOL(auxData.SSMInputsHeating);
+
+		var heatingPower = ssm.AverageHeaterPower(0.SI<Watt>());
+
+		Console.WriteLine($"{heatingPower.RequiredHeatingPower.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerEl.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerMech.Value().ToGUIFormat(4)}, {heatingPower.ElectricHeaterPowerEl.Value().ToGUIFormat(4)}, {heatingPower.AuxHeaterPower.Value().ToGUIFormat(4)}");
+
+		Assert.AreEqual(expectedHeatingPower, heatingPower.RequiredHeatingPower.Value(), 1e-3, "expected Heating Demand");
+	}
+
+	[
+		TestCase("1a", CFG1, 1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG1, 1, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr0, HDC9, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+		TestCase("1c", CFG1, 1, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC9, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+		TestCase("1d", CFG1, 1, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr0, HDC9, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG1, 1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1f", CFG1, 1, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+		TestCase("1g", CFG1, 1, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC10, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+		TestCase("1h", CFG1, 1, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+				// ---
+		TestCase("2a", CFG1, 2, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 7261.9812, 0, 0, 0, 0),
+		TestCase("2b", CFG1, 2, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr0, HDC9, HDC9, 7261.9812, 0, 0, 7808.582, 0),
+		TestCase("2c", CFG1, 2, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC9, HDC9, 7261.9812, 0, 0, 7808.582, 0),
+		TestCase("2d", CFG1, 2, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr0, HDC9, HDC9, 7261.9812, 0, 0, 7808.582, 0),
+
+		TestCase("2e", CFG1, 2, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 7261.9812, 0, 0, 0, 9077.4766),
+		TestCase("2f", CFG1, 2, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 7261.9812, 0, 0, 0, 9077.4766),
+		TestCase("2g", CFG1, 2, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC10, HDC10, 7261.9812, 0, 0, 0, 9077.4766),
+		TestCase("2h", CFG1, 2, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC10, 7261.9812, 0, 0, 0, 9077.4766),
+
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG1(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG2, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG2, 1, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG2, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1d", CFG2, 1, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+        TestCase("1e", CFG2, 1, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 13475.4938, 0, 0, 0, 0),
+        TestCase("1f", CFG2, 1, HeatPumpCont, HeatPumpNone, OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1g", CFG2, 1, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+        TestCase("1h", CFG2, 1, HeatPumpCont, HeatPumpNone, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC7, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG2, 1, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 13475.4938, 748.6385, 0, 0, 0),
+		TestCase("1j", CFG2, 1, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 13475.4938, 374.3193, 0, 13765.2893, 0),
+
+		TestCase("1k", CFG2, 1, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 13475.4938, 299.4554, 0, 0, 16170.5925),
+		TestCase("1l", CFG2, 1, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC3, HDC10, 13475.4938, 299.4554, 0, 2897.9556, 12801.7191),
+		// ---
+		TestCase("2a", CFG2, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 7261.9812, 0, 471.5572, 0, 0),
+		TestCase("2b", CFG2, 2, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 7261.9812, 0, 471.5572, 7027.7238, 0),
+
+		TestCase("2c", CFG2, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 7261.9812, 0, 330.0901, 0, 8442.0532),
+		TestCase("2d", CFG2, 2, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 7261.9812, 0, 330.0901, 0, 8442.0532),
+
+		TestCase("2e", CFG2, 2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 7261.9812, 407.9765, 0, 0, 0),
+		TestCase("2f", CFG2, 2, HeatPumpCont, HeatPumpNone, OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 7261.9812, 407.9765, 0, 7027.7238, 0),
+
+		TestCase("2g", CFG2, 2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 7261.9812, 285.5835, 0, 0, 8442.0532),
+		TestCase("2h", CFG2, 2, HeatPumpCont, HeatPumpNone, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC7, HDC10, 7261.9812, 285.5835, 0, 0, 8442.0532),
+
+		TestCase("2i", CFG2, 2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 7261.9812, 355.9795, 0, 0, 0),
+		TestCase("2j", CFG2, 2, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 7261.9812, 355.9795, 0, 7027.7238, 0),
+
+		TestCase("2k", CFG2, 2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 7261.9812, 249.1856, 0, 0, 8442.0532),
+		TestCase("2l", CFG2, 2, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC3, HDC10, 7261.9812, 249.1856, 0, 0, 8442.0532),
+				//---
+		TestCase("3a", CFG2, 3, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 4395.4812, 0, 219.7741, 0, 0),
+		TestCase("3b", CFG2, 3, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 4395.4812, 0, 219.7741, 4253.6915, 0),
+
+		TestCase("3c", CFG2, 3, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 4395.4812, 0, 175.8192, 0, 5054.8034),
+		TestCase("3d", CFG2, 3, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 4395.4812, 0, 175.8192, 0, 5054.8034),
+
+		TestCase("3e", CFG2, 3, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 4395.4812, 197.9947, 0, 0, 0),
+		TestCase("3f", CFG2, 3, HeatPumpCont, HeatPumpNone, OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 4395.4812, 197.9947, 0, 4253.6915, 0),
+
+		TestCase("3g", CFG2, 3, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 4395.4812, 158.3957, 0, 0, 5054.8034),
+		TestCase("3h", CFG2, 3, HeatPumpCont, HeatPumpNone, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC7, HDC10, 4395.4812, 158.3957, 0, 0, 5054.8034),
+
+		TestCase("3i", CFG2, 3, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 4395.4812, 175.8192, 0, 0, 0),
+		TestCase("3j", CFG2, 3, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 4395.4812, 175.8192, 0, 4253.6915, 0),
+
+		TestCase("3k", CFG2, 3, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 4395.4812, 140.6554, 0, 0, 5054.8034),
+		TestCase("3l", CFG2, 3, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC3, HDC10, 4395.4812, 140.6554, 0, 0, 5054.8034),
+
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG2(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    // =========================
+
+    [
+		TestCase("1a", CFG3, 1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG3, 1, HeatPumpNone, HeatPumpNone, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC9, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG3, 1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1d", CFG3, 1, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+				// ---
+		TestCase("2a", CFG3, 2, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 7261.9812, 0, 0, 0, 0),
+		TestCase("2b", CFG3, 2, HeatPumpNone, HeatPumpNone, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC9, HDC9, 7261.9812, 0, 0, 7808.582, 0),
+
+		TestCase("2c", CFG3, 2, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 7261.9812, 0, 0, 0, 9077.4766),
+		TestCase("2d", CFG3, 2, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 7261.9812, 0, 0, 0, 9077.4766),
+
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG3(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG4, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG4, 1, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG4, 1, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1d", CFG4, 1, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1e", CFG4, 1, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 13475.4938, 0, 0, 0, 0),
+		TestCase("1f", CFG4, 1, HeatPumpCont, HeatPumpNone, AirElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1g", CFG4, 1, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1h", CFG4, 1, HeatPumpCont, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG4, 1, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 13475.4938, 748.6385, 0, 0, 0),
+		TestCase("1j", CFG4, 1, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 13475.4938, 374.3193, 0, 13765.2893, 0),
+
+		TestCase("1k", CFG4, 1, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 13475.4938, 299.4554, 0, 0, 16170.5925),
+		TestCase("1l", CFG4, 1, HeatPumpR744, HeatPumpNone, OthrElHtr, AuxHtrPwr30, HDC3, HDC10, 13475.4938, 299.4554, 0, 2897.9556, 12801.7191),
+		// ---
+		TestCase("2a", CFG4, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 7261.9812, 0, 471.5572, 0, 0),
+		TestCase("2b", CFG4, 2, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 7261.9812, 0, 471.5572, 7027.7238, 0),
+
+		TestCase("2c", CFG4, 2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 7261.9812, 0, 330.0901, 0, 8442.0532),
+		TestCase("2d", CFG4, 2, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 7261.9812, 0, 330.0901, 0, 8442.0532),
+
+		TestCase("2e", CFG4, 2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 7261.9812, 407.9765, 0, 0, 0),
+		TestCase("2f", CFG4, 2, HeatPumpCont, HeatPumpNone, AirElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 7261.9812, 407.9765, 0, 7027.7238, 0),
+
+		TestCase("2g", CFG4, 2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 7261.9812, 285.5835, 0, 0, 8442.0532),
+		TestCase("2h", CFG4, 2, HeatPumpCont, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 7261.9812, 285.5835, 0, 0, 8442.0532),
+
+		TestCase("2i", CFG4, 2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 7261.9812, 355.9795, 0, 0, 0),
+		TestCase("2j", CFG4, 2, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 7261.9812, 355.9795, 0, 7027.7238, 0),
+
+		TestCase("2k", CFG4, 2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 7261.9812, 249.1856, 0, 0, 8442.0532),
+		TestCase("2l", CFG4, 2, HeatPumpR744, HeatPumpNone, OthrElHtr, AuxHtrPwr30, HDC3, HDC10, 7261.9812, 249.1856, 0, 0, 8442.0532),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG4(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr, 
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// ==================================================
+	[
+		TestCase("1a", CFG5, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG5, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG5, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG5, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG5, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1f", CFG5, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1g", CFG5, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1h", CFG5, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG5, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1j", CFG5, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1k", CFG5, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1l", CFG5, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG5, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 0, 4428.0373, 0, 0),
+		TestCase("2b", CFG5, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 0, 4428.0373, 0, 0),
+
+		TestCase("2c", CFG5, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 4079.7647, 0, 0, 0),
+		TestCase("2d", CFG5, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 4079.7647, 0, 0, 0),
+
+		TestCase("2e", CFG5, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2f", CFG5, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2g", CFG5, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 0, 3099.6261, 0, 2723.243),
+		TestCase("2h", CFG5, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 0, 3099.6261, 0, 2723.243),
+
+		TestCase("2i", CFG5, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 2855.8353, 0, 0, 2723.243),
+		TestCase("2j", CFG5, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 2855.8353, 0, 0, 2723.243),
+
+		TestCase("2k", CFG5, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2l", CFG5, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG5(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG6, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG6, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG6, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG6, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG6, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1f", CFG6, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1g", CFG6, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1h", CFG6, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG6, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1j", CFG6, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1k", CFG6, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1l", CFG6, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG6, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 0, 4428.0373, 0, 0),
+		TestCase("2b", CFG6, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 0, 4428.0373, 0, 0),
+
+		TestCase("2c", CFG6, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 4079.7647, 0, 0, 0),
+		TestCase("2d", CFG6, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 4079.7647, 0, 0, 0),
+
+		TestCase("2e", CFG6, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2f", CFG6, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2g", CFG6, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 0, 3099.6261, 0, 2723.243),
+		TestCase("2h", CFG6, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 0, 3099.6261, 0, 2723.243),
+
+		TestCase("2i", CFG6, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 2855.8353, 0, 0, 2723.243),
+		TestCase("2j", CFG6, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 2855.8353, 0, 0, 2723.243),
+
+		TestCase("2k", CFG6, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2l", CFG6, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG6(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG7, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG7, 1, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG7, 1, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG7, 1, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG7, 1, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1f", CFG7, 1, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1g", CFG7, 1, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 13475.4938, 748.6385, 0, 0, 0),
+		TestCase("1h", CFG7, 1, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 13475.4938, 374.3193, 0, 13765.2893, 0),
+
+		TestCase("1i", CFG7, 1, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 13475.4938, 6737.7469, 0, 0, 0),
+		TestCase("1j", CFG7, 1, HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 13475.4938, 3368.8734, 0, 7969.378, 0),
+
+		TestCase("1k", CFG7, 1, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1l", CFG7, 1, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC2, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1m", CFG7, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1n", CFG7, 1, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1o", CFG7, 1, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1p", CFG7, 1, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1q", CFG7, 1, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1r", CFG7, 1, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1s", CFG7, 1, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 13475.4938, 299.4554, 0, 0, 16170.5925),
+		TestCase("1t", CFG7, 1, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 13475.4938, 299.4554, 0, 2897.9556, 12801.7191),
+
+		TestCase("1u", CFG7, 1, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 13475.4938, 2695.0987, 0, 0, 10780.395),
+		TestCase("1v", CFG7, 1, HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 13475.4938, 2695.0988, 0, 2897.9556, 7411.5216),
+
+		TestCase("1w", CFG7, 1, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1x", CFG7, 1, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC3, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG7, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 0, 4456.7908, 0, 0),
+		TestCase("2b", CFG7, 2, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 0, 4456.7908, 0, 0),
+
+		TestCase("2c", CFG7, 2, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 407.9765, 3985.2336, 0, 0),
+		TestCase("2d", CFG7, 2, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 407.9765, 3985.2336, 0, 0),
+
+		TestCase("2e", CFG7, 2, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 3671.7883, 471.5572, 0, 0),
+		TestCase("2f", CFG7, 2, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 3671.7883, 471.5572, 0, 0),
+
+		TestCase("2g", CFG7, 2, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 7261.9812, 355.9795, 3985.2336, 0, 0),
+		TestCase("2h", CFG7, 2, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 7261.9812, 355.9795, 3985.2336, 0, 0),
+
+		TestCase("2i", CFG7, 2, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 7261.9812, 3203.8153, 471.5572, 0, 0),
+		TestCase("2j", CFG7, 2, HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 7261.9812, 3203.8153, 471.5572, 0, 0),
+
+		TestCase("2k", CFG7, 2, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2l", CFG7, 2, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC2, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2m", CFG7, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 0, 3119.7536, 0, 2723.243),
+		TestCase("2n", CFG7, 2, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 0, 3119.7536, 0, 2723.243),
+
+		TestCase("2o", CFG7, 2, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 285.5835, 2789.6635, 0, 2723.243),
+		TestCase("2p", CFG7, 2, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 285.5835, 2789.6635, 0, 2723.243),
+
+		TestCase("2q", CFG7, 2, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 2570.2518, 330.0901, 0, 2723.243),
+		TestCase("2r", CFG7, 2, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 2570.2518, 330.0901, 0, 2723.243),
+
+		TestCase("2s", CFG7, 2, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 7261.9812, 249.1856, 2789.6635, 0, 2723.243),
+		TestCase("2t", CFG7, 2, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 7261.9812, 249.1856, 2789.6635, 0, 2723.243),
+
+		TestCase("2u", CFG7, 2, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 7261.9812, 2242.6707, 330.0901, 0, 2723.243),
+		TestCase("2v", CFG7, 2, HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 7261.9812, 2242.6707, 330.0901, 0, 2723.243),
+
+		TestCase("2w", CFG7, 2, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2x", CFG7, 2, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC3, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG7(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG8, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG8, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG8, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG8, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG8, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1f", CFG8, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1g", CFG8, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1h", CFG8, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG8, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1j", CFG8, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1k", CFG8, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1l", CFG8, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG8, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 0, 4428.0373, 0, 0),
+		TestCase("2b", CFG8, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 0, 4428.0373, 0, 0),
+
+		TestCase("2c", CFG8, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 4079.7647, 0, 0, 0),
+		TestCase("2d", CFG8, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 4079.7647, 0, 0, 0),
+
+		TestCase("2e", CFG8, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2f", CFG8, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2g", CFG8, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 0, 3099.6261, 0, 2723.243),
+		TestCase("2h", CFG8, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 0, 3099.6261, 0, 2723.243),
+
+		TestCase("2i", CFG8, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 2855.8353, 0, 0, 2723.243),
+		TestCase("2j", CFG8, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 2855.8353, 0, 0, 2723.243),
+
+		TestCase("2k", CFG8, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2l", CFG8, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG8(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+	// =========================
+
+	[
+		TestCase("1a", CFG9, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG9, 1, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG9, 1, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG9, 1, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG9, 1, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1f", CFG9, 1, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1g", CFG9, 1, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 13475.4938, 748.6385, 0, 0, 0),
+		TestCase("1h", CFG9, 1, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 13475.4938, 374.3193, 0, 13765.2893, 0),
+
+		TestCase("1i", CFG9, 1, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 13475.4938, 6737.7469, 0, 0, 0),
+		TestCase("1j", CFG9, 1, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 13475.4938, 3368.8734, 0, 7969.378, 0),
+
+		TestCase("1k", CFG9, 1, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1l", CFG9, 1, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr0, HDC2, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1m", CFG9, 1, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1n", CFG9, 1, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1o", CFG9, 1, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1p", CFG9, 1, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1q", CFG9, 1, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1r", CFG9, 1, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1s", CFG9, 1, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 13475.4938, 299.4554, 0, 0, 16170.5925),
+		TestCase("1t", CFG9, 1, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 13475.4938, 299.4554, 0, 2897.9556, 12801.7191),
+
+		TestCase("1u", CFG9, 1, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 13475.4938, 2695.0987, 0, 0, 10780.395),
+		TestCase("1v", CFG9, 1, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 13475.4938, 2695.0988, 0, 2897.9556, 7411.5216),
+
+		TestCase("1w", CFG9, 1, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1x", CFG9, 1, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr30, HDC3, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG9, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 0, 4456.7908, 0, 0),
+		TestCase("2b", CFG9, 2, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 0, 4456.7908, 0, 0),
+
+		TestCase("2c", CFG9, 2, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 3671.7883, 471.5572, 0, 0),
+		TestCase("2d", CFG9, 2, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 3671.7883, 471.5572, 0, 0),
+
+		TestCase("2e", CFG9, 2, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 7261.9812, 407.9765, 3985.2336, 0, 0),
+		TestCase("2f", CFG9, 2, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 7261.9812, 407.9765, 3985.2336, 0, 0),
+
+		TestCase("2g", CFG9, 2, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 7261.9812, 355.9795, 3985.2336, 0, 0),
+		TestCase("2h", CFG9, 2, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 7261.9812, 355.9795, 3985.2336, 0, 0),
+
+		TestCase("2i", CFG9, 2, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 7261.9812, 3203.8153, 471.5572, 0, 0),
+		TestCase("2j", CFG9, 2, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 7261.9812, 3203.8153, 471.5572, 0, 0),
+
+		TestCase("2k", CFG9, 2, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2l", CFG9, 2, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr0, HDC2, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2m", CFG9, 2, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 0, 3119.7536, 0, 2723.243),
+		TestCase("2n", CFG9, 2, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 0, 3119.7536, 0, 2723.243),
+
+		TestCase("2o", CFG9, 2, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 2570.2518, 330.0901, 0, 2723.243),
+		TestCase("2p", CFG9, 2, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 2570.2518, 330.0901, 0, 2723.243),
+
+		TestCase("2q", CFG9, 2, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 7261.9812, 285.5835, 2789.6635, 0, 2723.243),
+		TestCase("2r", CFG9, 2, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 7261.9812, 285.5835, 2789.6635, 0, 2723.243),
+
+		TestCase("2s", CFG9, 2, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 7261.9812, 249.1856, 2789.6635, 0, 2723.243),
+		TestCase("2t", CFG9, 2, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 7261.9812, 249.1856, 2789.6635, 0, 2723.243),
+
+		TestCase("2u", CFG9, 2, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 7261.9812, 2242.6707, 330.0901, 0, 2723.243),
+		TestCase("2v", CFG9, 2, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 7261.9812, 2242.6707, 330.0901, 0, 2723.243),
+
+		TestCase("2w", CFG9, 2, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2x", CFG9, 2, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr30, HDC3, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG9(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// =========================
+
+	[
+		TestCase("1a", CFG10, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1b", CFG10, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1c", CFG10, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 13475.4938, 0, 0, 0, 0),
+		TestCase("1d", CFG10, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 13475.4938, 0, 0, 14489.7782, 0),
+
+		TestCase("1e", CFG10, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 13475.4938, 7486.3854, 0, 0, 0),
+		TestCase("1f", CFG10, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 13475.4938, 3743.1927, 0, 7244.8891, 0),
+
+		TestCase("1g", CFG10, 1, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1h", CFG10, 1, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1i", CFG10, 1, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 13475.4938, 0, 0, 0, 16844.3672),
+		TestCase("1j", CFG10, 1, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 13475.4938, 0, 0, 2897.9556, 13475.4938),
+
+		TestCase("1k", CFG10, 1, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 13475.4938, 2994.5542, 0, 0, 10106.6203),
+		TestCase("1l", CFG10, 1, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 13475.4938, 2994.5542, 0, 2897.9556, 6737.7469),
+		// ---
+		TestCase("2a", CFG10, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 0, 4428.0373, 0, 0),
+		TestCase("2b", CFG10, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 0, 4428.0373, 0, 0),
+
+		TestCase("2c", CFG10, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 7261.9812, 4079.7647, 0, 0, 0),
+		TestCase("2d", CFG10, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 7261.9812, 4079.7647, 0, 0, 0),
+
+		TestCase("2e", CFG10, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 7261.9812, 3559.7947, 0, 0, 0),
+		TestCase("2f", CFG10, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 7261.9812, 3559.7947, 0, 0, 0),
+
+		TestCase("2g", CFG10, 2, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 0, 3099.6261, 0, 2723.243),
+		TestCase("2h", CFG10, 2, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 0, 3099.6261, 0, 2723.243),
+
+		TestCase("2i", CFG10, 2, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 7261.9812, 2855.8353, 0, 0, 2723.243),
+		TestCase("2j", CFG10, 2, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 7261.9812, 2855.8353, 0, 0, 2723.243),
+
+		TestCase("2k", CFG10, 2, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 7261.9812, 2491.8563, 0, 0, 2723.243),
+		TestCase("2l", CFG10, 2, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 7261.9812, 2491.8563, 0, 0, 2723.243),
+	]
+	public void SSMTest_HeatingDistribution_SingleEnvironment_CFG10(string dummySort, BusHVACSystemConfiguration cfg, int envId,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_SingleEnvironment(cfg, envId, driverHeatpump, passengerHeatpump, electricHeater,
+			auxHeaterPwr, expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// ==================================================
+	// ==================================================
+
+	[
+		TestCase("a", CFG1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 1485.6642, 0, 0, 0, 0),
+		TestCase("b", CFG1, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr0, HDC9, HDC9, 1485.6642, 0, 0, 1597.4884, 0),
+		TestCase("c", CFG1, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC9, HDC9, 1485.6642, 0, 0, 1597.4884, 0),
+		TestCase("d", CFG1, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr0, HDC9, HDC9, 1485.6642, 0, 0, 1597.4884, 0),
+
+		TestCase("e", CFG1, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 1485.6642, 0, 0, 0, 1857.0802),
+		TestCase("f", CFG1, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 1485.6642, 0, 0, 15.3592, 1839.2252),
+		TestCase("g", CFG1, HeatPumpNone, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC10, HDC10, 1485.6642, 0, 0, 15.3592, 1839.2252),
+		TestCase("h", CFG1, HeatPumpNone, HeatPumpNone, OthrElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC10, 1485.6642, 0, 0, 15.3592, 1839.2252),
+
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG1(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	[
+		TestCase("a", CFG2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 1485.6642, 0, 73.8202, 0, 0),
+		TestCase("b", CFG2, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 1485.6642, 0, 73.8202, 1445.4191, 0),
+		TestCase("c", CFG2, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 1485.6642, 0, 58.5043, 0, 1711.8704),
+		TestCase("d", CFG2, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 1485.6642, 0, 58.5043, 15.3592, 1694.0154),
+
+		TestCase("e", CFG2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 1485.6642, 65.4048, 0, 0, 0),
+		TestCase("f", CFG2, HeatPumpCont, HeatPumpNone, OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 1485.6642, 65.4048, 0, 1445.4191, 0),
+		TestCase("g", CFG2, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 1485.6642, 52.0243, 0, 0, 1711.8704),
+		TestCase("h", CFG2, HeatPumpCont, HeatPumpNone, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC7, HDC10, 1485.6642, 52.0243, 0, 15.3592, 1694.0154),
+
+		TestCase("i", CFG2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 1485.6642, 63.0399, 0, 0, 0),
+		TestCase("j", CFG2, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 1485.6642, 61.056, 0, 1441.5793, 0),
+		TestCase("k", CFG2, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 1485.6642, 48.9335, 0, 0, 1708.2994),
+		TestCase("l", CFG2, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr30, HDC3, HDC10, 1485.6642, 48.9335, 0, 15.3592, 1690.4444),
+
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG2(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	[
+		TestCase("a", CFG3, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC12, HDC12, 1485.6642, 0, 0, 0, 0),
+		TestCase("b", CFG3, HeatPumpNone, HeatPumpNone, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC9, HDC9, 1485.6642, 0, 0, 1597.4884, 0),
+
+		TestCase("c", CFG3, HeatPumpNone, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC11, HDC11, 1485.6642, 0, 0, 0, 1857.0802),
+		TestCase("d", CFG3, HeatPumpNone, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC10, HDC10, 1485.6642, 0, 0, 15.3592, 1839.2252),
+
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG3(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG4, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 1485.6642, 0, 73.8202, 0, 0),
+		TestCase("b", CFG4, HeatPump2Stage, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC6, HDC9, 1485.6642, 0, 73.8202, 1445.4191, 0),
+
+		TestCase("c", CFG4, HeatPump2Stage, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 1485.6642, 0, 58.5043, 0, 1711.8704),
+		TestCase("d", CFG4, HeatPump2Stage, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 1485.6642, 0, 58.5043, 15.3592, 1694.0154),
+
+		TestCase("e", CFG4, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC5, HDC12, 1485.6642, 65.4048, 0, 0, 0),
+		TestCase("f", CFG4, HeatPumpCont, HeatPumpNone, AirElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC9, 1485.6642, 65.4048, 0, 1445.4191, 0),
+
+		TestCase("g", CFG4, HeatPumpCont, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC8, HDC11, 1485.6642, 52.0243, 0, 0, 1711.8704),
+		TestCase("h", CFG4, HeatPumpCont, HeatPumpNone, AirElHtr, AuxHtrPwr30, HDC7, HDC10, 1485.6642, 52.0243, 0, 15.3592, 1694.0154),
+
+		TestCase("i", CFG4, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr0, HDC1, HDC12, 1485.6642, 63.0399, 0, 0, 0),
+		TestCase("j", CFG4, HeatPumpR744, HeatPumpNone, WaterElHtr, AuxHtrPwr0, HDC2, HDC9, 1485.6642, 61.056, 0, 1441.5793, 0),
+
+		TestCase("k", CFG4, HeatPumpR744, HeatPumpNone, NoElHtr, AuxHtrPwr30, HDC4, HDC11, 1485.6642, 48.9335, 0, 0, 1708.2994),
+		TestCase("l", CFG4, HeatPumpR744, HeatPumpNone, OthrElHtr, AuxHtrPwr30, HDC3, HDC10, 1485.6642, 48.9335, 0, 15.3592, 1690.4444),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG4(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 0, 699.8368, 0, 0),
+		TestCase("b", CFG5, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 0, 699.8368, 76.7958, 0),
+
+		TestCase("c", CFG5, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 654.0484, 0, 0, 0),
+		TestCase("d", CFG5, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 654.0484, 0, 76.7958, 0),
+
+		TestCase("e", CFG5, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("f", CFG5, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("g", CFG5, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 0, 555.5323, 0, 404.9817),
+		TestCase("h", CFG5, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 0, 555.5323, 15.3592, 387.1267),
+
+		TestCase("i", CFG5, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 520.2431, 0, 0, 404.9817),
+		TestCase("j", CFG5, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 520.2431, 0, 15.3592, 387.1267),
+
+		TestCase("k", CFG5, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("l", CFG5, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG5(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 0, 699.8368, 0, 0),
+		TestCase("b", CFG6, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 0, 699.8368, 76.7958, 0),
+
+		TestCase("c", CFG6, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 654.0484, 0, 0, 0),
+		TestCase("d", CFG6, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 654.0484, 0, 76.7958, 0),
+
+		TestCase("e", CFG6, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("f", CFG6, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("g", CFG6, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 0, 555.5323, 0, 404.9817),
+		TestCase("h", CFG6, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 0, 555.5323, 15.3592, 387.1267),
+
+		TestCase("i", CFG6, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 520.2431, 0, 0, 404.9817),
+		TestCase("j", CFG6, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 520.2431, 0, 15.3592, 387.1267),
+
+		TestCase("k", CFG6, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("l", CFG6, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG6(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG7, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 0, 703.6733, 0, 0),
+		TestCase("b", CFG7, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 0, 703.6733, 76.7958, 0),
+
+		TestCase("c", CFG7, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 65.4048, 629.8532, 0, 0),
+		TestCase("d", CFG7, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 65.4048, 629.8532, 76.7958, 0),
+
+		TestCase("e", CFG7, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 588.6435, 73.8202, 0, 0),
+		TestCase("f", CFG7, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 588.6435, 73.8202, 76.7958, 0),
+
+		TestCase("g", CFG7, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 1485.6642, 63.0399, 629.8532, 0, 0),
+		TestCase("h", CFG7, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 1485.6642, 61.056, 629.8532, 72.956, 0),
+
+		TestCase("i", CFG7,HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 1485.6642, 567.3593, 73.8202, 0, 0),
+		TestCase("j", CFG7,HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 1485.6642, 549.5042, 73.8202, 42.2377, 0),
+
+		TestCase("k", CFG7, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("l", CFG7, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC2, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("m", CFG7, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 0, 558.4834, 0, 404.9817),
+		TestCase("n", CFG7, HeatPump2Stage, HeatPump3Stage, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 0, 558.4834, 15.3592, 387.1267),
+
+		TestCase("o", CFG7, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 52.0243, 499.9791, 0, 404.9817),
+		TestCase("p", CFG7, HeatPumpCont, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 52.0243, 499.9791, 15.3592, 387.1267),
+
+		TestCase("q", CFG7, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 468.2188, 58.5043, 0, 404.9817),
+		TestCase("r", CFG7, HeatPump2Stage, HeatPumpCont, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 468.2188, 58.5043, 15.3592, 387.1267),
+
+		TestCase("s", CFG7, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 1485.6642, 48.9335, 499.9791, 0, 401.4107),
+		TestCase("t", CFG7, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 1485.6642, 48.9335, 499.9791, 15.3592, 383.5557),
+
+		TestCase("u", CFG7, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 1485.6642, 440.4019, 58.5043, 0, 372.8427),
+		TestCase("v", CFG7, HeatPump2Stage, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 1485.6642, 440.4019, 58.5043, 15.3592, 354.9876),
+
+		TestCase("w", CFG7, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("x", CFG7, HeatPumpR744, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC3, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG7(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	[
+		TestCase("a", CFG8, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 0, 699.8368, 0, 0),
+		TestCase("b", CFG8, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 0, 699.8368, 76.7958, 0),
+
+		TestCase("c", CFG8, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 654.0484, 0, 0, 0),
+		TestCase("d", CFG8, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 654.0484, 0, 76.7958, 0),
+
+		TestCase("e", CFG8, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("f", CFG8, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("g", CFG8, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 0, 555.5323, 0, 404.9817),
+		TestCase("h", CFG8, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 0, 555.5323, 15.3592, 387.1267),
+
+		TestCase("i", CFG8, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 520.2431, 0, 0, 404.9817),
+		TestCase("j", CFG8, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 520.2431, 0, 15.3592, 387.1267),
+
+		TestCase("k", CFG8, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("l", CFG8, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG8(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG9, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 0, 703.6733, 0, 0),
+		TestCase("b", CFG9, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 0, 703.6733, 76.7958, 0),
+
+		TestCase("c", CFG9, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 588.6435, 73.8202, 0, 0),
+		TestCase("d", CFG9, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 588.6435, 73.8202, 76.7958, 0),
+
+		TestCase("e", CFG9, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC5, HDC5, 1485.6642, 65.4048, 629.8532, 0, 0),
+		TestCase("f", CFG9, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr0, HDC6, HDC6, 1485.6642, 65.4048, 629.8532, 76.7958, 0),
+
+		TestCase("g", CFG9, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC1, HDC5, 1485.6642, 63.0399, 629.8532, 0, 0),
+		TestCase("h", CFG9, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC2, HDC6, 1485.6642, 61.056, 629.8532, 72.956, 0),
+
+		TestCase("i", CFG9, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC5, HDC1, 1485.6642, 567.3593, 73.8202, 0, 0),
+		TestCase("j", CFG9, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr0, HDC6, HDC2, 1485.6642, 549.5042, 73.8202, 42.2377, 0),
+
+		TestCase("k", CFG9, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC1, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("l", CFG9, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr0, HDC2, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("m", CFG9, HeatPump2Stage, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 0, 558.4834, 0, 404.9817),
+		TestCase("n", CFG9, HeatPump2Stage, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 0, 558.4834, 15.3592, 387.1267),
+
+		TestCase("o", CFG9, HeatPump2Stage, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 468.2188, 58.5043, 0, 404.9817),
+		TestCase("p", CFG9, HeatPump2Stage, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 468.2188, 58.5043, 15.3592, 387.1267),
+
+		TestCase("q", CFG9, HeatPumpCont, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC8, HDC8, 1485.6642, 52.0243, 499.9791, 0, 404.9817),
+		TestCase("r", CFG9, HeatPumpCont, HeatPump3Stage, OthrElHtr, AuxHtrPwr30, HDC7, HDC7, 1485.6642, 52.0243, 499.9791, 15.3592, 387.1267),
+
+		TestCase("s", CFG9, HeatPumpR744, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC4, HDC8, 1485.6642, 48.9335, 499.9791, 0, 401.4107),
+		TestCase("t", CFG9, HeatPumpR744, HeatPump3Stage, WaterElHtr, AuxHtrPwr30, HDC3, HDC7, 1485.6642, 48.9335, 499.9791, 15.3592, 383.5557),
+
+		TestCase("u", CFG9, HeatPump2Stage, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC8, HDC4, 1485.6642, 440.4019, 58.5043, 0, 372.8427),
+		TestCase("v", CFG9, HeatPump2Stage, HeatPumpR744, WaterElHtr | OthrElHtr, AuxHtrPwr30, HDC7, HDC3, 1485.6642, 440.4019, 58.5043, 15.3592, 354.9876),
+
+		TestCase("w", CFG9, HeatPumpR744, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC4, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("x", CFG9, HeatPumpR744, HeatPumpR744, WaterElHtr, AuxHtrPwr30, HDC3, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG9(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater, auxHeaterPwr,
+			expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+    [
+		TestCase("a", CFG10, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 0, 699.8368, 0, 0),
+		TestCase("b", CFG10, HeatPumpNone, HeatPump3Stage, WaterElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 0, 699.8368, 76.7958, 0),
+
+		TestCase("c", CFG10, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr0, HDC12, HDC5, 1485.6642, 654.0484, 0, 0, 0),
+		TestCase("d", CFG10, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr0, HDC9, HDC6, 1485.6642, 654.0484, 0, 76.7958, 0),
+
+		TestCase("e", CFG10, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr0, HDC12, HDC1, 1485.6642, 630.3992, 0, 0, 0),
+		TestCase("f", CFG10, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr0, HDC9, HDC2, 1485.6642, 610.5603, 0, 38.3979, 0),
+
+		TestCase("g", CFG10, HeatPumpNone, HeatPump3Stage, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 0, 555.5323, 0, 404.9817),
+		TestCase("h", CFG10, HeatPumpNone, HeatPump3Stage, WaterElHtr | AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 0, 555.5323, 15.3592, 387.1267),
+
+		TestCase("i", CFG10, HeatPumpNone, HeatPumpCont, NoElHtr, AuxHtrPwr30, HDC11, HDC8, 1485.6642, 520.2431, 0, 0, 404.9817),
+		TestCase("j", CFG10, HeatPumpNone, HeatPumpCont, AirElHtr, AuxHtrPwr30, HDC10, HDC7, 1485.6642, 520.2431, 0, 15.3592, 387.1267),
+
+		TestCase("k", CFG10, HeatPumpNone, HeatPumpR744, NoElHtr, AuxHtrPwr30, HDC11, HDC4, 1485.6642, 489.3354, 0, 0, 369.2716),
+		TestCase("l", CFG10, HeatPumpNone, HeatPumpR744, OthrElHtr, AuxHtrPwr30, HDC10, HDC3, 1485.6642, 489.3354, 0, 15.3592, 351.4166),
+	]
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment_CFG10(string dummySort, BusHVACSystemConfiguration cfg,
+		HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+		HeatingDistributionCase expectedHeatingDistributionCase, HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+		double expectedHeatingDemand, double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		SSMTest_HeatingDistribution_AvgAllEnvironment(cfg, driverHeatpump, passengerHeatpump, electricHeater,
+			auxHeaterPwr, expectedHeatingDistributionCase, expectedHeatingDistributionCasePassenger, expectedHeatingDemand,
+			expectedHPElPwrW, expectedHPMechPwrW, expecetdElecricPowerElHeater, expectedAuxHeater);
+	}
+
+	// ==================================================
+	// ==================================================
+
+	public void SSMTest_HeatingDistribution_AvgAllEnvironment(BusHVACSystemConfiguration cfg, HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr, HeatingDistributionCase expectedHeatingDistributionCaseDriver,
+		HeatingDistributionCase expectedHeatingDistributionCasePassenger, double expectedHeatingPower,
+		double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatPumpHeating: driverHeatpump, passengerHeatPumpHeating: passengerHeatpump,
+			electricHeater: electricHeater, auxHeaterPower: auxHeaterPwr.SI<Watt>());
+
+		// set list of environmental conditions to a single entry
+		var ssmInputs = auxData.SSMInputsHeating as SSMInputs;
+		Assert.NotNull(ssmInputs);
+		// ---
+
+		Assert.AreEqual(cfg, ssmInputs.HVACSystemConfiguration);
+
+		var ssm = new SSMTOOL(auxData.SSMInputsHeating);
+
+		var heatingPower = ssm.AverageHeaterPower(0.SI<Watt>());
+
+		Console.WriteLine($"HDC{ssmInputs.HeatingDistributionCaseDriver.GetID()}, HDC{ssmInputs.HeatingDistributionCasePassenger.GetID()}, {heatingPower.RequiredHeatingPower.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerEl.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerMech.Value().ToGUIFormat(4)}, {heatingPower.ElectricHeaterPowerEl.Value().ToGUIFormat(4)}, {heatingPower.AuxHeaterPower.Value().ToGUIFormat(4)}");
+
+		Assert.AreEqual(expectedHeatingDistributionCaseDriver, ssmInputs.HeatingDistributionCaseDriver, "Driver");
+		Assert.AreEqual(expectedHeatingDistributionCasePassenger, ssmInputs.HeatingDistributionCasePassenger, "Passenger");
+
+		Assert.AreEqual(expectedHeatingPower, heatingPower.RequiredHeatingPower.Value(), 1e-3, "expected Heating Demand");
+		Assert.AreEqual(expectedHPElPwrW, heatingPower.HeatPumpPowerEl.Value(), 1e-3, "expected HeatPump Electric Power");
+		Assert.AreEqual(expectedHPMechPwrW, heatingPower.HeatPumpPowerMech.Value(), 1e-3, "expected HeatPump Mechanical Power");
+		Assert.AreEqual(expecetdElecricPowerElHeater, heatingPower.ElectricHeaterPowerEl.Value(), 1e-3, "expected ElectricHeater Power");
+		Assert.AreEqual(expectedAuxHeater, heatingPower.AuxHeaterPower.Value(), 1e-3, "expected AuxHeater Power");
+
+		//Assert.AreEqual(expecetdElecricPowerElHeater, ssm.);
+
+	}
+
+
+	public void SSMTest_HeatingDistribution_SingleEnvironment(BusHVACSystemConfiguration cfg, int envId, HeatPumpType driverHeatpump,
+		HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr, HeatingDistributionCase expectedHeatingDistributionCaseDriver,
+		HeatingDistributionCase expectedHeatingDistributionCasePassenger, double expectedHeatingPower,
+		double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+		double expectedAuxHeater)
+	{
+		var auxData = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatPumpHeating: driverHeatpump, passengerHeatPumpHeating: passengerHeatpump,
+			electricHeater: electricHeater, auxHeaterPower: auxHeaterPwr.SI<Watt>());
+
+		// set list of environmental conditions to a single entry
+		var ssmInputs = auxData.SSMInputsHeating as SSMInputs;
+		Assert.NotNull(ssmInputs);
+		var envAll = ssmInputs.EnvironmentalConditions;
+		var selectedEnv = envAll.EnvironmentalConditionsMap.GetEnvironmentalConditions().Where(x => x.ID == envId).FirstOrDefault();
+		Assert.NotNull(selectedEnv);
+		var newEnv = new EnvironmentalConditionMapEntry(selectedEnv.ID, selectedEnv.Temperature, selectedEnv.Solar, 1.0,
+			selectedEnv.HeatPumpCoP.ToDictionary(x => x.Key, x => x.Value),
+			selectedEnv.HeaterEfficiency.ToDictionary(x => x.Key, x => x.Value));
+		ssmInputs.EnvironmentalConditionsMap = new EnvironmentalConditionsMap(new[] { newEnv });
+		// ---
+
+		Assert.AreEqual(cfg, ssmInputs.HVACSystemConfiguration);
+
+		var ssm = new SSMTOOL(auxData.SSMInputsHeating);
+
+		var heatingPower = ssm.AverageHeaterPower(0.SI<Watt>());
+
+		Console.WriteLine($"HDC{ssmInputs.HeatingDistributionCaseDriver.GetID()}, HDC{ssmInputs.HeatingDistributionCasePassenger.GetID()}, {heatingPower.RequiredHeatingPower.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerEl.Value().ToGUIFormat(4)}, {heatingPower.HeatPumpPowerMech.Value().ToGUIFormat(4)}, {heatingPower.ElectricHeaterPowerEl.Value().ToGUIFormat(4)}, {heatingPower.AuxHeaterPower.Value().ToGUIFormat(4)}");
+
+		Assert.AreEqual(expectedHeatingDistributionCaseDriver, ssmInputs.HeatingDistributionCaseDriver, "Driver");
+		Assert.AreEqual(expectedHeatingDistributionCasePassenger, ssmInputs.HeatingDistributionCasePassenger, "Passenger");
+
+        Assert.AreEqual(expectedHeatingPower, heatingPower.RequiredHeatingPower.Value(), 1e-3, "expected Heating Demand");
+        Assert.AreEqual(expectedHPElPwrW, heatingPower.HeatPumpPowerEl.Value(), 1e-3, "expected HeatPump Electric Power");
+        Assert.AreEqual(expectedHPMechPwrW, heatingPower.HeatPumpPowerMech.Value(), 1e-3, "expected HeatPump Mechanical Power");
+        Assert.AreEqual(expecetdElecricPowerElHeater, heatingPower.ElectricHeaterPowerEl.Value(), 1e-3, "expected ElectricHeater Power");
+        Assert.AreEqual(expectedAuxHeater, heatingPower.AuxHeaterPower.Value(), 1e-3, "expected AuxHeater Power");
+
+        //Assert.AreEqual(expecetdElecricPowerElHeater, ssm.);
+
+    }
+
+	//public void SSMTest_HeatingDistribution_SingleEnvironment(BusHVACSystemConfiguration cfg, int envId,
+	//	HeatPumpType driverHeatpump,
+	//	HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
+	//	HeatingDistributionCase expectedHeatingDistributionCaseDriver,
+	//	HeatingDistributionCase expectedHeatingDistributionCasePassenger,
+	//	double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
+	//	double expectedAuxHeater) { }
+
+	private IAuxiliaryConfig GetAuxParametersConventionalSingleDeckForTest(BusHVACSystemConfiguration hvacConfig, HeatPumpType? driverHeatpumpCooling = null,
+		HeatPumpType? passengerHeatpumpCooling = null, HeatPumpType? driverHeatPumpHeating = null, HeatPumpType? passengerHeatPumpHeating = null, 
+		Watt auxHeaterPower = null, HeaterType? electricHeater = null)
 	{
 		return CreateBusAuxInputParameters(MissionType.Urban, 
 			VehicleClass.Class31a, 
@@ -235,14 +1357,14 @@ public class SSMTestHeatingCooling
 			2.55.SI<Meter>(), 
 			40, 
 			0, 
-			HeatPumpType.none, 
-			driverHeatpump, 
-			HeatPumpType.none, 
-			passengerHeatpump, 
-			30000.SI<Watt>(), 
-			false,
-			false,
-			false, 
+			driverHeatPumpHeating ?? HeatPumpType.none, 
+			driverHeatpumpCooling ?? HeatPumpType.none, 
+			passengerHeatPumpHeating ?? HeatPumpType.none, 
+			passengerHeatpumpCooling ?? HeatPumpType.none, 
+			auxHeaterPower ?? 0.SI<Watt>(), 
+			electricHeater != null && (electricHeater & HeaterType.AirElectricHeater) != 0,
+			electricHeater != null && (electricHeater & HeaterType.WaterElectricHeater) != 0,
+			electricHeater != null && (electricHeater & HeaterType.OtherElectricHeating) != 0,
 			hvacConfig, 
 			false, 
 			false,
-- 
GitLab