/// <summary> /// Obtains the Hydra-Ring settings based on the location and the failure mechanism obtained from the <paramref name="calculationInput"/> /// and sets these value on the <paramref name="calculationInput"/>. /// </summary> /// <param name="calculationInput">The calculation input for which the settings are updated.</param> /// <param name="hydraulicBoundaryDatabaseFilePath">The path to the hydraulic boundary database file.</param> /// <param name="usePreprocessor">Indicator whether to use the preprocessor in the calculation.</param> /// <exception cref="ArgumentException">Thrown when the <paramref name="hydraulicBoundaryDatabaseFilePath"/> /// contains invalid characters.</exception> /// <exception cref="CriticalFileReadException">Thrown when: /// <list type="bullet"> /// <item>No settings database file could be found at the location of <paramref name="hydraulicBoundaryDatabaseFilePath"/> /// with the same name.</item> /// <item>Unable to open settings database file.</item> /// <item>Unable to read required data from database file.</item> /// </list> /// </exception> public static void AssignSettingsFromDatabase(HydraRingCalculationInput calculationInput, string hydraulicBoundaryDatabaseFilePath, bool usePreprocessor) { IOUtils.ValidateFilePath(hydraulicBoundaryDatabaseFilePath); long locationId = calculationInput.HydraulicBoundaryLocationId; string settingsDatabaseFileName = HydraulicBoundaryDatabaseHelper.GetHydraulicBoundarySettingsDatabase(hydraulicBoundaryDatabaseFilePath); using (var preprocessorSettingsProvider = new PreprocessorSettingsProvider(settingsDatabaseFileName)) { calculationInput.PreprocessorSetting = preprocessorSettingsProvider.GetPreprocessorSetting(locationId, usePreprocessor); } using (var designTablesSettingsProviders = new DesignTablesSettingsProvider(settingsDatabaseFileName)) { calculationInput.DesignTablesSetting = designTablesSettingsProviders.GetDesignTablesSetting( locationId, calculationInput.FailureMechanismType); } using (var numericsSettingsProvider = new NumericsSettingsProvider(settingsDatabaseFileName)) { calculationInput.NumericsSettings = numericsSettingsProvider.GetNumericsSettings( locationId, calculationInput.FailureMechanismType); } using (var timeIntegrationSettingsProvider = new TimeIntegrationSettingsProvider(settingsDatabaseFileName)) { calculationInput.TimeIntegrationSetting = timeIntegrationSettingsProvider.GetTimeIntegrationSetting( locationId, calculationInput.FailureMechanismType); } }
public void Constructor_ValidPath_ReturnsNewInstance() { // Call using (var provider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Assert Assert.IsInstanceOf <IDisposable>(provider); } }
public void GetNumericsSettingForPreprocessor_LocationIdUnknown_ReturnsExpectedDefaultNumericsSetting() { // Setup using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Call NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700139); // Assert var expected = new NumericsSetting(11, 4, 150, 0.15, 0.005, 0.005, 0.005, 2, 10000, 40000, 0.1, -6.0, 6.0, 25); AssertNumericsSetting(expected, numericsSetting); } }
public void GetNumericsSettingForPreprocessor_PreprocessorSubMechanismIdUnknownDefaultSubMechanismIdKnown_ReturnExpectedNumericsSetting() { // Setup using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Call NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700138); // Assert NumericsSetting expected = GetExpectedNumericsSetting(); AssertNumericsSetting(expected, numericsSetting); } }
public void GetNumericsSettingForPreprocessor_PreprocessorSubMechanismIdKnown_ReturnExpectedNumericsSetting() { // Setup using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Call NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700131); // Assert var expected = new NumericsSetting(2, 3, 20, 0.2, 0.1, 0.1, 0.1, 3, 4, 15000, 90000, 0.2, -4, 5); AssertNumericsSetting(expected, numericsSetting); } }
public void GetNumericsSettings_KnownLocationId_ReturnsExpectedNumericsSetting() { // Setup using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Call Dictionary <int, NumericsSetting> numericsSettings = numericsSettingsProvider.GetNumericsSettings(700132, HydraRingFailureMechanismType.AssessmentLevel); // Assert Assert.IsTrue(numericsSettings.ContainsKey(1)); NumericsSetting expected = GetExpectedNumericsSetting(); AssertNumericsSetting(expected, numericsSettings[1]); } }
public void GetNumericsSettings_UnknownLocationId_ReturnsExpectedDefaultNumericsSetting( HydraRingFailureMechanismType failureMechanismType, int subMechanismId, int expectedCalculationTechniqueId, int expectedFormStartMethod, int expectedDsMinNumberOfIterations, int expectedDsMaxNumberOfIterations) { // Setup using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath)) { // Call Dictionary <int, NumericsSetting> numericsSettings = numericsSettingsProvider.GetNumericsSettings(-1, failureMechanismType); // Assert Assert.IsTrue(numericsSettings.ContainsKey(subMechanismId)); var expected = new NumericsSetting(expectedCalculationTechniqueId, expectedFormStartMethod, 150, 0.15, 0.005, 0.005, 0.005, 2, expectedDsMinNumberOfIterations, expectedDsMaxNumberOfIterations, 0.1, -6.0, 6.0, 25); AssertNumericsSetting(expected, numericsSettings[subMechanismId]); } }