Pipeline controller: plan 2 (hard +, error +50 %), backlog throttle, 2 trajectory workers, stop rules, summaries every 50; budget reserve
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
71
tasks_gen/train/G1315/reference/log_merger.testclasses.abap
Normal file
71
tasks_gen/train/G1315/reference/log_merger.testclasses.abap
Normal file
@@ -0,0 +1,71 @@
|
||||
CLASS ltc_log_merger DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}log_merger.
|
||||
DATA mt_empty TYPE {{p}}log_merger=>tt_log.
|
||||
METHODS setup.
|
||||
METHODS merges_distinct_logs FOR TESTING.
|
||||
METHODS keeps_first_duplicate FOR TESTING.
|
||||
METHODS removes_small_logs FOR TESTING.
|
||||
METHODS sorts_result FOR TESTING.
|
||||
METHODS empty_input_is_empty FOR TESTING.
|
||||
METHODS counts_per_district FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltc_log_merger IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}log_merger( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD merges_distinct_logs.
|
||||
DATA(lt_result) = mo_cut->combine(
|
||||
it_first = VALUE #( ( log_no = 'LOG0000001' district = 'A001' length_cm = 500 diameter_cm = 30 ) )
|
||||
it_second = VALUE #( ( log_no = 'LOG0000002' district = 'B001' length_cm = 600 diameter_cm = 40 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'LOG0000001' act = lt_result[ 1 ]-log_no ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'LOG0000002' act = lt_result[ 2 ]-log_no ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD keeps_first_duplicate.
|
||||
DATA(lt_result) = mo_cut->combine(
|
||||
it_first = VALUE #( ( log_no = 'LOG0000001' district = 'A001' length_cm = 500 diameter_cm = 30 ) )
|
||||
it_second = VALUE #( ( log_no = 'LOG0000001' district = 'B001' length_cm = 900 diameter_cm = 50 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'A001' act = lt_result[ 1 ]-district ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD removes_small_logs.
|
||||
DATA(lt_result) = mo_cut->combine(
|
||||
it_first = VALUE #( ( log_no = 'LOG0000001' district = 'A001' length_cm = 150 diameter_cm = 30 ) )
|
||||
it_second = VALUE #( ( log_no = 'LOG0000002' district = 'A001' length_cm = 500 diameter_cm = 15 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sorts_result.
|
||||
DATA(lt_result) = mo_cut->combine(
|
||||
it_first = VALUE #( ( log_no = 'LOG0000002' district = 'A001' length_cm = 500 diameter_cm = 30 ) )
|
||||
it_second = VALUE #( ( log_no = 'LOG0000001' district = 'B001' length_cm = 500 diameter_cm = 30 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'LOG0000001' act = lt_result[ 1 ]-log_no ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'LOG0000002' act = lt_result[ 2 ]-log_no ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_input_is_empty.
|
||||
DATA(lt_result) = mo_cut->combine( it_first = mt_empty it_second = mt_empty ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD counts_per_district.
|
||||
DATA(lt_stat) = mo_cut->count_by_district(
|
||||
it_log = VALUE #( ( log_no = 'LOG0000001' district = 'A001' length_cm = 500 diameter_cm = 30 )
|
||||
( log_no = 'LOG0000002' district = 'A001' length_cm = 300 diameter_cm = 25 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_stat ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_stat[ 1 ]-log_qty ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 800 act = lt_stat[ 1 ]-total_length_cm ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user