Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
84
tasks_gen/train/G1913/reference/if_laundry_fee.intf.abap
Normal file
84
tasks_gen/train/G1913/reference/if_laundry_fee.intf.abap
Normal file
@@ -0,0 +1,84 @@
|
||||
INTERFACE {{p}}if_laundry_fee PUBLIC.
|
||||
TYPES ty_item TYPE c LENGTH 7.
|
||||
TYPES ty_service TYPE c LENGTH 4.
|
||||
TYPES ty_reason TYPE c LENGTH 10.
|
||||
TYPES ty_quantity TYPE i.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
TYPES ty_flag TYPE abap_bool.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_order_line,
|
||||
item TYPE ty_item,
|
||||
service TYPE ty_service,
|
||||
quantity TYPE ty_quantity,
|
||||
express TYPE ty_flag,
|
||||
END OF ty_order_line.
|
||||
TYPES tt_order_line TYPE STANDARD TABLE OF ty_order_line WITH EMPTY KEY.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_reason,
|
||||
ok TYPE ty_reason VALUE 'OK',
|
||||
item TYPE ty_reason VALUE 'ITEM',
|
||||
service TYPE ty_reason VALUE 'SERVICE',
|
||||
qty TYPE ty_reason VALUE 'QTY',
|
||||
END OF c_reason.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_item,
|
||||
shirt TYPE ty_item VALUE 'SHIRT',
|
||||
trousers TYPE ty_item VALUE 'TROUS',
|
||||
suit TYPE ty_item VALUE 'SUIT',
|
||||
coat TYPE ty_item VALUE 'COAT',
|
||||
dress TYPE ty_item VALUE 'DRESS',
|
||||
curtain TYPE ty_item VALUE 'CURTAIN',
|
||||
END OF c_item.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_service,
|
||||
wash TYPE ty_service VALUE 'WASH',
|
||||
dryc TYPE ty_service VALUE 'DRYC',
|
||||
iron TYPE ty_service VALUE 'IRON',
|
||||
mend TYPE ty_service VALUE 'MEND',
|
||||
END OF c_service.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_price,
|
||||
shirt TYPE ty_amount VALUE '3.50',
|
||||
trousers TYPE ty_amount VALUE '5.00',
|
||||
suit TYPE ty_amount VALUE '12.00',
|
||||
coat TYPE ty_amount VALUE '14.50',
|
||||
dress TYPE ty_amount VALUE '8.00',
|
||||
curtain TYPE ty_amount VALUE '9.50',
|
||||
END OF c_price.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_factor,
|
||||
wash TYPE i VALUE 100,
|
||||
dryc TYPE i VALUE 180,
|
||||
iron TYPE i VALUE 40,
|
||||
mend TYPE i VALUE 220,
|
||||
END OF c_factor.
|
||||
|
||||
CONSTANTS c_max_qty TYPE ty_quantity VALUE 99.
|
||||
CONSTANTS c_bulk_min_qty TYPE ty_quantity VALUE 10.
|
||||
CONSTANTS c_bulk_discount TYPE i VALUE 10.
|
||||
CONSTANTS c_express_surcharge TYPE i VALUE 25.
|
||||
CONSTANTS c_min_fee TYPE ty_amount VALUE '5.00'.
|
||||
|
||||
METHODS check_item
|
||||
IMPORTING iv_item TYPE ty_item
|
||||
iv_service TYPE ty_service
|
||||
iv_quantity TYPE ty_quantity
|
||||
RETURNING VALUE(rv_reason) TYPE ty_reason.
|
||||
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_item TYPE ty_item
|
||||
iv_service TYPE ty_service
|
||||
iv_quantity TYPE ty_quantity
|
||||
iv_express TYPE ty_flag
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
METHODS calculate_order
|
||||
IMPORTING it_lines TYPE tt_order_line
|
||||
RETURNING VALUE(rv_total) TYPE ty_amount.
|
||||
ENDINTERFACE.
|
||||
114
tasks_gen/train/G1913/reference/laundry_fee_test.clas.abap
Normal file
114
tasks_gen/train/G1913/reference/laundry_fee_test.clas.abap
Normal file
@@ -0,0 +1,114 @@
|
||||
CLASS {{p}}laundry_fee_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS reason_codes FOR TESTING.
|
||||
METHODS item_codes FOR TESTING.
|
||||
METHODS service_codes FOR TESTING.
|
||||
METHODS price_table FOR TESTING.
|
||||
METHODS factor_table FOR TESTING.
|
||||
METHODS limit_values FOR TESTING.
|
||||
METHODS type_lengths FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}laundry_fee_test IMPLEMENTATION.
|
||||
METHOD reason_codes.
|
||||
DATA lv_reason TYPE {{p}}if_laundry_fee=>ty_reason.
|
||||
lv_reason = 'OK'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_reason act = {{p}}if_laundry_fee=>c_reason-ok ).
|
||||
lv_reason = 'ITEM'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_reason act = {{p}}if_laundry_fee=>c_reason-item ).
|
||||
lv_reason = 'SERVICE'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_reason act = {{p}}if_laundry_fee=>c_reason-service ).
|
||||
lv_reason = 'QTY'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_reason act = {{p}}if_laundry_fee=>c_reason-qty ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD item_codes.
|
||||
DATA lv_item TYPE {{p}}if_laundry_fee=>ty_item.
|
||||
lv_item = 'SHIRT'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-shirt ).
|
||||
lv_item = 'TROUS'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-trousers ).
|
||||
lv_item = 'SUIT'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-suit ).
|
||||
lv_item = 'COAT'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-coat ).
|
||||
lv_item = 'DRESS'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-dress ).
|
||||
lv_item = 'CURTAIN'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_item act = {{p}}if_laundry_fee=>c_item-curtain ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD service_codes.
|
||||
DATA lv_service TYPE {{p}}if_laundry_fee=>ty_service.
|
||||
lv_service = 'WASH'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_service act = {{p}}if_laundry_fee=>c_service-wash ).
|
||||
lv_service = 'DRYC'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_service act = {{p}}if_laundry_fee=>c_service-dryc ).
|
||||
lv_service = 'IRON'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_service act = {{p}}if_laundry_fee=>c_service-iron ).
|
||||
lv_service = 'MEND'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_service act = {{p}}if_laundry_fee=>c_service-mend ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD price_table.
|
||||
DATA lv_price TYPE {{p}}if_laundry_fee=>ty_amount.
|
||||
lv_price = '3.50'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-shirt ).
|
||||
lv_price = '5.00'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-trousers ).
|
||||
lv_price = '12.00'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-suit ).
|
||||
lv_price = '14.50'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-coat ).
|
||||
lv_price = '8.00'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-dress ).
|
||||
lv_price = '9.50'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_price act = {{p}}if_laundry_fee=>c_price-curtain ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factor_table.
|
||||
DATA lv_factor TYPE i.
|
||||
lv_factor = 100.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_factor act = {{p}}if_laundry_fee=>c_factor-wash ).
|
||||
lv_factor = 180.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_factor act = {{p}}if_laundry_fee=>c_factor-dryc ).
|
||||
lv_factor = 40.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_factor act = {{p}}if_laundry_fee=>c_factor-iron ).
|
||||
lv_factor = 220.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_factor act = {{p}}if_laundry_fee=>c_factor-mend ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD limit_values.
|
||||
DATA lv_qty TYPE {{p}}if_laundry_fee=>ty_quantity.
|
||||
DATA lv_int TYPE i.
|
||||
DATA lv_fee TYPE {{p}}if_laundry_fee=>ty_amount.
|
||||
lv_qty = 99.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_qty act = {{p}}if_laundry_fee=>c_max_qty ).
|
||||
lv_qty = 10.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_qty act = {{p}}if_laundry_fee=>c_bulk_min_qty ).
|
||||
lv_int = 10.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_int act = {{p}}if_laundry_fee=>c_bulk_discount ).
|
||||
lv_int = 25.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_int act = {{p}}if_laundry_fee=>c_express_surcharge ).
|
||||
lv_fee = '5.00'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_fee act = {{p}}if_laundry_fee=>c_min_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD type_lengths.
|
||||
DATA lv_item TYPE {{p}}if_laundry_fee=>ty_item.
|
||||
DATA lv_item_ref TYPE c LENGTH 7.
|
||||
DATA lv_amount TYPE {{p}}if_laundry_fee=>ty_amount.
|
||||
DATA lv_amount_ref TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
DATA(lo_item) = CAST cl_abap_elemdescr( cl_abap_typedescr=>describe_by_data( lv_item ) ).
|
||||
DATA(lo_item_ref) = CAST cl_abap_elemdescr( cl_abap_typedescr=>describe_by_data( lv_item_ref ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_item_ref->length act = lo_item->length ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_item_ref->type_kind act = lo_item->type_kind ).
|
||||
|
||||
DATA(lo_amount) = CAST cl_abap_elemdescr( cl_abap_typedescr=>describe_by_data( lv_amount ) ).
|
||||
DATA(lo_amount_ref) = CAST cl_abap_elemdescr( cl_abap_typedescr=>describe_by_data( lv_amount_ref ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_amount_ref->length act = lo_amount->length ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_amount_ref->decimals act = lo_amount->decimals ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user