Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
108
tasks_gen/train/G1917/reference/bouquet_check_test.clas.abap
Normal file
108
tasks_gen/train/G1917/reference/bouquet_check_test.clas.abap
Normal file
@@ -0,0 +1,108 @@
|
||||
CLASS {{p}}bouquet_check_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_bouquet_check.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS bands FOR TESTING.
|
||||
METHODS reasons FOR TESTING.
|
||||
METHODS limits FOR TESTING.
|
||||
METHODS band_is_one_char FOR TESTING.
|
||||
METHODS reason_is_ten_chars FOR TESTING.
|
||||
METHODS result_parts FOR TESTING.
|
||||
METHODS order_contract FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}bouquet_check_test IMPLEMENTATION.
|
||||
METHOD {{p}}if_bouquet_check~check_order.
|
||||
rs_result = VALUE #( band = {{p}}if_bouquet_check=>c_band-small
|
||||
reason = {{p}}if_bouquet_check=>c_reason-ok ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD bands.
|
||||
DATA lv_band TYPE {{p}}if_bouquet_check=>ty_band.
|
||||
lv_band = {{p}}if_bouquet_check=>c_band-small.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'S' act = lv_band ).
|
||||
lv_band = {{p}}if_bouquet_check=>c_band-medium.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'M' act = lv_band ).
|
||||
lv_band = {{p}}if_bouquet_check=>c_band-large.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_band ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reasons.
|
||||
DATA lv_exp TYPE {{p}}if_bouquet_check=>ty_reason.
|
||||
DATA lv_act TYPE {{p}}if_bouquet_check=>ty_reason.
|
||||
lv_exp = 'OK'.
|
||||
lv_act = {{p}}if_bouquet_check=>c_reason-ok.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
||||
lv_exp = 'INVALID'.
|
||||
lv_act = {{p}}if_bouquet_check=>c_reason-invalid.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
||||
lv_exp = 'SHORT'.
|
||||
lv_act = {{p}}if_bouquet_check=>c_reason-short.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
||||
lv_exp = 'WEIGHT'.
|
||||
lv_act = {{p}}if_bouquet_check=>c_reason-weight.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
||||
lv_exp = 'STEMS'.
|
||||
lv_act = {{p}}if_bouquet_check=>c_reason-stems.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD limits.
|
||||
DATA lv_limit TYPE i.
|
||||
lv_limit = {{p}}if_bouquet_check=>c_limit-max_stems_small.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 20 act = lv_limit ).
|
||||
lv_limit = {{p}}if_bouquet_check=>c_limit-max_stems_medium.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 40 act = lv_limit ).
|
||||
lv_limit = {{p}}if_bouquet_check=>c_limit-max_stems_large.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 60 act = lv_limit ).
|
||||
lv_limit = {{p}}if_bouquet_check=>c_limit-max_weight_g.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3000 act = lv_limit ).
|
||||
lv_limit = {{p}}if_bouquet_check=>c_limit-min_stem_cm.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 40 act = lv_limit ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD band_is_one_char.
|
||||
DATA lv_band TYPE {{p}}if_bouquet_check=>ty_band.
|
||||
lv_band = 'XY'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = lv_band ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reason_is_ten_chars.
|
||||
DATA lv_reason TYPE {{p}}if_bouquet_check=>ty_reason.
|
||||
lv_reason = 'ABCDEFGHIJKL'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ABCDEFGHIJ' act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD result_parts.
|
||||
DATA ls_result TYPE {{p}}if_bouquet_check=>ty_result.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr(
|
||||
cl_abap_typedescr=>describe_by_data( ls_result ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_comp ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BAND'
|
||||
act = to_upper( lt_comp[ 1 ]-name ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'REASON'
|
||||
act = to_upper( lt_comp[ 2 ]-name ) ).
|
||||
ls_result-band = 'XY'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = ls_result-band ).
|
||||
ls_result-reason = 'ABCDEFGHIJKL'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ABCDEFGHIJ'
|
||||
act = ls_result-reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD order_contract.
|
||||
DATA mo_cut TYPE REF TO {{p}}if_bouquet_check.
|
||||
mo_cut = NEW {{p}}bouquet_check_test( ).
|
||||
DATA(ls_result) = mo_cut->check_order( iv_stems = 25
|
||||
iv_weight_g = 1200
|
||||
iv_stem_cm = 45 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_bouquet_check=>c_band-small
|
||||
act = ls_result-band ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_bouquet_check=>c_reason-ok
|
||||
act = ls_result-reason ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
41
tasks_gen/train/G1917/reference/if_bouquet_check.intf.abap
Normal file
41
tasks_gen/train/G1917/reference/if_bouquet_check.intf.abap
Normal file
@@ -0,0 +1,41 @@
|
||||
INTERFACE {{p}}if_bouquet_check PUBLIC.
|
||||
TYPES ty_band TYPE c LENGTH 1.
|
||||
TYPES ty_reason TYPE c LENGTH 10.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_result,
|
||||
band TYPE ty_band,
|
||||
reason TYPE ty_reason,
|
||||
END OF ty_result.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_band,
|
||||
small TYPE ty_band VALUE 'S',
|
||||
medium TYPE ty_band VALUE 'M',
|
||||
large TYPE ty_band VALUE 'L',
|
||||
END OF c_band.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_reason,
|
||||
ok TYPE ty_reason VALUE 'OK',
|
||||
invalid TYPE ty_reason VALUE 'INVALID',
|
||||
short TYPE ty_reason VALUE 'SHORT',
|
||||
weight TYPE ty_reason VALUE 'WEIGHT',
|
||||
stems TYPE ty_reason VALUE 'STEMS',
|
||||
END OF c_reason.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_limit,
|
||||
max_stems_small TYPE i VALUE 20,
|
||||
max_stems_medium TYPE i VALUE 40,
|
||||
max_stems_large TYPE i VALUE 60,
|
||||
max_weight_g TYPE i VALUE 3000,
|
||||
min_stem_cm TYPE i VALUE 40,
|
||||
END OF c_limit.
|
||||
|
||||
METHODS check_order
|
||||
IMPORTING iv_stems TYPE i
|
||||
iv_weight_g TYPE i
|
||||
iv_stem_cm TYPE i
|
||||
RETURNING VALUE(rs_result) TYPE ty_result.
|
||||
ENDINTERFACE.
|
||||
Reference in New Issue
Block a user