Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
151
tasks_gen/train/G1073/hidden/t31_hidden.clas.abap
Normal file
151
tasks_gen/train/G1073/hidden/t31_hidden.clas.abap
Normal file
@@ -0,0 +1,151 @@
|
||||
CLASS {{p}}t31_hidden DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
FOR TESTING
|
||||
RISK LEVEL HARMLESS
|
||||
DURATION SHORT
|
||||
CREATE PUBLIC.
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_fee_000 TYPE p LENGTH 8 DECIMALS 2 VALUE '0.00',
|
||||
c_fee_200 TYPE p LENGTH 8 DECIMALS 2 VALUE '2.00',
|
||||
c_fee_350 TYPE p LENGTH 8 DECIMALS 2 VALUE '3.50',
|
||||
c_fee_400 TYPE p LENGTH 8 DECIMALS 2 VALUE '4.00',
|
||||
c_fee_500 TYPE p LENGTH 8 DECIMALS 2 VALUE '5.00',
|
||||
c_fee_1000 TYPE p LENGTH 8 DECIMALS 2 VALUE '10.00',
|
||||
c_fee_1250 TYPE p LENGTH 8 DECIMALS 2 VALUE '12.50',
|
||||
c_fee_2000 TYPE p LENGTH 8 DECIMALS 2 VALUE '20.00'.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}if_park_eval.
|
||||
|
||||
METHODS setup.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS empty_input FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS free_minutes FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS one_started_hour FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS two_started_hours FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS rates_per_tariff FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS fee_is_capped FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS invalid_tariff_ignored FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS zero_duration_ignored FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS groups_and_sorts_parks FOR TESTING.
|
||||
"! @testing {{p}}parking_eval
|
||||
METHODS sums_sessions_of_park FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t31_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}parking_eval( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_input.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD free_minutes.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 20 )
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 30 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
DATA(ls_row) = lt_result[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_row-session_cnt ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 50 act = ls_row-total_min ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_000 act = ls_row-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD one_started_hour.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 31 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_200 act = lt_result[ 1 ]-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD two_started_hours.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 91 )
|
||||
( park_id = 'P002' tariff = 'A' duration_min = 150 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_400 act = lt_result[ 1 ]-total_fee ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_400 act = lt_result[ 2 ]-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates_per_tariff.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 90 )
|
||||
( park_id = 'P002' tariff = 'B' duration_min = 90 )
|
||||
( park_id = 'P003' tariff = 'C' duration_min = 90 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_200 act = lt_result[ 1 ]-total_fee ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_350 act = lt_result[ 2 ]-total_fee ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_500 act = lt_result[ 3 ]-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD fee_is_capped.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'C' duration_min = 400 )
|
||||
( park_id = 'P002' tariff = 'C' duration_min = 150 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_2000 act = lt_result[ 1 ]-total_fee ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_1000 act = lt_result[ 2 ]-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_tariff_ignored.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'X' duration_min = 120 )
|
||||
( park_id = 'P002' tariff = 'A' duration_min = 90 )
|
||||
( park_id = 'P002' tariff = 'X' duration_min = 200 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
DATA(ls_row) = lt_result[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'P002' act = ls_row-park_id ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_row-session_cnt ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 90 act = ls_row-total_min ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_200 act = ls_row-total_fee ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zero_duration_ignored.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 0 )
|
||||
( park_id = 'P001' tariff = 'B' duration_min = -5 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD groups_and_sorts_parks.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P003' tariff = 'A' duration_min = 60 )
|
||||
( park_id = 'P001' tariff = 'B' duration_min = 60 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'P001' act = lt_result[ 1 ]-park_id ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'P003' act = lt_result[ 2 ]-park_id ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sums_sessions_of_park.
|
||||
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 45 )
|
||||
( park_id = 'P001' tariff = 'B' duration_min = 200 )
|
||||
( park_id = 'P001' tariff = 'A' duration_min = 30 ) ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
DATA(ls_row) = lt_result[ 1 ].
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = ls_row-session_cnt ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 275 act = ls_row-total_min ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_fee_1250 act = ls_row-total_fee ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user