Files
abap-llm/tasks_gen/eval/G0124/hidden/t20_hidden.clas.abap

213 lines
10 KiB
ABAP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
CLASS {{p}}t20_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
TYPES tt_region TYPE RANGE OF {{p}}farm-region.
METHODS run
IMPORTING iv_from TYPE d
iv_to TYPE d
it_region TYPE tt_region OPTIONAL
RETURNING VALUE(rr_data) TYPE REF TO data.
METHODS value_of
IMPORTING ir_data TYPE REF TO data
iv_row TYPE i
iv_col TYPE string
RETURNING VALUE(rv_value) TYPE string.
METHODS lines_of
IMPORTING ir_data TYPE REF TO data
RETURNING VALUE(rv_lines) TYPE i.
METHODS all_farms_listed FOR TESTING.
METHODS litres_summed FOR TESTING.
METHODS delivery_count FOR TESTING.
METHODS date_bounds FOR TESTING.
METHODS date_range_wide FOR TESTING.
METHODS region_filter FOR TESTING.
METHODS region_exclude FOR TESTING.
METHODS sorted_by_litres FOR TESTING.
METHODS tie_break_farm_id FOR TESTING.
ENDCLASS.
CLASS {{p}}t20_hidden IMPLEMENTATION.
METHOD run.
cl_salv_bs_runtime_info=>set( display = abap_false metadata = abap_false data = abap_true ).
SUBMIT {{p}}milk_sum WITH p_from = iv_from WITH p_to = iv_to
WITH s_reg IN it_region AND RETURN.
TRY.
cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = rr_data ).
CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.
cl_salv_bs_runtime_info=>clear_all( ).
 ENDMETHOD.
METHOD lines_of.
FIELD-SYMBOLS <lt_data> TYPE STANDARD TABLE.
IF ir_data IS BOUND.
ASSIGN ir_data->* TO <lt_data>.
rv_lines = lines( <lt_data> ).
ENDIF.
ENDMETHOD.
METHOD value_of.
FIELD-SYMBOLS <lt_data> TYPE STANDARD TABLE.
ASSIGN ir_data->* TO <lt_data>.
ASSIGN <lt_data>[ iv_row ] TO FIELD-SYMBOL(<ls_line>).
ASSIGN COMPONENT iv_col OF STRUCTURE <ls_line> TO FIELD-SYMBOL(<lv_value>).
cl_abap_unit_assert=>assert_subrc( exp = 0 msg = |Column { iv_col } missing| ).
rv_value = condense( CONV string( <lv_value> ) ).
ENDMETHOD.
METHOD all_farms_listed.
cl_abap_unit_assert=>assert_equals(
exp = 5
act = lines_of( run( iv_from = '20260101' iv_to = '20260131' ) ) ).
cl_abap_unit_assert=>assert_equals(
exp = 2
act = lines_of( run( iv_from = '20260101' iv_to = '20260131'
it_region = VALUE #( ( sign = 'I' option = 'EQ' low = 'CH' ) ) ) ) ).
ENDMETHOD.
METHOD litres_summed.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131' ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.50`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.00`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD delivery_count.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131' ).
cl_abap_unit_assert=>assert_equals( exp = `2`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `DELIVERIES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `DELIVERIES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1003`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `0`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `DELIVERIES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `0.00`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD date_bounds.
DATA(lr_one) = run( iv_from = '20260105' iv_to = '20260105' ).
cl_abap_unit_assert=>assert_equals( exp = 5 act = lines_of( lr_one ) ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_one iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `120.50`
act = value_of( ir_data = lr_one iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1`
act = value_of( ir_data = lr_one iv_row = 1 iv_col = `DELIVERIES` ) ).
DATA(lr_two) = run( iv_from = '20260105' iv_to = '20260106' ).
cl_abap_unit_assert=>assert_equals( exp = 5 act = lines_of( lr_two ) ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_two iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.00`
act = value_of( ir_data = lr_two iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_two iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `120.50`
act = value_of( ir_data = lr_two iv_row = 2 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD date_range_wide.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260228' ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `240.00`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `2`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `DELIVERIES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.50`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `2`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `DELIVERIES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1003`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `0.00`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD region_filter.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131'
it_region = VALUE #( ( sign = 'I' option = 'EQ' low = 'CH' ) ) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines_of( lr_data ) ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.50`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `200.00`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD region_exclude.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131'
it_region = VALUE #( ( sign = 'E' option = 'EQ' low = 'CH' ) ) ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines_of( lr_data ) ).
cl_abap_unit_assert=>assert_equals( exp = `1002`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `50.25`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1004`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `50.25`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1003`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `0.00`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `LITRES` ) ).
ENDMETHOD.
METHOD sorted_by_litres.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131' ).
cl_abap_unit_assert=>assert_equals( exp = `1000`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_data iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1002`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1004`
act = value_of( ir_data = lr_data iv_row = 4 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1003`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `Alpine Dairy`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `FARM_NAME` ) ).
cl_abap_unit_assert=>assert_equals( exp = `CH`
act = value_of( ir_data = lr_data iv_row = 1 iv_col = `REGION` ) ).
cl_abap_unit_assert=>assert_equals( exp = `Hilltop Farm`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `FARM_NAME` ) ).
cl_abap_unit_assert=>assert_equals( exp = `AT`
act = value_of( ir_data = lr_data iv_row = 5 iv_col = `REGION` ) ).
ENDMETHOD.
METHOD tie_break_farm_id.
DATA(lr_data) = run( iv_from = '20260101' iv_to = '20260131' ).
cl_abap_unit_assert=>assert_equals( exp = `50.25`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `50.25`
act = value_of( ir_data = lr_data iv_row = 4 iv_col = `LITRES` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1002`
act = value_of( ir_data = lr_data iv_row = 3 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1004`
act = value_of( ir_data = lr_data iv_row = 4 iv_col = `FARM_ID` ) ).
DATA(lr_zero) = run( iv_from = '20260105' iv_to = '20260105' ).
cl_abap_unit_assert=>assert_equals( exp = `1001`
act = value_of( ir_data = lr_zero iv_row = 2 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1002`
act = value_of( ir_data = lr_zero iv_row = 3 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1003`
act = value_of( ir_data = lr_zero iv_row = 4 iv_col = `FARM_ID` ) ).
cl_abap_unit_assert=>assert_equals( exp = `1004`
act = value_of( ir_data = lr_zero iv_row = 5 iv_col = `FARM_ID` ) ).
ENDMETHOD.
ENDCLASS.