Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
33
tasks_gen/train/G1940/reference/cx_crane_error.clas.abap
Normal file
33
tasks_gen/train/G1940/reference/cx_crane_error.clas.abap
Normal file
@@ -0,0 +1,33 @@
|
||||
CLASS {{p}}cx_crane_error DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM cx_static_check
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
iv_msgno TYPE symsgno
|
||||
iv_attr1 TYPE string OPTIONAL
|
||||
iv_attr2 TYPE string OPTIONAL.
|
||||
|
||||
METHODS get_message_text
|
||||
RETURNING
|
||||
VALUE(rv_text) TYPE string.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA mv_text TYPE string.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_crane_error IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
super->constructor( ).
|
||||
MESSAGE ID '{{P}}MSG_CRANE' TYPE 'I' NUMBER iv_msgno
|
||||
WITH iv_attr1 iv_attr2 INTO mv_text.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_message_text.
|
||||
rv_text = mv_text.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
44
tasks_gen/train/G1940/reference/lift_check.clas.abap
Normal file
44
tasks_gen/train/G1940/reference/lift_check.clas.abap
Normal file
@@ -0,0 +1,44 @@
|
||||
CLASS {{p}}lift_check DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_lift_plan,
|
||||
plan_id TYPE string,
|
||||
crane_id TYPE string,
|
||||
load_kg TYPE decfloat34,
|
||||
capacity_kg TYPE decfloat34,
|
||||
wind_kmh TYPE decfloat34,
|
||||
END OF ty_lift_plan.
|
||||
|
||||
METHODS check_lift_plan
|
||||
IMPORTING
|
||||
iv_plan TYPE ty_lift_plan
|
||||
RAISING
|
||||
{{p}}cx_crane_error.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}lift_check IMPLEMENTATION.
|
||||
METHOD check_lift_plan.
|
||||
IF iv_plan-crane_id IS INITIAL.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_crane_error
|
||||
EXPORTING
|
||||
iv_msgno = '001'
|
||||
iv_attr1 = iv_plan-plan_id.
|
||||
ELSEIF iv_plan-load_kg > iv_plan-capacity_kg.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_crane_error
|
||||
EXPORTING
|
||||
iv_msgno = '002'
|
||||
iv_attr1 = iv_plan-plan_id
|
||||
iv_attr2 = iv_plan-crane_id.
|
||||
ELSEIF iv_plan-wind_kmh > 60.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_crane_error
|
||||
EXPORTING
|
||||
iv_msgno = '003'
|
||||
iv_attr1 = iv_plan-plan_id.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,66 @@
|
||||
CLASS ltc_lift_check DEFINITION FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS no_crane FOR TESTING.
|
||||
METHODS overload FOR TESTING.
|
||||
METHODS wind FOR TESTING.
|
||||
METHODS valid_plan FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltc_lift_check IMPLEMENTATION.
|
||||
METHOD no_crane.
|
||||
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
|
||||
plan_id = 'L-1' crane_id = '' ).
|
||||
DATA(lo_check) = NEW {{p}}lift_check( ).
|
||||
TRY.
|
||||
lo_check->check_lift_plan( ls_plan ).
|
||||
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
|
||||
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-1 has no crane'
|
||||
act = lo_error->get_message_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD overload.
|
||||
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
|
||||
plan_id = 'L-2' crane_id = 'K-1' load_kg = 2000 capacity_kg = 1000 ).
|
||||
DATA(lo_check) = NEW {{p}}lift_check( ).
|
||||
TRY.
|
||||
lo_check->check_lift_plan( ls_plan ).
|
||||
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
|
||||
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-2 is too heavy for crane K-1'
|
||||
act = lo_error->get_message_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD wind.
|
||||
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
|
||||
plan_id = 'L-3' crane_id = 'K-1' wind_kmh = 80 ).
|
||||
DATA(lo_check) = NEW {{p}}lift_check( ).
|
||||
TRY.
|
||||
lo_check->check_lift_plan( ls_plan ).
|
||||
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
|
||||
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-3 is blocked because of wind'
|
||||
act = lo_error->get_message_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD valid_plan.
|
||||
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
|
||||
plan_id = 'L-4' crane_id = 'K-1' load_kg = 500 capacity_kg = 1000 wind_kmh = 30 ).
|
||||
DATA(lo_check) = NEW {{p}}lift_check( ).
|
||||
TRY.
|
||||
lo_check->check_lift_plan( ls_plan ).
|
||||
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
|
||||
cl_abap_unit_assert=>fail( msg = lo_error->get_message_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
63
tasks_gen/train/G1940/reference/lift_test.clas.abap
Normal file
63
tasks_gen/train/G1940/reference/lift_test.clas.abap
Normal file
@@ -0,0 +1,63 @@
|
||||
CLASS {{p}}lift_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS message_001 FOR TESTING.
|
||||
METHODS message_002 FOR TESTING.
|
||||
METHODS message_003 FOR TESTING.
|
||||
METHODS message_004 FOR TESTING.
|
||||
METHODS message_005 FOR TESTING.
|
||||
METHODS exception_text FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}lift_test IMPLEMENTATION.
|
||||
METHOD message_001.
|
||||
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 message_002.
|
||||
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 message_003.
|
||||
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 message_004.
|
||||
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 message_005.
|
||||
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 exception_text.
|
||||
DATA(lo_error) = NEW {{p}}cx_crane_error( iv_msgno = '002'
|
||||
iv_attr1 = 'L-100'
|
||||
iv_attr2 = 'K-7' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'Lift plan L-100 is too heavy for crane K-7'
|
||||
act = lo_error->get_message_text( ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user