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,169 @@
CLASS {{p}}farrier_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS run_visit
IMPORTING iv_horses TYPE i
iv_km TYPE decfloat34
iv_new_shoes TYPE abap_bool
iv_contract TYPE abap_bool
EXPORTING ev_fee TYPE decfloat34
ev_weeks TYPE i
ev_reject TYPE abap_bool
ev_subrc TYPE sysubrc.
METHODS negative_horses FOR TESTING.
METHODS zero_horses_rejected FOR TESTING.
METHODS standard_visit FOR TESTING.
METHODS four_horses_standard FOR TESTING.
METHODS bulk_rate_from_fifth FOR TESTING.
METHODS new_shoes_charge FOR TESTING.
METHODS travel_minimum FOR TESTING.
METHODS travel_rounded_up FOR TESTING.
METHODS contract_discount FOR TESTING.
METHODS contract_and_shoes FOR TESTING.
ENDCLASS.
CLASS {{p}}farrier_hidden IMPLEMENTATION.
METHOD run_visit.
CALL FUNCTION '{{P}}FARRIER_FEE'
EXPORTING
iv_horses = iv_horses
iv_km = iv_km
iv_new_shoes = iv_new_shoes
iv_contract = iv_contract
IMPORTING
ev_fee = ev_fee
ev_weeks = ev_weeks
ev_reject = ev_reject
EXCEPTIONS
invalid_horses = 1
OTHERS = 2.
ev_subrc = sy-subrc.
ENDMETHOD.
METHOD negative_horses.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
run_visit( EXPORTING iv_horses = -1 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
ENDMETHOD.
METHOD zero_horses_rejected.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '0'.
run_visit( EXPORTING iv_horses = 0 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_true( lv_reject ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_weeks ).
ENDMETHOD.
METHOD standard_visit.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '100'.
run_visit( EXPORTING iv_horses = 2 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_false( lv_reject ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_weeks ).
ENDMETHOD.
METHOD four_horses_standard.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '190'.
run_visit( EXPORTING iv_horses = 4 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
ENDMETHOD.
METHOD bulk_rate_from_fifth.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '230'.
run_visit( EXPORTING iv_horses = 5 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_weeks ).
ENDMETHOD.
METHOD new_shoes_charge.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '160'.
run_visit( EXPORTING iv_horses = 2 iv_km = 10 iv_new_shoes = abap_true iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_weeks ).
ENDMETHOD.
METHOD travel_minimum.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '55'.
run_visit( EXPORTING iv_horses = 1 iv_km = 3 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
ENDMETHOD.
METHOD travel_rounded_up.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '61'.
run_visit( EXPORTING iv_horses = 1 iv_km = 26 iv_new_shoes = abap_false iv_contract = abap_false
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
ENDMETHOD.
METHOD contract_discount.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '88'.
run_visit( EXPORTING iv_horses = 2 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_true
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_weeks ).
ENDMETHOD.
METHOD contract_and_shoes.
DATA lv_fee TYPE decfloat34.
DATA lv_weeks TYPE i.
DATA lv_reject TYPE abap_bool.
DATA lv_subrc TYPE sysubrc.
DATA lv_expected TYPE decfloat34 VALUE '352'.
run_visit( EXPORTING iv_horses = 5 iv_km = 50 iv_new_shoes = abap_true iv_contract = abap_true
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_weeks ).
ENDMETHOD.
ENDCLASS.