Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 0592bdc1 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

fix: use cultureinvariant parse for environmental conditions map and...

fix: use cultureinvariant parse for environmental conditions map and pneumatics compressor map, adapt exception in testcase due to changes in parsing
parent 578b8550
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
Imports System.IO
Imports System.Globalization
Imports System.IO
Namespace Hvac
Public Class EnvironmentalConditionsMap
Implements IEnvironmentalConditionsMap
Public Class EnvironmentalConditionsMap
Implements IEnvironmentalConditionsMap
Private filePath As String
Private vectoDirectory As String
Private filePath As String
Private vectoDirectory As String
Private _map As New List(Of IEnvironmentalCondition)
Private _map As New List(Of IEnvironmentalCondition)
Public Sub New(filepath As String, vectoDirectory As String)
Public Sub New(filepath As String, vectoDirectory As String)
Me.filePath = filepath
Me.vectoDirectory = vectoDirectory
Me.filePath = filepath
Me.vectoDirectory = vectoDirectory
Initialise()
End Sub
Initialise()
Public Function Initialise() As Boolean Implements IEnvironmentalConditionsMap.Initialise
End Sub
If (Not String.IsNullOrWhiteSpace(filePath)) Then
Public Function Initialise() As Boolean Implements IEnvironmentalConditionsMap.Initialise
filePath = FilePathUtils.ResolveFilePath(vectoDirectory, filePath)
If (Not String.IsNullOrWhiteSpace(filePath)) Then
If File.Exists(filePath) Then
Using sr As StreamReader = New StreamReader(filePath)
filePath = FilePathUtils.ResolveFilePath(vectoDirectory, filePath)
'get array og lines fron csv
Dim lines() As String = sr.ReadToEnd().Split(CType(Environment.NewLine, Char()),
StringSplitOptions.RemoveEmptyEntries)
If File.Exists(filePath) Then
Using sr As StreamReader = New StreamReader(filePath)
'Must have at least 1 entries to make it usable [dont forget the header row]
If (lines.Count() < 2) Then
Return False
End If
'get array og lines fron csv
Dim lines() As String = sr.ReadToEnd().Split(CType(Environment.NewLine, Char()), StringSplitOptions.RemoveEmptyEntries)
Dim firstline As Boolean = True
'Must have at least 1 entries to make it usable [dont forget the header row]
If (lines.Count() < 2) Then
Return False
End If
For Each line As String In lines
If Not firstline Then
Dim firstline As Boolean = True
'split the line
Dim elements() As String = line.Split(New Char() {","}, StringSplitOptions.RemoveEmptyEntries)
For Each line As String In lines
If Not firstline Then
'3 entries per line required
If (elements.Length <> 4) Then
Return False
End If
'split the line
Dim elements() As String = line.Split(New Char() {","}, StringSplitOptions.RemoveEmptyEntries)
'Add environment condition
Dim newCondition As EnvironmentalCondition = New EnvironmentalCondition(
Double.Parse(elements(1), CultureInfo.InvariantCulture),
Double.Parse(elements(2), CultureInfo.InvariantCulture),
Double.Parse(elements(3), CultureInfo.InvariantCulture))
'3 entries per line required
If (elements.Length <> 4) Then
Return False
End If
_map.Add(newCondition)
'Add environment condition
Dim newCondition As EnvironmentalCondition = New EnvironmentalCondition(elements(1), elements(2), elements(3))
Else
firstline = False
End If
Next line
End Using
_map.Add(newCondition)
Else
Return False
End If
End If
Else
firstline = False
End If
Next line
End Using
Return True
End Function
Else
Return False
End If
End If
Return True
End Function
Public Function GetEnvironmentalConditions() As List(Of IEnvironmentalCondition) Implements IEnvironmentalConditionsMap.GetEnvironmentalConditions
Return _map
End Function
End Class
Public Function GetEnvironmentalConditions() As List(Of IEnvironmentalCondition) _
Implements IEnvironmentalConditionsMap.GetEnvironmentalConditions
Return _map
End Function
End Class
End Namespace
......@@ -9,6 +9,7 @@
'
' See the LICENSE.txt for the specific language governing permissions and limitations.
Imports System.Globalization
Imports System.IO
Namespace Pneumatics
......@@ -76,7 +77,10 @@ Namespace Pneumatics
'4 entries per line required
If (elements.Length <> 4) Then Throw New ArgumentException("Incorrect number of values in csv file")
'add values to map
map.Add(elements(0), New CompressorMapValues(elements(1), elements(2), elements(3)))
map.Add(Integer.Parse(elements(0)),
New CompressorMapValues(Single.Parse(elements(1), CultureInfo.InvariantCulture),
Single.Parse(elements(2), CultureInfo.InvariantCulture),
Single.Parse(elements(3), CultureInfo.InvariantCulture)))
Else
firstline = False
End If
......
......@@ -2,152 +2,140 @@
Imports VectoAuxiliaries.Pneumatics
Namespace UnitTests
<TestFixture()>
Public Class CompressorMapTests
Private Const GOODMAP As String = "TestFiles\testCompressorMap.acmp"
Private Const INVALIDPOWERCOMPRESSORONMAP As String = "TestFiles\testCompressorMapInvalidOnPower.acmp"
Private Const INVALIDPOWERCOMPRESSOROFFMAP As String = "TestFiles\testCompressorMapInvalidOffPower.acmp"
Private Const INVALIDFLOWRATEMAP As String = "TestFiles\testCompressorMapInvalidFlow.acmp"
Private Const INSSUFICIENTROWSMAP As String = "TestFiles\testCompressorMapNotEnoughRows.acmp"
Private Const INVALIDRPMMAP As String = "TestFiles\testCompressorMapInvalidRpm.acmp"
Private Const INVALIDNUMBEROFCOLUMNS As String = "TestFiles\testCompressorMapWrongNumberOfColumns.acmp"
<TestFixture()>
Public Class CompressorMapTests
Private Const GOODMAP As String = "TestFiles\testCompressorMap.acmp"
Private Const INVALIDPOWERCOMPRESSORONMAP As String = "TestFiles\testCompressorMapInvalidOnPower.acmp"
Private Const INVALIDPOWERCOMPRESSOROFFMAP As String = "TestFiles\testCompressorMapInvalidOffPower.acmp"
Private Const INVALIDFLOWRATEMAP As String = "TestFiles\testCompressorMapInvalidFlow.acmp"
Private Const INSSUFICIENTROWSMAP As String = "TestFiles\testCompressorMapNotEnoughRows.acmp"
Private Const INVALIDRPMMAP As String = "TestFiles\testCompressorMapInvalidRpm.acmp"
Private Const INVALIDNUMBEROFCOLUMNS As String = "TestFiles\testCompressorMapWrongNumberOfColumns.acmp"
#Region "Helpers"
Private Function GetInitialiseMap() As CompressorMap
Dim target As CompressorMap = GetMap()
target.Initialise()
Return target
End Function
Private Function GetInitialiseMap() As CompressorMap
Dim target As CompressorMap = GetMap()
target.Initialise()
Return target
End Function
Private Function GetMap() As CompressorMap
Dim path As String = GOODMAP
Dim target As CompressorMap = New CompressorMap(path)
Return target
End Function
Private Function GetMap() As CompressorMap
Dim path As String = GOODMAP
Dim target As CompressorMap = New CompressorMap(path)
Return target
End Function
#End Region
<Test()>
Public Sub CreateNewCompressorMapInstanceTest()
Dim pat As String = "test"
Dim target As CompressorMap = New CompressorMap(pat)
End Sub
<Test()>
Public Sub InitialisationTest()
Dim target As CompressorMap = GetMap()
Assert.IsTrue(target.Initialise())
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationNoFileSuppliedThrowsExceptionTest()
Dim path As String = ""
Dim target As CompressorMap = New CompressorMap(path)
Assert.IsTrue(target.Initialise())
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationWrongNumberOfColumnsThrowsExceptionTest()
Dim path As String = INVALIDNUMBEROFCOLUMNS
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialisationInvalidRpmThrowsExceptionTest()
Dim path As String = INVALIDRPMMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialisationInvalidFlowRateThrowsExceptionTest()
Dim path As String = INVALIDFLOWRATEMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialisationInvalidPowerCompressorOnThrowsExceptionTest()
Dim path As String = INVALIDPOWERCOMPRESSORONMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialisationInvalidPowerCompressorOffThrowsExceptionTest()
Dim path As String = INVALIDPOWERCOMPRESSOROFFMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationInsufficientRowsThrowsExceptionTest()
Dim path As String = INSSUFICIENTROWSMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test()>
Public Sub GetFlowRateKeyPassedTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 400
Dim value As Single = target.GetFlowRate(2000)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetFlowRateInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 500
Dim value As Single = target.GetFlowRate(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetPowerCompressorOnInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 5000
Dim value As Single = target.GetPowerCompressorOn(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetPowerCompressorOffInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 2500
Dim value As Single = target.GetPowerCompressorOff(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub InterpMiddle()
Dim target As CompressorMap = New CompressorMap(GOODMAP)
Assert.IsTrue(target.Initialise())
Dim actual = target.GetFlowRate(1750)
Assert.AreEqual( actual,300)
End Sub
End Class
<Test()>
Public Sub CreateNewCompressorMapInstanceTest()
Dim pat As String = "test"
Dim target As CompressorMap = New CompressorMap(pat)
End Sub
<Test()>
Public Sub InitialisationTest()
Dim target As CompressorMap = GetMap()
Assert.IsTrue(target.Initialise())
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationNoFileSuppliedThrowsExceptionTest()
Dim path As String = ""
Dim target As CompressorMap = New CompressorMap(path)
Assert.IsTrue(target.Initialise())
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationWrongNumberOfColumnsThrowsExceptionTest()
Dim path As String = INVALIDNUMBEROFCOLUMNS
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.FormatException")>
Public Sub InitialisationInvalidRpmThrowsExceptionTest()
Dim path As String = INVALIDRPMMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.FormatException")>
Public Sub InitialisationInvalidFlowRateThrowsExceptionTest()
Dim path As String = INVALIDFLOWRATEMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.FormatException")>
Public Sub InitialisationInvalidPowerCompressorOnThrowsExceptionTest()
Dim path As String = INVALIDPOWERCOMPRESSORONMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.FormatException")>
Public Sub InitialisationInvalidPowerCompressorOffThrowsExceptionTest()
Dim path As String = INVALIDPOWERCOMPRESSOROFFMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialisationInsufficientRowsThrowsExceptionTest()
Dim path As String = INSSUFICIENTROWSMAP
Dim target As CompressorMap = New CompressorMap(path)
target.Initialise()
End Sub
<Test()>
Public Sub GetFlowRateKeyPassedTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 400
Dim value As Single = target.GetFlowRate(2000)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetFlowRateInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 500
Dim value As Single = target.GetFlowRate(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetPowerCompressorOnInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 5000
Dim value As Single = target.GetPowerCompressorOn(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub GetPowerCompressorOffInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 2500
Dim value As Single = target.GetPowerCompressorOff(2500)
Assert.AreEqual(expected, value)
End Sub
<Test()>
Public Sub InterpMiddle()
Dim target As CompressorMap = New CompressorMap(GOODMAP)
Assert.IsTrue(target.Initialise())
Dim actual = target.GetFlowRate(1750)
Assert.AreEqual(actual, 300)
End Sub
End Class
End Namespace
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment