private bool SetVariationCoefficientStochast(VariationCoefficientDefinition definition) { return(ConfigurationImportHelper.TrySetVariationCoefficientStochast( definition.StochastName, calculation.Name, calculation.InputParameters, definition.Configuration, definition.Getter, definition.Setter, Log)); }
public void TrySetVariationCoefficientStochast_ValidStochastConfiguration_ReturnsTrueParametersSet(bool setMean, bool setVariationCoefficient) { // Setup var mocks = new MockRepository(); var log = mocks.StrictMock <ILog>(); mocks.ReplayAll(); var configuration = new StochastConfiguration(); var random = new Random(21); double mean = random.NextDouble(); double variationCoefficient = random.NextDouble(); if (setMean) { configuration.Mean = mean; } if (setVariationCoefficient) { configuration.VariationCoefficient = variationCoefficient; } var input = new TestInputWithStochasts(); // Call bool valid = ConfigurationImportHelper.TrySetVariationCoefficientStochast( "some stochast name", "some calculation name", input, configuration, i => i.VariationCoefficientDistribution, (i, s) => i.VariationCoefficientDistribution = s, log); // Assert Assert.IsTrue(valid); var defaultLogNormal = new VariationCoefficientLogNormalDistribution(); Assert.AreEqual( setMean ? mean : defaultLogNormal.Mean, input.VariationCoefficientDistribution.Mean, input.VariationCoefficientDistribution.Mean.GetAccuracy()); Assert.AreEqual( setVariationCoefficient ? variationCoefficient : defaultLogNormal.CoefficientOfVariation, input.VariationCoefficientDistribution.CoefficientOfVariation, input.VariationCoefficientDistribution.CoefficientOfVariation.GetAccuracy()); mocks.VerifyAll(); }
public void TrySetVariationCoefficientStochast_StochastConfigurationWithStandardDeviation_LogsErrorReturnsFalse() { // Setup const string stochastName = "some stochast name"; const string calculationName = "some calculation name"; const string expectedFormat = "{0} Berekening '{1}' is overgeslagen."; string expectedError = $"Indien voor parameter '{stochastName}' de spreiding wordt opgegeven, moet dit door middel van een variatiecoëfficiënt. " + $"Voor berekening '{calculationName}' is een standaardafwijking gevonden."; var mocks = new MockRepository(); var log = mocks.StrictMock <ILog>(); log.Expect(l => l.ErrorFormat(expectedFormat, expectedError, calculationName)); mocks.ReplayAll(); var configuration = new StochastConfiguration { StandardDeviation = new Random(21).NextDouble() }; var input = new TestInputWithStochasts(); // Call bool valid = ConfigurationImportHelper.TrySetVariationCoefficientStochast( stochastName, calculationName, input, configuration, i => i.VariationCoefficientDistribution, (i, s) => i.VariationCoefficientDistribution = s, log); // Assert Assert.IsFalse(valid); mocks.VerifyAll(); }