Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
139
tasks_gen/train/G1940/hidden/lift_hidden.clas.abap
Normal file
139
tasks_gen/train/G1940/hidden/lift_hidden.clas.abap
Normal file
@@ -0,0 +1,139 @@
|
||||
CLASS {{p}}lift_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS make_plan
|
||||
IMPORTING iv_crane TYPE string DEFAULT 'K-7'
|
||||
iv_load TYPE decfloat34 DEFAULT 1000
|
||||
iv_capacity TYPE decfloat34 DEFAULT 1000
|
||||
iv_wind TYPE decfloat34 DEFAULT 20
|
||||
RETURNING VALUE(rs_plan) TYPE {{p}}lift_check=>ty_lift_plan.
|
||||
|
||||
METHODS check_plan
|
||||
IMPORTING iv_crane TYPE string DEFAULT 'K-7'
|
||||
iv_load TYPE decfloat34 DEFAULT 1000
|
||||
iv_capacity TYPE decfloat34 DEFAULT 1000
|
||||
iv_wind TYPE decfloat34 DEFAULT 20
|
||||
EXPORTING ev_text TYPE string.
|
||||
|
||||
METHODS msg_001_text FOR TESTING.
|
||||
METHODS msg_002_text FOR TESTING.
|
||||
METHODS msg_003_text FOR TESTING.
|
||||
METHODS msg_004_text FOR TESTING.
|
||||
METHODS msg_005_text FOR TESTING.
|
||||
METHODS no_crane_raises FOR TESTING.
|
||||
METHODS overload_raises FOR TESTING.
|
||||
METHODS wind_raises FOR TESTING.
|
||||
METHODS crane_rule_first FOR TESTING.
|
||||
METHODS wind_limit_ok FOR TESTING.
|
||||
METHODS valid_plan_passes FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}lift_hidden IMPLEMENTATION.
|
||||
METHOD make_plan.
|
||||
rs_plan = VALUE #( plan_id = 'L-100'
|
||||
crane_id = iv_crane
|
||||
load_kg = iv_load
|
||||
capacity_kg = iv_capacity
|
||||
wind_kmh = iv_wind ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD check_plan.
|
||||
CLEAR ev_text.
|
||||
DATA(ls_plan) = make_plan( iv_crane = iv_crane
|
||||
iv_load = iv_load
|
||||
iv_capacity = iv_capacity
|
||||
iv_wind = iv_wind ).
|
||||
DATA(lo_check) = NEW {{p}}lift_check( ).
|
||||
TRY.
|
||||
lo_check->check_lift_plan( ls_plan ).
|
||||
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
|
||||
ev_text = lo_error->get_message_text( ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD msg_001_text.
|
||||
DATA lv_text TYPE string.
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'E' NUMBER '001' WITH 'L-100' INTO lv_text.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 has no crane'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD msg_002_text.
|
||||
DATA lv_text TYPE string.
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'E' NUMBER '002' WITH 'L-100' 'K-7' INTO lv_text.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is too heavy for crane K-7'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD msg_003_text.
|
||||
DATA lv_text TYPE string.
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'E' NUMBER '003' WITH 'L-100' INTO lv_text.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is blocked because of wind'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD msg_004_text.
|
||||
DATA lv_text TYPE string.
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'W' NUMBER '004' WITH 'L-100' INTO lv_text.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is near the load limit'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD msg_005_text.
|
||||
DATA lv_text TYPE string.
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'I' NUMBER '005' WITH 'L-100' INTO lv_text.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is approved'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_crane_raises.
|
||||
check_plan( EXPORTING iv_crane = ''
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 has no crane'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD overload_raises.
|
||||
check_plan( EXPORTING iv_load = 1200 iv_capacity = 1000
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is too heavy for crane K-7'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD wind_raises.
|
||||
check_plan( EXPORTING iv_wind = 75
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is blocked because of wind'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD crane_rule_first.
|
||||
check_plan( EXPORTING iv_crane = '' iv_load = 1200 iv_capacity = 1000 iv_wind = 90
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 has no crane'
|
||||
act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD wind_limit_ok.
|
||||
check_plan( EXPORTING iv_wind = 60
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '' act = lv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD valid_plan_passes.
|
||||
check_plan( EXPORTING iv_crane = 'K-9' iv_load = 900 iv_capacity = 1000 iv_wind = 10
|
||||
IMPORTING ev_text = DATA(lv_text) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '' act = lv_text ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user