Files
abap-llm/tasks_gen/eval/G0026/reference/rent_price.func.abap
Kral 32f03fcad4 Hard batch G0022-G0026: 5/5 accepted; budget floor, CDS checks, mutation check
- generator: budget floor (2x oracle activations, 3x calls), static checks for CDS
  $parameters and UNION annotation
- harness/mutation.py: deterministic mutants of the reference; hidden tests must fail
- G0022 revalidated with harness fixes: oracle 100, null 0
- results in docs/faz1-tasarim.md 11f

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 05:16:30 +02:00

44 lines
1.2 KiB
ABAP

FUNCTION {{p}}rent_price
IMPORTING
iv_vehicle_class TYPE string
iv_minutes TYPE i
iv_km TYPE i
iv_member TYPE abap_bool
iv_weekend TYPE abap_bool
EXPORTING
ev_time_fee TYPE decfloat34
ev_distance_fee TYPE decfloat34
ev_surcharge TYPE decfloat34
ev_discount TYPE decfloat34
ev_total TYPE decfloat34
EXCEPTIONS
invalid_duration
invalid_distance
invalid_class.
DATA ls_request TYPE {{p}}cl_rent=>ty_request.
ls_request-vehicle_class = iv_vehicle_class.
ls_request-minutes = iv_minutes.
ls_request-km = iv_km.
ls_request-member = iv_member.
ls_request-weekend = iv_weekend.
DATA(ls_result) = {{p}}cl_rent=>calculate( ls_request ).
CASE ls_result-err_code.
WHEN {{p}}cl_rent=>c_err-duration.
RAISE invalid_duration.
WHEN {{p}}cl_rent=>c_err-distance.
RAISE invalid_distance.
WHEN {{p}}cl_rent=>c_err-bad_class.
RAISE invalid_class.
WHEN OTHERS.
ev_time_fee = ls_result-time_fee.
ev_distance_fee = ls_result-distance_fee.
ev_surcharge = ls_result-surcharge.
ev_discount = ls_result-discount.
ev_total = ls_result-total.
ENDCASE.
ENDFUNCTION.