Exemple #1
0
 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();
        }