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:
193
tasks_gen/train/G1001/hidden/harvest_hidden.clas.abap
Normal file
193
tasks_gen/train/G1001/hidden/harvest_hidden.clas.abap
Normal file
@@ -0,0 +1,193 @@
|
||||
CLASS {{p}}harvest_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}harvest_evaluator.
|
||||
|
||||
METHODS setup.
|
||||
METHODS assert_rows
|
||||
IMPORTING it_act TYPE {{p}}if_harvest=>tt_result
|
||||
it_exp TYPE {{p}}if_harvest=>tt_result
|
||||
iv_msg TYPE string.
|
||||
|
||||
METHODS empty_input FOR TESTING.
|
||||
METHODS unknown_member_ignored FOR TESTING.
|
||||
METHODS zero_quantity_ignored FOR TESTING.
|
||||
METHODS negative_quantity_ignored FOR TESTING.
|
||||
METHODS same_member_counts_once FOR TESTING.
|
||||
METHODS two_varieties_separated FOR TESTING.
|
||||
METHODS sorted_by_total_desc FOR TESTING.
|
||||
METHODS tie_broken_by_variety FOR TESTING.
|
||||
METHODS all_reports_ignored FOR TESTING.
|
||||
METHODS member_without_report FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}harvest_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}harvest_evaluator( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_rows.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lines( it_exp )
|
||||
act = lines( it_act )
|
||||
msg = |{ iv_msg }: number of rows| ).
|
||||
LOOP AT it_exp ASSIGNING FIELD-SYMBOL(<ls_exp>).
|
||||
READ TABLE it_act ASSIGNING FIELD-SYMBOL(<ls_act>) INDEX sy-tabix.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-variety
|
||||
act = <ls_act>-variety
|
||||
msg = |{ iv_msg }: variety| ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-total_kg
|
||||
act = <ls_act>-total_kg
|
||||
msg = |{ iv_msg }: total_kg| ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-member_count
|
||||
act = <ls_act>-member_count
|
||||
msg = |{ iv_msg }: member_count| ).
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_input.
|
||||
DATA lt_report TYPE {{p}}if_harvest=>tt_report.
|
||||
DATA lt_member TYPE {{p}}if_harvest=>tt_member.
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_member_ignored.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 100 )
|
||||
( member_id = 'M00009' variety = 'RIES' quantity_kg = 50 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 100 member_count = 1 ) )
|
||||
iv_msg = 'unknown member' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zero_quantity_ignored.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 0 )
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 30 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 30 member_count = 1 ) )
|
||||
iv_msg = 'zero quantity' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD negative_quantity_ignored.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = -5 )
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 20 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 20 member_count = 1 ) )
|
||||
iv_msg = 'negative quantity' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD same_member_counts_once.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 20 )
|
||||
( member_id = 'M00002' variety = 'RIES' quantity_kg = 5 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 35 member_count = 2 ) )
|
||||
iv_msg = 'same member' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD two_varieties_separated.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00002' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00001' variety = 'SPAE' quantity_kg = 7 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 20 member_count = 2 )
|
||||
( variety = 'SPAE' total_kg = 7 member_count = 1 ) )
|
||||
iv_msg = 'two varieties' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sorted_by_total_desc.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' )
|
||||
( member_id = 'M00003' member_name = 'Hof Zeder' )
|
||||
( member_id = 'M00004' member_name = 'Hof Eiche' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00002' variety = 'SPAE' quantity_kg = 30 )
|
||||
( member_id = 'M00003' variety = 'SILV' quantity_kg = 20 )
|
||||
( member_id = 'M00004' variety = 'SPAE' quantity_kg = 5 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'SPAE' total_kg = 35 member_count = 2 )
|
||||
( variety = 'SILV' total_kg = 20 member_count = 1 )
|
||||
( variety = 'RIES' total_kg = 10 member_count = 1 ) )
|
||||
iv_msg = 'sort by total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD tie_broken_by_variety.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' )
|
||||
( member_id = 'M00003' member_name = 'Hof Zeder' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'SPAE' quantity_kg = 10 )
|
||||
( member_id = 'M00002' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00003' variety = 'SILV' quantity_kg = 10 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 10 member_count = 1 )
|
||||
( variety = 'SILV' total_kg = 10 member_count = 1 )
|
||||
( variety = 'SPAE' total_kg = 10 member_count = 1 ) )
|
||||
iv_msg = 'tie by variety' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD all_reports_ignored.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00009' variety = 'RIES' quantity_kg = 10 )
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 0 )
|
||||
( member_id = 'M00001' variety = 'SPAE' quantity_kg = -3 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD member_without_report.
|
||||
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
||||
( member_id = 'M00001' member_name = 'Hof Adler' )
|
||||
( member_id = 'M00002' member_name = 'Hof Birke' ) ).
|
||||
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
||||
( member_id = 'M00001' variety = 'RIES' quantity_kg = 5 ) ).
|
||||
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
||||
it_member = lt_member ).
|
||||
assert_rows( it_act = lt_result
|
||||
it_exp = VALUE #( ( variety = 'RIES' total_kg = 5 member_count = 1 ) )
|
||||
iv_msg = 'member without report' ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user