From fa56960157676e7afd1efc902481746a68618d26 Mon Sep 17 00:00:00 2001 From: "Burns, Terry" <Terry.Burns@ricardo.com> Date: Thu, 19 Mar 2015 20:26:32 +0000 Subject: [PATCH] WIP - CBA - SavePoint git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1832 --- HVACTOOL/HVACTOOL.vbproj | 2 +- HVACTOOL/Module1.vb | 6 +- .../VectoAuxiliaries/Electrics/Alternator.vb | 119 +++++ .../Electrics/CombinedAlternatorSignals.vb | 28 ++ .../VectoAuxiliaries/Electrics/IAlternator.vb | 18 + .../Electrics/ICombinedAlternatorSignals.vb | 20 + .../UI/frmCombinedAlternators.Designer.vb | 2 +- .../VectoAuxiliaries/VectoAuxiliaries.vbproj | 4 + .../UnitTests/CombinedAlternatorTests.vb | 454 +++++++++--------- .../VectoAuxiliariesTests.vbproj | 1 + 10 files changed, 431 insertions(+), 223 deletions(-) create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/CombinedAlternatorSignals.vb create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/IAlternator.vb create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/ICombinedAlternatorSignals.vb diff --git a/HVACTOOL/HVACTOOL.vbproj b/HVACTOOL/HVACTOOL.vbproj index 0b0ea2e90c..3b8f886576 100644 --- a/HVACTOOL/HVACTOOL.vbproj +++ b/HVACTOOL/HVACTOOL.vbproj @@ -27,7 +27,7 @@ <UpdatePeriodically>false</UpdatePeriodically> <UpdateRequired>false</UpdateRequired> <MapFileExtensions>true</MapFileExtensions> - <ApplicationRevision>6</ApplicationRevision> + <ApplicationRevision>7</ApplicationRevision> <ApplicationVersion>1.0.0.%2a</ApplicationVersion> <UseApplicationTrust>false</UseApplicationTrust> <PublishWizardCompleted>true</PublishWizardCompleted> diff --git a/HVACTOOL/Module1.vb b/HVACTOOL/Module1.vb index ad9062e9be..2543252562 100644 --- a/HVACTOOL/Module1.vb +++ b/HVACTOOL/Module1.vb @@ -5,8 +5,12 @@ module Main Sub main() Dim frm As New frmHVACTool("BusDatabase.abdb", "ssm.ahsm") + Dim frmAlt As New frmCombinedAlternators() - frm.ShowDialog() + + + 'frm.ShowDialog() + frmAlt.ShowDialog() frm.Dispose diff --git a/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb b/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb new file mode 100644 index 0000000000..e6a59bd2a5 --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb @@ -0,0 +1,119 @@ + +Namespace Electrics + +Public class AltUserInput + + Public Amps As Single + Public Eff As Single + + Sub new( amps As Single , eff As single) + + Me.Amps=amps + Me.Eff = eff + + End Sub + + + Public Function IsEqual( other As AltUserInput, Optional rounding As Integer=7) As Boolean + + Return Math.round(Me.Amps,rounding)= Math.Round(other.Amps,rounding) AndAlso _ + Math.Round(Me.Eff,rounding) = Math.Round(other.eff,rounding) + + End Function + + +End class + + +Public Class Alternator + Implements IAlternator + + + Public InputTable2000 As New List(Of AltUserInput) + Public InputTable4000 As New List(Of AltUserInput) + Public InputTable6000 As New List(Of AltUserInput) + + + Private signals As ICombinedAlternatorSignals + Private pulleyRation As Single + + + Public ReadOnly Property Efficiency As Double Implements IAlternator.Efficiency + Get + + End Get + End Property + + Public ReadOnly Property SpindleSpeed As Double Implements IAlternator.SpindleSpeed + Get + + End Get + End Property + + Sub new( isignals As ICombinedAlternatorSignals, pulleyRatio As single) + + + If isignals is Nothing then Throw New ArgumentException("Alternator - ISignals supplied is nothing") + signals = isignals + + + + + End Sub + + + + public Sub BuildInputTable( inputs As Dictionary(of Single, single), targetTable As List (Of AltUserInput )) + + + Dim C11,C12,C13,C14,D11,D12,D13,D14 As single + Dim tmpAmp As single + + targetTable.Clear() + + 'Row0 + targetTable.Add( New AltUserInput(0,D14)) + + 'Row1 + targetTable.Add( New AltUserInput( 10, inputs(10))) + + 'Row2 + targetTable.Add( New AltUserInput( 40, inputs(40))) + + 'Row3 + targetTable.Add( New AltUserInput( 60, inputs(60))) + + C11= targetTable(1).Amps : C12=targetTable(2).Amps : C13=targetTable(3).Amps + D11= targetTable(1).Eff : D12=targetTable(2).Eff : D13=targetTable(3).Eff + D14= IF(D12>D13,0, Math.Max(Math.MAX(D11,D12),D13)) + + + 'Row4 - Eff + targetTable.Add( new AltUserInput( 0 ,D14 )) + + + 'Row4 - Amps + tmpAmp =IF((D13=0 OrElse D13=D12),C13+1,IF(D12>D13,((((C13-C12)/(D12-D13))*D13)+C13),((((C13-C12)/(D12-D13))*(D13-D14))+C13))) + targetTable(4).Amps = tmpAmp + + 'Row5 + tmpAmp =IF(C14>200,C14+1,200) + targetTable.Add( New AltUserInput(tmpAmp,D14)) + + 'Row0 + targetTable(0).Eff=D11 + + + End Sub + + + +End Class + + + + +End Namespace + + + diff --git a/VECTOAux/VectoAuxiliaries/Electrics/CombinedAlternatorSignals.vb b/VECTOAux/VectoAuxiliaries/Electrics/CombinedAlternatorSignals.vb new file mode 100644 index 0000000000..64ab6a8772 --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/Electrics/CombinedAlternatorSignals.vb @@ -0,0 +1,28 @@ + + +Namespace Electrics + + +Public Class CombinedAlternatorSignals + Implements ICombinedAlternatorSignals + + + + Public Property CrankRPM As Single Implements ICombinedAlternatorSignals.CrankRPM + + Public Property CurrentDemandAmps As Single Implements ICombinedAlternatorSignals.CurrentDemandAmps + + Public Property NumberOfAlternators As Single Implements ICombinedAlternatorSignals.NumberOfAlternators + + + +End Class + + + +End Namespace + + + + + diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IAlternator.vb b/VECTOAux/VectoAuxiliaries/Electrics/IAlternator.vb new file mode 100644 index 0000000000..34bbbfb975 --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/Electrics/IAlternator.vb @@ -0,0 +1,18 @@ + +Namespace Electrics + + + Public Interface IAlternator + + + Readonly property SpindleSpeed As Double + + ReadOnly Property Efficiency As Double + + + End Interface + + +End Namespace + + diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ICombinedAlternatorSignals.vb b/VECTOAux/VectoAuxiliaries/Electrics/ICombinedAlternatorSignals.vb new file mode 100644 index 0000000000..6a0e71d3cb --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/Electrics/ICombinedAlternatorSignals.vb @@ -0,0 +1,20 @@ + +Namespace Electrics + + +Public Interface ICombinedAlternatorSignals + + + Property NumberOfAlternators As Single + Property CrankRPM As Single + Property CurrentDemandAmps As Single + + +End Interface + + + + +End Namespace + + diff --git a/VECTOAux/VectoAuxiliaries/UI/frmCombinedAlternators.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/frmCombinedAlternators.Designer.vb index c157f6faa0..1dd4aafc16 100644 --- a/VECTOAux/VectoAuxiliaries/UI/frmCombinedAlternators.Designer.vb +++ b/VECTOAux/VectoAuxiliaries/UI/frmCombinedAlternators.Designer.vb @@ -28,7 +28,7 @@ Partial Class frmCombinedAlternators ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(729, 490) + Me.ClientSize = New System.Drawing.Size(935, 579) Me.Name = "frmCombinedAlternators" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "frmCombinedAlternators" diff --git a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj index 0230674e97..6b58468b00 100644 --- a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj +++ b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj @@ -108,11 +108,15 @@ <Compile Include="DownstreamModules\M7.vb" /> <Compile Include="DownstreamModules\M8.vb" /> <Compile Include="DownstreamModules\M9.vb" /> + <Compile Include="Electrics\Alternator.vb" /> <Compile Include="Electrics\AlternatorMapValues.vb" /> <Compile Include="Electrics\AlternatorMap.vb" /> <Compile Include="Electrics\CombinedAltEntry.vb" /> <Compile Include="Electrics\CombinedAlternator.vb" /> + <Compile Include="Electrics\CombinedAlternatorSignals.vb" /> <Compile Include="Electrics\ElectricsUserInputsConfig.vb" /> + <Compile Include="Electrics\IAlternator.vb" /> + <Compile Include="Electrics\ICombinedAlternatorSignals.vb" /> <Compile Include="Electrics\IElectricsUserInputsConfig.vb" /> <Compile Include="Electrics\IM0_5_SmartAlternatorSetEfficiency.vb" /> <Compile Include="Electrics\IM2_AverageElectricalLoadDemand.vb" /> diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb index 3bc59ab1a3..5c1fd0ab45 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb @@ -1,243 +1,257 @@ -Imports VectoAuxiliaries.Electrics -Imports VectoAuxiliaries.Pneumatics -Imports VectoAuxiliaries.Hvac -Imports VectoAuxiliaries.DownstreamModules -Imports NUnit.Framework +Imports NUnit.Framework +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliariesTests.Mocks Imports VectoAuxiliaries -Imports Moq +Imports VectoAuxiliaries.Hvac Namespace UnitTests + <TestFixture()> + Public Class CombinedAlternatorTests + + private Alt1ExpectedTable2000 As new List(Of AltUserInput) + private Alt1ExpectedTable4000 As new List(Of AltUserInput) + private Alt1ExpectedTable6000 As new List(Of AltUserInput) + private Alt2ExpectedTable2000 As new List(Of AltUserInput) + private Alt2ExpectedTable4000 As new List(Of AltUserInput) + private Alt2ExpectedTable6000 As new List(Of AltUserInput) + private Alt3ExpectedTable2000 As new List(Of AltUserInput) + private Alt3ExpectedTable4000 As new List(Of AltUserInput) + private Alt3ExpectedTable6000 As new List(Of AltUserInput) + private Alt4ExpectedTable2000 As new List(Of AltUserInput) + private Alt4ExpectedTable4000 As new List(Of AltUserInput) + private Alt4ExpectedTable6000 As new List(Of AltUserInput) + + + + Sub new () + + Alt1ExpectedTable2000 = New List(Of AltUserInput)() from { New AltUserInput( 0,50), _ + New AltUserInput( 10,50), _ + New AltUserInput( 40,50), _ + New AltUserInput( 60,50), _ + New AltUserInput( 61,50), _ + New AltUserInput(200,50) } + + Alt1ExpectedTable4000 = New List(Of AltUserInput)() from { New AltUserInput( 0,70), _ + New AltUserInput( 10,70), _ + New AltUserInput( 40,70), _ + New AltUserInput( 60,70), _ + New AltUserInput( 61,70), _ + New AltUserInput(200,70) } + + + Alt1ExpectedTable6000 = New List(Of AltUserInput)() from { New AltUserInput( 0,60), _ + New AltUserInput( 10,60), _ + New AltUserInput( 40,60), _ + New AltUserInput( 60,60), _ + New AltUserInput( 61,60), _ + New AltUserInput(200,60) } + + 'ALT 2 + Alt2ExpectedTable2000 = New List(Of AltUserInput)() from { New AltUserInput( 0,80), _ + New AltUserInput( 10,80), _ + New AltUserInput( 40,80), _ + New AltUserInput( 60,80), _ + New AltUserInput( 61,80), _ + New AltUserInput(200,80) } + + Alt2ExpectedTable4000 = New List(Of AltUserInput)() from { New AltUserInput( 0,40), _ + New AltUserInput( 10,40), _ + New AltUserInput( 40,40), _ + New AltUserInput( 60,40), _ + New AltUserInput( 61,40), _ + New AltUserInput(200,40) } + + + Alt2ExpectedTable6000 = New List(Of AltUserInput)() from { New AltUserInput( 0,60), _ + New AltUserInput( 10,60), _ + New AltUserInput( 40,60), _ + New AltUserInput( 60,60), _ + New AltUserInput( 61,60), _ + New AltUserInput(200,60) } + + + 'ALT 3 + Alt3ExpectedTable2000 = New List(Of AltUserInput)() from { New AltUserInput( 0,95), _ + New AltUserInput( 10,95), _ + New AltUserInput( 40,50), _ + New AltUserInput( 60,90), _ + New AltUserInput(62.5,95), _ + New AltUserInput(200, 95) } + + Alt3ExpectedTable4000 = New List(Of AltUserInput)() from { New AltUserInput( 0,99), _ + New AltUserInput( 10,99), _ + New AltUserInput( 40, 1), _ + New AltUserInput( 60,55), _ + New AltUserInput( 76.2962963,99), _ + New AltUserInput(200,99) } + + + Alt3ExpectedTable6000 = New List(Of AltUserInput)() from { New AltUserInput( 0,94), _ + New AltUserInput( 10,94), _ + New AltUserInput( 40, 86), _ + New AltUserInput( 60,13), _ + New AltUserInput( 63.5616438,0), _ + New AltUserInput(200,0) } + + + 'ALT 4 + Alt4ExpectedTable2000 = New List(Of AltUserInput)() from { New AltUserInput( 0,55), _ + New AltUserInput( 10,55), _ + New AltUserInput( 40,45), _ + New AltUserInput( 60,67), _ + New AltUserInput( 60,67), _ + New AltUserInput(200,67) } + + Alt4ExpectedTable4000 = New List(Of AltUserInput)() from { New AltUserInput( 0,77), _ + New AltUserInput( 10,77), _ + New AltUserInput( 40,39), _ + New AltUserInput( 60,23), _ + New AltUserInput( 88.75,0), _ + New AltUserInput(200,0) } + + + Alt4ExpectedTable6000 = New List(Of AltUserInput)() from { New AltUserInput( 0,34), _ + New AltUserInput( 10,34), _ + New AltUserInput( 40, 67), _ + New AltUserInput( 60,35), _ + New AltUserInput( 81.875,0), _ + New AltUserInput(200,0) } + + + + End Sub + + + <Test()> + Public Sub Alt1TableConstructTest() + + Dim inputs2000 As New Dictionary(Of single,single)() From {{10,50}, {40,50}, {60,50}} + Dim inputs4000 As New Dictionary(Of single,single)() From {{10,70}, {40,70}, {60,70}} + Dim inputs6000 As New Dictionary(Of single,single)() From {{10,60}, {40,60}, {60,60}} + + Dim Alt As New Alternator( New CombinedAlternatorSignals(), 3) + + + Alt.BuildInputTable( inputs2000, Alt.InputTable2000) + Alt.BuildInputTable( inputs4000, Alt.InputTable4000) + Alt.BuildInputTable( inputs6000, Alt.InputTable6000) + + Dim idx As integer + + For idx = 0 to Alt.InputTable2000.Count-1 + Assert.IsTrue( Alt.InputTable2000(idx).IsEqual( Alt1ExpectedTable2000(idx))) + Next + + For idx = 0 to Alt.InputTable4000.Count-1 + Assert.IsTrue( Alt.InputTable4000(idx).IsEqual( Alt1ExpectedTable4000(idx))) + Next + + For idx = 0 to Alt.InputTable6000.Count-1 + Assert.IsTrue( Alt.InputTable6000(idx).IsEqual( Alt1ExpectedTable6000(idx))) + Next + + + End Sub + <Test()> + Public Sub Alt2TableConstructTest() + + Dim inputs2000 As New Dictionary(Of single,single)() From {{10,80}, {40,80}, {60,80}} + Dim inputs4000 As New Dictionary(Of single,single)() From {{10,40}, {40,40}, {60,40}} + Dim inputs6000 As New Dictionary(Of single,single)() From {{10,60}, {40,60}, {60,60}} + + Dim Alt As New Alternator( New CombinedAlternatorSignals(), 2.5) + + + Alt.BuildInputTable( inputs2000, Alt.InputTable2000) + Alt.BuildInputTable( inputs4000, Alt.InputTable4000) + Alt.BuildInputTable( inputs6000, Alt.InputTable6000) + + Dim idx As integer + + For idx = 0 to Alt.InputTable2000.Count-1 + Assert.IsTrue( Alt.InputTable2000(idx).IsEqual( Alt2ExpectedTable2000(idx))) + Next + + For idx = 0 to Alt.InputTable4000.Count-1 + Assert.IsTrue( Alt.InputTable4000(idx).IsEqual( Alt2ExpectedTable4000(idx))) + Next + + For idx = 0 to Alt.InputTable6000.Count-1 + Assert.IsTrue( Alt.InputTable6000(idx).IsEqual( Alt2ExpectedTable6000(idx))) + Next + + + End Sub + <Test()> + Public Sub Alt3TableConstructTest() + + Dim inputs2000 As New Dictionary(Of single,single)() From {{10,95}, {40,50}, {60,90}} + Dim inputs4000 As New Dictionary(Of single,single)() From {{10,99}, {40, 1}, {60,55}} + Dim inputs6000 As New Dictionary(Of single,single)() From {{10,94}, {40,86}, {60,13}} + + Dim Alt As New Alternator( New CombinedAlternatorSignals(), 3.5) + -<TestFixture()> -Public Class CombinedAlternatorTests - - <Test()> - public sub One_AlternatorTestSet() - - Dim target As New CombinedAlternator("c:\alt.xlsx",3,4,5,6,1) - - - Assert.IsTrue( ValueSetsEqual( target.GetCombinedMap, OneAltValues)) - - - End Sub - - - -Public function OneAltValues() As List( OF CombinedAltEntry) - -Dim results As New List( of CombinedAltEntry) - - - results.Add( new CombinedAltEntry with { .Amps=10.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=25.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=50.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=75.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=100.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=150.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=200.00 ,.EngineSpeed=500 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=10.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=25.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=50.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=75.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=100.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=150.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=200.00 ,.EngineSpeed=667 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=10.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=25.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=50.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=75.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=100.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=150.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=200.00 ,.EngineSpeed=1333 ,.Efficiency=0.60 }) - results.Add( new CombinedAltEntry with { .Amps=10.00 ,.EngineSpeed=2000 ,.Efficiency=0.70 }) - results.Add( new CombinedAltEntry with { .Amps=25.00 ,.EngineSpeed=2000 ,.Efficiency=0.67 }) - results.Add( new CombinedAltEntry with { .Amps=50.00 ,.EngineSpeed=2000 ,.Efficiency=0.63 }) - results.Add( new CombinedAltEntry with { .Amps=75.00 ,.EngineSpeed=2000 ,.Efficiency=0.59 }) - results.Add( new CombinedAltEntry with { .Amps=100.00 ,.EngineSpeed=2000 ,.Efficiency=0.54 }) - results.Add( new CombinedAltEntry with { .Amps=150.00 ,.EngineSpeed=2000 ,.Efficiency=0.46 }) - results.Add( new CombinedAltEntry with { .Amps=200.00 ,.EngineSpeed=2000 ,.Efficiency=0.37 }) - results.Add( new CombinedAltEntry with { .Amps=10.00 ,.EngineSpeed=2333 ,.Efficiency=0.70 }) - results.Add( new CombinedAltEntry with { .Amps=25.00 ,.EngineSpeed=2333 ,.Efficiency=0.67 }) - results.Add( new CombinedAltEntry with { .Amps=50.00 ,.EngineSpeed=2333 ,.Efficiency=0.63 }) - results.Add( new CombinedAltEntry with { .Amps=75.00 ,.EngineSpeed=2333 ,.Efficiency=0.58 }) - results.Add( new CombinedAltEntry with { .Amps=100.00 ,.EngineSpeed=2333 ,.Efficiency=0.52 }) - results.Add( new CombinedAltEntry with { .Amps=150.00 ,.EngineSpeed=2333 ,.Efficiency=0.39 }) - results.Add( new CombinedAltEntry with { .Amps=200.00 ,.EngineSpeed=2333 ,.Efficiency=0.26 }) - - -Return results - - -End Function -Public Function TwoAltValues() As List( of CombinedAltEntry) - - Dim results As New List( Of CombinedAltEntry) - - Results.Add( new CombinedAltEntry With { .AMPS=20.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=50.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=100.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=150.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=200.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=300.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=400.00 ,.EngineSpeed=500 ,.Efficiency=0.75 }) - Results.Add( new CombinedAltEntry With { .AMPS=20.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=50.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=100.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=150.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=200.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=300.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=400.00 ,.EngineSpeed=667 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=20.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=50.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=100.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=150.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=200.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=300.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=400.00 ,.EngineSpeed=1333 ,.Efficiency=0.72 }) - Results.Add( new CombinedAltEntry With { .AMPS=20.00 ,.EngineSpeed=2000 ,.Efficiency=0.90 }) - Results.Add( new CombinedAltEntry With { .AMPS=50.00 ,.EngineSpeed=2000 ,.Efficiency=0.89 }) - Results.Add( new CombinedAltEntry With { .AMPS=100.00 ,.EngineSpeed=2000 ,.Efficiency=0.87 }) - Results.Add( new CombinedAltEntry With { .AMPS=150.00 ,.EngineSpeed=2000 ,.Efficiency=0.84 }) - Results.Add( new CombinedAltEntry With { .AMPS=200.00 ,.EngineSpeed=2000 ,.Efficiency=0.82 }) - Results.Add( new CombinedAltEntry With { .AMPS=300.00 ,.EngineSpeed=2000 ,.Efficiency=0.78 }) - Results.Add( new CombinedAltEntry With { .AMPS=400.00 ,.EngineSpeed=2000 ,.Efficiency=0.74 }) - Results.Add( new CombinedAltEntry With { .AMPS=20.00 ,.EngineSpeed=2333 ,.Efficiency=0.80 }) - Results.Add( new CombinedAltEntry With { .AMPS=50.00 ,.EngineSpeed=2333 ,.Efficiency=0.79 }) - Results.Add( new CombinedAltEntry With { .AMPS=100.00 ,.EngineSpeed=2333 ,.Efficiency=0.77 }) - Results.Add( new CombinedAltEntry With { .AMPS=150.00 ,.EngineSpeed=2333 ,.Efficiency=0.74 }) - Results.Add( new CombinedAltEntry With { .AMPS=200.00 ,.EngineSpeed=2333 ,.Efficiency=0.71 }) - Results.Add( new CombinedAltEntry With { .AMPS=300.00 ,.EngineSpeed=2333 ,.Efficiency=0.64 }) - Results.Add( new CombinedAltEntry With { .AMPS=400.00 ,.EngineSpeed=2333 ,.Efficiency=0.58 }) - - - Return results - - -End Function -Public Function ThreeAltValues() As List( of CombinedAltEntry) - - Dim results As New List( Of CombinedAltEntry) - - results.Add( new CombinedAltEntry With { .AMPS=30 ,.EngineSpeed = 500 ,.Efficiency = 0.71 }) - results.Add( new CombinedAltEntry With { .AMPS=75 ,.EngineSpeed = 500 ,.Efficiency = 0.73 }) - results.Add( new CombinedAltEntry With { .AMPS=150 ,.EngineSpeed = 500 ,.Efficiency = 0.77 }) - results.Add( new CombinedAltEntry With { .AMPS=225 ,.EngineSpeed = 500 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=300 ,.EngineSpeed = 500 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=450 ,.EngineSpeed = 500 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=600 ,.EngineSpeed = 500 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=30 ,.EngineSpeed = 667 ,.Efficiency = 0.69 }) - results.Add( new CombinedAltEntry With { .AMPS=75 ,.EngineSpeed = 667 ,.Efficiency = 0.70 }) - results.Add( new CombinedAltEntry With { .AMPS=150 ,.EngineSpeed = 667 ,.Efficiency = 0.73 }) - results.Add( new CombinedAltEntry With { .AMPS=225 ,.EngineSpeed = 667 ,.Efficiency = 0.22 }) - results.Add( new CombinedAltEntry With { .AMPS=300 ,.EngineSpeed = 667 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=450 ,.EngineSpeed = 667 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=600 ,.EngineSpeed = 667 ,.Efficiency = 0.00 }) - results.Add( new CombinedAltEntry With { .AMPS=30 ,.EngineSpeed = 1333 ,.Efficiency = 0.64 }) - results.Add( new CombinedAltEntry With { .AMPS=75 ,.EngineSpeed = 1333 ,.Efficiency = 0.66 }) - results.Add( new CombinedAltEntry With { .AMPS=150 ,.EngineSpeed = 1333 ,.Efficiency = 0.69 }) - results.Add( new CombinedAltEntry With { .AMPS=225 ,.EngineSpeed = 1333 ,.Efficiency = 0.70 }) - results.Add( new CombinedAltEntry With { .AMPS=300 ,.EngineSpeed = 1333 ,.Efficiency = 0.69 }) - results.Add( new CombinedAltEntry With { .AMPS=450 ,.EngineSpeed = 1333 ,.Efficiency = 0.67 }) - results.Add( new CombinedAltEntry With { .AMPS=600 ,.EngineSpeed = 1333 ,.Efficiency = 0.65 }) - results.Add( new CombinedAltEntry With { .AMPS=30 ,.EngineSpeed = 2000 ,.Efficiency = 0.70 }) - results.Add( new CombinedAltEntry With { .AMPS=75 ,.EngineSpeed = 2000 ,.Efficiency = 0.72 }) - results.Add( new CombinedAltEntry With { .AMPS=150 ,.EngineSpeed = 2000 ,.Efficiency = 0.75 }) - results.Add( new CombinedAltEntry With { .AMPS=225 ,.EngineSpeed = 2000 ,.Efficiency = 0.77 }) - results.Add( new CombinedAltEntry With { .AMPS=300 ,.EngineSpeed = 2000 ,.Efficiency = 0.74 }) - results.Add( new CombinedAltEntry With { .AMPS=450 ,.EngineSpeed = 2000 ,.Efficiency = 0.69 }) - results.Add( new CombinedAltEntry With { .AMPS=600 ,.EngineSpeed = 2000 ,.Efficiency = 0.63 }) - results.Add( new CombinedAltEntry With { .AMPS=30 ,.EngineSpeed = 2333 ,.Efficiency = 0.61 }) - results.Add( new CombinedAltEntry With { .AMPS=75 ,.EngineSpeed = 2333 ,.Efficiency = 0.63 }) - results.Add( new CombinedAltEntry With { .AMPS=150 ,.EngineSpeed = 2333 ,.Efficiency = 0.66 }) - results.Add( new CombinedAltEntry With { .AMPS=225 ,.EngineSpeed = 2333 ,.Efficiency = 0.69 }) - results.Add( new CombinedAltEntry With { .AMPS=300 ,.EngineSpeed = 2333 ,.Efficiency = 0.65 }) - results.Add( new CombinedAltEntry With { .AMPS=450 ,.EngineSpeed = 2333 ,.Efficiency = 0.58 }) - results.Add( new CombinedAltEntry With { .AMPS=600 ,.EngineSpeed = 2333 ,.Efficiency = 0.51 }) - - - - Return results - - -End Function -Public Function FourAltValues() As List( of CombinedAltEntry) - - Dim results As New List( Of CombinedAltEntry) - - - results.Add( new CombinedAltEntry With {.AMPS=40 ,.EngineSpeed=500 ,.Efficiency=0.61 }) - results.Add( new CombinedAltEntry With {.AMPS=100.00 ,.EngineSpeed=500 ,.Efficiency=0.68 }) - results.Add( new CombinedAltEntry With {.AMPS=200.00 ,.EngineSpeed=500 ,.Efficiency=0.78 }) - results.Add( new CombinedAltEntry With {.AMPS=300.00 ,.EngineSpeed=500 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=400.00 ,.EngineSpeed=500 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=600.00 ,.EngineSpeed=500 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=800.00 ,.EngineSpeed=500 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=40.00 ,.EngineSpeed=667 ,.Efficiency=0.68 }) - results.Add( new CombinedAltEntry With {.AMPS=100.00 ,.EngineSpeed=667 ,.Efficiency=0.70 }) - results.Add( new CombinedAltEntry With {.AMPS=200.00 ,.EngineSpeed=667 ,.Efficiency=0.73 }) - results.Add( new CombinedAltEntry With {.AMPS=300.00 ,.EngineSpeed=667 ,.Efficiency=0.35 }) - results.Add( new CombinedAltEntry With {.AMPS=400.00 ,.EngineSpeed=667 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=600.00 ,.EngineSpeed=667 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=800.00 ,.EngineSpeed=667 ,.Efficiency=0.00 }) - results.Add( new CombinedAltEntry With {.AMPS=40.00 ,.EngineSpeed=1333 ,.Efficiency=0.59 }) - results.Add( new CombinedAltEntry With {.AMPS=100.00 ,.EngineSpeed=1333 ,.Efficiency=0.61 }) - results.Add( new CombinedAltEntry With {.AMPS=200.00 ,.EngineSpeed=1333 ,.Efficiency=0.66 }) - results.Add( new CombinedAltEntry With {.AMPS=300.00 ,.EngineSpeed=1333 ,.Efficiency=0.69 }) - results.Add( new CombinedAltEntry With {.AMPS=400.00 ,.EngineSpeed=1333 ,.Efficiency=0.68 }) - results.Add( new CombinedAltEntry With {.AMPS=600.00 ,.EngineSpeed=1333 ,.Efficiency=0.64 }) - results.Add( new CombinedAltEntry With {.AMPS=800.00 ,.EngineSpeed=1333 ,.Efficiency=0.61 }) - results.Add( new CombinedAltEntry With {.AMPS=40.00 ,.EngineSpeed=2000 ,.Efficiency=0.58 }) - results.Add( new CombinedAltEntry With {.AMPS=100.00 ,.EngineSpeed=2000 ,.Efficiency=0.61 }) - results.Add( new CombinedAltEntry With {.AMPS=200.00 ,.EngineSpeed=2000 ,.Efficiency=0.67 }) - results.Add( new CombinedAltEntry With {.AMPS=300.00 ,.EngineSpeed=2000 ,.Efficiency=0.72 }) - results.Add( new CombinedAltEntry With {.AMPS=400.00 ,.EngineSpeed=2000 ,.Efficiency=0.69 }) - results.Add( new CombinedAltEntry With {.AMPS=600.00 ,.EngineSpeed=2000 ,.Efficiency=0.63 }) - results.Add( new CombinedAltEntry With {.AMPS=800.00 ,.EngineSpeed=2000 ,.Efficiency=0.56 }) - results.Add( new CombinedAltEntry With {.AMPS=40.00 ,.EngineSpeed=2333 ,.Efficiency=0.48 }) - results.Add( new CombinedAltEntry With {.AMPS=100.00 ,.EngineSpeed=2333 ,.Efficiency=0.52 }) - results.Add( new CombinedAltEntry With {.AMPS=200.00 ,.EngineSpeed=2333 ,.Efficiency=0.59 }) - results.Add( new CombinedAltEntry With {.AMPS=300.00 ,.EngineSpeed=2333 ,.Efficiency=0.65 }) - results.Add( new CombinedAltEntry With {.AMPS=400.00 ,.EngineSpeed=2333 ,.Efficiency=0.61 }) - results.Add( new CombinedAltEntry With {.AMPS=600.00 ,.EngineSpeed=2333 ,.Efficiency=0.53 }) - results.Add( new CombinedAltEntry With {.AMPS=800.00 ,.EngineSpeed=2333 ,.Efficiency=0.45 }) - - - Return results - -End Function - - -Public Function ValueSetsEqual( set1 As List(Of CombinedAltEntry),set2 As List(Of CombinedAltEntry)) As Boolean - - 'Bsic Count Check - If set1.Count<> set2.Count then Return False - - 'Values Check, position for position - For i As Integer = 0 to set1.Count-1 - - If set1(i).Amps<> set2(i).Amps OrElse set1(i).EngineSpeed<> set2(i).EngineSpeed OrElse set1(i).Efficiency <> set2(i).Efficiency then - Return False - End If + Alt.BuildInputTable( inputs2000, Alt.InputTable2000) + Alt.BuildInputTable( inputs4000, Alt.InputTable4000) + Alt.BuildInputTable( inputs6000, Alt.InputTable6000) + Dim idx As integer + + For idx = 0 to Alt.InputTable2000.Count-1 + Assert.IsTrue( Alt.InputTable2000(idx).IsEqual( Alt3ExpectedTable2000(idx))) Next - Return true + For idx = 0 to Alt.InputTable4000.Count-1 + Assert.IsTrue( Alt.InputTable4000(idx).IsEqual( Alt3ExpectedTable4000(idx),3)) + Next -End Function + For idx = 0 to Alt.InputTable6000.Count-1 + Assert.IsTrue( Alt.InputTable6000(idx).IsEqual( Alt3ExpectedTable6000(idx),3)) + Next + + End Sub + <Test()> + Public Sub Alt4TableConstructTest() + Dim inputs2000 As New Dictionary(Of single,single)() From {{10,55}, {40,45}, {60,67}} + Dim inputs4000 As New Dictionary(Of single,single)() From {{10,77}, {40,39}, {60,23}} + Dim inputs6000 As New Dictionary(Of single,single)() From {{10,34}, {40,67}, {60,35}} + Dim Alt As New Alternator( New CombinedAlternatorSignals(), 3.5) -End Class + Alt.BuildInputTable( inputs2000, Alt.InputTable2000) + Alt.BuildInputTable( inputs4000, Alt.InputTable4000) + Alt.BuildInputTable( inputs6000, Alt.InputTable6000) + Dim idx As integer + For idx = 0 to Alt.InputTable2000.Count-1 + Assert.IsTrue( Alt.InputTable2000(idx).IsEqual( Alt4ExpectedTable2000(idx))) + Next + For idx = 0 to Alt.InputTable4000.Count-1 + Assert.IsTrue( Alt.InputTable4000(idx).IsEqual( Alt4ExpectedTable4000(idx),3)) + Next + + For idx = 0 to Alt.InputTable6000.Count-1 + Assert.IsTrue( Alt.InputTable6000(idx).IsEqual( Alt4ExpectedTable6000(idx),3)) + Next + + + End Sub + + + End Class End Namespace + + diff --git a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj index 0a157ee5b3..834218aee4 100644 --- a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj +++ b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj @@ -109,6 +109,7 @@ <Compile Include="Mocks\M7_Mock.vb" /> <Compile Include="Mocks\MockFuel50PC.vb" /> <Compile Include="UnitTests\BusDatabaseTests.vb" /> + <Compile Include="UnitTests\CombinedAlternatorTests.vb" /> <Compile Include="UnitTests\FilePathUtilityTests.vb" /> <Compile Include="UnitTests\FuelMapTests.vb" /> <Compile Include="UnitTests\HVACSSMMapTests.vb" /> -- GitLab