Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
248
tasks_gen/train/G1113/hidden/t14_hidden.clas.abap
Normal file
248
tasks_gen/train/G1113/hidden/t14_hidden.clas.abap
Normal file
@@ -0,0 +1,248 @@
|
||||
CLASS {{P}}T14_HIDDEN DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS line_for
|
||||
IMPORTING iv_donor TYPE string
|
||||
iv_group TYPE string
|
||||
iv_units TYPE i
|
||||
RETURNING VALUE(rv_line) TYPE string.
|
||||
|
||||
METHODS sum_for
|
||||
IMPORTING iv_donations TYPE string
|
||||
iv_start TYPE string OPTIONAL
|
||||
EXPORTING ev_totals TYPE string
|
||||
ev_count TYPE i
|
||||
ev_subrc TYPE sysubrc.
|
||||
|
||||
METHODS sums_per_group FOR TESTING.
|
||||
METHODS counts_donors FOR TESTING.
|
||||
METHODS sorted_result FOR TESTING.
|
||||
METHODS upper_case_group FOR TESTING.
|
||||
METHODS replaces_content FOR TESTING.
|
||||
METHODS empty_input FOR TESTING.
|
||||
METHODS invalid_units_raises FOR TESTING.
|
||||
METHODS invalid_keeps_totals FOR TESTING.
|
||||
METHODS donor_two_groups FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{P}}T14_HIDDEN IMPLEMENTATION.
|
||||
|
||||
METHOD line_for.
|
||||
rv_line = iv_donor && ';' && iv_group && ';' && |{ iv_units }|.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sum_for.
|
||||
DATA lv_totals TYPE string.
|
||||
lv_totals = iv_start.
|
||||
|
||||
CALL FUNCTION '{{P}}DON_SUM'
|
||||
EXPORTING
|
||||
iv_donations = iv_donations
|
||||
IMPORTING
|
||||
ev_donor_count = ev_count
|
||||
CHANGING
|
||||
cv_totals = lv_totals
|
||||
EXCEPTIONS
|
||||
invalid_units = 1
|
||||
OTHERS = 2.
|
||||
|
||||
ev_subrc = sy-subrc.
|
||||
ev_totals = lv_totals.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sums_per_group.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 3 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'O-' iv_units = 1 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 5 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'O-' iv_units = 1 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD counts_donors.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D3' iv_group = 'B' iv_units = 1 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D3' iv_group = 'B' iv_units = 1 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sorted_result.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D2' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 1 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 1 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'A+' iv_units = 1 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD upper_case_group.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'a+' iv_units = 2 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 3 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 5 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD replaces_content.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
iv_start = 'OLD TOTALS'
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_input.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
sum_for( EXPORTING iv_donations = ''
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '' act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_units_raises.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 0 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_keeps_totals.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D2' iv_group = 'A+' iv_units = 0 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
iv_start = 'KEEP'
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'KEEP' act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD donor_two_groups.
|
||||
DATA lv_actual TYPE string.
|
||||
DATA lv_count TYPE i.
|
||||
DATA lv_subrc TYPE sysubrc.
|
||||
|
||||
DATA(lv_input) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 3 ).
|
||||
|
||||
sum_for( EXPORTING iv_donations = lv_input
|
||||
IMPORTING ev_totals = lv_actual
|
||||
ev_count = lv_count
|
||||
ev_subrc = lv_subrc ).
|
||||
|
||||
DATA(lv_expected) = line_for( iv_donor = 'D1' iv_group = 'A+' iv_units = 2 )
|
||||
&& cl_abap_char_utilities=>newline
|
||||
&& line_for( iv_donor = 'D1' iv_group = 'O-' iv_units = 3 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user