diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 4bdb2c4..42a5900 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -3230,62 +3230,253 @@ class TestApi: o = get_option(p) assert o['UNITS'] == OPTION_UNITS_GPM + assert o['PRESSURE'] == OPTION_PRESSURE_PSI assert o['HEADLOSS'] == OPTION_HEADLOSS_HW + assert o['QUALITY'] == OPTION_QUALITY_NONE + assert o['UNBALANCED'] == OPTION_UNBALANCED_STOP + assert o['PATTERN'] == '1' + assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA + assert o['DEMAND MULTIPLIER'] == '1.0' + assert o['EMITTER EXPONENT'] == '0.5' assert o['VISCOSITY'] == '1.0' + assert o['DIFFUSIVITY'] == '1.0' assert o['SPECIFIC GRAVITY'] == '1.0' assert o['TRIALS'] == '40' assert o['ACCURACY'] == '0.001' - assert o['FLOWCHANGE'] == '0' - assert o['HEADERROR'] == '0' - assert o['CHECKFREQ'] == '2' - assert o['MAXCHECK'] == '10' - assert o['DAMPLIMIT'] == '0' - assert o['UNBALANCED'] == OPTION_UNBALANCED_STOP - assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA - assert o['MINIMUM PRESSURE'] == '0' + assert o['HEADERROR'] == '0.0' + assert o['FLOWCHANGE'] == '0.0' + assert o['MINIMUM PRESSURE'] == '0.0' assert o['REQUIRED PRESSURE'] == '0.1' assert o['PRESSURE EXPONENT'] == '0.5' - assert o['PATTERN'] == '1' - assert o['DEMAND MULTIPLIER'] == '1.0' - assert o['EMITTER EXPONENT'] == '0.5' - assert o['QUALITY'] == OPTION_QUALITY_NONE - assert o['DIFFUSIVITY'] == '1.0' assert o['TOLERANCE'] == '0.01' - assert o['PRESSURE'] == OPTION_PRESSURE_PSI assert o['HTOL'] == '0.0005' assert o['QTOL'] == '0.0001' assert o['RQTOL'] == '0.0000001' + assert o['CHECKFREQ'] == '2' + assert o['MAXCHECK'] == '10' + assert o['DAMPLIMIT'] == '0' + + o3 = get_option_v3(p) + assert o3['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_GPM + assert o3['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_PSI + assert o3['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_HW + assert o3['SPECIFIC_GRAVITY'] == '1.0' + assert o3['SPECIFIC_VISCOSITY'] == '1.0' + assert o3['MAXIMUM_TRIALS'] == '40' + assert o3['HEAD_TOLERANCE'] == '0.0005' + assert o3['FLOW_TOLERANCE'] == '0.0001' + assert o3['FLOW_CHANGE_LIMIT'] == '0.0' + assert o3['RELATIVE_ACCURACY'] == '0.001' + assert o3['TIME_WEIGHT'] == '0.0' + assert o3['STEP_SIZING'] == OPTION_V3_STEP_SIZING_FULL + assert o3['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_STOP + assert o3['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED + assert o3['DEMAND_PATTERN'] == '1' + assert o3['DEMAND_MULTIPLIER'] == '1.0' + assert o3['MINIMUM_PRESSURE'] == '0.0' + assert o3['SERVICE_PRESSURE'] == '0.1' + assert o3['PRESSURE_EXPONENT'] == '0.5' + assert o3['LEAKAGE_MODEL'] == OPTION_V3_LEAKAGE_MODEL_NONE + assert o3['LEAKAGE_COEFF1'] == '0.0' + assert o3['LEAKAGE_COEFF2'] == '0.0' + assert o3['EMITTER_EXPONENT'] == '0.5' + assert o3['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_NONE + assert o3['QUALITY_NAME'] == OPTION_V3_QUALITY_MODEL_CHEMICAL + assert o3['QUALITY_UNITS'] == OPTION_V3_QUALITY_UNITS_MGL + assert o3['TRACE_NODE'] == '' + assert o3['SPECIFIC_DIFFUSIVITY'] == '1.0' + assert o3['QUALITY_TOLERANCE'] == '0.01' o['UNITS'] = OPTION_UNITS_LPS + o['PRESSURE'] = OPTION_PRESSURE_KPA + o['HEADLOSS'] = OPTION_HEADLOSS_DW + o['QUALITY'] = f'{OPTION_QUALITY_TRACE} 1' + o['UNBALANCED'] = OPTION_UNBALANCED_CONTINUE + o['PATTERN'] = '2' + o['DEMAND MODEL'] = OPTION_DEMAND_MODEL_PDA + o['DEMAND MULTIPLIER'] = '2.0' + o['EMITTER EXPONENT'] = '1.5' + o['VISCOSITY'] = '2.0' + o['DIFFUSIVITY'] = '2.0' + o['SPECIFIC GRAVITY'] = '2.0' + o['TRIALS'] = '50' + o['ACCURACY'] = '0.0001' + o['HEADERROR'] = '0.01' + o['FLOWCHANGE'] = '0.01' + o['MINIMUM PRESSURE'] = '0.01' + o['REQUIRED PRESSURE'] = '0.01' + o['PRESSURE EXPONENT'] = '0.05' + o['TOLERANCE'] = '0.001' + o['HTOL'] = '0.005' + o['QTOL'] = '0.001' + o['RQTOL'] = '0.000001' + o['CHECKFREQ'] = '1' + o['MAXCHECK'] = '15' + o['DAMPLIMIT'] = '1' + set_option(p, ChangeSet(o)) o = get_option(p) assert o['UNITS'] == OPTION_UNITS_LPS + assert o['PRESSURE'] == OPTION_PRESSURE_KPA + assert o['HEADLOSS'] == OPTION_HEADLOSS_DW + assert o['QUALITY'] == f'{OPTION_QUALITY_TRACE} 1' + assert o['UNBALANCED'] == OPTION_UNBALANCED_CONTINUE + assert o['PATTERN'] == '2' + assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA + assert o['DEMAND MULTIPLIER'] == '2.0' + assert o['EMITTER EXPONENT'] == '1.5' + assert o['VISCOSITY'] == '2.0' + assert o['DIFFUSIVITY'] == '2.0' + assert o['SPECIFIC GRAVITY'] == '2.0' + assert o['TRIALS'] == '50' + assert o['ACCURACY'] == '0.0001' + assert o['HEADERROR'] == '0.01' + assert o['FLOWCHANGE'] == '0.01' + assert o['MINIMUM PRESSURE'] == '0.01' + assert o['REQUIRED PRESSURE'] == '0.01' + assert o['PRESSURE EXPONENT'] == '0.05' + assert o['TOLERANCE'] == '0.001' + assert o['HTOL'] == '0.005' + assert o['QTOL'] == '0.001' + assert o['RQTOL'] == '0.000001' + assert o['CHECKFREQ'] == '1' + assert o['MAXCHECK'] == '15' + assert o['DAMPLIMIT'] == '1' + + o3 = get_option_v3(p) + assert o3['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_LPS + assert o3['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_KPA + assert o3['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_DW + assert o3['SPECIFIC_GRAVITY'] == '2.0' + assert o3['SPECIFIC_VISCOSITY'] == '2.0' + assert o3['MAXIMUM_TRIALS'] == '50' + assert o3['HEAD_TOLERANCE'] == '0.005' + assert o3['FLOW_TOLERANCE'] == '0.001' + assert o3['FLOW_CHANGE_LIMIT'] == '0.01' + assert o3['RELATIVE_ACCURACY'] == '0.0001' + assert o3['TIME_WEIGHT'] == '0.0' + assert o3['STEP_SIZING'] == OPTION_V3_STEP_SIZING_FULL + assert o3['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_CONTINUE + assert o3['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_POWER + assert o3['DEMAND_PATTERN'] == '2' + assert o3['DEMAND_MULTIPLIER'] == '2.0' + assert o3['MINIMUM_PRESSURE'] == '0.01' + assert o3['SERVICE_PRESSURE'] == '0.01' + assert o3['PRESSURE_EXPONENT'] == '0.05' + assert o3['LEAKAGE_MODEL'] == OPTION_V3_LEAKAGE_MODEL_NONE + assert o3['LEAKAGE_COEFF1'] == '0.0' + assert o3['LEAKAGE_COEFF2'] == '0.0' + assert o3['EMITTER_EXPONENT'] == '1.5' + assert o3['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE + assert o3['QUALITY_NAME'] == OPTION_V3_QUALITY_MODEL_CHEMICAL + assert o3['QUALITY_UNITS'] == OPTION_V3_QUALITY_UNITS_MGL + assert o3['TRACE_NODE'] == '1' + assert o3['SPECIFIC_DIFFUSIVITY'] == '2.0' + assert o3['QUALITY_TOLERANCE'] == '0.001' + + o3['FLOW_UNITS'] = OPTION_V3_FLOW_UNITS_GPM + o3['PRESSURE_UNITS'] = OPTION_V3_PRESSURE_UNITS_PSI + o3['HEADLOSS_MODEL'] = OPTION_V3_HEADLOSS_MODEL_HW + o3['SPECIFIC_GRAVITY'] = '1.0' + o3['SPECIFIC_VISCOSITY'] = '1.0' + o3['MAXIMUM_TRIALS'] = '40' + o3['HEAD_TOLERANCE'] = '0.0005' + o3['FLOW_TOLERANCE'] = '0.0001' + o3['FLOW_CHANGE_LIMIT'] = '0.0' + o3['RELATIVE_ACCURACY'] = '0.001' + o3['TIME_WEIGHT'] = '0.0' + o3['STEP_SIZING'] = OPTION_V3_STEP_SIZING_RELAXATION + o3['IF_UNBALANCED'] = OPTION_V3_IF_UNBALANCED_STOP + o3['DEMAND_MODEL'] = OPTION_V3_DEMAND_MODEL_FIXED + o3['DEMAND_PATTERN'] = '1' + o3['DEMAND_MULTIPLIER'] = '1.0' + o3['MINIMUM_PRESSURE'] = '0.0' + o3['SERVICE_PRESSURE'] = '0.1' + o3['PRESSURE_EXPONENT'] = '0.5' + o3['LEAKAGE_MODEL'] = OPTION_V3_LEAKAGE_MODEL_POWER + o3['LEAKAGE_COEFF1'] = '1.0' + o3['LEAKAGE_COEFF2'] = '2.0' + o3['EMITTER_EXPONENT'] = '0.5' + o3['QUALITY_MODEL'] = OPTION_V3_QUALITY_MODEL_TRACE + o3['QUALITY_NAME'] = OPTION_V3_QUALITY_MODEL_NONE + o3['QUALITY_UNITS'] = OPTION_V3_QUALITY_UNITS_HRS + o3['TRACE_NODE'] = '2' + o3['SPECIFIC_DIFFUSIVITY'] = '1.0' + o3['QUALITY_TOLERANCE'] = '0.01' + + set_option_v3(p, ChangeSet(o3)) + + o3 = get_option_v3(p) + assert o3['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_GPM + assert o3['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_PSI + assert o3['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_HW + assert o3['SPECIFIC_GRAVITY'] == '1.0' + assert o3['SPECIFIC_VISCOSITY'] == '1.0' + assert o3['MAXIMUM_TRIALS'] == '40' + assert o3['HEAD_TOLERANCE'] == '0.0005' + assert o3['FLOW_TOLERANCE'] == '0.0001' + assert o3['FLOW_CHANGE_LIMIT'] == '0.0' + assert o3['RELATIVE_ACCURACY'] == '0.001' + assert o3['TIME_WEIGHT'] == '0.0' + assert o3['STEP_SIZING'] == OPTION_V3_STEP_SIZING_RELAXATION + assert o3['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_STOP + assert o3['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED + assert o3['DEMAND_PATTERN'] == '1' + assert o3['DEMAND_MULTIPLIER'] == '1.0' + assert o3['MINIMUM_PRESSURE'] == '0.0' + assert o3['SERVICE_PRESSURE'] == '0.1' + assert o3['PRESSURE_EXPONENT'] == '0.5' + assert o3['LEAKAGE_MODEL'] == OPTION_V3_LEAKAGE_MODEL_POWER + assert o3['LEAKAGE_COEFF1'] == '1.0' + assert o3['LEAKAGE_COEFF2'] == '2.0' + assert o3['EMITTER_EXPONENT'] == '0.5' + assert o3['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE + assert o3['QUALITY_NAME'] == OPTION_V3_QUALITY_MODEL_NONE + assert o3['QUALITY_UNITS'] == OPTION_V3_QUALITY_UNITS_HRS + assert o3['TRACE_NODE'] == '2' + assert o3['SPECIFIC_DIFFUSIVITY'] == '1.0' + assert o3['QUALITY_TOLERANCE'] == '0.01' + + o = get_option(p) + assert o['UNITS'] == OPTION_UNITS_GPM + assert o['PRESSURE'] == OPTION_PRESSURE_PSI assert o['HEADLOSS'] == OPTION_HEADLOSS_HW + assert o['QUALITY'] == f'{OPTION_QUALITY_TRACE} 2' + assert o['UNBALANCED'] == OPTION_UNBALANCED_STOP + assert o['PATTERN'] == '1' + assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA + assert o['DEMAND MULTIPLIER'] == '1.0' + assert o['EMITTER EXPONENT'] == '0.5' assert o['VISCOSITY'] == '1.0' + assert o['DIFFUSIVITY'] == '1.0' assert o['SPECIFIC GRAVITY'] == '1.0' assert o['TRIALS'] == '40' assert o['ACCURACY'] == '0.001' - assert o['FLOWCHANGE'] == '0' - assert o['HEADERROR'] == '0' - assert o['CHECKFREQ'] == '2' - assert o['MAXCHECK'] == '10' - assert o['DAMPLIMIT'] == '0' - assert o['UNBALANCED'] == OPTION_UNBALANCED_STOP - assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA - assert o['MINIMUM PRESSURE'] == '0' + assert o['HEADERROR'] == '0.01' + assert o['FLOWCHANGE'] == '0.0' + assert o['MINIMUM PRESSURE'] == '0.0' assert o['REQUIRED PRESSURE'] == '0.1' assert o['PRESSURE EXPONENT'] == '0.5' - assert o['PATTERN'] == '1' - assert o['DEMAND MULTIPLIER'] == '1.0' - assert o['EMITTER EXPONENT'] == '0.5' - assert o['QUALITY'] == OPTION_QUALITY_NONE - assert o['DIFFUSIVITY'] == '1.0' assert o['TOLERANCE'] == '0.01' - assert o['PRESSURE'] == OPTION_PRESSURE_PSI assert o['HTOL'] == '0.0005' assert o['QTOL'] == '0.0001' - assert o['RQTOL'] == '0.0000001' + assert o['RQTOL'] == '0.000001' + assert o['CHECKFREQ'] == '1' + assert o['MAXCHECK'] == '15' + assert o['DAMPLIMIT'] == '1' + + o3['DEMAND_MODEL'] = OPTION_V3_DEMAND_MODEL_CONSTRAINED + set_option_v3(p, ChangeSet(o3)) + assert o3['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_CONSTRAINED + o = get_option(p) + assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA + + o3['DEMAND_MODEL'] = OPTION_V3_DEMAND_MODEL_LOGISTIC + set_option_v3(p, ChangeSet(o3)) + assert o3['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_LOGISTIC + o = get_option(p) + assert o['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA self.leave(p)