Skip to content

Commit

Permalink
- fix an issue where loading TimeSeriesData from csvtext in some inst…
Browse files Browse the repository at this point in the history
…ances caused unhandled exceptions, now check input and return status flag
  • Loading branch information
Steinar Elgsæter committed Nov 27, 2024
1 parent 1bf46ea commit dd41b82
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ public void DeserializedPlantSimulatorAndTimeSeriesDataObjects_AreAbleToSimulate
var inputDataJsonTxt = new CsvContent(inputData.ToCsvText());

var inputData2 = new TimeSeriesDataSet();
inputData2.LoadFromCsv(inputDataJsonTxt);
var isOkData = inputData2.LoadFromCsv(inputDataJsonTxt);

Assert.IsTrue(isOkData,"uanble to load data from csv");

// 3. deserialize to a new object
var plantSim2 = PlantSimulatorSerializer.LoadFromJsonTxt(plantsimJsonTxt);
Expand Down
2 changes: 1 addition & 1 deletion TimeSeriesAnalysis.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<RunAnalyzersDuringLiveAnalysis>False</RunAnalyzersDuringLiveAnalysis>
<RepositoryUrl>https://github.com/equinor/TimeSeriesAnalysis.git</RepositoryUrl>
<PackageReadmeFile>readme.md</PackageReadmeFile>
<Version>1.3.38</Version>
<Version>1.3.39</Version>
<Company>Equinor</Company>
<Authors>Equinor</Authors>
<IncludeSymbols>true</IncludeSymbols>
Expand Down
33 changes: 26 additions & 7 deletions TimeSeriesAnalysis/TimeSeriesDataSet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,21 @@ public TimeSeriesDataSet Combine(TimeSeriesDataSet inputDataSet)


/// <summary>
/// Fills a dataset with variables, values and dates
/// Fills a dataset with variables, values and dates, removes "time" or "Time" from variableDict if present, and stores timestamps in internal dateTimes
/// </summary>
/// <param name="dateTimes"></param>
/// <param name="variableDict"></param>
private void Fill(DateTime[] dateTimes, Dictionary<string, double[]> variableDict)
private bool Fill(DateTime[] dateTimes, Dictionary<string, double[]> variableDict)
{
if (dateTimes == null)
return false;
if (variableDict == null)
return false;
if (variableDict.Keys == null)
return false;
if (variableDict.Keys.Count() == 0)
return false;

if (variableDict.ContainsKey("Time"))
{
variableDict.Remove("Time");
Expand All @@ -239,12 +248,22 @@ private void Fill(DateTime[] dateTimes, Dictionary<string, double[]> variableDic
{
variableDict.Remove("time");
}
N = variableDict[variableDict.Keys.First()].Length;
if (N == 0)
{
return false;
}
// load actual dataset
dataset = variableDict;
N = dataset[dataset.Keys.First()].Length;
if (dateTimes.Length > 1)
{
timeStamps = dateTimes.ToList();
}
else
{
return false;
}
return true;
}


Expand Down Expand Up @@ -481,9 +500,9 @@ public void InitNewSignal(string signalName, double initalValue, int N, double n
out Dictionary<string, double[]> variableDict, dateTimeFormat);
if (isOK)
{
Fill(dateTimes, variableDict);
return Fill(dateTimes, variableDict);
}
return isOK;
return false;
}


Expand Down Expand Up @@ -546,9 +565,9 @@ public void CreateTimestamps(double timeBase_s, DateTime? t0 = null)
out Dictionary<string, double[]> variableDict, dateTimeFormat);
if (isOk)
{
Fill(dateTimes, variableDict);
return Fill(dateTimes, variableDict);
}
return isOk;
return false;
}

/// <summary>
Expand Down

0 comments on commit dd41b82

Please sign in to comment.