Snapshot: new training tasks (balanced generation), docs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 22:08:59 +02:00
parent eb13453097
commit 6984fc7917
572 changed files with 30024 additions and 0 deletions

View File

@@ -0,0 +1,142 @@
CLASS {{p}}bouquet_if_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PUBLIC SECTION.
INTERFACES {{p}}if_bouquet_pricing.
PRIVATE SECTION.
METHODS size_values FOR TESTING.
METHODS zone_values FOR TESTING.
METHODS reason_values FOR TESTING.
METHODS limit_values FOR TESTING.
METHODS fee_values FOR TESTING.
METHODS types_are_correct FOR TESTING.
ENDCLASS.
CLASS {{p}}bouquet_if_test IMPLEMENTATION.
METHOD {{p}}if_bouquet_pricing~check_order.
rv_reason = {{p}}if_bouquet_pricing=>c_reason-ok.
ENDMETHOD.
METHOD {{p}}if_bouquet_pricing~delivery_fee.
rv_fee = {{p}}if_bouquet_pricing=>c_fee-town.
ENDMETHOD.
METHOD {{p}}if_bouquet_pricing~bouquet_price.
rv_price = {{p}}if_bouquet_pricing=>c_fee-vase.
ENDMETHOD.
METHOD size_values.
DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_size.
lv_exp = 'S'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_size-small ).
lv_exp = 'M'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_size-medium ).
lv_exp = 'L'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_size-large ).
ENDMETHOD.
METHOD zone_values.
DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_zone.
lv_exp = 'T1'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_zone-town ).
lv_exp = 'N1'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_zone-nearby ).
lv_exp = 'F1'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_zone-far ).
ENDMETHOD.
METHOD reason_values.
DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_reason.
lv_exp = 'OK'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_reason-ok ).
lv_exp = 'NO_STEMS'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_reason-no_stems ).
lv_exp = 'TOO_MANY'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_reason-too_many ).
lv_exp = 'BAD_SIZE'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_reason-bad_size ).
lv_exp = 'BAD_ZONE'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_reason-bad_zone ).
ENDMETHOD.
METHOD limit_values.
DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_stems.
lv_exp = 5.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_limit-min_stems ).
lv_exp = 60.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_limit-max_stems ).
ENDMETHOD.
METHOD fee_values.
DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_amount.
lv_exp = '4.50'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_fee-vase ).
lv_exp = '0.00'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_fee-town ).
lv_exp = '6.00'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_fee-nearby ).
lv_exp = '12.00'.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = {{p}}if_bouquet_pricing=>c_fee-far ).
ENDMETHOD.
METHOD types_are_correct.
DATA lv_size TYPE {{p}}if_bouquet_pricing=>ty_size.
DATA lv_zone TYPE {{p}}if_bouquet_pricing=>ty_zone.
DATA lv_reason TYPE {{p}}if_bouquet_pricing=>ty_reason.
DATA lv_amount TYPE {{p}}if_bouquet_pricing=>ty_amount.
DATA lv_stems TYPE {{p}}if_bouquet_pricing=>ty_stems.
DATA lv_ref_size TYPE c LENGTH 1.
DATA lv_ref_zone TYPE c LENGTH 2.
DATA lv_ref_reason TYPE c LENGTH 12.
DATA lv_ref_amount TYPE p LENGTH 8 DECIMALS 2.
DATA lv_ref_stems TYPE i.
DATA(lo_size) = cl_abap_typedescr=>describe_by_data( lv_size ).
DATA(lo_zone) = cl_abap_typedescr=>describe_by_data( lv_zone ).
DATA(lo_reason) = cl_abap_typedescr=>describe_by_data( lv_reason ).
DATA(lo_amount) = cl_abap_typedescr=>describe_by_data( lv_amount ).
DATA(lo_stems) = cl_abap_typedescr=>describe_by_data( lv_stems ).
cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_size->type_kind ).
cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_zone->type_kind ).
cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_reason->type_kind ).
cl_abap_unit_assert=>assert_equals( exp = 'P' act = lo_amount->type_kind ).
cl_abap_unit_assert=>assert_equals( exp = 'I' act = lo_stems->type_kind ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lo_amount->decimals ).
cl_abap_unit_assert=>assert_equals(
exp = cl_abap_typedescr=>describe_by_data( lv_ref_size )->length
act = lo_size->length ).
cl_abap_unit_assert=>assert_equals(
exp = cl_abap_typedescr=>describe_by_data( lv_ref_zone )->length
act = lo_zone->length ).
cl_abap_unit_assert=>assert_equals(
exp = cl_abap_typedescr=>describe_by_data( lv_ref_reason )->length
act = lo_reason->length ).
cl_abap_unit_assert=>assert_equals(
exp = cl_abap_typedescr=>describe_by_data( lv_ref_amount )->length
act = lo_amount->length ).
cl_abap_unit_assert=>assert_equals(
exp = cl_abap_typedescr=>describe_by_data( lv_ref_stems )->length
act = lo_stems->length ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,61 @@
INTERFACE {{p}}if_bouquet_pricing PUBLIC.
TYPES:
ty_size TYPE c LENGTH 1,
ty_zone TYPE c LENGTH 2,
ty_reason TYPE c LENGTH 12,
ty_amount TYPE p LENGTH 8 DECIMALS 2,
ty_stems TYPE i.
CONSTANTS:
BEGIN OF c_size,
small TYPE ty_size VALUE 'S',
medium TYPE ty_size VALUE 'M',
large TYPE ty_size VALUE 'L',
END OF c_size.
CONSTANTS:
BEGIN OF c_zone,
town TYPE ty_zone VALUE 'T1',
nearby TYPE ty_zone VALUE 'N1',
far TYPE ty_zone VALUE 'F1',
END OF c_zone.
CONSTANTS:
BEGIN OF c_reason,
ok TYPE ty_reason VALUE 'OK',
no_stems TYPE ty_reason VALUE 'NO_STEMS',
too_many TYPE ty_reason VALUE 'TOO_MANY',
bad_size TYPE ty_reason VALUE 'BAD_SIZE',
bad_zone TYPE ty_reason VALUE 'BAD_ZONE',
END OF c_reason.
CONSTANTS:
BEGIN OF c_limit,
min_stems TYPE ty_stems VALUE 5,
max_stems TYPE ty_stems VALUE 60,
END OF c_limit.
CONSTANTS:
BEGIN OF c_fee,
vase TYPE ty_amount VALUE '4.50',
town TYPE ty_amount VALUE '0.00',
nearby TYPE ty_amount VALUE '6.00',
far TYPE ty_amount VALUE '12.00',
END OF c_fee.
METHODS check_order
IMPORTING iv_size TYPE ty_size
iv_stems TYPE ty_stems
iv_zone TYPE ty_zone
RETURNING VALUE(rv_reason) TYPE ty_reason.
METHODS delivery_fee
IMPORTING iv_zone TYPE ty_zone
RETURNING VALUE(rv_fee) TYPE ty_amount.
METHODS bouquet_price
IMPORTING iv_size TYPE ty_size
iv_stems TYPE ty_stems
iv_vase TYPE abap_bool
RETURNING VALUE(rv_price) TYPE ty_amount.
ENDINTERFACE.