Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
135
tasks_gen/train/G1144/hidden/move_hidden.clas.abap
Normal file
135
tasks_gen/train/G1144/hidden/move_hidden.clas.abap
Normal file
@@ -0,0 +1,135 @@
|
||||
CLASS {{p}}move_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS call
|
||||
IMPORTING iv_order_no TYPE string
|
||||
iv_move_date TYPE d
|
||||
iv_work_hours TYPE decfloat34
|
||||
iv_box_count TYPE i
|
||||
iv_calc_mode TYPE string
|
||||
EXPORTING ev_fee TYPE decfloat34
|
||||
ev_msg TYPE string
|
||||
ev_subrc TYPE sysubrc.
|
||||
METHODS eco_base_fee FOR TESTING.
|
||||
METHODS std_base_fee FOR TESTING.
|
||||
METHODS box_fee_added FOR TESTING.
|
||||
METHODS exp_surcharge FOR TESTING.
|
||||
METHODS rounds_half_up FOR TESTING.
|
||||
METHODS rejects_empty_order FOR TESTING.
|
||||
METHODS rejects_empty_date FOR TESTING.
|
||||
METHODS rejects_bad_hours FOR TESTING.
|
||||
METHODS rejects_negative_boxes FOR TESTING.
|
||||
METHODS rejects_unknown_mode FOR TESTING.
|
||||
METHODS first_error_wins FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}move_hidden IMPLEMENTATION.
|
||||
METHOD call.
|
||||
ev_fee = 0.
|
||||
ev_msg = ''.
|
||||
CALL FUNCTION '{{P}}MOVE_FEE'
|
||||
EXPORTING
|
||||
iv_order_no = iv_order_no
|
||||
iv_move_date = iv_move_date
|
||||
iv_work_hours = iv_work_hours
|
||||
iv_box_count = iv_box_count
|
||||
iv_calc_mode = iv_calc_mode
|
||||
IMPORTING
|
||||
ev_fee = ev_fee
|
||||
ev_msg = ev_msg
|
||||
EXCEPTIONS
|
||||
invalid_order = 1
|
||||
invalid_date = 2
|
||||
invalid_hours = 3
|
||||
invalid_count = 4
|
||||
unknown_mode = 5
|
||||
OTHERS = 6.
|
||||
ev_subrc = sy-subrc.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD eco_base_fee.
|
||||
call( EXPORTING iv_order_no = `A1` iv_move_date = '20250101'
|
||||
iv_work_hours = 3 iv_box_count = 0 iv_calc_mode = `ECO`
|
||||
IMPORTING ev_fee = DATA(lv_fee) ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 135 ) act = lv_fee ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `OK` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD std_base_fee.
|
||||
call( EXPORTING iv_order_no = `A2` iv_move_date = '20250201'
|
||||
iv_work_hours = 2 iv_box_count = 0 iv_calc_mode = `STD`
|
||||
IMPORTING ev_fee = DATA(lv_fee) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 120 ) act = lv_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD box_fee_added.
|
||||
call( EXPORTING iv_order_no = `A3` iv_move_date = '20250201'
|
||||
iv_work_hours = 1 iv_box_count = 4 iv_calc_mode = `STD`
|
||||
IMPORTING ev_fee = DATA(lv_fee) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 66 ) act = lv_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD exp_surcharge.
|
||||
call( EXPORTING iv_order_no = `A4` iv_move_date = '20250201'
|
||||
iv_work_hours = 1 iv_box_count = 2 iv_calc_mode = `EXP`
|
||||
IMPORTING ev_fee = DATA(lv_fee) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '93.6' ) act = lv_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rounds_half_up.
|
||||
call( EXPORTING iv_order_no = `A5` iv_move_date = '20250201'
|
||||
iv_work_hours = '1.005' iv_box_count = 0 iv_calc_mode = `ECO`
|
||||
IMPORTING ev_fee = DATA(lv_fee) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '45.23' ) act = lv_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_empty_order.
|
||||
call( EXPORTING iv_order_no = `` iv_move_date = '20250101'
|
||||
iv_work_hours = 1 iv_box_count = 0 iv_calc_mode = `STD`
|
||||
IMPORTING ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Order number is missing` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_empty_date.
|
||||
call( EXPORTING iv_order_no = `A6` iv_move_date = '00000000'
|
||||
iv_work_hours = 1 iv_box_count = 0 iv_calc_mode = `STD`
|
||||
IMPORTING ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Move date is missing` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_bad_hours.
|
||||
call( EXPORTING iv_order_no = `A7` iv_move_date = '20250101'
|
||||
iv_work_hours = 0 iv_box_count = 0 iv_calc_mode = `STD`
|
||||
IMPORTING ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Work hours are not positive` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_negative_boxes.
|
||||
call( EXPORTING iv_order_no = `A8` iv_move_date = '20250101'
|
||||
iv_work_hours = 1 iv_box_count = -1 iv_calc_mode = `STD`
|
||||
IMPORTING ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Box count is negative` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_unknown_mode.
|
||||
call( EXPORTING iv_order_no = `A9` iv_move_date = '20250101'
|
||||
iv_work_hours = 1 iv_box_count = 0 iv_calc_mode = `FIX`
|
||||
IMPORTING ev_msg = DATA(lv_msg) ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 5 act = lv_rc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Calculation mode is unknown` act = lv_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD first_error_wins.
|
||||
call( EXPORTING iv_order_no = `` iv_move_date = '00000000'
|
||||
iv_work_hours = -2 iv_box_count = -1 iv_calc_mode = `FIX`
|
||||
IMPORTING ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user