Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
157
tasks_gen/train/G1910/hidden/cider_hidden.clas.abap
Normal file
157
tasks_gen/train/G1910/hidden/cider_hidden.clas.abap
Normal file
@@ -0,0 +1,157 @@
|
||||
CLASS {{p}}cider_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_name TYPE c LENGTH 30.
|
||||
|
||||
CLASS-DATA go_env TYPE REF TO if_osql_test_environment.
|
||||
CLASS-METHODS class_setup.
|
||||
CLASS-METHODS class_teardown.
|
||||
METHODS setup.
|
||||
METHODS field_of
|
||||
IMPORTING iv_name TYPE ty_name
|
||||
RETURNING VALUE(rs_field) TYPE dfies.
|
||||
METHODS field_names FOR TESTING.
|
||||
METHODS key_fields FOR TESTING.
|
||||
METHODS not_null_fields FOR TESTING.
|
||||
METHODS char_lengths FOR TESTING.
|
||||
METHODS numeric_types FOR TESTING.
|
||||
METHODS decimals FOR TESTING.
|
||||
METHODS insert_and_read FOR TESTING.
|
||||
METHODS duplicate_key FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cider_hidden IMPLEMENTATION.
|
||||
|
||||
METHOD class_setup.
|
||||
go_env = cl_osql_test_environment=>create(
|
||||
i_dependency_list = VALUE #( ( '{{P}}CIDER' ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
go_env->clear_doubles( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_of.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr(
|
||||
cl_abap_typedescr=>describe_by_name( '{{P}}CIDER' ) ).
|
||||
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
|
||||
msg = |Field { iv_name } is missing| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_names.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr(
|
||||
cl_abap_typedescr=>describe_by_name( '{{P}}CIDER' ) ).
|
||||
DATA(lt_fields) = lo_struct->get_ddic_field_list( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 11 act = lines( lt_fields ) ).
|
||||
|
||||
DATA lt_expected TYPE STANDARD TABLE OF ty_name WITH EMPTY KEY.
|
||||
lt_expected = VALUE #(
|
||||
( 'CLIENT' ) ( 'BATCH_ID' ) ( 'ORCHARD_ID' ) ( 'APPLE_VARIETY' )
|
||||
( 'PRESSED_ON' ) ( 'BIN_COUNT' ) ( 'APPLE_KG' ) ( 'JUICE_L' )
|
||||
( 'PRESS_FEE' ) ( 'CURRENCY_CODE' ) ( 'GRADE' ) ).
|
||||
|
||||
LOOP AT lt_expected INTO DATA(lv_name).
|
||||
READ TABLE lt_fields TRANSPORTING NO FIELDS WITH KEY fieldname = lv_name.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc
|
||||
msg = |Field { lv_name } is missing| ).
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD key_fields.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_of( 'CLIENT' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_of( 'BATCH_ID' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( 'ORCHARD_ID' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( 'PRESS_FEE' )-keyflag ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD not_null_fields.
|
||||
DATA lt_expected TYPE STANDARD TABLE OF ty_name WITH EMPTY KEY.
|
||||
lt_expected = VALUE #( ( 'CLIENT' ) ( 'BATCH_ID' ) ( 'ORCHARD_ID' ) ).
|
||||
|
||||
LOOP AT lt_expected INTO DATA(lv_name).
|
||||
DATA(ls_field) = field_of( lv_name ).
|
||||
ASSIGN COMPONENT 'NOT_NULL' OF STRUCTURE ls_field TO FIELD-SYMBOL(<lv_flag>).
|
||||
IF sy-subrc = 0.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = <lv_flag>
|
||||
msg = |Field { lv_name } must be not null| ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD char_lengths.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( field_of( 'CLIENT' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = CONV i( field_of( 'BATCH_ID' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 6 act = CONV i( field_of( 'ORCHARD_ID' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 20 act = CONV i( field_of( 'APPLE_VARIETY' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 5 act = CONV i( field_of( 'CURRENCY_CODE' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( field_of( 'GRADE' )-leng ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD numeric_types.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CLNT' act = field_of( 'CLIENT' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = field_of( 'BATCH_ID' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DATS' act = field_of( 'PRESSED_ON' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INT4' act = field_of( 'BIN_COUNT' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CURR' act = field_of( 'PRESS_FEE' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CUKY' act = field_of( 'CURRENCY_CODE' )-datatype ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD decimals.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 13 act = CONV i( field_of( 'APPLE_KG' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( field_of( 'APPLE_KG' )-decimals ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 13 act = CONV i( field_of( 'JUICE_L' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( field_of( 'JUICE_L' )-decimals ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 15 act = CONV i( field_of( 'PRESS_FEE' )-leng ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( field_of( 'PRESS_FEE' )-decimals ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD insert_and_read.
|
||||
DATA lt_batch TYPE STANDARD TABLE OF {{p}}cider WITH EMPTY KEY.
|
||||
lt_batch = VALUE #(
|
||||
( batch_id = 'B000000001' orchard_id = 'OR0001' apple_variety = 'ELSTAR'
|
||||
pressed_on = '20250801' bin_count = 12 apple_kg = '480.500'
|
||||
juice_l = '320.250' press_fee = '125.50' currency_code = 'EUR'
|
||||
grade = 'A1' )
|
||||
( batch_id = 'B000000002' orchard_id = 'OR0002' apple_variety = 'GALA'
|
||||
pressed_on = '20250802' bin_count = 8 apple_kg = '310.000'
|
||||
juice_l = '205.000' press_fee = '80.00' currency_code = 'EUR'
|
||||
grade = 'B2' ) ).
|
||||
|
||||
INSERT {{p}}cider FROM TABLE @lt_batch.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||
|
||||
SELECT SINGLE orchard_id, bin_count, apple_kg, press_fee, currency_code, grade
|
||||
FROM {{p}}cider
|
||||
WHERE batch_id = 'B000000001'
|
||||
INTO @DATA(ls_row).
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'OR0001' act = ls_row-orchard_id ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 12 act = ls_row-bin_count ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( '480.5' ) act = CONV decfloat34( ls_row-apple_kg ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( '125.50' ) act = CONV decfloat34( ls_row-press_fee ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'EUR' act = ls_row-currency_code ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'A1' act = ls_row-grade ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_key.
|
||||
DATA ls_batch TYPE {{p}}cider.
|
||||
ls_batch-batch_id = 'B000000009'.
|
||||
ls_batch-orchard_id = 'OR0009'.
|
||||
|
||||
INSERT {{p}}cider FROM @ls_batch.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||
|
||||
INSERT {{p}}cider FROM @ls_batch.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user