예제 #1
0
        public void Transform_SoilProfile2DWithInvalidPreconsolidationStress_ThrowsImportedDataException()
        {
            var random = new Random(21);
            var preconsolidationStress = new PreconsolidationStress
            {
                XCoordinate                  = double.NaN,
                ZCoordinate                  = random.NextDouble(),
                StressDistributionType       = SoilLayerConstants.LogNormalDistributionValue,
                StressMean                   = random.NextDouble(),
                StressCoefficientOfVariation = random.NextDouble(),
                StressShift                  = 0
            };

            var profile = new SoilProfile2D(1, "test", new[]
            {
                SoilLayer2DTestFactory.CreateSoilLayer2D()
            }, new[]
            {
                preconsolidationStress
            });

            // Call
            TestDelegate call = () => MacroStabilityInwardsSoilProfileTransformer.Transform(profile);

            // Assert
            var exception = Assert.Throws <ImportedDataTransformException>(call);

            Exception innerException = exception.InnerException;

            Assert.IsInstanceOf <ImportedDataTransformException>(innerException);
            string expectedMessage = CreateExpectedErrorMessage(profile.Name, innerException.Message);

            Assert.AreEqual(expectedMessage, exception.Message);
        }
예제 #2
0
        public void Transform_SoilProfile2DWithPreconsolidationStresses_ReturnMacroStabilityInwardsSoilProfile2DWithStresses()
        {
            // Setup
            var random = new Random(21);
            var preconsolidationStress = new PreconsolidationStress
            {
                XCoordinate                  = random.NextDouble(),
                ZCoordinate                  = random.NextDouble(),
                StressDistributionType       = SoilLayerConstants.LogNormalDistributionValue,
                StressMean                   = random.NextDouble(),
                StressCoefficientOfVariation = random.NextDouble(),
                StressShift                  = 0
            };

            var profile = new SoilProfile2D(1, "test", new[]
            {
                SoilLayer2DTestFactory.CreateSoilLayer2D()
            }, new[]
            {
                preconsolidationStress
            });

            // Call
            var transformedProfile = (MacroStabilityInwardsSoilProfile2D)MacroStabilityInwardsSoilProfileTransformer.Transform(profile);

            // Assert
            AssertPreconsolidationStress(preconsolidationStress, transformedProfile.PreconsolidationStresses.Single());
        }
예제 #3
0
        public void Transform_SoilProfileNull_ThrowsArgumentNullException()
        {
            // Call
            TestDelegate test = () => MacroStabilityInwardsSoilProfileTransformer.Transform(null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(test);

            Assert.AreEqual("soilProfile", exception.ParamName);
        }
예제 #4
0
        public void Transform_InvalidSoilProfile2D_ThrowsImportedDataTransformException()
        {
            // Setup
            var profile = new SoilProfile2D(1, "test", Enumerable.Empty <SoilLayer2D>(), Enumerable.Empty <PreconsolidationStress>());

            // Call
            TestDelegate call = () => MacroStabilityInwardsSoilProfileTransformer.Transform(profile);

            // Assert
            var exception = Assert.Throws <ImportedDataTransformException>(call);

            Exception innerException  = exception.InnerException;
            string    expectedMessage = CreateExpectedErrorMessage(profile.Name, innerException.Message);

            Assert.AreEqual(expectedMessage, exception.Message);
        }
예제 #5
0
        public void Transform_ValidSoilProfile1D_ReturnMacroStabilityInwardsSoilProfile1D()
        {
            // Setup
            var profile = new SoilProfile1D(1, "test", 3, new[]
            {
                SoilLayer1DTestFactory.CreateSoilLayer1DWithValidAquifer()
            });

            // Call
            var transformedProfile = (MacroStabilityInwardsSoilProfile1D)MacroStabilityInwardsSoilProfileTransformer.Transform(profile);

            // Assert
            Assert.AreEqual(profile.Name, transformedProfile.Name);
            Assert.AreEqual(profile.Bottom, transformedProfile.Bottom);
            Assert.AreEqual(profile.Layers.Count(), transformedProfile.Layers.Count());
            CollectionAssert.AllItemsAreInstancesOfType(transformedProfile.Layers, typeof(MacroStabilityInwardsSoilLayer1D));
        }
예제 #6
0
        public void Transform_ValidSoilProfile2D_ReturnMacroStabilityInwardsSoilProfile2D()
        {
            // Setup
            var profile = new SoilProfile2D(1, "test", new[]
            {
                SoilLayer2DTestFactory.CreateSoilLayer2D()
            }, Enumerable.Empty <PreconsolidationStress>());

            // Call
            var transformedProfile = (MacroStabilityInwardsSoilProfile2D)MacroStabilityInwardsSoilProfileTransformer.Transform(profile);

            // Assert
            Assert.AreEqual(profile.Name, transformedProfile.Name);
            Assert.AreEqual(profile.Layers.Count(), transformedProfile.Layers.Count());
            CollectionAssert.AllItemsAreInstancesOfType(transformedProfile.Layers, typeof(MacroStabilityInwardsSoilLayer2D));
            CollectionAssert.IsEmpty(transformedProfile.PreconsolidationStresses);
        }
예제 #7
0
        public void Transform_InvalidSoilProfile_ThrowsImportedDataTransformException()
        {
            // Setup
            var mocks       = new MockRepository();
            var soilProfile = mocks.Stub <ISoilProfile>();

            mocks.ReplayAll();

            // Call
            TestDelegate test = () => MacroStabilityInwardsSoilProfileTransformer.Transform(soilProfile);

            // Assert
            var    exception = Assert.Throws <ImportedDataTransformException>(test);
            string message   = $"De ondergrondschematisatie van het type '{soilProfile.GetType().Name}' is niet ondersteund. " +
                               "Alleen ondergrondschematisaties van het type 'SoilProfile1D' of 'SoilProfile2D' zijn ondersteund.";

            Assert.AreEqual(message, exception.Message);
            mocks.VerifyAll();
        }