Stage 2 summary at 50 accepted trajectories

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 18:02:52 +02:00
parent 332fb4601d
commit 5bcd1bf9cd
1230 changed files with 77563 additions and 33 deletions

View File

@@ -0,0 +1,43 @@
FUNCTION {{p}}kennel_fee
IMPORTING
iv_pet_type TYPE string
iv_nights TYPE i
iv_peak TYPE abap_bool
EXPORTING
ev_deposit TYPE decfloat34
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_nights.
DATA lv_rate TYPE decfloat34.
ev_deposit = 0.
cv_fee = 0.
IF iv_nights < 1.
RAISE invalid_nights.
ENDIF.
CASE iv_pet_type.
WHEN 'DOG'.
lv_rate = '24.90'.
WHEN 'CAT'.
lv_rate = '17.90'.
WHEN 'RABBIT'.
lv_rate = '11.90'.
WHEN OTHERS.
RETURN.
ENDCASE.
cv_fee = lv_rate * iv_nights.
IF iv_peak = abap_true.
cv_fee = cv_fee * '1.2'.
ENDIF.
IF iv_nights >= 7.
cv_fee = cv_fee * '0.9'.
ENDIF.
cv_fee = round( val = cv_fee dec = 2 mode = cl_abap_math=>round_half_up ).
ev_deposit = round( val = cv_fee * '0.2' dec = 2 mode = cl_abap_math=>round_half_up ).
ENDFUNCTION.

View File

@@ -0,0 +1,61 @@
CLASS {{p}}t42_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS fee_for
IMPORTING iv_pet TYPE string iv_nights TYPE i iv_peak TYPE abap_bool
RETURNING VALUE(rv_fee) TYPE decfloat34.
METHODS dog_fee FOR TESTING.
METHODS long_stay FOR TESTING.
METHODS other_pet FOR TESTING.
METHODS invalid_nights FOR TESTING.
ENDCLASS.
CLASS {{p}}t42_test IMPLEMENTATION.
METHOD fee_for.
CALL FUNCTION '{{P}}KENNEL_FEE'
EXPORTING
iv_pet_type = iv_pet
iv_nights = iv_nights
iv_peak = iv_peak
CHANGING
cv_fee = rv_fee
EXCEPTIONS
invalid_nights = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
ENDMETHOD.
METHOD dog_fee.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '74.70' )
act = fee_for( iv_pet = `DOG` iv_nights = 3 iv_peak = abap_false ) ).
ENDMETHOD.
METHOD long_stay.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '156.87' )
act = fee_for( iv_pet = `DOG` iv_nights = 7 iv_peak = abap_false ) ).
ENDMETHOD.
METHOD other_pet.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 0 )
act = fee_for( iv_pet = `SNAKE` iv_nights = 4 iv_peak = abap_false ) ).
ENDMETHOD.
METHOD invalid_nights.
DATA lv_fee TYPE decfloat34.
CALL FUNCTION '{{P}}KENNEL_FEE'
EXPORTING
iv_pet_type = `DOG`
iv_nights = 0
iv_peak = abap_false
CHANGING
cv_fee = lv_fee
EXCEPTIONS
invalid_nights = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
ENDMETHOD.
ENDCLASS.