Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
123
tasks_gen/eval/G0134/hidden/t14_hidden.clas.abap
Normal file
123
tasks_gen/eval/G0134/hidden/t14_hidden.clas.abap
Normal file
@@ -0,0 +1,123 @@
|
||||
CLASS {{p}}t14_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS call
|
||||
IMPORTING
|
||||
iv_grain_type TYPE string
|
||||
iv_weight_kg TYPE decfloat34
|
||||
iv_moisture_pct TYPE decfloat34
|
||||
iv_supplier TYPE string
|
||||
EXPORTING
|
||||
ev_accepted TYPE abap_bool
|
||||
ev_drying_cost TYPE decfloat34
|
||||
ev_reason TYPE string
|
||||
ev_text TYPE string.
|
||||
METHODS accepts_valid_delivery FOR TESTING.
|
||||
METHODS rejects_bad_weight FOR TESTING.
|
||||
METHODS rejects_missing_supplier FOR TESTING.
|
||||
METHODS rejects_unknown_grain FOR TESTING.
|
||||
METHODS rejects_moisture_out_of_range FOR TESTING.
|
||||
METHODS rejects_wheat_too_wet FOR TESTING.
|
||||
METHODS accepts_barley_at_limit FOR TESTING.
|
||||
METHODS accepts_rye_at_limit FOR TESTING.
|
||||
METHODS calculates_drying_cost FOR TESTING.
|
||||
METHODS sets_message_text FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t14_hidden IMPLEMENTATION.
|
||||
METHOD call.
|
||||
ev_accepted = abap_false.
|
||||
ev_drying_cost = 0.
|
||||
ev_reason = ``.
|
||||
ev_text = ``.
|
||||
TRY.
|
||||
CALL FUNCTION '{{P}}GRAIN_CHECK'
|
||||
EXPORTING
|
||||
iv_grain_type = iv_grain_type
|
||||
iv_weight_kg = iv_weight_kg
|
||||
iv_moisture_pct = iv_moisture_pct
|
||||
iv_supplier = iv_supplier
|
||||
IMPORTING
|
||||
ev_accepted = ev_accepted
|
||||
ev_drying_cost = ev_drying_cost.
|
||||
CATCH {{p}}cx_grain INTO DATA(lo_ex).
|
||||
ev_reason = lo_ex->mv_reason.
|
||||
ev_text = lo_ex->mv_text.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD accepts_valid_delivery.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 1000 iv_moisture_pct = '12.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_accepted = DATA(lv_accepted) ev_drying_cost = DATA(lv_cost)
|
||||
ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_initial( act = lv_reason msg = 'no exception expected' ).
|
||||
cl_abap_unit_assert=>assert_true( act = lv_accepted ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 0 ) act = lv_cost ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_bad_weight.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 0 iv_moisture_pct = '12.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'WEIGHT' act = lv_reason ).
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = -5 iv_moisture_pct = '12.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason2) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'WEIGHT' act = lv_reason2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_missing_supplier.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 100 iv_moisture_pct = '12.0' iv_supplier = ''
|
||||
IMPORTING ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'SUPPLIER' act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_unknown_grain.
|
||||
call( EXPORTING iv_grain_type = 'OATS' iv_weight_kg = 100 iv_moisture_pct = '12.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'GRAIN_TYPE' act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_moisture_out_of_range.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 100 iv_moisture_pct = '120' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'MOISTURE_RANGE' act = lv_reason ).
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 100 iv_moisture_pct = '-1' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason2) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'MOISTURE_RANGE' act = lv_reason2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rejects_wheat_too_wet.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 100 iv_moisture_pct = '14.6' iv_supplier = 'S1'
|
||||
IMPORTING ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'MOISTURE' act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD accepts_barley_at_limit.
|
||||
call( EXPORTING iv_grain_type = 'BARLEY' iv_weight_kg = 100 iv_moisture_pct = '14.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_accepted = DATA(lv_accepted) ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_initial( act = lv_reason msg = 'no exception expected' ).
|
||||
cl_abap_unit_assert=>assert_true( act = lv_accepted ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD accepts_rye_at_limit.
|
||||
call( EXPORTING iv_grain_type = 'RYE' iv_weight_kg = 100 iv_moisture_pct = '15.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_accepted = DATA(lv_accepted) ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_initial( act = lv_reason msg = 'no exception expected' ).
|
||||
cl_abap_unit_assert=>assert_true( act = lv_accepted ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD calculates_drying_cost.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 1000 iv_moisture_pct = '13.5' iv_supplier = 'S1'
|
||||
IMPORTING ev_drying_cost = DATA(lv_cost) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '750' ) act = lv_cost ).
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 1 iv_moisture_pct = '12.53' iv_supplier = 'S1'
|
||||
IMPORTING ev_drying_cost = DATA(lv_cost2) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '0.02' ) act = lv_cost2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sets_message_text.
|
||||
call( EXPORTING iv_grain_type = 'WHEAT' iv_weight_kg = 0 iv_moisture_pct = '12.0' iv_supplier = 'S1'
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'Weight must be greater than zero' act = lv_text ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user