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:
197
tasks_gen/train/G1029/hidden/t_lic_hidden.clas.abap
Normal file
197
tasks_gen/train/G1029/hidden/t_lic_hidden.clas.abap
Normal file
@@ -0,0 +1,197 @@
|
||||
CLASS {{p}}t_lic_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}if_licence_merge.
|
||||
METHODS setup.
|
||||
METHODS merges_both_lists FOR TESTING.
|
||||
METHODS sums_duplicates FOR TESTING.
|
||||
METHODS ignores_zero_seats FOR TESTING.
|
||||
METHODS ignores_negative_seats FOR TESTING.
|
||||
METHODS ignores_blank_keys FOR TESTING.
|
||||
METHODS normalizes_keys FOR TESTING.
|
||||
METHODS sorts_result FOR TESTING.
|
||||
METHODS keeps_secondary_only FOR TESTING.
|
||||
METHODS empty_lists FOR TESTING.
|
||||
METHODS takes_highest_price FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t_lic_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}licence_merger( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD merges_both_lists.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 5 unit_price = '100.00' )
|
||||
( product = 'BETA' cost_centre = '2000' seats = 3 unit_price = '50.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 2 unit_price = '120.00' )
|
||||
( product = 'GAMMA' cost_centre = '3000' seats = 4 unit_price = '10.00' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ALPHA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '1000' act = ls_row-cost_centre ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 7 act = ls_row-seats ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}if_licence_merge=>ty_price( '120.00' )
|
||||
act = ls_row-unit_price ).
|
||||
ls_row = lt_act[ 3 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'GAMMA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_row-seats ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sums_duplicates.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 5 unit_price = '100.00' )
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 3 unit_price = '90.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences( ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = ls_row-seats ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}if_licence_merge=>ty_price( '100.00' )
|
||||
act = ls_row-unit_price ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD ignores_zero_seats.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 0 unit_price = '100.00' )
|
||||
( product = 'BETA' cost_centre = '2000' seats = 4 unit_price = '10.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 0 unit_price = '50.00' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_row-seats ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD ignores_negative_seats.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = -3 unit_price = '100.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'BETA' cost_centre = '2000' seats = 2 unit_price = '10.00' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_row-seats ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD ignores_blank_keys.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = '' cost_centre = '1000' seats = 5 unit_price = '10.00' )
|
||||
( product = 'ALPHA' cost_centre = '' seats = 5 unit_price = '10.00' )
|
||||
( product = ' ' cost_centre = '2000' seats = 5 unit_price = '10.00' )
|
||||
( product = 'BETA' cost_centre = '2000' seats = 1 unit_price = '2.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences( ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '2000' act = ls_row-cost_centre ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_row-seats ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD normalizes_keys.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'alpha' cost_centre = '1000' seats = 2 unit_price = '10.00' )
|
||||
( product = ' beta ' cost_centre = '2000' seats = 1 unit_price = '5.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 3 unit_price = '20.00' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ALPHA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '1000' act = ls_row-cost_centre ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 5 act = ls_row-seats ).
|
||||
ls_row = lt_act[ 2 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '2000' act = ls_row-cost_centre ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sorts_result.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'BETA' cost_centre = '2000' seats = 1 unit_price = '1.00' )
|
||||
( product = 'ALPHA' cost_centre = '3000' seats = 1 unit_price = '1.00' )
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 1 unit_price = '1.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences( ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ALPHA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '1000' act = ls_row-cost_centre ).
|
||||
ls_row = lt_act[ 2 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ALPHA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '3000' act = ls_row-cost_centre ).
|
||||
ls_row = lt_act[ 3 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '2000' act = ls_row-cost_centre ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD keeps_secondary_only.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 1 unit_price = '5.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'DELTA' cost_centre = '4000' seats = 2 unit_price = '7.00' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 2 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DELTA' act = ls_row-product ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '4000' act = ls_row-cost_centre ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_row-seats ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_lists.
|
||||
DATA(lt_empty) = VALUE {{p}}if_licence_merge=>tt_licences( ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_empty
|
||||
it_secondary = lt_empty ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_act ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD takes_highest_price.
|
||||
DATA(lt_primary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 1 unit_price = '80.00' ) ).
|
||||
DATA(lt_secondary) = VALUE {{p}}if_licence_merge=>tt_licences(
|
||||
( product = 'ALPHA' cost_centre = '1000' seats = 1 unit_price = '95.50' ) ).
|
||||
|
||||
DATA(lt_act) = mo_cut->merge( it_primary = lt_primary
|
||||
it_secondary = lt_secondary ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_act ) ).
|
||||
DATA(ls_row) = lt_act[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_row-seats ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}if_licence_merge=>ty_price( '95.50' )
|
||||
act = ls_row-unit_price ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user