public void GetCriticalHeaveGradientDesignVariable_GeneralPipingInput_CreateDeterministicDesignVariableForCriticalHeaveGradient()
        {
            // Setup
            var generalPipingInput = new GeneralPipingInput();

            // Call
            DeterministicDesignVariable <LogNormalDistribution> criticalHeaveGradient = SemiProbabilisticPipingDesignVariableFactory.GetCriticalHeaveGradientDesignVariable(generalPipingInput);

            // Assert
            DistributionAssert.AreEqual(generalPipingInput.CriticalHeaveGradient, criticalHeaveGradient.Distribution);
            Assert.AreEqual(0.3, criticalHeaveGradient.GetDesignValue());
        }
        public void GetUpliftModelFactorDesignVariable_GeneralPipingInput_CreateDeterministicDesignVariableForUpliftModelFactor()
        {
            // Setup
            var generalPipingInput = new GeneralPipingInput();

            // Call
            DeterministicDesignVariable <LogNormalDistribution> upliftModelFactor = SemiProbabilisticPipingDesignVariableFactory.GetUpliftModelFactorDesignVariable(generalPipingInput);

            // Assert
            DistributionAssert.AreEqual(generalPipingInput.UpliftModelFactor, upliftModelFactor.Distribution);
            Assert.AreEqual(generalPipingInput.UpliftModelFactor.Mean, upliftModelFactor.GetDesignValue());
        }
        public void ParameteredConstructor_ExpectedValues()
        {
            // Setup
            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IDistribution>();

            distribution.Mean = new RoundedDouble();
            mocks.ReplayAll();

            // Call
            var designVariable = new DeterministicDesignVariable <IDistribution>(distribution);

            // Assert
            Assert.IsInstanceOf <DesignVariable <IDistribution> >(designVariable);
            Assert.AreSame(distribution, designVariable.Distribution);
            Assert.AreEqual(0, designVariable.GetDesignValue().Value);
            mocks.VerifyAll();
        }
        public void GetDesignValue_Always_ReturnsDeterministicValueWithNumberOfDecimalsFromDistributionMean()
        {
            // Setup
            double    testValue             = new Random(21).NextDouble();
            const int numberOfDecimalPlaces = 2;

            var mocks        = new MockRepository();
            var distribution = mocks.Stub <IDistribution>();

            distribution.Mean = new RoundedDouble(numberOfDecimalPlaces);
            mocks.ReplayAll();

            var designVariable = new DeterministicDesignVariable <IDistribution>(distribution, testValue);

            // Call
            RoundedDouble designValue = designVariable.GetDesignValue();

            // Assert
            Assert.AreEqual(testValue, designValue.Value, designValue.GetAccuracy());
            Assert.AreEqual(numberOfDecimalPlaces, designValue.NumberOfDecimalPlaces);
            mocks.VerifyAll();
        }