Fix coverage with several contract classes; table annotation and file path checks; clean task dir on write

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 08:44:35 +02:00
parent fb576b0954
commit 03ab36149e
388 changed files with 28620 additions and 339 deletions

View File

@@ -0,0 +1,138 @@
CLASS {{p}}t41_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS call_score
IMPORTING iv_years TYPE i iv_degree TYPE string iv_match TYPE i
EXPORTING ev_score TYPE i ev_rating TYPE string ev_subrc TYPE sysubrc.
METHODS class_experience_points FOR TESTING.
METHODS class_education_points FOR TESTING.
METHODS class_skill_rounding FOR TESTING.
METHODS class_rating_limits FOR TESTING.
METHODS class_invalid_years FOR TESTING.
METHODS class_invalid_match FOR TESTING.
METHODS class_invalid_degree FOR TESTING.
METHODS func_returns_result FOR TESTING.
METHODS func_raises_years FOR TESTING.
METHODS func_raises_match FOR TESTING.
METHODS func_raises_degree FOR TESTING.
ENDCLASS.
CLASS {{p}}t41_hidden IMPLEMENTATION.
METHOD call_score.
CLEAR: ev_score, ev_rating.
CALL FUNCTION '{{P}}APPL_SCORE'
EXPORTING
iv_years = iv_years
iv_degree = iv_degree
iv_match = iv_match
IMPORTING
ev_score = ev_score
ev_rating = ev_rating
EXCEPTIONS
invalid_years = 1
invalid_match = 2
invalid_degree = 3
OTHERS = 4.
ev_subrc = sy-subrc.
ENDMETHOD.
METHOD class_experience_points.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_two) = lo_scorer->evaluate( iv_years = 2 iv_degree = 'VOC' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 26 act = ls_two-score ).
DATA(ls_cap) = lo_scorer->evaluate( iv_years = 9 iv_degree = 'VOC' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 50 act = ls_cap-score ).
ENDMETHOD.
METHOD class_education_points.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_phd) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'PHD' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 30 act = ls_phd-score ).
DATA(ls_mas) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'MAS' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 25 act = ls_mas-score ).
DATA(ls_bac) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'BAC' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 20 act = ls_bac-score ).
DATA(ls_voc) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'VOC' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = ls_voc-score ).
ENDMETHOD.
METHOD class_skill_rounding.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_full) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'VOC' iv_match = 100 ).
cl_abap_unit_assert=>assert_equals( exp = 40 act = ls_full-score ).
DATA(ls_half) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'VOC' iv_match = 35 ).
cl_abap_unit_assert=>assert_equals( exp = 21 act = ls_half-score ).
DATA(ls_down) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'VOC' iv_match = 33 ).
cl_abap_unit_assert=>assert_equals( exp = 20 act = ls_down-score ).
DATA(ls_low) = lo_scorer->evaluate( iv_years = 0 iv_degree = 'VOC' iv_match = 1 ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = ls_low-score ).
ENDMETHOD.
METHOD class_rating_limits.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_invite) = lo_scorer->evaluate( iv_years = 5 iv_degree = 'MAS' iv_match = 33 ).
cl_abap_unit_assert=>assert_equals( exp = 75 act = ls_invite-score ).
cl_abap_unit_assert=>assert_equals( exp = 'INVITE' act = ls_invite-rating ).
DATA(ls_review) = lo_scorer->evaluate( iv_years = 5 iv_degree = 'MAS' iv_match = 30 ).
cl_abap_unit_assert=>assert_equals( exp = 74 act = ls_review-score ).
cl_abap_unit_assert=>assert_equals( exp = 'REVIEW' act = ls_review-rating ).
DATA(ls_edge) = lo_scorer->evaluate( iv_years = 5 iv_degree = 'VOC' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 50 act = ls_edge-score ).
cl_abap_unit_assert=>assert_equals( exp = 'REVIEW' act = ls_edge-rating ).
DATA(ls_low) = lo_scorer->evaluate( iv_years = 3 iv_degree = 'MAS' iv_match = 0 ).
cl_abap_unit_assert=>assert_equals( exp = 49 act = ls_low-score ).
cl_abap_unit_assert=>assert_equals( exp = 'REJECT' act = ls_low-rating ).
ENDMETHOD.
METHOD class_invalid_years.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_result) = lo_scorer->evaluate( iv_years = -1 iv_degree = 'PHD' iv_match = 100 ).
cl_abap_unit_assert=>assert_equals( exp = 'YEAR' act = ls_result-status ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_result-score ).
cl_abap_unit_assert=>assert_initial( act = ls_result-rating ).
ENDMETHOD.
METHOD class_invalid_match.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_high) = lo_scorer->evaluate( iv_years = 1 iv_degree = 'PHD' iv_match = 101 ).
cl_abap_unit_assert=>assert_equals( exp = 'MATC' act = ls_high-status ).
DATA(ls_low) = lo_scorer->evaluate( iv_years = 1 iv_degree = 'PHD' iv_match = -1 ).
cl_abap_unit_assert=>assert_equals( exp = 'MATC' act = ls_low-status ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_low-score ).
ENDMETHOD.
METHOD class_invalid_degree.
DATA(lo_scorer) = NEW {{p}}app_scorer( ).
DATA(ls_result) = lo_scorer->evaluate( iv_years = 1 iv_degree = 'XYZ' iv_match = 50 ).
cl_abap_unit_assert=>assert_equals( exp = 'DEGR' act = ls_result-status ).
cl_abap_unit_assert=>assert_initial( act = ls_result-rating ).
ENDMETHOD.
METHOD func_returns_result.
call_score( EXPORTING iv_years = 5 iv_degree = 'PHD' iv_match = 100
IMPORTING ev_score = DATA(lv_score) ev_rating = DATA(lv_rating) ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
cl_abap_unit_assert=>assert_equals( exp = 100 act = lv_score ).
cl_abap_unit_assert=>assert_equals( exp = 'INVITE' act = lv_rating ).
ENDMETHOD.
METHOD func_raises_years.
call_score( EXPORTING iv_years = -3 iv_degree = 'PHD' iv_match = 100
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
ENDMETHOD.
METHOD func_raises_match.
call_score( EXPORTING iv_years = 5 iv_degree = 'PHD' iv_match = 200
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rc ).
ENDMETHOD.
METHOD func_raises_degree.
call_score( EXPORTING iv_years = 5 iv_degree = 'ABC' iv_match = 100
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_rc ).
ENDMETHOD.
ENDCLASS.