Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
36
tasks_gen/train/G1139/reference/loan_check.func.abap
Normal file
36
tasks_gen/train/G1139/reference/loan_check.func.abap
Normal file
@@ -0,0 +1,36 @@
|
||||
FUNCTION {{p}}loan_check
|
||||
IMPORTING
|
||||
iv_fragile TYPE abap_bool
|
||||
iv_insured TYPE abap_bool
|
||||
iv_days TYPE i
|
||||
EXPORTING
|
||||
ev_approved TYPE abap_bool
|
||||
ev_reason TYPE string
|
||||
EXCEPTIONS
|
||||
invalid_days.
|
||||
|
||||
IF iv_days < 1.
|
||||
RAISE invalid_days.
|
||||
ENDIF.
|
||||
|
||||
IF iv_days > 90.
|
||||
ev_approved = abap_false.
|
||||
ev_reason = 'TOO_LONG'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
" Open point: rules 3 and 4 give opposite priority to the insurance rule and
|
||||
" the fragility rule for an insured fragile exhibit. This reference applies
|
||||
" rule 3 (the insurance rule first).
|
||||
IF iv_insured = abap_true.
|
||||
ev_approved = abap_true.
|
||||
ev_reason = 'INSURED'.
|
||||
ELSEIF iv_fragile = abap_true.
|
||||
ev_approved = abap_false.
|
||||
ev_reason = 'FRAGILE'.
|
||||
ELSE.
|
||||
ev_approved = abap_true.
|
||||
ev_reason = 'OK'.
|
||||
ENDIF.
|
||||
|
||||
ENDFUNCTION.
|
||||
91
tasks_gen/train/G1139/reference/loan_test.clas.abap
Normal file
91
tasks_gen/train/G1139/reference/loan_test.clas.abap
Normal file
@@ -0,0 +1,91 @@
|
||||
CLASS {{p}}loan_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS check
|
||||
IMPORTING
|
||||
iv_fragile TYPE abap_bool
|
||||
iv_insured TYPE abap_bool
|
||||
iv_days TYPE i
|
||||
EXPORTING
|
||||
ev_approved TYPE abap_bool
|
||||
ev_reason TYPE string
|
||||
ev_subrc TYPE sysubrc.
|
||||
METHODS invalid_days FOR TESTING.
|
||||
METHODS too_long FOR TESTING.
|
||||
METHODS insured_approved FOR TESTING.
|
||||
METHODS fragile_rejected FOR TESTING.
|
||||
METHODS plain_approved FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}loan_test IMPLEMENTATION.
|
||||
METHOD check.
|
||||
CALL FUNCTION '{{P}}LOAN_CHECK'
|
||||
EXPORTING
|
||||
iv_fragile = iv_fragile
|
||||
iv_insured = iv_insured
|
||||
iv_days = iv_days
|
||||
IMPORTING
|
||||
ev_approved = ev_approved
|
||||
ev_reason = ev_reason
|
||||
EXCEPTIONS
|
||||
invalid_days = 1
|
||||
OTHERS = 2.
|
||||
ev_subrc = sy-subrc.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_days.
|
||||
check(
|
||||
EXPORTING
|
||||
iv_days = 0
|
||||
IMPORTING
|
||||
ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD too_long.
|
||||
check(
|
||||
EXPORTING
|
||||
iv_days = 100
|
||||
IMPORTING
|
||||
ev_approved = DATA(lv_approved)
|
||||
ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_false( lv_approved ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `TOO_LONG` act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD insured_approved.
|
||||
check(
|
||||
EXPORTING
|
||||
iv_insured = abap_true
|
||||
iv_days = 30
|
||||
IMPORTING
|
||||
ev_approved = DATA(lv_approved)
|
||||
ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_true( lv_approved ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `INSURED` act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD fragile_rejected.
|
||||
check(
|
||||
EXPORTING
|
||||
iv_fragile = abap_true
|
||||
iv_days = 30
|
||||
IMPORTING
|
||||
ev_approved = DATA(lv_approved)
|
||||
ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_false( lv_approved ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `FRAGILE` act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD plain_approved.
|
||||
check(
|
||||
EXPORTING
|
||||
iv_days = 30
|
||||
IMPORTING
|
||||
ev_approved = DATA(lv_approved)
|
||||
ev_reason = DATA(lv_reason) ).
|
||||
cl_abap_unit_assert=>assert_true( lv_approved ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `OK` act = lv_reason ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user