Update test_option_op case

This commit is contained in:
WQY\qiong
2023-03-09 00:28:28 +08:00
parent e06506d5dd
commit 41f7978788

View File

@@ -3487,122 +3487,481 @@ class TestApi:
o = get_option(p) o = get_option(p)
assert o['UNITS'] == OPTION_UNITS_GPM assert o['UNITS'] == OPTION_UNITS_GPM
assert o['PRESSURE'] == OPTION_PRESSURE_PSI
assert o['HEADLOSS'] == OPTION_HEADLOSS_HW 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['VISCOSITY'] == '1.0'
assert o['DIFFUSIVITY'] == '1.0'
assert o['SPECIFIC GRAVITY'] == '1.0' assert o['SPECIFIC GRAVITY'] == '1.0'
assert o['TRIALS'] == '40' assert o['TRIALS'] == '40'
assert o['ACCURACY'] == '0.001' assert o['ACCURACY'] == '0.001'
assert o['FLOWCHANGE'] == '0' assert o['HEADERROR'] == '0.0'
assert o['HEADERROR'] == '0' assert o['FLOWCHANGE'] == '0.0'
assert o['CHECKFREQ'] == '2' assert o['MINIMUM PRESSURE'] == '0.0'
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['REQUIRED PRESSURE'] == '0.1' assert o['REQUIRED PRESSURE'] == '0.1'
assert o['PRESSURE EXPONENT'] == '0.5' 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['TOLERANCE'] == '0.01'
assert o['PRESSURE'] == OPTION_PRESSURE_PSI
assert o['HTOL'] == '0.0005' assert o['HTOL'] == '0.0005'
assert o['QTOL'] == '0.0001' assert o['QTOL'] == '0.0001'
assert o['RQTOL'] == '0.0000001' 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['UNITS'] = OPTION_UNITS_LPS
cs = set_option(p, ChangeSet(o)).operations[0] o['PRESSURE'] = OPTION_PRESSURE_KPA
assert cs['operation'] == API_UPDATE o['HEADLOSS'] = OPTION_HEADLOSS_DW
assert cs['type'] == 'option' o['QUALITY'] = f'{OPTION_QUALITY_TRACE} 1'
assert cs['UNITS'] == OPTION_UNITS_LPS o['UNBALANCED'] = OPTION_UNBALANCED_CONTINUE
assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW o['PATTERN'] = '2'
assert cs['VISCOSITY'] == '1.0' o['DEMAND MODEL'] = OPTION_DEMAND_MODEL_PDA
assert cs['SPECIFIC GRAVITY'] == '1.0' o['DEMAND MULTIPLIER'] = '2.0'
assert cs['TRIALS'] == '40' o['EMITTER EXPONENT'] = '1.5'
assert cs['ACCURACY'] == '0.001' o['VISCOSITY'] = '2.0'
assert cs['FLOWCHANGE'] == '0' o['DIFFUSIVITY'] = '2.0'
assert cs['HEADERROR'] == '0' o['SPECIFIC GRAVITY'] = '2.0'
assert cs['CHECKFREQ'] == '2' o['TRIALS'] = '50'
assert cs['MAXCHECK'] == '10' o['ACCURACY'] = '0.0001'
assert cs['DAMPLIMIT'] == '0' o['HEADERROR'] = '0.01'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP o['FLOWCHANGE'] = '0.01'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA o['MINIMUM PRESSURE'] = '0.01'
assert cs['MINIMUM PRESSURE'] == '0' o['REQUIRED PRESSURE'] = '0.01'
assert cs['REQUIRED PRESSURE'] == '0.1' o['PRESSURE EXPONENT'] = '0.05'
assert cs['PRESSURE EXPONENT'] == '0.5' o['TOLERANCE'] = '0.001'
assert cs['PATTERN'] == '1' o['HTOL'] = '0.005'
assert cs['DEMAND MULTIPLIER'] == '1.0' o['QTOL'] = '0.001'
assert cs['EMITTER EXPONENT'] == '0.5' o['RQTOL'] = '0.000001'
assert cs['QUALITY'] == OPTION_QUALITY_NONE o['CHECKFREQ'] = '1'
assert cs['DIFFUSIVITY'] == '1.0' o['MAXCHECK'] = '15'
assert cs['TOLERANCE'] == '0.01' o['DAMPLIMIT'] = '1'
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HTOL'] == '0.0005'
assert cs['QTOL'] == '0.0001'
assert cs['RQTOL'] == '0.0000001'
cs = execute_undo(p).operations[0] css = set_option(p, ChangeSet(o)).operations
assert cs['operation'] == API_UPDATE cs = css[0]
assert cs['type'] == 'option' assert cs['UNITS'] == OPTION_UNITS_LPS
assert cs['PRESSURE'] == OPTION_PRESSURE_KPA
assert cs['HEADLOSS'] == OPTION_HEADLOSS_DW
assert cs['QUALITY'] == f'{OPTION_QUALITY_TRACE} 1'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_CONTINUE
assert cs['PATTERN'] == '2'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
assert cs['DEMAND MULTIPLIER'] == '2.0'
assert cs['EMITTER EXPONENT'] == '1.5'
assert cs['VISCOSITY'] == '2.0'
assert cs['DIFFUSIVITY'] == '2.0'
assert cs['SPECIFIC GRAVITY'] == '2.0'
assert cs['TRIALS'] == '50'
assert cs['ACCURACY'] == '0.0001'
assert cs['HEADERROR'] == '0.01'
assert cs['FLOWCHANGE'] == '0.01'
assert cs['MINIMUM PRESSURE'] == '0.01'
assert cs['REQUIRED PRESSURE'] == '0.01'
assert cs['PRESSURE EXPONENT'] == '0.05'
assert cs['TOLERANCE'] == '0.001'
assert cs['HTOL'] == '0.005'
assert cs['QTOL'] == '0.001'
assert cs['RQTOL'] == '0.000001'
assert cs['CHECKFREQ'] == '1'
assert cs['MAXCHECK'] == '15'
assert cs['DAMPLIMIT'] == '1'
cs = css[1]
assert cs['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_LPS
assert cs['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_KPA
assert cs['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_DW
assert cs['SPECIFIC_GRAVITY'] == '2.0'
assert cs['SPECIFIC_VISCOSITY'] == '2.0'
assert cs['MAXIMUM_TRIALS'] == '50'
assert cs['HEAD_TOLERANCE'] == '0.005'
assert cs['FLOW_TOLERANCE'] == '0.001'
assert cs['FLOW_CHANGE_LIMIT'] == '0.01'
assert cs['RELATIVE_ACCURACY'] == '0.0001'
assert cs['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_CONTINUE
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_POWER
assert cs['DEMAND_PATTERN'] == '2'
assert cs['DEMAND_MULTIPLIER'] == '2.0'
assert cs['MINIMUM_PRESSURE'] == '0.01'
assert cs['SERVICE_PRESSURE'] == '0.01'
assert cs['PRESSURE_EXPONENT'] == '0.05'
assert cs['EMITTER_EXPONENT'] == '1.5'
assert cs['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE
assert cs['TRACE_NODE'] == '1'
assert cs['SPECIFIC_DIFFUSIVITY'] == '2.0'
assert cs['QUALITY_TOLERANCE'] == '0.001'
css = execute_undo(p).operations
cs = css[0]
assert cs['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_GPM
assert cs['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_PSI
assert cs['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_HW
assert cs['SPECIFIC_GRAVITY'] == '1.0'
assert cs['SPECIFIC_VISCOSITY'] == '1.0'
assert cs['MAXIMUM_TRIALS'] == '40'
assert cs['HEAD_TOLERANCE'] == '0.0005'
assert cs['FLOW_TOLERANCE'] == '0.0001'
assert cs['FLOW_CHANGE_LIMIT'] == '0.0'
assert cs['RELATIVE_ACCURACY'] == '0.001'
assert cs['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_STOP
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED
assert cs['DEMAND_PATTERN'] == '1'
assert cs['DEMAND_MULTIPLIER'] == '1.0'
assert cs['MINIMUM_PRESSURE'] == '0.0'
assert cs['SERVICE_PRESSURE'] == '0.1'
assert cs['PRESSURE_EXPONENT'] == '0.5'
assert cs['EMITTER_EXPONENT'] == '0.5'
assert cs['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_NONE
assert cs['TRACE_NODE'] == ''
assert cs['SPECIFIC_DIFFUSIVITY'] == '1.0'
assert cs['QUALITY_TOLERANCE'] == '0.01'
cs = css[1]
assert cs['UNITS'] == OPTION_UNITS_GPM assert cs['UNITS'] == OPTION_UNITS_GPM
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW
assert cs['QUALITY'] == OPTION_QUALITY_NONE
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP
assert cs['PATTERN'] == '1'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
assert cs['DEMAND MULTIPLIER'] == '1.0'
assert cs['EMITTER EXPONENT'] == '0.5'
assert cs['VISCOSITY'] == '1.0' assert cs['VISCOSITY'] == '1.0'
assert cs['DIFFUSIVITY'] == '1.0'
assert cs['SPECIFIC GRAVITY'] == '1.0' assert cs['SPECIFIC GRAVITY'] == '1.0'
assert cs['TRIALS'] == '40' assert cs['TRIALS'] == '40'
assert cs['ACCURACY'] == '0.001' assert cs['ACCURACY'] == '0.001'
assert cs['FLOWCHANGE'] == '0' assert cs['HEADERROR'] == '0.0'
assert cs['HEADERROR'] == '0' assert cs['FLOWCHANGE'] == '0.0'
assert cs['CHECKFREQ'] == '2' assert cs['MINIMUM PRESSURE'] == '0.0'
assert cs['MAXCHECK'] == '10'
assert cs['DAMPLIMIT'] == '0'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
assert cs['MINIMUM PRESSURE'] == '0'
assert cs['REQUIRED PRESSURE'] == '0.1' assert cs['REQUIRED PRESSURE'] == '0.1'
assert cs['PRESSURE EXPONENT'] == '0.5' assert cs['PRESSURE EXPONENT'] == '0.5'
assert cs['PATTERN'] == '1'
assert cs['DEMAND MULTIPLIER'] == '1.0'
assert cs['EMITTER EXPONENT'] == '0.5'
assert cs['QUALITY'] == OPTION_QUALITY_NONE
assert cs['DIFFUSIVITY'] == '1.0'
assert cs['TOLERANCE'] == '0.01' assert cs['TOLERANCE'] == '0.01'
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HTOL'] == '0.0005' assert cs['HTOL'] == '0.0005'
assert cs['QTOL'] == '0.0001' assert cs['QTOL'] == '0.0001'
assert cs['RQTOL'] == '0.0000001' assert cs['RQTOL'] == '0.0000001'
assert cs['CHECKFREQ'] == '2'
assert cs['MAXCHECK'] == '10'
assert cs['DAMPLIMIT'] == '0'
cs = execute_redo(p).operations[0] css = execute_redo(p).operations
assert cs['operation'] == API_UPDATE cs = css[0]
assert cs['type'] == 'option'
assert cs['UNITS'] == OPTION_UNITS_LPS assert cs['UNITS'] == OPTION_UNITS_LPS
assert cs['PRESSURE'] == OPTION_PRESSURE_KPA
assert cs['HEADLOSS'] == OPTION_HEADLOSS_DW
assert cs['QUALITY'] == f'{OPTION_QUALITY_TRACE} 1'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_CONTINUE
assert cs['PATTERN'] == '2'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
assert cs['DEMAND MULTIPLIER'] == '2.0'
assert cs['EMITTER EXPONENT'] == '1.5'
assert cs['VISCOSITY'] == '2.0'
assert cs['DIFFUSIVITY'] == '2.0'
assert cs['SPECIFIC GRAVITY'] == '2.0'
assert cs['TRIALS'] == '50'
assert cs['ACCURACY'] == '0.0001'
assert cs['HEADERROR'] == '0.01'
assert cs['FLOWCHANGE'] == '0.01'
assert cs['MINIMUM PRESSURE'] == '0.01'
assert cs['REQUIRED PRESSURE'] == '0.01'
assert cs['PRESSURE EXPONENT'] == '0.05'
assert cs['TOLERANCE'] == '0.001'
assert cs['HTOL'] == '0.005'
assert cs['QTOL'] == '0.001'
assert cs['RQTOL'] == '0.000001'
assert cs['CHECKFREQ'] == '1'
assert cs['MAXCHECK'] == '15'
assert cs['DAMPLIMIT'] == '1'
cs = css[1]
assert cs['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_LPS
assert cs['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_KPA
assert cs['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_DW
assert cs['SPECIFIC_GRAVITY'] == '2.0'
assert cs['SPECIFIC_VISCOSITY'] == '2.0'
assert cs['MAXIMUM_TRIALS'] == '50'
assert cs['HEAD_TOLERANCE'] == '0.005'
assert cs['FLOW_TOLERANCE'] == '0.001'
assert cs['FLOW_CHANGE_LIMIT'] == '0.01'
assert cs['RELATIVE_ACCURACY'] == '0.0001'
assert cs['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_CONTINUE
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_POWER
assert cs['DEMAND_PATTERN'] == '2'
assert cs['DEMAND_MULTIPLIER'] == '2.0'
assert cs['MINIMUM_PRESSURE'] == '0.01'
assert cs['SERVICE_PRESSURE'] == '0.01'
assert cs['PRESSURE_EXPONENT'] == '0.05'
assert cs['EMITTER_EXPONENT'] == '1.5'
assert cs['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE
assert cs['TRACE_NODE'] == '1'
assert cs['SPECIFIC_DIFFUSIVITY'] == '2.0'
assert cs['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'
css = set_option_v3(p, ChangeSet(o3)).operations
cs = css[0]
assert cs['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_GPM
assert cs['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_PSI
assert cs['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_HW
assert cs['SPECIFIC_GRAVITY'] == '1.0'
assert cs['SPECIFIC_VISCOSITY'] == '1.0'
assert cs['MAXIMUM_TRIALS'] == '40'
assert cs['HEAD_TOLERANCE'] == '0.0005'
assert cs['FLOW_TOLERANCE'] == '0.0001'
assert cs['FLOW_CHANGE_LIMIT'] == '0.0'
assert cs['RELATIVE_ACCURACY'] == '0.001'
assert cs['TIME_WEIGHT'] == '0.0'
assert cs['STEP_SIZING'] == OPTION_V3_STEP_SIZING_RELAXATION
assert cs['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_STOP
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED
assert cs['DEMAND_PATTERN'] == '1'
assert cs['DEMAND_MULTIPLIER'] == '1.0'
assert cs['MINIMUM_PRESSURE'] == '0.0'
assert cs['SERVICE_PRESSURE'] == '0.1'
assert cs['PRESSURE_EXPONENT'] == '0.5'
assert cs['LEAKAGE_MODEL'] == OPTION_V3_LEAKAGE_MODEL_POWER
assert cs['LEAKAGE_COEFF1'] == '1.0'
assert cs['LEAKAGE_COEFF2'] == '2.0'
assert cs['EMITTER_EXPONENT'] == '0.5'
assert cs['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE
assert cs['QUALITY_NAME'] == OPTION_V3_QUALITY_MODEL_NONE
assert cs['QUALITY_UNITS'] == OPTION_V3_QUALITY_UNITS_HRS
assert cs['TRACE_NODE'] == '2'
assert cs['SPECIFIC_DIFFUSIVITY'] == '1.0'
assert cs['QUALITY_TOLERANCE'] == '0.01'
cs = css[1]
assert cs['UNITS'] == OPTION_UNITS_GPM
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW
assert cs['QUALITY'] == f'{OPTION_QUALITY_TRACE} 2'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP
assert cs['PATTERN'] == '1'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
assert cs['DEMAND MULTIPLIER'] == '1.0'
assert cs['EMITTER EXPONENT'] == '0.5'
assert cs['VISCOSITY'] == '1.0' assert cs['VISCOSITY'] == '1.0'
assert cs['DIFFUSIVITY'] == '1.0'
assert cs['SPECIFIC GRAVITY'] == '1.0' assert cs['SPECIFIC GRAVITY'] == '1.0'
assert cs['TRIALS'] == '40' assert cs['TRIALS'] == '40'
assert cs['ACCURACY'] == '0.001' assert cs['ACCURACY'] == '0.001'
assert cs['FLOWCHANGE'] == '0' assert cs['FLOWCHANGE'] == '0.0'
assert cs['HEADERROR'] == '0' assert cs['MINIMUM PRESSURE'] == '0.0'
assert cs['CHECKFREQ'] == '2'
assert cs['MAXCHECK'] == '10'
assert cs['DAMPLIMIT'] == '0'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
assert cs['MINIMUM PRESSURE'] == '0'
assert cs['REQUIRED PRESSURE'] == '0.1' assert cs['REQUIRED PRESSURE'] == '0.1'
assert cs['PRESSURE EXPONENT'] == '0.5' assert cs['PRESSURE EXPONENT'] == '0.5'
assert cs['PATTERN'] == '1'
assert cs['DEMAND MULTIPLIER'] == '1.0'
assert cs['EMITTER EXPONENT'] == '0.5'
assert cs['QUALITY'] == OPTION_QUALITY_NONE
assert cs['DIFFUSIVITY'] == '1.0'
assert cs['TOLERANCE'] == '0.01' assert cs['TOLERANCE'] == '0.01'
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HTOL'] == '0.0005' assert cs['HTOL'] == '0.0005'
assert cs['QTOL'] == '0.0001' assert cs['QTOL'] == '0.0001'
assert cs['RQTOL'] == '0.0000001'
css = execute_undo(p).operations
cs = css[0]
assert cs['UNITS'] == OPTION_UNITS_LPS
assert cs['PRESSURE'] == OPTION_PRESSURE_KPA
assert cs['HEADLOSS'] == OPTION_HEADLOSS_DW
assert cs['QUALITY'] == f'{OPTION_QUALITY_TRACE} 1'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_CONTINUE
assert cs['PATTERN'] == '2'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
assert cs['DEMAND MULTIPLIER'] == '2.0'
assert cs['EMITTER EXPONENT'] == '1.5'
assert cs['VISCOSITY'] == '2.0'
assert cs['DIFFUSIVITY'] == '2.0'
assert cs['SPECIFIC GRAVITY'] == '2.0'
assert cs['TRIALS'] == '50'
assert cs['ACCURACY'] == '0.0001'
assert cs['FLOWCHANGE'] == '0.01'
assert cs['MINIMUM PRESSURE'] == '0.01'
assert cs['REQUIRED PRESSURE'] == '0.01'
assert cs['PRESSURE EXPONENT'] == '0.05'
assert cs['TOLERANCE'] == '0.001'
assert cs['HTOL'] == '0.005'
assert cs['QTOL'] == '0.001'
cs = css[1]
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'
css = execute_redo(p).operations
cs = css[0]
assert cs['FLOW_UNITS'] == OPTION_V3_FLOW_UNITS_GPM
assert cs['PRESSURE_UNITS'] == OPTION_V3_PRESSURE_UNITS_PSI
assert cs['HEADLOSS_MODEL'] == OPTION_V3_HEADLOSS_MODEL_HW
assert cs['SPECIFIC_GRAVITY'] == '1.0'
assert cs['SPECIFIC_VISCOSITY'] == '1.0'
assert cs['MAXIMUM_TRIALS'] == '40'
assert cs['HEAD_TOLERANCE'] == '0.0005'
assert cs['FLOW_TOLERANCE'] == '0.0001'
assert cs['FLOW_CHANGE_LIMIT'] == '0.0'
assert cs['RELATIVE_ACCURACY'] == '0.001'
assert cs['TIME_WEIGHT'] == '0.0'
assert cs['STEP_SIZING'] == OPTION_V3_STEP_SIZING_RELAXATION
assert cs['IF_UNBALANCED'] == OPTION_V3_IF_UNBALANCED_STOP
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED
assert cs['DEMAND_PATTERN'] == '1'
assert cs['DEMAND_MULTIPLIER'] == '1.0'
assert cs['MINIMUM_PRESSURE'] == '0.0'
assert cs['SERVICE_PRESSURE'] == '0.1'
assert cs['PRESSURE_EXPONENT'] == '0.5'
assert cs['LEAKAGE_MODEL'] == OPTION_V3_LEAKAGE_MODEL_POWER
assert cs['LEAKAGE_COEFF1'] == '1.0'
assert cs['LEAKAGE_COEFF2'] == '2.0'
assert cs['EMITTER_EXPONENT'] == '0.5'
assert cs['QUALITY_MODEL'] == OPTION_V3_QUALITY_MODEL_TRACE
assert cs['QUALITY_NAME'] == OPTION_V3_QUALITY_MODEL_NONE
assert cs['QUALITY_UNITS'] == OPTION_V3_QUALITY_UNITS_HRS
assert cs['TRACE_NODE'] == '2'
assert cs['SPECIFIC_DIFFUSIVITY'] == '1.0'
assert cs['QUALITY_TOLERANCE'] == '0.01'
cs = css[1]
assert cs['UNITS'] == OPTION_UNITS_GPM
assert cs['PRESSURE'] == OPTION_PRESSURE_PSI
assert cs['HEADLOSS'] == OPTION_HEADLOSS_HW
assert cs['QUALITY'] == f'{OPTION_QUALITY_TRACE} 2'
assert cs['UNBALANCED'] == OPTION_UNBALANCED_STOP
assert cs['PATTERN'] == '1'
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
assert cs['DEMAND MULTIPLIER'] == '1.0'
assert cs['EMITTER EXPONENT'] == '0.5'
assert cs['VISCOSITY'] == '1.0'
assert cs['DIFFUSIVITY'] == '1.0'
assert cs['SPECIFIC GRAVITY'] == '1.0'
assert cs['TRIALS'] == '40'
assert cs['ACCURACY'] == '0.001'
assert cs['FLOWCHANGE'] == '0.0'
assert cs['MINIMUM PRESSURE'] == '0.0'
assert cs['REQUIRED PRESSURE'] == '0.1'
assert cs['PRESSURE EXPONENT'] == '0.5'
assert cs['TOLERANCE'] == '0.01'
assert cs['HTOL'] == '0.0005'
assert cs['QTOL'] == '0.0001'
o3 = get_option_v3(p)
o3['DEMAND_MODEL'] = OPTION_V3_DEMAND_MODEL_CONSTRAINED
css = set_option_v3(p, ChangeSet(o3)).operations
cs = css[0]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_CONSTRAINED
cs = css[1]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
css = execute_undo(p).operations
cs = css[0]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_DDA
cs = css[1]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_FIXED
css = execute_redo(p).operations
cs = css[0]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_CONSTRAINED
cs = css[1]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
o3 = get_option_v3(p)
o3['DEMAND_MODEL'] = OPTION_V3_DEMAND_MODEL_LOGISTIC
css = set_option_v3(p, ChangeSet(o3)).operations
cs = css[0]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_LOGISTIC
cs = css[1]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
css = execute_undo(p).operations
cs = css[0]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
cs = css[1]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_CONSTRAINED
css = execute_redo(p).operations
cs = css[0]
assert cs['DEMAND_MODEL'] == OPTION_V3_DEMAND_MODEL_LOGISTIC
cs = css[1]
assert cs['DEMAND MODEL'] == OPTION_DEMAND_MODEL_PDA
self.leave(p) self.leave(p)