Skip to content

Commit

Permalink
Fixes #1946 mobi cannot handler observed data sets with only 1 point (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
msevestre authored Mar 30, 2023
1 parent bf8a9bb commit ab61563
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 8 deletions.
15 changes: 13 additions & 2 deletions src/OSPSuite.Core/Services/ResidualsVsTimeChartService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using OSPSuite.Core.Domain;
using OSPSuite.Core.Domain.Data;
using OSPSuite.Core.Domain.ParameterIdentifications;
using OSPSuite.Core.Domain.Services;
using OSPSuite.Core.Domain.UnitSystem;
using OSPSuite.Core.Extensions;
using OSPSuite.Utility.Extensions;
Expand Down Expand Up @@ -64,8 +65,18 @@ private DataRepository createMarkerRepository(float minObservedDataTime, float m
{
var id = $"{chart.Id}-{ZERO}";
var dataRepository = createEmptyRepository(id, ZERO, ZERO);
dataRepository.BaseGrid.Values = new[] {minObservedDataTime, maxObservedDataTime};
dataRepository.FirstDataColumn().Values = new[] {0f, 0f};

var times = new List<float>{minObservedDataTime};
var values = new List<float> { 0f};
//min and max can be equal if the observed data is a single point
if (!ValueComparer.AreValuesEqual(minObservedDataTime, maxObservedDataTime))
{
times.Add(maxObservedDataTime);
values.Add(0f);
}

dataRepository.BaseGrid.Values = times;
dataRepository.FirstDataColumn().Values = values;
return dataRepository;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,12 @@ public void the_resulting_repository_should_have_the_correct_output_path()

public class When_generating_the_zero_marker : concern_for_ResidualsVsTimeChartService
{

private DataRepository _zeroMarkerDataRepository;
private readonly float _minObservedDataTime = 1;
private readonly float _maxObservedDataTime = 10;


protected override void Because()
{
_zeroMarkerDataRepository =
sut.AddZeroMarkerCurveToChart(_residualsVsTimeChart, _minObservedDataTime, _maxObservedDataTime);
sut.AddZeroMarkerCurveToChart(_residualsVsTimeChart, _minObservedDataTime, _maxObservedDataTime);
}

[Observation]
Expand All @@ -83,7 +79,6 @@ public void a_call_to_the_chart_to_add_the_curve_should_have_happened()
_residualsVsTimeChart.Curves.Count.ShouldBeEqualTo(1);
}


[Observation]
public void the_zero_curve_should_be_correctly_named()
{
Expand All @@ -104,5 +99,25 @@ public void the_zero_curve_should_have_correct_start_and_end_values()
_residualsVsTimeChart.Curves.First().xData.InternalValues[1].ShouldBeEqualTo(10);
}
}

public class When_generating_the_zero_marker_for_an_observed_data_having_only_one_data_point : concern_for_ResidualsVsTimeChartService
{
private readonly float _minObservedDataTime = 1;
private readonly float _maxObservedDataTime = 1;

protected override void Because()
{
sut.AddZeroMarkerCurveToChart(_residualsVsTimeChart, _minObservedDataTime, _maxObservedDataTime);
}

[Observation]
public void should_have_created_the_zero_curve_in_the_chart_with_only_one_value()
{
_residualsVsTimeChart.Curves.Count.ShouldBeEqualTo(1);
var curve = _residualsVsTimeChart.Curves.First();
curve.Name.ShouldBeEqualTo("Zero");
curve.xData.InternalValues[0].ShouldBeEqualTo(1);
}
}
}
}

0 comments on commit ab61563

Please sign in to comment.