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:
7
tasks_gen/eval/G0131/reference/cx_fee_unpaid.clas.abap
Normal file
7
tasks_gen/eval/G0131/reference/cx_fee_unpaid.clas.abap
Normal file
@@ -0,0 +1,7 @@
|
||||
CLASS {{p}}cx_fee_unpaid DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
|
||||
PUBLIC SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_fee_unpaid IMPLEMENTATION.
|
||||
ENDCLASS.
|
||||
14
tasks_gen/eval/G0131/reference/cx_lessons_missing.clas.abap
Normal file
14
tasks_gen/eval/G0131/reference/cx_lessons_missing.clas.abap
Normal file
@@ -0,0 +1,14 @@
|
||||
CLASS {{p}}cx_lessons_missing DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
|
||||
PUBLIC SECTION.
|
||||
DATA mv_missing TYPE i READ-ONLY.
|
||||
METHODS constructor
|
||||
IMPORTING iv_missing TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_lessons_missing IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
super->constructor( ).
|
||||
mv_missing = iv_missing.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,7 @@
|
||||
CLASS {{p}}cx_pupil_unknown DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
|
||||
PUBLIC SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_pupil_unknown IMPLEMENTATION.
|
||||
ENDCLASS.
|
||||
14
tasks_gen/eval/G0131/reference/cx_recent_failure.clas.abap
Normal file
14
tasks_gen/eval/G0131/reference/cx_recent_failure.clas.abap
Normal file
@@ -0,0 +1,14 @@
|
||||
CLASS {{p}}cx_recent_failure DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
|
||||
PUBLIC SECTION.
|
||||
DATA mv_days_left TYPE i READ-ONLY.
|
||||
METHODS constructor
|
||||
IMPORTING iv_days_left TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_recent_failure IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
super->constructor( ).
|
||||
mv_days_left = iv_days_left.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,7 @@
|
||||
CLASS {{p}}cx_theory_missing DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
|
||||
PUBLIC SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}cx_theory_missing IMPLEMENTATION.
|
||||
ENDCLASS.
|
||||
71
tasks_gen/eval/G0131/reference/driving_test_check.clas.abap
Normal file
71
tasks_gen/eval/G0131/reference/driving_test_check.clas.abap
Normal file
@@ -0,0 +1,71 @@
|
||||
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pupil_id TYPE c LENGTH 10.
|
||||
TYPES ty_date TYPE d.
|
||||
|
||||
METHODS check
|
||||
IMPORTING iv_pupil_id TYPE ty_pupil_id
|
||||
iv_test_date TYPE ty_date
|
||||
RAISING {{p}}cx_pupil_unknown
|
||||
{{p}}cx_theory_missing
|
||||
{{p}}cx_lessons_missing
|
||||
{{p}}cx_fee_unpaid
|
||||
{{p}}cx_recent_failure.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS c_min_lessons TYPE i VALUE 12.
|
||||
CONSTANTS c_wait_days TYPE i VALUE 14.
|
||||
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
|
||||
|
||||
TYPES: BEGIN OF ty_pupil,
|
||||
pupil_id TYPE {{p}}pupil-pupil_id,
|
||||
theory_done TYPE {{p}}pupil-theory_done,
|
||||
lessons_done TYPE {{p}}pupil-lessons_done,
|
||||
fee_paid TYPE {{p}}pupil-fee_paid,
|
||||
last_failed TYPE {{p}}pupil-last_failed,
|
||||
END OF ty_pupil.
|
||||
|
||||
METHODS read_pupil
|
||||
IMPORTING iv_pupil_id TYPE ty_pupil_id
|
||||
RETURNING VALUE(rs_pupil) TYPE ty_pupil
|
||||
RAISING {{p}}cx_pupil_unknown.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}driving_test_check IMPLEMENTATION.
|
||||
METHOD check.
|
||||
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
|
||||
|
||||
IF ls_pupil-theory_done <> c_done.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
|
||||
ENDIF.
|
||||
|
||||
IF ls_pupil-lessons_done < c_min_lessons.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
|
||||
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
|
||||
ENDIF.
|
||||
|
||||
IF ls_pupil-fee_paid <> c_done.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
|
||||
ENDIF.
|
||||
|
||||
IF ls_pupil-last_failed IS NOT INITIAL.
|
||||
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
|
||||
IF lv_days < c_wait_days.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
|
||||
EXPORTING iv_days_left = c_wait_days - lv_days.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_pupil.
|
||||
SELECT SINGLE
|
||||
FROM {{p}}pupil
|
||||
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
|
||||
WHERE pupil_id = @iv_pupil_id
|
||||
INTO CORRESPONDING FIELDS OF @rs_pupil.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,117 @@
|
||||
CLASS ltc_driving_test_check DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}driving_test_check.
|
||||
DATA mo_env TYPE REF TO if_osql_test_environment.
|
||||
METHODS setup.
|
||||
METHODS teardown.
|
||||
METHODS add_pupil
|
||||
IMPORTING iv_id TYPE string
|
||||
iv_theory TYPE abap_bool
|
||||
iv_lessons TYPE i
|
||||
iv_fee TYPE abap_bool
|
||||
iv_last_failed TYPE d.
|
||||
METHODS ready_pupil_passes FOR TESTING.
|
||||
METHODS unknown_pupil_raises FOR TESTING.
|
||||
METHODS missing_theory_raises FOR TESTING.
|
||||
METHODS few_lessons_raise FOR TESTING.
|
||||
METHODS unpaid_fee_raises FOR TESTING.
|
||||
METHODS recent_failure_raises FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltc_driving_test_check IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_env = cl_osql_test_environment=>create( VALUE #( ( '{{P}}PUPIL' ) ) ).
|
||||
mo_cut = NEW {{p}}driving_test_check( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD teardown.
|
||||
mo_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add_pupil.
|
||||
DATA ls_pupil TYPE {{p}}pupil.
|
||||
ls_pupil-client = sy-mandt.
|
||||
ls_pupil-pupil_id = iv_id.
|
||||
ls_pupil-pupil_name = iv_id.
|
||||
IF iv_theory = abap_true.
|
||||
ls_pupil-theory_done = 'X'.
|
||||
ENDIF.
|
||||
ls_pupil-lessons_done = iv_lessons.
|
||||
IF iv_fee = abap_true.
|
||||
ls_pupil-fee_paid = 'X'.
|
||||
ENDIF.
|
||||
ls_pupil-last_failed = iv_last_failed.
|
||||
INSERT {{p}}pupil FROM @ls_pupil.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD ready_pupil_passes.
|
||||
add_pupil( iv_id = 'P001' iv_theory = abap_true iv_lessons = 20
|
||||
iv_fee = abap_true iv_last_failed = '00000000' ).
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P001' iv_test_date = '20250201' ).
|
||||
CATCH cx_root INTO DATA(lx_error).
|
||||
cl_abap_unit_assert=>fail( msg = lx_error->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_pupil_raises.
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P999' iv_test_date = '20250201' ).
|
||||
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
|
||||
CATCH {{p}}cx_pupil_unknown.
|
||||
CATCH cx_root INTO DATA(lx_wrong).
|
||||
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD missing_theory_raises.
|
||||
add_pupil( iv_id = 'P002' iv_theory = abap_false iv_lessons = 20
|
||||
iv_fee = abap_true iv_last_failed = '00000000' ).
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P002' iv_test_date = '20250201' ).
|
||||
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
|
||||
CATCH {{p}}cx_theory_missing.
|
||||
CATCH cx_root INTO DATA(lx_wrong).
|
||||
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD few_lessons_raise.
|
||||
add_pupil( iv_id = 'P003' iv_theory = abap_true iv_lessons = 9
|
||||
iv_fee = abap_true iv_last_failed = '00000000' ).
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P003' iv_test_date = '20250201' ).
|
||||
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
|
||||
CATCH {{p}}cx_lessons_missing INTO DATA(lx_lessons).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lx_lessons->mv_missing ).
|
||||
CATCH cx_root INTO DATA(lx_wrong).
|
||||
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unpaid_fee_raises.
|
||||
add_pupil( iv_id = 'P004' iv_theory = abap_true iv_lessons = 20
|
||||
iv_fee = abap_false iv_last_failed = '00000000' ).
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P004' iv_test_date = '20250201' ).
|
||||
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
|
||||
CATCH {{p}}cx_fee_unpaid.
|
||||
CATCH cx_root INTO DATA(lx_wrong).
|
||||
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD recent_failure_raises.
|
||||
add_pupil( iv_id = 'P005' iv_theory = abap_true iv_lessons = 20
|
||||
iv_fee = abap_true iv_last_failed = '20250127' ).
|
||||
TRY.
|
||||
mo_cut->check( iv_pupil_id = 'P005' iv_test_date = '20250201' ).
|
||||
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
|
||||
CATCH {{p}}cx_recent_failure INTO DATA(lx_recent).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 9 act = lx_recent->mv_days_left ).
|
||||
CATCH cx_root INTO DATA(lx_wrong).
|
||||
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user