public void Read_ValidConfigurationWithEmptyScenario_ExpectedValues()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Read_ValidConfigurationWithEmptyScenario_ExpectedValues));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationEmptyScenario.xml"), filePath);

                var reader = new PipingCalculationConfigurationReader(filePath);

                try
                {
                    // Call
                    IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                    // Assert
                    var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                    Assert.IsNull(configuration.Scenario.Contribution);
                    Assert.IsNull(configuration.Scenario.IsRelevant);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }
            public void Read_ValidConfigurationWithEmptyStochast_ExpectedValues()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Read_ValidConfigurationWithEmptyStochast_ExpectedValues));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationEmptyStochasts.xml"), filePath);

                var reader = new PipingCalculationConfigurationReader(filePath);

                try
                {
                    // Call
                    IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                    // Assert
                    var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                    Assert.IsNull(configuration.PhreaticLevelExit.Mean);
                    Assert.IsNull(configuration.PhreaticLevelExit.StandardDeviation);
                    Assert.IsNull(configuration.DampingFactorExit.Mean);
                    Assert.IsNull(configuration.DampingFactorExit.StandardDeviation);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }
            public void Read_ValidConfigurationWithPartialCalculation_ReturnExpectedReadPipingCalculation()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Read_ValidConfigurationWithPartialCalculation_ReturnExpectedReadPipingCalculation));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationPartialCalculation.xml"), filePath);

                var reader = new PipingCalculationConfigurationReader(filePath);

                try
                {
                    // Call
                    IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                    // Assert
                    var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                    Assert.AreEqual("Calculation", configuration.Name);
                    Assert.AreEqual(CalculationConfigurationType, configuration.CalculationType);
                    Assert.IsNull(configuration.AssessmentLevel);
                    Assert.IsNull(configuration.HydraulicBoundaryLocationName);
                    Assert.IsNull(configuration.SurfaceLineName);
                    Assert.IsNull(configuration.EntryPointL);
                    Assert.AreEqual(2.2, configuration.ExitPointL);
                    Assert.IsNull(configuration.StochasticSoilModelName);
                    Assert.AreEqual("Ondergrondschematisatie", configuration.StochasticSoilProfileName);
                    Assert.AreEqual(3.3, configuration.PhreaticLevelExit.Mean);
                    Assert.AreEqual(4.4, configuration.PhreaticLevelExit.StandardDeviation);
                    Assert.IsNull(configuration.DampingFactorExit);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }
            public void Read_ValidConfigurationWithCalculationContainingNaNs_ReturnExpectedReadPipingCalculation()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Read_ValidConfigurationWithCalculationContainingNaNs_ReturnExpectedReadPipingCalculation));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationCalculationContainingNaNs.xml"), filePath);

                var reader = new PipingCalculationConfigurationReader(filePath);

                try
                {
                    // Call
                    IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                    // Assert
                    var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                    Assert.IsNaN(configuration.EntryPointL);
                    Assert.IsNaN(configuration.ExitPointL);
                    Assert.IsNaN(configuration.PhreaticLevelExit.Mean);
                    Assert.IsNaN(configuration.PhreaticLevelExit.StandardDeviation);
                    Assert.IsNaN(configuration.DampingFactorExit.Mean);
                    Assert.IsNaN(configuration.DampingFactorExit.StandardDeviation);
                    Assert.IsNaN(configuration.Scenario.Contribution);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }
            public void Read_ValidConfigurationWithFullCalculation_ReturnExpectedReadPipingCalculation(string fileName)
            {
                // Setup
                string filePath = Path.Combine(testDirectoryPath, $"{fileName}.xml");
                var    reader   = new PipingCalculationConfigurationReader(filePath);

                // Call
                IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                // Assert
                var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                AssertConfiguration(configuration);
            }
            public void Read_ValidConfigurationWithSemiProbabilisticCalculationContainingNaNs_ReturnExpectedReadPipingCalculation()
            {
                // Setup
                string filePath = Path.Combine(testDirectoryPath, "validConfigurationSemiProbabilisticCalculationContainingNaNs.xml");
                var    reader   = new PipingCalculationConfigurationReader(filePath);

                // Call
                IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                // Assert
                var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                Assert.IsNaN(configuration.AssessmentLevel);
            }
            public void Read_ValidPreviousVersionConfigurationWithScenarioContribution_ReturnExpectedReadPipingCalculation(
                string fileName, double expectedScenarioContribution)
            {
                // Setup
                string filePath = Path.Combine(testDirectoryPath, $"{fileName}.xml");
                var    reader   = new PipingCalculationConfigurationReader(filePath);

                // Call
                IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                // Assert
                var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                Assert.AreEqual(expectedScenarioContribution, configuration.Scenario.Contribution);
            }
            public void Constructor_ValidConfiguration_ExpectedValues()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Constructor_ValidConfiguration_ExpectedValues));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationEmptyCalculation.xml"), filePath);

                try
                {
                    // Call
                    var reader = new PipingCalculationConfigurationReader(filePath);

                    // Assert
                    Assert.IsInstanceOf <CalculationConfigurationReader <PipingCalculationConfiguration> >(reader);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }
            public void Read_ValidConfigurationWithEmptyCalculation_ReturnExpectedReadPipingCalculation()
            {
                // Setup
                string filePath = TestHelper.GetScratchPadPath(nameof(Read_ValidConfigurationWithEmptyCalculation_ReturnExpectedReadPipingCalculation));

                SetCalculationType(Path.Combine(testDirectoryPath, "validConfigurationEmptyCalculation.xml"), filePath);

                var reader = new PipingCalculationConfigurationReader(filePath);

                try
                {
                    // Call
                    IEnumerable <IConfigurationItem> readConfigurationItems = reader.Read().ToArray();

                    // Assert
                    var configuration = (PipingCalculationConfiguration)readConfigurationItems.Single();

                    Assert.AreEqual("Calculation", configuration.Name);
                    Assert.AreEqual(CalculationConfigurationType, configuration.CalculationType);
                    Assert.IsNull(configuration.AssessmentLevel);
                    Assert.IsNull(configuration.HydraulicBoundaryLocationName);
                    Assert.IsNull(configuration.SurfaceLineName);
                    Assert.IsNull(configuration.EntryPointL);
                    Assert.IsNull(configuration.ExitPointL);
                    Assert.IsNull(configuration.StochasticSoilModelName);
                    Assert.IsNull(configuration.StochasticSoilProfileName);
                    Assert.IsNull(configuration.PhreaticLevelExit);
                    Assert.IsNull(configuration.DampingFactorExit);
                    Assert.IsNull(configuration.Scenario);
                    Assert.IsNull(configuration.ShouldProfileSpecificIllustrationPointsBeCalculated);
                    Assert.IsNull(configuration.ShouldSectionSpecificIllustrationPointsBeCalculated);
                }
                finally
                {
                    File.Delete(filePath);
                }
            }