Feature: MeasurementResults DUT: Device under test REF: Reference for measurements, either a weight scale or a REF-meter [SRS_TBF_COMMON_METRO_001] DUT measured volume calculation For the “Static Start/Stop” the measurement-time is out of focus because the REF volume will be obtained from a weight-scale or a REF meter. Therefore the DUT-volume can be directly calculated using the difference between the start- and stop-volume taking an overflow into account: DutVolumeCm [m³] = (DutStopVolumeCm [m³] + DutOverflowVolumeCm [m³]) - DutStartVolumeCm [m³] [SRS_TBF_COMMON_METRO_002] DUT measured time calculation For the DUT-time can be directly calculated using the difference between the start- and stop-time given by the DUT and the overflow time: DutTimeS [s] = (DutStopTimeS [s] + DutOverflowTimeS [s]) - DutStartTimeS [s] [SRS_TBF_COMMON_METRO _003] DUT measured flow-rate calculation For the flow-rate calculation the individual DUT-volume and the DUT-time is being needed: DutFlowRateQmPh [m³/h] = DutVolumeCm [m³] / DutTimeS [s] * 3600 [s/h] [SRS_TBF_COMMON_METRO _004] DUT versus REF volume correction For the “Flying Start/ Stop Measurement” the REF time is being used to recalculate the volume during the test time, due to the fact, that the start and stop data record may be delayed by the software program flow or the unpredictable operational system timing: CorrDutVolumeCm [m³] = DutFlowRateQmPh [m³/h] * RefTimeS [s] / 3600 [s/h] [SRS_TBF_COMMON_METRO _005] DUT to REF scale factor calculation The calibration is being done using the measured DUT-volume of each individual path, the REF-volume, measured by a weight scale or a REF meter, and for the flying start/stop measurement the timings of the individual DUT-channel and the precisely timing of the REF system. The absolute values are going to be used to calculate the unit-less scale factor: ScaleFactorRefToDut [] = |RefVolumeCm| / |DutVolumeCm| [SRS_TBF_COMMON_METRO _006] DUT from REF deviation calculation The deviation at a specific flow rate shall be calculated using the REF and the measured volume. The deviation calculation shall be based on absolute values to be independent of the direction of the flow rate: DeviationDutToRefRel [] = (|DutVolumeCm [m³]| - |RefVolumeCm [m³]|) / |RefVolumeCm [m³]| DeviationDutToRefPer [%] = DeviationDutToRefRel [] * 100% [SRS_TBF_COMMON_METRO _007] Channel assignment check It shall be checked if the required and the start- and end-record-channels are identical to avoid comparison of unequally channels. ############################################################################################################# Scenario: 1.0_[SRS_TBF_COMMON_METRO_001]_DutVolumeCalculation_VALID_volume Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | Comment | | 0 | 0.0 | 6.0 | 0.0 | 180.0 | Positive direction | | 1 | 0.2 | 6.2 | 0.0 | 180.0 | Offset volume | | 2 | 0.0 | -6.0 | 0.0 | 180.0 | Negative direction | | 3 | -0.2 | -6.2 | 0.0 | 180.0 | Offset volume | | 4 | -0.2 | 5.8 | 0.0 | 180.0 | Zero crossing | # only start- and stop-records input When Calculate measurement results - minimal input Then Test measurement results # DutVolumeCm [m³] = (DutStopVolumeCm [m³] + DutOverflowVolumeCm [m³]) - DutStartVolumeCm [m³] | Test | DutVolumeCm | State | Comment | | 0 | 6.0 | Okay | Positive direction | | 1 | 6.0 | Okay | Offset volume | | 2 | -6.0 | Okay | Negative direction | | 3 | -6.0 | Okay | Offset volume | | 4 | 6.0 | Okay | Zero crossing | # ----------------------------------------------------------------------------------------------------------- Scenario: 1.1_[SRS_TBF_COMMON_METRO_001]_DutVolumeCalculation_VALID_volume with overflow Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | DutOverflowVolumeCm | Comment | | 0 | 0.0 | 2.0 | 0.0 | 180.0 | 4.0 | Positive direction | | 1 | 0.2 | 2.2 | 0.0 | 180.0 | 4.0 | Positive direction | | 2 | 0.0 | -2.0 | 0.0 | 180.0 | -4.0 | Negative direction | | 3 | -0.2 | -2.2 | 0.0 | 180.0 | -4.0 | Negative direction | # start-, stop-records and overflow volume input When Calculate measurement results - over flow volume input Then Test measurement results # DutVolumeCm [m³] = (DutStopVolumeCm [m³] + DutOverflowVolumeCm [m³]) - DutStartVolumeCm [m³] | Test | DutVolumeCm | State | Comment | | 0 | 6.0 | Okay | Positive direction | | 1 | 6.0 | Okay | Positive direction | | 2 | -6.0 | Okay | Negative direction | | 3 | -6.0 | Okay | Negative direction | # ----------------------------------------------------------------------------------------------------------- Scenario: 1.2_[SRS_TBF_COMMON_METRO_001]_DutVolumeCalculation_INVALID_volume Given Assign measurement values # start- and stop-time needed to avoid abortion due to DutTimeS <= 0 | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | DutOverflowVolumeCm | Comment | | 0 | 0.0 | 0.0 | 0.0 | 180.0 | 0.0 | DUT didn't measure | # start-, stop-records and overflow volume input When Calculate measurement results - over flow volume input Then Test measurement results # DutVolumeCm [m³] = (DutStopVolumeCm [m³] + DutOverflowVolumeCm [m³]) - DutStartVolumeCm [m³] | Test | DutVolumeCm | State | Comment | | 0 | 0.0 | ZeroDutVolume | DUT didn't measure | ############################################################################################################# Scenario: 2.0_[SRS_TBF_COMMON_METRO_002]_DutTimeCalculation_VALID_time Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | Comment | | 0 | 0.0 | 6.0 | 0.0 | 180.0 | Time increasing | | 1 | 0.0 | 6.0 | 10.0 | 190.0 | Time offset | # only start- and stop-records input When Calculate measurement results - minimal input Then Test measurement results # DutTimeS [s] = (DutStopTimeS [s] + DutOverflowTimeS [s]) - DutStartTimeS [s] | Test | DutTimeS | State | Comment | | 0 | 180.0 | Okay | Time increasing | | 1 | 180.0 | Okay | Time offset | # ----------------------------------------------------------------------------------------------------------- Scenario: 2.1_[SRS_TBF_COMMON_METRO_002]_DutTimeCalculation_VALID_time with overflow Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | DutOverflowTimeS | Comment | | 0 | 0.0 | 6.0 | 0.0 | 80.0 | 100.0 | Time with overflow | | 1 | 0.0 | 6.0 | 100.0 | 80.0 | 200.0 | Start time higher | # start-, stop-records and overflow time input When Calculate measurement results - over flow time input Then Test measurement results # DutTimeS [s] = (DutStopTimeS [s] + DutOverflowTimeS [s]) - DutStartTimeS [s] | Test | DutTimeS | State | Comment | | 0 | 180.0 | Okay | Time with overflow | | 1 | 180.0 | Okay | Start time higher | # ----------------------------------------------------------------------------------------------------------- Scenario: 2.2_[SRS_TBF_COMMON_METRO_002]_DutTimeCalculation_INVALID_time Given Assign measurement values # volumes not needed due to early abortion of execution due to time check <= 0 which is physically impossible | Test | DutStartTimeS | DutStopTimeS | DutOverflowTimeS | Comment | | 0 | 0.0 | 0.0 | 0.0 | DUT didn't measure | | 1 | 100.0 | 80.0 | 0.0 | End time below start time | | 2 | 0.0 | 80.0 | -100.0 | Negative overflow time | | 3 | -10.0 | 80.0 | 0.0 | Negative start time | | 4 | 0.0 | -80.0 | 0.0 | Negative stop time | | 5 | -100.0 | -80.0 | 0.0 | Negative start and stop time | # start-, stop-records and overflow time input When Calculate measurement results - over flow time input Then Test measurement results # DutTimeS [s] = (DutStopTimeS [s] + DutOverflowTimeS [s]) - DutStartTimeS [s] | Test | DutTimeS | State | Comment | | 0 | 0.0 | ZeroDutTime | DUT didn't measure | | 1 | -20.0 | InvalidDutTime | End time below start time | | 2 | -20.0 | InvalidOverFlowTime | Negative overflow time | | 3 | 90.0 | InvalidDutTime | Negative start time | | 4 | -80.0 | InvalidDutTime | Negative stop time | | 5 | 20.0 | InvalidDutTime | Negative start and stop time | ############################################################################################################# Scenario: 3.0_[SRS_TBF_COMMON_METRO_003]_DutFowRateCalculation_VALID_records with overflow Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutOverflowVolumeCm | DutStartTimeS | DutStopTimeS | DutOverflowTimeS | Comment | | 0 | 0.0 | 1.8 | 4.2 | 0.0 | 180.0 | 0.0 | Positive direction | When Calculate measurement results - full input Then Test measurement results # DutFlowRateCmPh [m³/h] = DutVolumeCm [m³] / DutTimeS [s] * 3600 [s/h] | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | State | Comment | | 0 | 6.0 | 180.0 | 120.0 | Okay | Positive direction | # ----------------------------------------------------------------------------------------------------------- Scenario: 3.1_[SRS_TBF_COMMON_METRO_003]_DutFlowRateCalculation_INVALID_records Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutOverflowVolumeCm | DutStartTimeS | DutStopTimeS | DutOverflowTimeS | Comment | | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DUT didn't measure | | 1 | 0.0 | 0.0 | 0.0 | 0.0 | 180.0 | 0.0 | DUT didn't measure | When Calculate measurement results - full input Then Test measurement results # DutFlowRateCmPh [m³/h] = DutVolumeCm [m³] / DutTimeS [s] * 3600 [s/h] # DutTimeS will be checked first and cause abortion before DutVolumeCm check | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | State | Comment | | 0 | 0.0 | 0.0 | null | ZeroDutTime | DUT didn't measure | | 1 | 0.0 | 180.0 | 0.0 | ZeroDutVolume | DUT didn't measure | ############################################################################################################# Scenario: 4.0_[SRS_TBF_COMMON_METRO_004]_DutVersusRefVolumeCorrection_VALID_Ref time Given Assign measurement values # REF-volume is needed to avoid abortion due to REF-volume equals 0.0 | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | RefTimeS | Comment | | 0 | 0.0 | 6.2 | 0.0 | 186.0 | 6.0 | 180.0 | Positive direction | | 1 | 2.0 | 8.2 | 0.0 | 186.0 | 6.0 | 180.0 | Offset volume | | 2 | 0.0 | -6.2 | 0.0 | 186.0 | 6.0 | 180.0 | Negative direction | | 3 | -2.0 | -8.2 | 0.0 | 186.0 | 6.0 | 180.0 | Offset volume | | 4 | -2.0 | 4.2 | 0.0 | 186.0 | 6.0 | 180.0 | Zero crossing | When Calculate measurement results - full input # CorrDutVolumeCm [m³] = DutFlowRateCmPh [m³/h] * RefTimeS [s] / 3600 [s/h] Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | CorrDutVolumeCm | State | Comment | | 0 | 6.2 | 186.0 | 120.0 | 6.0 | Okay | Positive direction | | 1 | 6.2 | 186.0 | 120.0 | 6.0 | Okay | Offset volume | | 2 | -6.2 | 186.0 | -120.0 | -6.0 | Okay | Negative direction | | 3 | -6.2 | 186.0 | -120.0 | -6.0 | Okay | Offset volume | | 4 | 6.2 | 186.0 | 120.0 | 6.0 | Okay | Zero crossing | # ----------------------------------------------------------------------------------------------------------- Scenario: 4.1_[SRS_TBF_COMMON_METRO_004]_DutVersusRefVolumeCorrection_INVALID_Ref time Given Assign measurement values # REF-volume is needed to avoid abortion due to zero REF-volume | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | RefTimeS | Comment | | 0 | 0.0 | 6.2 | 0.0 | 186.0 | 6.0 | 0.0 | REF time zero | | 1 | 0.0 | 6.2 | 0.0 | 186.0 | 6.0 | -180.0 | REF time invalid | When Calculate measurement results - full input # CorrDutVolumeCm [m³] = DutFlowRateCmPh [m³/h] * RefTimeS [s] / 3600 [s/h] Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | CorrDutVolumeCm | State | Comment | | 0 | 6.2 | 186.0 | 120.0 | 6.2 | ZeroRefTime | REF time zero | | 1 | 6.2 | 186.0 | 120.0 | 6.2 | InvalidRefTime | REF time invalid | ############################################################################################################# Scenario: 5.0_[SRS_TBF_COMMON_METRO_005]_DutToRefScaleFactorCalculation_VALID_Ref volume static start stop Given Assign measurement values # DUT-time is needed to avoid abortion with zero or invalid meter time even if static start stop is independent # of DUT- and REF-time, it simply compares the given volumes | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | Comment | | 0 | 0.0 | 6.0 | 0.0 | 180.0 | 6.0 | Volumes identical | | 1 | 0.0 | 5.4 | 0.0 | 186.0 | 6.0 | REF volume higher | | 2 | 0.0 | 6.6 | 0.0 | 190.0 | 6.0 | DUT volume higher | When Calculate measurement results - ref volume input # ScaleFactorRefToMeter [] = |RefVolumeCm| / |DutVolumeCm| Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | RefFlowRateCmPh | ScaleFactorRefToDut | State | Comment | | 0 | 6.0 | 180.0 | 120.0 | null | 1.0 | Okay | Volumes identical | | 1 | 5.4 | 186.0 | 104.516 | null | 1.1111111 | Okay | REF volume higher | | 2 | 6.6 | 190.0 | 125.053 | null | 0.9090909 | Okay | DUT volume higher | # ----------------------------------------------------------------------------------------------------------- Scenario: 5.1_[SRS_TBF_COMMON_METRO_005]_DutToRefScaleFactorCalculation_VALID_Ref time and volume flying start stop Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | RefTimeS | Comment | | 0 | 0.0 | 6.2 | 0.0 | 186.0 | 6.0 | 180.0 | Volumes identical | | 1 | 0.0 | 5.58 | 0.0 | 186.0 | 6.0 | 180.0 | REF volume higher | | 2 | 0.0 | 6.82 | 0.0 | 186.0 | 6.0 | 180.0 | DUT volume higher | When Calculate measurement results - full input # ScaleFactorRefToMeter [] = |RefVolumeCm| / |DutVolumeCm| Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | CorrDutVolumeCm | RefFlowRateCmPh | ScaleFactorRefToDut | State | Comment | | 0 | 6.2 | 186.0 | 120.0 | 6.0 | 120.0 | 1.0 | Okay | Volumes identical | | 1 | 5.58 | 186.0 | 108.0 | 5.4 | 120.0 | 1.1111111 | Okay | REF volume higher | | 2 | 6.82 | 186.0 | 132.0 | 6.6 | 120.0 | 0.9090909 | Okay | DUT volume higher | # ----------------------------------------------------------------------------------------------------------- Scenario: 5.2_[SRS_TBF_COMMON_METRO_005]_DutToRefScaleFactorCalculation_INVALID_Ref volume Given Assign measurement values # DUT-time is needed to avoid abortion with zero or invalid meter time even if static start stop is independent # of DUT- and REF-time, it simply compares the given volumes | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | Comment | | 0 | 0.0 | 6.0 | 0.0 | 180.0 | null | REF volume null | | 1 | 0.0 | 6.0 | 0.0 | 180.0 | 0.0 | REF volume zero | When Calculate measurement results - ref volume input # ScaleFactorRefToMeter [] = |RefVolumeCm| / |DutVolumeCm| # if REF-volume is null, a simple calculation of DUT parameters is executed, therefore the state is "Okay" Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | RefFlowRateCmPh | ScaleFactorRefToDut | State | Comment | | 0 | 6.0 | 180.0 | 120.0 | null | null | Okay | REF volume null | | 1 | 6.0 | 180.0 | 120.0 | null | null | ZeroRefVolume | REF volume zero | ############################################################################################################# Scenario: 6.0_[SRS_TBF_COMMON_METRO_006]_DutFromRefDeviationCalculation_VALID_Ref time and volume flying start stop Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | RefTimeS | Comment | | 0 | 0.0 | 6.2 | 0.0 | 186.0 | 6.0 | 180.0 | Volumes identical | | 1 | 0.0 | 5.58 | 0.0 | 186.0 | 6.0 | 180.0 | REF volume higher | | 2 | 0.0 | 6.82 | 0.0 | 186.0 | 6.0 | 180.0 | DUT volume higher | When Calculate measurement results - full input # DeviationDutToRefRel [] = (|CorrDutVolumeCm [m³]| - |RefVolumeCm [m³]|) / |RefVolumeCm [m³]| # DeviationDutToRefPer [%] = DeviationDutToRefRel [] * 100% Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | CorrDutVolumeCm | RefFlowRateCmPh | DeviationDutToRefRel | DeviationDutToRefPer | State | Comment | | 0 | 6.2 | 186.0 | 120.0 | 6.0 | 120.0 | 0.0 | 0.0 | Okay | Volumes identical | | 1 | 5.58 | 186.0 | 108.0 | 5.4 | 120.0 | -0.1 | -10.0 | Okay | REF volume higher | | 2 | 6.82 | 186.0 | 132.0 | 6.6 | 120.0 | 0.1 | 10.0 | Okay | DUT volume higher | # ----------------------------------------------------------------------------------------------------------- Scenario: 6.1_[SRS_TBF_COMMON_METRO_006]_DutFromRefDeviationCalculation_INVALID_Ref volume Given Assign measurement values | Test | DutStartVolumeCm | DutStopVolumeCm | DutStartTimeS | DutStopTimeS | RefVolumeCm | Comment | | 0 | 0.0 | 6.0 | 0.0 | 180.0 | null | REF volume null | | 1 | 0.0 | 6.0 | 0.0 | 180.0 | 0.0 | REF volume zero | When Calculate measurement results - full input # if REF-volume is null, a simple calculation of DUT parameters is executed, therefore the state is "Okay" Then Test measurement results | Test | DutVolumeCm | DutTimeS | DutFlowRateCmPh | DeviationDutToRefRel | DeviationDutToRefPer | State | Comment | | 0 | 6.0 | 180.0 | 120.0 | null | null | Okay | REF volume null | | 1 | 6.0 | 180.0 | 120.0 | null | null | ZeroRefVolume | REF volume zero | ############################################################################################################# Scenario: 7.0_[SRS_TBF_COMMON_METRO_007]_ChannelAssignmentCheck_INVALID_channel input Given Assign measurement values | Test | StartChannel | EndChannel | RequiredChannel | Comment | | 0 | 1 | 0 | 0 | Records do not match | | 1 | 0 | 1 | 0 | Records do not match | | 2 | 0 | 0 | 1 | Wrong channel required | When Calculate measurement results - channel input # Are the StartChannel, EndChannel and RequiredChannels equal? Then Test measurement results | Test | State | Comment | | 0 | WrongChannel | Records do not match | | 1 | WrongChannel | Records do not match | | 2 | WrongChannel | Wrong channel required | ############################################################################################################