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:
155
tasks_gen/train/G1030/hidden/t61_hidden.clas.abap
Normal file
155
tasks_gen/train/G1030/hidden/t61_hidden.clas.abap
Normal file
@@ -0,0 +1,155 @@
|
||||
CLASS {{p}}t61_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}skip_hire_calc.
|
||||
METHODS setup.
|
||||
METHODS empty_order_is_zero FOR TESTING.
|
||||
METHODS small_order_minimum FOR TESTING.
|
||||
METHODS base_prices_by_size FOR TESTING.
|
||||
METHODS seven_days_included FOR TESTING.
|
||||
METHODS extra_days_charged FOR TESTING.
|
||||
METHODS hazardous_surcharge FOR TESTING.
|
||||
METHODS permit_fee FOR TESTING.
|
||||
METHODS invalid_containers_ignored FOR TESTING.
|
||||
METHODS bulk_discount_five FOR TESTING.
|
||||
METHODS discount_needs_five_valid FOR TESTING.
|
||||
METHODS container_charge_direct FOR TESTING.
|
||||
METHODS discount_boundaries FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t61_hidden IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}skip_hire_calc( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_order_is_zero.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers( ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '0.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD small_order_minimum.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '120.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD base_prices_by_size.
|
||||
DATA(lt_medium) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'MEDIUM' days = 1 hazardous = abap_false permit = abap_false ) ).
|
||||
DATA(lt_large) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'LARGE' days = 1 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '140.00' )
|
||||
act = mo_cut->hire_charge( lt_medium ) msg = `MEDIUM` ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '200.00' )
|
||||
act = mo_cut->hire_charge( lt_large ) msg = `LARGE` ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD seven_days_included.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'MEDIUM' days = 7 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '140.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD extra_days_charged.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'MEDIUM' days = 10 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '176.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD hazardous_surcharge.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_true permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '150.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD permit_fee.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_true ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '135.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_containers_ignored.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'HUGE' days = 3 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 0 hazardous = abap_false permit = abap_false )
|
||||
( size = 'LARGE' days = -2 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '0.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD bulk_discount_five.
|
||||
DATA(lt_containers) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '405.00' )
|
||||
act = mo_cut->hire_charge( lt_containers ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_needs_five_valid.
|
||||
DATA(lt_four) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false ) ).
|
||||
DATA(lt_with_invalid) = VALUE {{p}}skip_hire_calc=>tt_containers(
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false )
|
||||
( size = 'HUGE' days = 5 hazardous = abap_false permit = abap_false ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '360.00' )
|
||||
act = mo_cut->hire_charge( lt_four ) msg = `four containers` ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '360.00' )
|
||||
act = mo_cut->hire_charge( lt_with_invalid ) msg = `invalid row not counted` ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD container_charge_direct.
|
||||
DATA(ls_small) = VALUE {{p}}skip_hire_calc=>ty_container(
|
||||
size = 'SMALL' days = 1 hazardous = abap_false permit = abap_false ).
|
||||
DATA(ls_large) = VALUE {{p}}skip_hire_calc=>ty_container(
|
||||
size = 'LARGE' days = 10 hazardous = abap_false permit = abap_false ).
|
||||
DATA(ls_no_days) = VALUE {{p}}skip_hire_calc=>ty_container(
|
||||
size = 'MEDIUM' days = 0 hazardous = abap_false permit = abap_false ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '90.00' )
|
||||
act = mo_cut->container_charge( ls_small ) msg = `SMALL one day` ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '248.00' )
|
||||
act = mo_cut->container_charge( ls_large ) msg = `LARGE ten days` ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV {{p}}skip_hire_calc=>ty_amount( '0.00' )
|
||||
act = mo_cut->container_charge( ls_no_days ) msg = `no days` ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_boundaries.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = mo_cut->bulk_discount( 0 ) msg = `none` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = mo_cut->bulk_discount( 4 ) msg = `four` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = mo_cut->bulk_discount( 5 ) msg = `five` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = mo_cut->bulk_discount( 9 ) msg = `nine` ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user