Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
212
tasks_gen/train/G1952/hidden/t16_hidden.clas.abap
Normal file
212
tasks_gen/train/G1952/hidden/t16_hidden.clas.abap
Normal file
@@ -0,0 +1,212 @@
|
||||
CLASS {{p}}t16_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_fields TYPE STANDARD TABLE OF dfies WITH EMPTY KEY.
|
||||
TYPES ty_fieldname TYPE c LENGTH 30.
|
||||
TYPES ty_datatype TYPE c LENGTH 4.
|
||||
TYPES ty_flag TYPE c LENGTH 1.
|
||||
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 field_attributes FOR TESTING.
|
||||
METHODS insert_and_read FOR TESTING.
|
||||
METHODS read_by_date FOR TESTING.
|
||||
METHODS get_fields RETURNING VALUE(rt_fields) TYPE ty_fields.
|
||||
METHODS get_field
|
||||
IMPORTING it_fields TYPE ty_fields
|
||||
iv_name TYPE ty_fieldname
|
||||
RETURNING VALUE(rs_field) TYPE dfies.
|
||||
METHODS assert_present
|
||||
IMPORTING it_fields TYPE ty_fields
|
||||
iv_name TYPE ty_fieldname.
|
||||
METHODS assert_key
|
||||
IMPORTING it_fields TYPE ty_fields
|
||||
iv_name TYPE ty_fieldname
|
||||
iv_key TYPE ty_flag.
|
||||
METHODS assert_field
|
||||
IMPORTING it_fields TYPE ty_fields
|
||||
iv_name TYPE ty_fieldname
|
||||
iv_type TYPE ty_datatype
|
||||
iv_leng TYPE i
|
||||
iv_decimals TYPE i.
|
||||
METHODS to_struct_descr
|
||||
IMPORTING io_descr TYPE REF TO cl_abap_typedescr
|
||||
RETURNING VALUE(ro_struct) TYPE REF TO cl_abap_structdescr.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t16_hidden IMPLEMENTATION.
|
||||
|
||||
METHOD class_setup.
|
||||
go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}SESS' ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
go_env->clear_doubles( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_fields.
|
||||
DATA lo_struct TYPE REF TO cl_abap_structdescr.
|
||||
lo_struct = to_struct_descr( cl_abap_typedescr=>describe_by_name( '{{P}}SESS' ) ).
|
||||
rt_fields = lo_struct->get_ddic_field_list( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD to_struct_descr.
|
||||
DATA lo_table TYPE REF TO cl_abap_tabledescr.
|
||||
TRY.
|
||||
ro_struct = CAST cl_abap_structdescr( io_descr ).
|
||||
CATCH cx_sy_move_cast_error.
|
||||
lo_table = CAST cl_abap_tabledescr( io_descr ).
|
||||
ro_struct = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_field.
|
||||
READ TABLE it_fields INTO rs_field WITH KEY fieldname = iv_name.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0
|
||||
act = sy-subrc
|
||||
msg = |Field { iv_name } is missing in table {{P}}SESS| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_present.
|
||||
DATA ls_field TYPE dfies.
|
||||
READ TABLE it_fields INTO ls_field WITH KEY fieldname = iv_name.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0
|
||||
act = sy-subrc
|
||||
msg = |Field { iv_name } is missing in table {{P}}SESS| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_key.
|
||||
DATA ls_field TYPE dfies.
|
||||
DATA lv_flag TYPE ty_flag.
|
||||
ls_field = get_field( it_fields = it_fields iv_name = iv_name ).
|
||||
lv_flag = ls_field-keyflag.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = iv_key
|
||||
act = lv_flag
|
||||
msg = |Wrong key flag of field { iv_name }| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_field.
|
||||
DATA ls_field TYPE dfies.
|
||||
DATA lv_leng TYPE i.
|
||||
DATA lv_decimals TYPE i.
|
||||
ls_field = get_field( it_fields = it_fields iv_name = iv_name ).
|
||||
lv_leng = ls_field-leng.
|
||||
lv_decimals = ls_field-decimals.
|
||||
cl_abap_unit_assert=>assert_equals( exp = iv_leng act = lv_leng
|
||||
msg = |Wrong length of { iv_name }| ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = iv_decimals act = lv_decimals
|
||||
msg = |Wrong decimals of { iv_name }| ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = iv_type act = ls_field-datatype
|
||||
msg = |Wrong type of { iv_name }| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_names.
|
||||
DATA lt_fields TYPE ty_fields.
|
||||
lt_fields = get_fields( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = lines( lt_fields )
|
||||
msg = 'Wrong number of fields in {{P}}SESS' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'CLIENT' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'STUDIO_ID' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'SESSION_NO' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'CUSTOMER' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'SESSION_DATE' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'BOOKED_HOURS' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'RATE_MODE' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'TARIFF_GROUP' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'TRACK_COUNT' ).
|
||||
assert_present( it_fields = lt_fields iv_name = 'SESSION_VALUE' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD key_fields.
|
||||
DATA lt_fields TYPE ty_fields.
|
||||
lt_fields = get_fields( ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'CLIENT' iv_key = 'X' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'STUDIO_ID' iv_key = 'X' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'SESSION_NO' iv_key = 'X' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'CUSTOMER' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'SESSION_DATE' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'BOOKED_HOURS' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'RATE_MODE' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'TARIFF_GROUP' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'TRACK_COUNT' iv_key = ' ' ).
|
||||
assert_key( it_fields = lt_fields iv_name = 'SESSION_VALUE' iv_key = ' ' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_attributes.
|
||||
DATA lt_fields TYPE ty_fields.
|
||||
lt_fields = get_fields( ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'CLIENT' iv_type = 'CLNT'
|
||||
iv_leng = 3 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'STUDIO_ID' iv_type = 'CHAR'
|
||||
iv_leng = 4 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'SESSION_NO' iv_type = 'NUMC'
|
||||
iv_leng = 6 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'CUSTOMER' iv_type = 'CHAR'
|
||||
iv_leng = 10 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'SESSION_DATE' iv_type = 'DATS'
|
||||
iv_leng = 8 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'BOOKED_HOURS' iv_type = 'DEC'
|
||||
iv_leng = 5 iv_decimals = 2 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'RATE_MODE' iv_type = 'CHAR'
|
||||
iv_leng = 4 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'TARIFF_GROUP' iv_type = 'CHAR'
|
||||
iv_leng = 4 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'TRACK_COUNT' iv_type = 'INT4'
|
||||
iv_leng = 10 iv_decimals = 0 ).
|
||||
assert_field( it_fields = lt_fields iv_name = 'SESSION_VALUE' iv_type = 'DEC'
|
||||
iv_leng = 15 iv_decimals = 2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD insert_and_read.
|
||||
DATA lt_sess TYPE STANDARD TABLE OF {{p}}sess WITH EMPTY KEY.
|
||||
DATA lv_day TYPE d.
|
||||
lv_day = '20250110'.
|
||||
lt_sess = VALUE #(
|
||||
( client = sy-mandt studio_id = 'R1' session_no = '000001'
|
||||
customer = 'CUST01' session_date = lv_day booked_hours = '3.50'
|
||||
rate_mode = 'STD' tariff_group = 'A' track_count = 8
|
||||
session_value = '450.00' ) ).
|
||||
go_env->insert_test_data( lt_sess ).
|
||||
SELECT SINGLE * FROM {{p}}sess WHERE studio_id = 'R1' AND session_no = '000001'
|
||||
INTO @DATA(ls_read).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = sy-subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CUST01' act = ls_read-customer ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_day act = ls_read-session_date ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '3.50' )
|
||||
act = CONV decfloat34( ls_read-booked_hours ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'STD' act = ls_read-rate_mode ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'A' act = ls_read-tariff_group ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = ls_read-track_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '450.00' )
|
||||
act = CONV decfloat34( ls_read-session_value ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_by_date.
|
||||
DATA lt_sess TYPE STANDARD TABLE OF {{p}}sess WITH EMPTY KEY.
|
||||
DATA lv_day TYPE d.
|
||||
lv_day = '20250301'.
|
||||
lt_sess = VALUE #(
|
||||
( client = sy-mandt studio_id = 'R1' session_no = '000010'
|
||||
customer = 'CUST10' session_date = lv_day booked_hours = '1.00'
|
||||
rate_mode = 'STD' tariff_group = 'A' track_count = 1
|
||||
session_value = '80.00' )
|
||||
( client = sy-mandt studio_id = 'R2' session_no = '000011'
|
||||
customer = 'CUST11' session_date = '20250302' booked_hours = '2.00'
|
||||
rate_mode = 'STD' tariff_group = 'A' track_count = 2
|
||||
session_value = '160.00' ) ).
|
||||
go_env->insert_test_data( lt_sess ).
|
||||
SELECT COUNT(*) FROM {{p}}sess WHERE session_date = @lv_day INTO @DATA(lv_count).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_count ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user