protected override void Context() { //Only testing the common behavior of Residual Calculator. Specific tests needs to be written for each calculator implementation //sut = new ResidualCalculatorForOnlyObservedData(_timeGridRestrictor, _dimensionFactory); _simulationResults = DomainHelperForSpecs.SimulationDataRepositoryFor("Sim"); _simulationDataColumn = _simulationResults.AllButBaseGrid().First(); _simulationRunResultsList = new List <SimulationRunResults> { new SimulationRunResults(true, Enumerable.Empty <SolverWarning>(), _simulationResults) }; _observedData = DomainHelperForSpecs.ObservedDataRepository2WithLLOQ().WithName("Obs"); _observedDataColumn = _observedData.AllButBaseGrid().First(); UpdateObservedDataValues(); _timeGridRestrictor = A.Fake <ITimeGridRestrictor>(); //Returns all values of the observed data array. We do not test the time grid restrictor here! A.CallTo(_timeGridRestrictor).WithReturnType <IReadOnlyList <int> >().Returns(Enumerable.Range(0, _observedDataColumn.Values.Count).ToList()); _mergedDimension = A.Fake <IDimension>(); _dimensionFactory = A.Fake <IDimensionFactory>(); A.CallTo(() => _dimensionFactory.MergedDimensionFor(_simulationDataColumn)).Returns(_mergedDimension); _outputMappings = new List <OutputMapping>(); _outputMapping = A.Fake <OutputMapping>(); _fullOutputPath = _simulationDataColumn.QuantityInfo.PathAsString; A.CallTo(() => _outputMapping.FullOutputPath).Returns(_fullOutputPath); _outputMapping.Weight = 1f; _outputMapping.WeightedObservedData = new WeightedObservedData(_observedData); _weights = _outputMapping.WeightedObservedData.Weights; _outputMappings.Add(_outputMapping); for (int i = 0; i < _observedDataColumn.Values.Count; i++) { _outputMapping.WeightedObservedData.Weights[i] = 1f; A.CallTo(() => _mergedDimension.UnitValueToBaseUnitValue(_observedDataColumn.Dimension.BaseUnit, _observedDataColumn.Values[i])).Returns(_observedDataColumn.Values[i]); } A.CallTo(() => _mergedDimension.UnitValueToBaseUnitValue(_observedDataColumn.Dimension.BaseUnit, float.NaN)).Returns(float.NaN); A.CallTo(() => _mergedDimension.UnitValueToBaseUnitValue(_observedDataColumn.Dimension.BaseUnit, _observedDataColumn.DataInfo.LLOQ.Value)).Returns(_observedDataColumn.DataInfo.LLOQ.Value); }