public void Read_ValidConfigurationWithPartialCalculation_ReturnExpectedReadCalculation()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationPartialCalculation.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

            Assert.IsNotNull(configuration);
            Assert.AreEqual("Partial calculation 2", configuration.Name);
            Assert.IsNull(configuration.HydraulicBoundaryLocationName);
            Assert.AreEqual("id_of_dikeprofile", configuration.DikeProfileId);
            Assert.IsNull(configuration.Orientation);
            Assert.AreEqual(-1.2, configuration.DikeHeight);
            Assert.AreEqual(false, configuration.WaveReduction.UseBreakWater);
            Assert.IsNull(configuration.WaveReduction.BreakWaterType);
            Assert.AreEqual(3.4, configuration.WaveReduction.BreakWaterHeight);
            Assert.IsNull(configuration.WaveReduction.UseForeshoreProfile);
            Assert.IsNull(configuration.CriticalFlowRate);
            Assert.IsTrue(configuration.ShouldOvertoppingOutputIllustrationPointsBeCalculated);
            Assert.IsNull(configuration.ShouldDikeHeightIllustrationPointsBeCalculated);
            Assert.IsNull(configuration.ShouldOvertoppingRateIllustrationPointsBeCalculated);
        }
        public void Read_ValidConfigurationWithCalculationContainingInfinities_ReturnExpectedReadCalculation()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationCalculationContainingInfinities.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

            Assert.IsNotNull(configuration);

            Assert.IsNotNull(configuration.Orientation);
            Assert.IsNotNull(configuration.DikeHeight);
            Assert.IsNotNull(configuration.WaveReduction.BreakWaterHeight);
            Assert.IsNotNull(configuration.CriticalFlowRate.Mean);
            Assert.IsNotNull(configuration.CriticalFlowRate.StandardDeviation);

            Assert.IsTrue(double.IsPositiveInfinity(configuration.Orientation.Value));
            Assert.IsTrue(double.IsNegativeInfinity(configuration.DikeHeight.Value));
            Assert.IsTrue(double.IsNegativeInfinity(configuration.WaveReduction.BreakWaterHeight.Value));
            Assert.IsTrue(double.IsPositiveInfinity(configuration.CriticalFlowRate.Mean.Value));
            Assert.IsTrue(double.IsPositiveInfinity(configuration.CriticalFlowRate.StandardDeviation.Value));
        }
        public void Constructor_ValidConfiguration_ExpectedValues()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationEmptyCalculation.xml");

            // Call
            var reader = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

            // Assert
            Assert.IsInstanceOf <CalculationConfigurationReader <GrassCoverErosionInwardsCalculationConfiguration> >(reader);
        }
        public void Read_ValidPreviousVersionConfigurationWithFullCalculation_ReturnExpectedReadCalculation(string fileName)
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, $"{fileName}.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

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

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

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

            Assert.IsNull(configuration.Scenario.Contribution);
            Assert.IsNull(configuration.Scenario.IsRelevant);
        }
        public void Read_ValidConfigurationWithCalculationContainingEmptyStochasts_ReturnExpectedReadCalculation()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationCalculationContainingEmptyStochasts.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

            Assert.IsNotNull(configuration);
            Assert.IsNull(configuration.CriticalFlowRate);
        }
        public void Read_ValidConfigurationWithMissingStochastStandardDeviation_ExpectedValues()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationCriticalFlowRateMissingStandardDeviation.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

            Assert.IsNotNull(configuration);
            Assert.AreEqual(1.1, configuration.CriticalFlowRate.Mean);
            Assert.IsNull(configuration.CriticalFlowRate.StandardDeviation);
        }
        public void Read_ValidConfigurationWithEmptyCalculation_ReturnExpectedReadCalculation()
        {
            // Setup
            string filePath = Path.Combine(testDirectoryPath, "validConfigurationEmptyCalculation.xml");
            var    reader   = new GrassCoverErosionInwardsCalculationConfigurationReader(filePath);

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

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

            Assert.IsNotNull(configuration);
            Assert.AreEqual("Calculation", configuration.Name);
            Assert.IsNull(configuration.HydraulicBoundaryLocationName);
            Assert.IsNull(configuration.DikeProfileId);
            Assert.IsNull(configuration.Orientation);
            Assert.IsNull(configuration.DikeHeight);
            Assert.IsNull(configuration.WaveReduction);
            Assert.IsNull(configuration.CriticalFlowRate);
            Assert.IsNull(configuration.Scenario);
        }