From d87339ea7d93a76ebfeeb3fd291683912bdc6ebf Mon Sep 17 00:00:00 2001
From: "Burns, Terry" <Terry.Burns@ricardo.com>
Date: Thu, 16 Oct 2014 15:58:05 +0000
Subject: [PATCH] Signals Refactored Into M05,M1,M4,M5

git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1641
---
 .../IM0_NonSmart_AlternatorsSetEfficiency.vb  |  2 +-
 .../M0_5_SmartAlternatorSetEfficiency.vb      | 19 +++++++------
 .../M0_NonSmart_AlternatorsSetEfficiency.vb   | 16 +++++------
 .../M2_AverageElectricalLoadDemand.vb         |  2 +-
 .../M5__SmartAlternatorSetGeneration.vb       |  6 ++---
 .../Pneumatics/IM4_AirCompressor.vb           |  8 +++---
 .../Pneumatics/M4_AirCompressor.vb            | 27 ++++++++++---------
 .../UnitTests/AirCompressorTests.vb           | 23 +++++++++++-----
 .../M0_5_SmartAlternatorSetEfficiencyTests.vb | 20 +++++++++-----
 ..._NonSmart_AlternatorsSetEfficiencyTests.vb | 22 ++++++++-------
 .../M2_AverageElectricalLoadTests.vb          |  9 ++++++-
 .../M5_SmartAlternatorSetGenerationTests.vb   | 13 ++++++---
 12 files changed, 103 insertions(+), 64 deletions(-)

diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IM0_NonSmart_AlternatorsSetEfficiency.vb b/VECTOAux/VectoAuxiliaries/Electrics/IM0_NonSmart_AlternatorsSetEfficiency.vb
index 30fdaec43b..cdfee90efc 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/IM0_NonSmart_AlternatorsSetEfficiency.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/IM0_NonSmart_AlternatorsSetEfficiency.vb
@@ -2,7 +2,7 @@
 
 
      Function GetHVACElectricalPowerDemandAmps() As Single
-     Function GetEfficiency(crankRPM As Integer) As Single
+     Function GetEfficiency() As Single
 
 
 End Interface
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb b/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
index 23e34474fc..0cb5aa5774 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
@@ -10,6 +10,7 @@ Private _alternatorMap As IAlternatorMap
 Private _resultCardIdle As IResultCard
 Private _resultCardTraction As IResultCard
 Private _resultCardOverrun As IResultCard
+Private _signals As ISignals
 
 
 
@@ -19,9 +20,9 @@ Public Function SmartIdleCurrent() As single
 
 end Function
 
-Public Function AlternatorsEfficiencyIdleResultCard(ByVal rpm As integer ) As single
+Public Function AlternatorsEfficiencyIdleResultCard( ) As single
 
-    Return _alternatorMap.GetEfficiency(rpm, SmartIdleCurrent()).Efficiency
+    Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartIdleCurrent()).Efficiency
 
 End Function
 
@@ -33,9 +34,9 @@ Public function SmartTractionCurrent As Single
 
 End Function
 
-Public Function AlternatorsEfficiencyTractionOnResultCard(ByVal rpm As integer ) As Single
+Public Function AlternatorsEfficiencyTractionOnResultCard() As Single
 
-    Return _alternatorMap.GetEfficiency(rpm, SmartTractionCurrent()).Efficiency
+    Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartTractionCurrent()).Efficiency
 
 End Function
 
@@ -46,9 +47,9 @@ Public Function SmartOverrunCurrent As Single
 
 End Function
 
-Public Function AlternatorsEfficiencyOverrunResultCard(ByVal rpm As integer) As single
+Public Function AlternatorsEfficiencyOverrunResultCard() As single
 
-    Return _alternatorMap.GetEfficiency(rpm, SmartOverrunCurrent()).Efficiency
+    Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartOverrunCurrent()).Efficiency
 
 End Function
 
@@ -64,7 +65,8 @@ Public Sub new ( m0 As IM0_NonSmart_AlternatorsSetEfficiency, _
                  alternatorMap As IAlternatorMap, _
                  resultCardIdle As IResultCard, _
                  resultCardTraction As IResultCard, _
-                 resultCardOverrun As IResultCard)
+                 resultCardOverrun As IResultCard,
+                 signals As ISignals)
 
                  'Sanity Check on supplied arguments, throw an argument exception
                  If m0 is Nothing  then Throw New ArgumentException("Module 0 must be supplied")
@@ -73,7 +75,7 @@ Public Sub new ( m0 As IM0_NonSmart_AlternatorsSetEfficiency, _
                  if  resultCardIdle      is nothing then throw new ArgumentException("Result Card 'IDLE' must be supplied even if it has no contents")
                  if  resultCardTraction  is nothing then throw new ArgumentException("Result Card 'TRACTION' must be supplied even if it has no contents")
                  if  resultCardOverrun   is nothing then throw new ArgumentException("Result Card 'OVERRUN' must be supplied even if it has no contents") 
-              
+                 If  signals             is Nothing then Throw New ArgumentException("No Signals Reference object was provided ")
  
                  'Assignments to private variables.
                  _m0=m0
@@ -82,6 +84,7 @@ Public Sub new ( m0 As IM0_NonSmart_AlternatorsSetEfficiency, _
                  _resultCardIdle          = resultCardIdle
                  _resultCardTraction      = resultCardTraction
                  _resultCardOverrun       = resultCardOverrun
+                 _signals                 = signals
 
                                                                                                                              
 End Sub                                      
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb b/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
index 7fa0e84fc0..1abf28ab80 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
@@ -8,21 +8,20 @@ Public Class M0_NonSmart_AlternatorsSetEfficiency
 
  Private _electricalConsumersList As IElectricalConsumerList
  Private _hvacInputs As IHVACInputs
-
  Private _alternatorEfficiencyMap As IAlternatorMap
-
  Private _hvacMap As IHVACMap
-
  Private _powernetVoltage As Single
+ Private _signals As ISignals
 
 
-    Public Sub New(electricalConsumers As IElectricalConsumerList, hvacInputs As IHVACInputs, hvacMap As IHVACMap, alternatorEfficiencyMap As IAlternatorMap, powernetVoltage As Single)
+    Public Sub New(electricalConsumers As IElectricalConsumerList, hvacInputs As IHVACInputs, hvacMap As IHVACMap, alternatorEfficiencyMap As IAlternatorMap, powernetVoltage As Single, signals As ISignals)
 
     If electricalConsumers Is Nothing Then Throw New ArgumentException("No ElectricalConsumersList Supplied")
     If hvacInputs Is Nothing Then Throw New ArgumentException("No hvac inputs supplied")
     If hvacMap Is Nothing Then Throw New ArgumentException("No HVAC Map supplied")
     If alternatorEfficiencyMap Is Nothing Then Throw New ArgumentException("No Alternator Efficiency Map Supplied")
     If (powernetVoltage < ElectricConstants.PowenetVoltageMin Or powernetVoltage > ElectricConstants.PowenetVoltageMax) Then Throw New ArgumentException("Powernet Voltage out of range")
+    If signals is Nothing then Throw New ArgumentException("No Signals reference was supplied.")
 
     Me._electricalConsumersList = electricalConsumers
     Me._hvacInputs = hvacInputs
@@ -30,23 +29,24 @@ Public Class M0_NonSmart_AlternatorsSetEfficiency
     Me._alternatorEfficiencyMap = alternatorEfficiencyMap
     Me._hvacMap = hvacMap
     Me._powernetVoltage = powernetVoltage
+    Me._signals = signals
 
     End Sub
 
 
 
-    Public Function GetEfficiency(crankRPM As Integer) As Single Implements IM0_NonSmart_AlternatorsSetEfficiency.GetEfficiency
+    Public Function GetEfficiency() As Single Implements IM0_NonSmart_AlternatorsSetEfficiency.GetEfficiency
 
           'Sanity Check.
-          If crankRPM < 1 Then Throw New ArgumentException("CrankRMP must be greater than zero")
+          If _signals.EngineSpeed < 1 Then Throw New ArgumentException("CrankRPM must be greater than zero")
 
-          Dim rotationalSpeed As Single = crankRPM
+          Dim rotationalSpeed As Single = _signals.EngineSpeed
           Dim currentHVACDemandAmps As Single = _hvacMap.GetElectricalDemand(_hvacInputs.Region, _hvacInputs.Season)
           Dim currentElectricalConsumerDemandAmp As Single = _electricalConsumersList.GetTotalAverageDemandAmps(True)
 
           Dim totalDemandAmps As Single = currentHVACDemandAmps + currentElectricalConsumerDemandAmp
 
-          Return _alternatorEfficiencyMap.GetEfficiency(crankRPM, totalDemandAmps).Efficiency
+          Return _alternatorEfficiencyMap.GetEfficiency(_signals.EngineSpeed, totalDemandAmps).Efficiency
 
     End Function
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb
index f6eb7e13a4..05fbdeb838 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb
@@ -39,7 +39,7 @@
         Public Function GetAveragePowerAtCrank(ByVal engineRpm As Integer) As Single
 
             Dim ElectricalPowerDemandsWatts As Single = GetAveragePowerDemandAtAlternator() * _powerNetVoltage
-            Dim alternatorsEfficiency As Single       = _module0.GetEfficiency(engineRpm)
+            Dim alternatorsEfficiency As Single       = _module0.GetEfficiency()
             Dim ElectricalPowerDemandsWattsDividedByAlternatorEfficiency as Single = ElectricalPowerDemandsWatts / alternatorsEfficiency
 
             Dim averagePowerDemandAtCrankFromElectricsWatts As Single
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb b/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
index ed96428b8c..ca9bf7a254 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
@@ -26,19 +26,19 @@ Private _alternatorGearEfficiency As single
 
     Public Function AlternatorsGenerationPowerAtCrankIdleWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankIdleWatts
 
-      Return (_m05.SmartIdleCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyIdleResultCard(rpm) * _alternatorGearEfficiency)
+      Return (_m05.SmartIdleCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyIdleResultCard() * _alternatorGearEfficiency)
 
     End Function
 
     Public Function AlternatorsGenerationPowerAtCrankOverrunWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankOverrunWatts
 
-          Return (_m05.SmartOverrunCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyOverrunResultCard(rpm) * _alternatorGearEfficiency)
+          Return (_m05.SmartOverrunCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyOverrunResultCard() * _alternatorGearEfficiency)
 
     End Function
 
     Public Function AlternatorsGenerationPowerAtCrankTractionOnWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankTractionOnWatts
 
-              Return (_m05.SmartTractionCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyTractionOnResultCard(rpm) * _alternatorGearEfficiency)
+              Return (_m05.SmartTractionCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyTractionOnResultCard() * _alternatorGearEfficiency)
 
     End Function
 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/IM4_AirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/IM4_AirCompressor.vb
index 8f612993d9..c408d25b19 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/IM4_AirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/IM4_AirCompressor.vb
@@ -29,7 +29,7 @@
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Function GetFlowRate(ByVal engineRpm As Integer) As Single
+        Function GetFlowRate() As Single
 
         ''' <summary>
         ''' Returns the power consumed for the given engine rpm when compressor is off
@@ -37,7 +37,7 @@
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Function GetPowerCompressorOff(ByVal engineRpm As Integer) As Single
+        Function GetPowerCompressorOff() As Single
 
         ''' <summary>
         ''' Returns the power consumed for the given engine rpm when compressor is on
@@ -45,7 +45,7 @@
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Function GetPowerCompressorOn(ByVal engineRpm As Integer) As Single
+        Function GetPowerCompressorOn() As Single
 
         ''' <summary>
         ''' Returns the difference in power between compressonr on and compressor off operation at the given engine rpm
@@ -53,7 +53,7 @@
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Function GetPowerDifference(ByVal engineRpm As Integer) As Single
+        Function GetPowerDifference() As Single
 
         ''' <summary>
         ''' Returns Average PoweDemand PeCompressor UnitFlowRate 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
index 2beded94c9..fe28680f06 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
@@ -13,6 +13,8 @@ Namespace Pneumatics
         Private _pulleyGearEfficiency As Single
         Private _map As ICompressorMap
 
+        Private _signals As ISignals
+
         ''' <summary>
         ''' Ratio of Gear or Pulley used to drive the compressor
         ''' </summary>
@@ -56,8 +58,9 @@ Namespace Pneumatics
         ''' </summary>
         ''' <param name="map">map of compressor values against compressor rpm</param>
         ''' <remarks></remarks>
-        Public Sub New(ByVal map As ICompressorMap)
+        Public Sub New(ByVal map As ICompressorMap, signals As ISignals)
             _map = map
+            _signals = signals
         End Sub
 
         ''' <summary>
@@ -99,8 +102,8 @@ Namespace Pneumatics
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Public Function GetFlowRate(ByVal engineRpm As Integer) As Single Implements IM4_AirCompressor.GetFlowRate
-            Dim compressorRpm As Single = engineRpm * PulleyGearRatio
+        Public Function GetFlowRate() As Single Implements IM4_AirCompressor.GetFlowRate
+            Dim compressorRpm As Single = _signals.EngineSpeed * PulleyGearRatio
             Return _map.GetFlowRate(compressorRpm)
         End Function
 
@@ -110,8 +113,8 @@ Namespace Pneumatics
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Public Function GetPowerCompressorOff(ByVal engineRpm As Integer) As Single Implements IM4_AirCompressor.GetPowerCompressorOff
-            Return GetCompressorPower(engineRpm, False)
+        Public Function GetPowerCompressorOff() As Single Implements IM4_AirCompressor.GetPowerCompressorOff
+            Return GetCompressorPower(False)
         End Function
 
         ''' <summary>
@@ -120,8 +123,8 @@ Namespace Pneumatics
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Public Function GetPowerCompressorOn(ByVal engineRpm As Integer) As Single Implements IM4_AirCompressor.GetPowerCompressorOn
-            Return GetCompressorPower(engineRpm, True)
+        Public Function GetPowerCompressorOn() As Single Implements IM4_AirCompressor.GetPowerCompressorOn
+            Return GetCompressorPower( True)
         End Function
 
         ''' <summary>
@@ -130,9 +133,9 @@ Namespace Pneumatics
         ''' <param name="engineRpm">Engine speed in rpm</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Public Function GetPowerDifference(ByVal engineRpm As Integer) As Single Implements IM4_AirCompressor.GetPowerDifference
-            Dim powerOn As Single = GetPowerCompressorOn(engineRpm)
-            Dim powerOff As Single = GetPowerCompressorOff(engineRpm)
+        Public Function GetPowerDifference() As Single Implements IM4_AirCompressor.GetPowerDifference
+            Dim powerOn As Single = GetPowerCompressorOn()
+            Dim powerOff As Single = GetPowerCompressorOff()
             Return powerOn - powerOff
         End Function
 
@@ -143,8 +146,8 @@ Namespace Pneumatics
         ''' <param name="compressorOn">Is compressor on</param>
         ''' <returns></returns>
         ''' <remarks></remarks>
-        Private Function GetCompressorPower(ByVal engineRpm As Integer, ByVal compressorOn As Boolean) As Single
-            Dim compressorRpm As Single = engineRpm * PulleyGearRatio
+        Private Function GetCompressorPower( ByVal compressorOn As Boolean) As Single
+            Dim compressorRpm As Single = _signals.EngineSpeed * PulleyGearRatio
             If compressorOn Then
                 Return _map.GetPowerCompressorOn(compressorRpm)
             Else
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
index 770b2eecc8..7d7b9b7216 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
@@ -1,6 +1,8 @@
 Imports NUnit.Framework
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
+Imports VectoAuxiliaries
+
 
 Namespace UnitTests
 
@@ -17,6 +19,10 @@ Namespace UnitTests
 
 #End Region
 
+
+Private _signals As ISignals = New Signals
+
+
 #Region "Factory Methods"
 
         Private Function GetNonFailingCompressorMapMock() As ICompressorMap
@@ -37,7 +43,8 @@ Namespace UnitTests
         <Test()>
         Public Sub CreateNewJustPathTest()
             Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map)
+            _signals.EngineSpeed=100
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
             Assert.IsNotNull(target)
         End Sub
 
@@ -52,14 +59,16 @@ Namespace UnitTests
         <Test()>
         Public Sub InitialiseTest()
             Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map)
+            _signals.EngineSpeed=100
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
             Assert.IsTrue(target.Initialise())
         End Sub
 
         <Test(), ExpectedException("System.ArgumentException")>
         Public Sub InitialiseInvalidMapTest()
             Dim map As ICompressorMap = GetFailingCompressorMapMock()
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map)
+            _signals.EngineSpeed=100
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
             target.Initialise()
         End Sub
 
@@ -116,7 +125,7 @@ Namespace UnitTests
         Public Sub GetCompressorFlowRateTest()
             Dim comp As M4_AirCompressor = GetGoodCompressor()
             Dim expected As Single = 2.0
-            Dim actual = comp.GetFlowRate(100)
+            Dim actual = comp.GetFlowRate()
             Assert.AreEqual(expected, actual)
         End Sub
 
@@ -124,7 +133,7 @@ Namespace UnitTests
         Public Sub GetPowerCompressorOffTest()
             Dim comp As M4_AirCompressor = GetGoodCompressor()
             Dim expected As Single = 5.0
-            Dim actual = comp.GetPowerCompressorOff(100)
+            Dim actual = comp.GetPowerCompressorOff()
             Assert.AreEqual(expected, actual)
         End Sub
 
@@ -133,7 +142,7 @@ Namespace UnitTests
         Public Sub GetPowerCompressorOnTest()
             Dim comp As M4_AirCompressor = GetGoodCompressor()
             Dim expected As Single = 8.0
-            Dim actual = comp.GetPowerCompressorOn(100)
+            Dim actual = comp.GetPowerCompressorOn()
             Assert.AreEqual(expected, actual)
         End Sub
 
@@ -142,7 +151,7 @@ Namespace UnitTests
         Public Sub GetPowerDifferenceTest()
             Dim comp As M4_AirCompressor = GetGoodCompressor()
             Dim expected As Single = 3.0
-            Dim actual = comp.GetPowerDifference(100)
+            Dim actual = comp.GetPowerDifference()
             Assert.AreEqual(expected, actual)
         End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
index 28db98ebf6..066b101986 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
@@ -1,5 +1,6 @@
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Hvac
+Imports VectoAuxiliaries
 Imports NUnit.Framework
 
 Namespace UnitTests
@@ -7,8 +8,8 @@ Namespace UnitTests
 <TestFixture()>
 Public Class M0_5_SmartAlternatorSetEfficiencyTests
 
-
 Private target As M0_5_SmartAlternatorSetEfficiency
+Private signals  = New Signals
 
 Public Sub new()
 
@@ -24,7 +25,11 @@ Dim  hvacMap As New HVACMap("testFiles\TestHvacMap.csv")
 hvacMap.Initialise()
 Dim alternatoMap As New AlternatorMap("testFiles\testAlternatormap.csv")
 alternatoMap.Initialise()
-Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,26.3)
+
+Dim signals = New Signals()
+signals.EngineSpeed=2000
+
+Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,26.3,signals)
 
 'Results Cards
 Dim readings = new Dictionary(Of single, single)
@@ -35,10 +40,11 @@ Dim idleResult As New ResultCard(readings)
 Dim tractionResult As New ResultCard(readings)
 Dim overrunResult As New ResultCard(readings)
 
-target = New M0_5_SmartAlternatorSetEfficiency(m0,elecConsumers,alternatoMap,idleResult,tractionResult,overrunResult)
 
-End Sub
+  signals.EngineSpeed=2000
+  target = New M0_5_SmartAlternatorSetEfficiency(m0,elecConsumers,alternatoMap,idleResult,tractionResult,overrunResult, signals)
 
+End Sub
 
 <Test()> _
 Public Sub CreateNewTest()
@@ -69,7 +75,7 @@ Public Sub AlternatorsEfficiencyIdle2000rpmTest()
    Initialise()
 
    Dim expected As Single = 0.618566155
-   Dim actual As Single = target.AlternatorsEfficiencyIdleResultCard(2000)
+   Dim actual As Single = target.AlternatorsEfficiencyIdleResultCard()
 
    Assert.AreEqual(expected, actual)
    
@@ -82,7 +88,7 @@ Public Sub AlternatorsEfficiencyTraction2000rpmTest()
    Initialise()
 
    Dim expected As Single = 0.618566155
-   Dim actual As Single = target.AlternatorsEfficiencyTractionOnResultCard(2000)
+   Dim actual As Single = target.AlternatorsEfficiencyTractionOnResultCard()
 
    Assert.AreEqual(expected, actual)
 
@@ -94,7 +100,7 @@ Public Sub AlternatorsEfficiencyOverrun2000rpmTest()
    Initialise()
 
    Dim expected As Single = 0.618566155
-   Dim actual As Single = target.AlternatorsEfficiencyOverrunResultCard(2000)
+   Dim actual As Single = target.AlternatorsEfficiencyOverrunResultCard()
 
    Assert.AreEqual(expected, actual)
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
index 524bbbf6f1..a588d17ea8 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
@@ -1,4 +1,5 @@
 Imports NUnit.Framework
+Imports VectoAuxiliaries
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries.Electrics
@@ -19,13 +20,16 @@ Private elecConsumers As IElectricalConsumerList
 Private hvacInputs As IHVACInputs
 Private hvacMap As IHVACMap
 Private alternatorMap As IAlternatorMap
-
+Private signals As Signals = New Signals 
 Private powernetVoltage As Single = 26.3
 
 
 
 Public Sub New()
 
+
+    signals.EngineSpeed=2000
+
    'Setup consumers and HVAC ( 1 Consumer in Test Category )
     elecConsumers = CType(New ElectricalConsumerList(0.096,26.3), IElectricalConsumerList)
     elecConsumers.AddConsumer(New ElectricalConsumer(False, "TEST", "CONSUMER1", 20, 0.5, 26.3, 1))
@@ -45,43 +49,43 @@ End Sub
 
 <Test()>
 Public Sub CreateNewTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage,signals)
        Assert.IsNotNull(target)
 End Sub
 
 <Test()>
 <ExpectedException("System.ArgumentException")>
 Public Sub CreateNew_MissingElecConsumers_ThrowArgumentExceptionTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(Nothing, hvacInputs, hvacMap, alternatorMap, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(Nothing, hvacInputs, hvacMap, alternatorMap, powernetVoltage,signals)
 End Sub
 
 <Test()>
 <ExpectedException("System.ArgumentException")>
 Public Sub CreateNew_MissingHVACInputs_ThrowArgumentExceptionTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, Nothing, hvacMap, alternatorMap, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, Nothing, hvacMap, alternatorMap, powernetVoltage,signals)
 End Sub
 
 
 <Test()>
 <ExpectedException("System.ArgumentException")>
 Public Sub CreateNew_MissingHVACMAP_ThrowArgumentExceptionTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, Nothing, alternatorMap, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, Nothing, alternatorMap, powernetVoltage,signals)
 End Sub
 
 
 <Test()>
 <ExpectedException("System.ArgumentException")>
 Public Sub CreateNew_MissingAlternatorMap_ThrowArgumentExceptionTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, Nothing, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, Nothing, powernetVoltage,signals)
 End Sub
 
 
 
 <Test()>
 Public Sub EfficiencyValueTest()
-       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage)
+       Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage,signals)
 
-       Dim actual As Single = target.GetEfficiency(2000)
+       Dim actual As Single = target.GetEfficiency()
 
        Dim expected As Single = 0.6375106
 
@@ -94,7 +98,7 @@ End Sub
 <Test()>
 Public Sub HVAC_PowerDemandAmpsTest()
 
-      Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage)
+      Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, hvacInputs, hvacMap, alternatorMap, powernetVoltage,signals)
 
       Dim actual As Single
       Dim expected As Single = 152.091263F   '( HVAC POWER OUTPUT IN KW not Watts )
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
index 73952050ca..5dc9f5bc49 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
@@ -2,26 +2,33 @@
 Imports VectoAuxiliaries.Hvac
 Imports NUnit.Framework
 Imports VectoAuxiliariesTests.Mocks
+imports VectoAuxiliaries
 
 Namespace UnitTests
 
     <TestFixture()>
     Public Class M2_AverageElectricalDemandTests
 
+    Private signals As ISignals = New Signals
+
     Private Const csngDoorDutyCycleZeroToOne As Single = 0.0963391136801541
+    Private Const csngPowernetVoltage As Single = 26.3
 
 
 
 #Region "Helpers"
         Private Function GetAverageElectricalDemandInstance() As M2_AverageElectricalLoadDemand
 
+        signals.EngineSpeed=2000
+
+
             Dim consumers As IElectricalConsumerList = CType(New ElectricalConsumerList(26.3,0.096, True), IElectricalConsumerList)
             Dim hvacInp As IHVACInputs = CType(New HVACInputs(1, 1), IHVACInputs)
             Dim hvacmap As IHVACMap = CType(New HVACMap("testfiles\TestHvacMap.csv"), IHVACMap)
             hvacmap.Initialise()
             Dim altMap As IAlternatorMap = CType(New AlternatorMap("testfiles\testAlternatorMap.csv"), IAlternatorMap)
             altMap.Initialise()
-            Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(consumers, hvacInp, hvacmap, altMap, 26.3)
+            Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(consumers, hvacInp, hvacmap, altMap, 26.3,signals)
 
             'Get Consumers.
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
index e5a5a940a1..9d57a70bed 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
@@ -3,6 +3,7 @@ Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Hvac
+Imports VectoAuxiliaries
 
 Namespace UnitTests
 
@@ -19,16 +20,19 @@ Private const _altGearPullyEfficiency As Single =0.8
 'Private fields
 Private _m05 As M0_5_SmartAlternatorSetEfficiency
 Private _target As M5__SmartAlternatorSetGeneration
+Private _signals As ISignals = New Signals
 
 Private sub Initialise()
 
-Dim elecConsumers As New ElectricalConsumerList(26.3,0.096,True)
+_signals.EngineSpeed= 2000
+
+Dim elecConsumers As New ElectricalConsumerList(_powerNetVoltage,0.096,True)
 Dim hvacInputs As New HVACInputs(1,1)
 Dim  hvacMap As New HVACMap(_hvacMap)
 hvacMap.Initialise()
 Dim alternatoMap As New AlternatorMap(_altMap)
 alternatoMap.Initialise()
-Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,_powerNetVoltage)
+Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,_powerNetVoltage,_signals)
 
 'Results Cards
 Dim readings = new Dictionary(Of single, single)
@@ -39,7 +43,10 @@ Dim idleResult As New ResultCard(readings)
 Dim tractionResult As New ResultCard(readings)
 Dim overrunResult As New ResultCard(readings)
 
-_m05 = New M0_5_SmartAlternatorSetEfficiency(m0,elecConsumers,alternatoMap,idleResult,tractionResult,overrunResult)
+Dim signals As ISignals = New Signals
+signals.EngineSpeed=2000
+
+_m05 = New M0_5_SmartAlternatorSetEfficiency(m0,elecConsumers,alternatoMap,idleResult,tractionResult,overrunResult,signals)
 
 End Sub
 
-- 
GitLab