Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
195
tasks_gen/train/G1932/hidden/bowl_hidden.clas.abap
Normal file
195
tasks_gen/train/G1932/hidden/bowl_hidden.clas.abap
Normal file
@@ -0,0 +1,195 @@
|
||||
CLASS {{p}}bowl_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA go_env TYPE REF TO if_osql_test_environment.
|
||||
CLASS-METHODS class_setup.
|
||||
CLASS-METHODS class_teardown.
|
||||
METHODS setup.
|
||||
METHODS field_names FOR TESTING.
|
||||
METHODS key_fields FOR TESTING.
|
||||
METHODS char_fields FOR TESTING.
|
||||
METHODS numc_fields FOR TESTING.
|
||||
METHODS decimal_fields FOR TESTING.
|
||||
METHODS date_and_count FOR TESTING.
|
||||
METHODS no_reserved_names FOR TESTING.
|
||||
METHODS insert_and_read FOR TESTING.
|
||||
METHODS duplicate_booking FOR TESTING.
|
||||
METHODS get_field
|
||||
IMPORTING iv_name TYPE string
|
||||
RETURNING VALUE(rs_field) TYPE dfies.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}bowl_hidden IMPLEMENTATION.
|
||||
|
||||
METHOD class_setup.
|
||||
go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}BOWL' ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
go_env->clear_doubles( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_field.
|
||||
DATA lo_struct TYPE REF TO cl_abap_structdescr.
|
||||
lo_struct ?= cl_abap_typedescr=>describe_by_name( '{{P}}BOWL' ).
|
||||
DATA(lt_fields) = lo_struct->get_ddic_field_list( ).
|
||||
READ TABLE lt_fields INTO rs_field WITH KEY fieldname = iv_name.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_names.
|
||||
DATA lo_struct TYPE REF TO cl_abap_structdescr.
|
||||
lo_struct ?= cl_abap_typedescr=>describe_by_name( '{{P}}BOWL' ).
|
||||
DATA(lt_fields) = lo_struct->get_ddic_field_list( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = lines( lt_fields ) ).
|
||||
|
||||
DATA lt_names TYPE STANDARD TABLE OF string WITH EMPTY KEY.
|
||||
lt_names = VALUE #( FOR ls_field IN lt_fields ( to_upper( ls_field-fieldname ) ) ).
|
||||
|
||||
DATA lt_expected TYPE STANDARD TABLE OF string WITH EMPTY KEY.
|
||||
lt_expected = VALUE #( ( `CLIENT` ) ( `BOOKING_ID` ) ( `LANE_NO` ) ( `PLAY_HOURS` )
|
||||
( `GAME_MODE` ) ( `ORDER_NO` ) ( `PLAY_DATE` )
|
||||
( `PLAYER_COUNT` ) ( `LEAGUE_CODE` ) ( `PRICE_VALUE` ) ).
|
||||
LOOP AT lt_expected INTO DATA(lv_name).
|
||||
READ TABLE lt_names TRANSPORTING NO FIELDS WITH KEY table_line = lv_name.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc
|
||||
msg = |Field { lv_name } is missing| ).
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD key_fields.
|
||||
DATA lo_struct TYPE REF TO cl_abap_structdescr.
|
||||
lo_struct ?= cl_abap_typedescr=>describe_by_name( '{{P}}BOWL' ).
|
||||
DATA(lt_fields) = lo_struct->get_ddic_field_list( ).
|
||||
LOOP AT lt_fields INTO DATA(ls_field).
|
||||
DATA(lv_name) = to_upper( ls_field-fieldname ).
|
||||
IF lv_name = 'CLIENT' OR lv_name = 'BOOKING_ID' OR lv_name = 'LANE_NO'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = ls_field-keyflag ).
|
||||
ELSE.
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = ls_field-keyflag ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD char_fields.
|
||||
DATA(ls_field) = get_field( 'BOOKING_ID' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = ls_field-leng ).
|
||||
|
||||
ls_field = get_field( 'ORDER_NO' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = ls_field-leng ).
|
||||
|
||||
ls_field = get_field( 'LEAGUE_CODE' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_field-leng ).
|
||||
|
||||
ls_field = get_field( 'GAME_MODE' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_field-leng ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD numc_fields.
|
||||
DATA(ls_field) = get_field( 'LANE_NO' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'NUMC' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_field-leng ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD decimal_fields.
|
||||
DATA(ls_field) = get_field( 'PLAY_HOURS' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DEC' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_field-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_field-decimals ).
|
||||
|
||||
ls_field = get_field( 'PRICE_VALUE' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DEC' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 11 act = ls_field-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_field-decimals ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD date_and_count.
|
||||
DATA(ls_field) = get_field( 'PLAY_DATE' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DATS' act = ls_field-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = ls_field-leng ).
|
||||
|
||||
ls_field = get_field( 'PLAYER_COUNT' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INT4' act = ls_field-datatype ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_reserved_names.
|
||||
DATA lo_struct TYPE REF TO cl_abap_structdescr.
|
||||
lo_struct ?= cl_abap_typedescr=>describe_by_name( '{{P}}BOWL' ).
|
||||
DATA(lt_fields) = lo_struct->get_ddic_field_list( ).
|
||||
|
||||
DATA lt_reserved TYPE STANDARD TABLE OF string WITH EMPTY KEY.
|
||||
lt_reserved = VALUE #( ( `HOURS` ) ( `MODE` ) ( `ORDER` ) ( `DATE` )
|
||||
( `COUNT` ) ( `GROUP` ) ( `VALUE` ) ( `NUMBER` ) ).
|
||||
|
||||
LOOP AT lt_fields INTO DATA(ls_field).
|
||||
DATA(lv_name) = to_upper( ls_field-fieldname ).
|
||||
READ TABLE lt_reserved TRANSPORTING NO FIELDS WITH KEY table_line = lv_name.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 4 act = sy-subrc
|
||||
msg = |Field name { lv_name } is a reserved word| ).
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD insert_and_read.
|
||||
DATA lv_lane TYPE {{p}}bowl-lane_no.
|
||||
DATA ls_booking TYPE {{p}}bowl.
|
||||
ls_booking-client = sy-mandt.
|
||||
ls_booking-booking_id = 'B-0001'.
|
||||
ls_booking-lane_no = '01'.
|
||||
ls_booking-play_hours = '12.50'.
|
||||
ls_booking-game_mode = 'N'.
|
||||
ls_booking-order_no = 'ORD-0001'.
|
||||
ls_booking-play_date = '20240115'.
|
||||
ls_booking-player_count = 4.
|
||||
ls_booking-league_code = 'L-01'.
|
||||
ls_booking-price_value = '1234.50'.
|
||||
|
||||
INSERT {{p}}bowl FROM @ls_booking.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
||||
|
||||
SELECT SINGLE * FROM {{p}}bowl
|
||||
WHERE booking_id = 'B-0001' AND lane_no = '01' INTO @DATA(ls_read).
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
||||
|
||||
lv_lane = '01'.
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_lane act = ls_read-lane_no ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.50' )
|
||||
act = CONV decfloat34( ls_read-play_hours ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'N' act = ls_read-game_mode ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'ORD-0001' act = ls_read-order_no ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV d( '20240115' ) act = ls_read-play_date ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_read-player_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'L-01' act = ls_read-league_code ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '1234.50' )
|
||||
act = CONV decfloat34( ls_read-price_value ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_booking.
|
||||
DATA ls_booking TYPE {{p}}bowl.
|
||||
ls_booking-client = sy-mandt.
|
||||
ls_booking-booking_id = 'B-0002'.
|
||||
ls_booking-lane_no = '02'.
|
||||
ls_booking-game_mode = 'L'.
|
||||
|
||||
INSERT {{p}}bowl FROM @ls_booking.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
||||
|
||||
ls_booking-game_mode = 'N'.
|
||||
INSERT {{p}}bowl FROM @ls_booking.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ).
|
||||
|
||||
SELECT SINGLE game_mode FROM {{p}}bowl
|
||||
WHERE booking_id = 'B-0002' AND lane_no = '02' INTO @DATA(lv_mode).
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_mode ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user