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:
175
tasks_gen/eval/G0119/hidden/t02_hidden.clas.abap
Normal file
175
tasks_gen/eval/G0119/hidden/t02_hidden.clas.abap
Normal file
@@ -0,0 +1,175 @@
|
||||
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
ty_mechanic TYPE c LENGTH 8,
|
||||
ty_date TYPE c LENGTH 8.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}workload_planner.
|
||||
|
||||
METHODS setup.
|
||||
METHODS empty_input FOR TESTING.
|
||||
METHODS single_job FOR TESTING.
|
||||
METHODS same_mechanic_aggregated FOR TESTING.
|
||||
METHODS different_mechanics_sorted FOR TESTING.
|
||||
METHODS non_positive_hours_ignored FOR TESTING.
|
||||
METHODS empty_mechanic_ignored FOR TESTING.
|
||||
METHODS empty_job_id_ignored FOR TESTING.
|
||||
METHODS earliest_date_wins FOR TESTING.
|
||||
METHODS unset_dates_ignored FOR TESTING.
|
||||
METHODS all_dates_unset FOR TESTING.
|
||||
METHODS all_jobs_invalid FOR TESTING.
|
||||
|
||||
METHODS add_job
|
||||
IMPORTING iv_mechanic TYPE ty_mechanic
|
||||
iv_hours TYPE i
|
||||
iv_date TYPE ty_date
|
||||
CHANGING ct_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t02_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}workload_planner( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add_job.
|
||||
DATA lv_id TYPE c LENGTH 10.
|
||||
lv_id = lines( ct_jobs ) + 1.
|
||||
INSERT VALUE #( job_id = lv_id
|
||||
mechanic = iv_mechanic
|
||||
work_hours = iv_hours
|
||||
start_date = iv_date )
|
||||
INTO TABLE ct_jobs.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_input.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
cl_abap_unit_assert=>assert_initial( act = mo_cut->summarize( it_jobs = lt_jobs ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD single_job.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'M1' act = lt_result[ 1 ]-mechanic ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-job_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lt_result[ 1 ]-total_hours ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '20250110' act = lt_result[ 1 ]-first_date ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD same_mechanic_aggregated.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 6 iv_date = '20250112'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-job_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 10 act = lt_result[ 1 ]-total_hours ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '20250110' act = lt_result[ 1 ]-first_date ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD different_mechanics_sorted.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M3' iv_hours = 2 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 3 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M2' iv_hours = 5 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'M1' act = lt_result[ 1 ]-mechanic ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'M2' act = lt_result[ 2 ]-mechanic ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'M3' act = lt_result[ 3 ]-mechanic ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD non_positive_hours_ignored.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 0 iv_date = '20250111'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = -3 iv_date = '20250112'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-job_count ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lt_result[ 1 ]-total_hours ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_mechanic_ignored.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
DATA lv_empty TYPE ty_mechanic.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = lv_empty iv_hours = 7 iv_date = '20250111'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lt_result[ 1 ]-total_hours ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD empty_job_id_ignored.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
INSERT VALUE #( mechanic = 'M1'
|
||||
work_hours = 7
|
||||
start_date = '20250111' )
|
||||
INTO TABLE lt_jobs.
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lt_result[ 1 ]-total_hours ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD earliest_date_wins.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '20250120'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '20250105'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '20250115'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '20250105' act = lt_result[ 1 ]-first_date ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unset_dates_ignored.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
DATA lv_unset TYPE ty_date.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = lv_unset
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '00000000'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '20250115'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = '20250115' act = lt_result[ 1 ]-first_date ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD all_dates_unset.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 1 iv_date = '00000000'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 2 iv_date = '00000000'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
DATA(lt_result) = mo_cut->summarize( it_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
||||
cl_abap_unit_assert=>assert_initial( act = lt_result[ 1 ]-first_date ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD all_jobs_invalid.
|
||||
DATA lt_jobs TYPE {{p}}workload_planner=>tt_job.
|
||||
DATA lv_empty TYPE ty_mechanic.
|
||||
add_job( EXPORTING iv_mechanic = lv_empty iv_hours = 4 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
add_job( EXPORTING iv_mechanic = 'M1' iv_hours = 0 iv_date = '20250110'
|
||||
CHANGING ct_jobs = lt_jobs ).
|
||||
cl_abap_unit_assert=>assert_initial( act = mo_cut->summarize( it_jobs = lt_jobs ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user