Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
214
tasks_gen/train/G1933/hidden/pyro_hidden.clas.abap
Normal file
214
tasks_gen/train/G1933/hidden/pyro_hidden.clas.abap
Normal file
@@ -0,0 +1,214 @@
|
||||
CLASS {{p}}pyro_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_pyro_order.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}if_pyro_order.
|
||||
METHODS setup.
|
||||
METHODS reason_values FOR TESTING.
|
||||
METHODS reason_length FOR TESTING.
|
||||
METHODS zone_length FOR TESTING.
|
||||
METHODS amount_type FOR TESTING.
|
||||
METHODS order_structure FOR TESTING.
|
||||
METHODS reason_structure FOR TESTING.
|
||||
METHODS limit_values FOR TESTING.
|
||||
METHODS distance_values FOR TESTING.
|
||||
METHODS check_order_call FOR TESTING.
|
||||
METHODS calc_fee_call FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}pyro_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}pyro_hidden( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD {{p}}if_pyro_order~check_order.
|
||||
rv_reason = {{p}}if_pyro_order=>c_reason-ok.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD {{p}}if_pyro_order~calc_fee.
|
||||
rv_fee = 0.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reason_values.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_reason.
|
||||
lv_exp = 'OK'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-ok ).
|
||||
lv_exp = 'CALIBRE'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-calibre ).
|
||||
lv_exp = 'ZONE'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-zone ).
|
||||
lv_exp = 'WIND'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-wind ).
|
||||
lv_exp = 'TIME'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-time ).
|
||||
lv_exp = 'DISTANCE'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_reason-distance ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reason_length.
|
||||
DATA lv_reason TYPE {{p}}if_pyro_order=>ty_reason.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_reason.
|
||||
DATA lv_long TYPE c LENGTH 13.
|
||||
DATA lv_kind TYPE c LENGTH 1.
|
||||
DATA lv_len TYPE i.
|
||||
DATA(lo_descr) = cl_abap_typedescr=>describe_by_data( lv_reason ).
|
||||
lv_kind = 'C'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_descr->type_kind ).
|
||||
lv_long = 'ABCDEFGHIJKLM'.
|
||||
lv_reason = lv_long.
|
||||
lv_exp = 'ABCDEFGHIJKL'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_reason ).
|
||||
lv_len = 12.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_len act = strlen( lv_reason ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zone_length.
|
||||
DATA lv_zone TYPE {{p}}if_pyro_order=>ty_zone.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_zone.
|
||||
DATA lv_long TYPE c LENGTH 2.
|
||||
DATA lv_kind TYPE c LENGTH 1.
|
||||
DATA lv_len TYPE i.
|
||||
DATA(lo_descr) = cl_abap_typedescr=>describe_by_data( lv_zone ).
|
||||
lv_kind = 'C'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_descr->type_kind ).
|
||||
lv_long = 'AB'.
|
||||
lv_zone = lv_long.
|
||||
lv_exp = 'A'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_zone ).
|
||||
lv_len = 1.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_len act = strlen( lv_zone ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD amount_type.
|
||||
DATA lv_amount TYPE {{p}}if_pyro_order=>ty_amount.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_amount.
|
||||
DATA lv_kind TYPE c LENGTH 1.
|
||||
DATA lv_dec TYPE i.
|
||||
DATA lv_len TYPE i.
|
||||
DATA(lo_descr) = cl_abap_typedescr=>describe_by_data( lv_amount ).
|
||||
lv_kind = 'P'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_descr->type_kind ).
|
||||
lv_dec = 2.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_dec act = lo_descr->decimals ).
|
||||
lv_len = 8.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_len act = lo_descr->length ).
|
||||
lv_amount = '1234.56'.
|
||||
lv_exp = '1234.56'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_amount ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD order_structure.
|
||||
DATA ls_order TYPE {{p}}if_pyro_order=>ty_order.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_kind TYPE c LENGTH 1.
|
||||
DATA lv_name TYPE c LENGTH 30.
|
||||
DATA lv_exp_name TYPE c LENGTH 30.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr(
|
||||
cl_abap_typedescr=>describe_by_data( ls_order ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
lv_count = 6.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_count act = lines( lt_comp ) ).
|
||||
lv_name = lt_comp[ 1 ]-name.
|
||||
lv_exp_name = 'CALIBRE_MM'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp_name act = lv_name ).
|
||||
lv_kind = 'I'.
|
||||
DATA(lo_elem) = cl_abap_typedescr=>describe_by_data( ls_order-calibre_mm ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_elem->type_kind ).
|
||||
lo_elem = cl_abap_typedescr=>describe_by_data( ls_order-wind_kmh ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_elem->type_kind ).
|
||||
lo_elem = cl_abap_typedescr=>describe_by_data( ls_order-start_hour ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_elem->type_kind ).
|
||||
lo_elem = cl_abap_typedescr=>describe_by_data( ls_order-crowd_m ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_elem->type_kind ).
|
||||
lo_elem = cl_abap_typedescr=>describe_by_data( ls_order-duration_min ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_kind act = lo_elem->type_kind ).
|
||||
DATA lv_zone_kind TYPE c LENGTH 1.
|
||||
lv_zone_kind = 'C'.
|
||||
lo_elem = cl_abap_typedescr=>describe_by_data( ls_order-zone_code ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_zone_kind act = lo_elem->type_kind ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reason_structure.
|
||||
DATA(ls_reason) = {{p}}if_pyro_order=>c_reason.
|
||||
DATA lv_count TYPE i.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr(
|
||||
cl_abap_typedescr=>describe_by_data( ls_reason ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
lv_count = 6.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_count act = lines( lt_comp ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD limit_values.
|
||||
DATA lv_exp TYPE i.
|
||||
lv_exp = 30.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_limit-max_wind_kmh ).
|
||||
lv_exp = 18.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_limit-min_start_hour ).
|
||||
lv_exp = 23.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_limit-max_start_hour ).
|
||||
lv_exp = 10.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_limit-free_minutes ).
|
||||
lv_exp = 5000.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_limit-max_fee_euro ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD distance_values.
|
||||
DATA lv_exp TYPE i.
|
||||
lv_exp = 30.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_distance-calibre_50 ).
|
||||
lv_exp = 45.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_distance-calibre_75 ).
|
||||
lv_exp = 60.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_distance-calibre_100 ).
|
||||
lv_exp = 90.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_distance-calibre_150 ).
|
||||
lv_exp = 120.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp
|
||||
act = {{p}}if_pyro_order=>c_distance-calibre_200 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD check_order_call.
|
||||
DATA ls_order TYPE {{p}}if_pyro_order=>ty_order.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_reason.
|
||||
ls_order = VALUE #( calibre_mm = 100
|
||||
zone_code = 'A'
|
||||
wind_kmh = 10
|
||||
start_hour = 20
|
||||
crowd_m = 60
|
||||
duration_min = 15 ).
|
||||
DATA(lv_reason) = mo_cut->check_order( ls_order ).
|
||||
lv_exp = 'OK'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD calc_fee_call.
|
||||
DATA ls_order TYPE {{p}}if_pyro_order=>ty_order.
|
||||
DATA lv_exp TYPE {{p}}if_pyro_order=>ty_amount.
|
||||
ls_order = VALUE #( calibre_mm = 100
|
||||
zone_code = 'A'
|
||||
wind_kmh = 10
|
||||
start_hour = 20
|
||||
crowd_m = 60
|
||||
duration_min = 15 ).
|
||||
DATA(lv_fee) = mo_cut->calc_fee( ls_order ).
|
||||
lv_exp = 0.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_fee ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user