Files
abap-llm/tasks_gen/eval/G0158/reference/t14_test.clas.abap

65 lines
2.1 KiB
ABAP

CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS fare_for IMPORTING iv_distance TYPE decfloat34 iv_wait TYPE i iv_time TYPE t
RETURNING VALUE(rv_fare) TYPE decfloat34.
METHODS day_fare FOR TESTING.
METHODS night_fare FOR TESTING.
METHODS minimum_fare FOR TESTING.
METHODS invalid_distance FOR TESTING.
ENDCLASS.
CLASS {{p}}t14_test IMPLEMENTATION.
METHOD fare_for.
CALL FUNCTION '{{P}}TAXI_FARE'
EXPORTING
iv_distance_km = iv_distance
iv_wait_min = iv_wait
iv_start_time = iv_time
IMPORTING
ev_fare = rv_fare
EXCEPTIONS
invalid_distance = 1
invalid_wait = 2
OTHERS = 3.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
ENDMETHOD.
METHOD day_fare.
DATA lv_expected TYPE decfloat34 VALUE '25.50'.
DATA lv_actual TYPE decfloat34.
lv_actual = fare_for( iv_distance = 10 iv_wait = 0 iv_time = '120000' ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
ENDMETHOD.
METHOD night_fare.
DATA lv_expected TYPE decfloat34 VALUE '30.60'.
DATA lv_actual TYPE decfloat34.
lv_actual = fare_for( iv_distance = 10 iv_wait = 0 iv_time = '230000' ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
ENDMETHOD.
METHOD minimum_fare.
DATA lv_expected TYPE decfloat34 VALUE '5.00'.
DATA lv_actual TYPE decfloat34.
lv_actual = fare_for( iv_distance = 0 iv_wait = 0 iv_time = '120000' ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_actual ).
ENDMETHOD.
METHOD invalid_distance.
DATA lv_fare TYPE decfloat34.
CALL FUNCTION '{{P}}TAXI_FARE'
EXPORTING
iv_distance_km = -1
iv_wait_min = 0
iv_start_time = '120000'
IMPORTING
ev_fare = lv_fare
EXCEPTIONS
invalid_distance = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
ENDMETHOD.
ENDCLASS.