Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
71
tasks_gen/eval/G0136/seed/kennel_pricer.clas.abap
Normal file
71
tasks_gen/eval/G0136/seed/kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,71 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
DATA: lv_rate TYPE i,
|
||||
lv_total TYPE p LENGTH 8 DECIMALS 2,
|
||||
lv_discount TYPE i.
|
||||
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = 'DOG'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 2500 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 2500.
|
||||
ENDIF.
|
||||
ELSEIF iv_pet_type = 'CAT'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 1800 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 1800.
|
||||
ENDIF.
|
||||
ELSEIF iv_pet_type = 'RABB'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 800 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 800.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 2000 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 2000.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
CLEAR lv_total.
|
||||
DO iv_nights TIMES.
|
||||
lv_total = lv_total + lv_rate.
|
||||
ENDDO.
|
||||
|
||||
IF iv_nights >= 7.
|
||||
lv_discount = lv_rate * 10 DIV 100.
|
||||
lv_total = lv_total - lv_discount * iv_nights.
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = 'CAT' AND iv_high_season = 'X'.
|
||||
lv_total = lv_total - 500.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = 'X'.
|
||||
lv_total = lv_total + 1500.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_total / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user