Files
abap-llm/tasks_gen/train/G1081/hidden/t30_hidden.clas.abap
2026-10-05 18:02:52 +02:00

140 lines
7.2 KiB
ABAP

CLASS {{p}}t30_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
TYPES ty_fee TYPE p LENGTH 8 DECIMALS 2.
DATA mo_cut TYPE REF TO {{p}}studio_summary.
METHODS setup.
METHODS empty_input FOR TESTING.
METHODS single_entry FOR TESTING.
METHODS two_studios_same_type FOR TESTING.
METHODS ignores_zero_fee FOR TESTING.
METHODS ignores_negative_fee FOR TESTING.
METHODS ignores_empty_type FOR TESTING.
METHODS removes_duplicates FOR TESTING.
METHODS same_member_two_types FOR TESTING.
METHODS same_class_two_studios FOR TESTING.
METHODS sorted_by_class_type FOR TESTING.
ENDCLASS.
CLASS {{p}}t30_hidden IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}studio_summary( ).
ENDMETHOD.
METHOD empty_input.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_initial( act = lt_result ).
ENDMETHOD.
METHOD single_entry.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '12.50' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 'YOGA' act = lt_result[ 1 ]-class_type ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-member_count ).
cl_abap_unit_assert=>assert_equals( exp = CONV ty_fee( '12.50' )
act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD two_studios_same_type.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '10.00' )
( studio = 'S002' class_id = 'C0000002' class_type = 'YOGA'
member_id = 'M0000002' fee = '15.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-member_count ).
cl_abap_unit_assert=>assert_equals( exp = CONV ty_fee( '25.00' )
act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD ignores_zero_fee.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '0.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_initial( act = lt_result ).
ENDMETHOD.
METHOD ignores_negative_fee.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '-5.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_initial( act = lt_result ).
ENDMETHOD.
METHOD ignores_empty_type.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = ''
member_id = 'M0000001' fee = '10.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_initial( act = lt_result ).
ENDMETHOD.
METHOD removes_duplicates.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '10.00' )
( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '99.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-member_count ).
cl_abap_unit_assert=>assert_equals( exp = CONV ty_fee( '10.00' )
act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD same_member_two_types.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '10.00' )
( studio = 'S001' class_id = 'C0000002' class_type = 'PILATES'
member_id = 'M0000001' fee = '12.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 'PILATES' act = lt_result[ 1 ]-class_type ).
cl_abap_unit_assert=>assert_equals( exp = 'YOGA' act = lt_result[ 2 ]-class_type ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-member_count ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 2 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 2 ]-member_count ).
cl_abap_unit_assert=>assert_equals( exp = CONV ty_fee( '12.00' )
act = lt_result[ 1 ]-total_fee ).
cl_abap_unit_assert=>assert_equals( exp = CONV ty_fee( '10.00' )
act = lt_result[ 2 ]-total_fee ).
ENDMETHOD.
METHOD same_class_two_studios.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000001' fee = '10.00' )
( studio = 'S002' class_id = 'C0000001' class_type = 'YOGA'
member_id = 'M0000002' fee = '10.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-class_count ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-member_count ).
ENDMETHOD.
METHOD sorted_by_class_type.
DATA lt_input TYPE {{p}}studio_summary=>tt_attendance.
lt_input = VALUE #( ( studio = 'S001' class_id = 'C0000001' class_type = 'ZUMBA'
member_id = 'M0000001' fee = '10.00' )
( studio = 'S001' class_id = 'C0000002' class_type = 'AEROBIC'
member_id = 'M0000002' fee = '10.00' ) ).
DATA(lt_result) = mo_cut->summarize( lt_input ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 'AEROBIC' act = lt_result[ 1 ]-class_type ).
cl_abap_unit_assert=>assert_equals( exp = 'ZUMBA' act = lt_result[ 2 ]-class_type ).
ENDMETHOD.
ENDCLASS.