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,161 @@
CLASS {{p}}d01_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}care_visit_checker.
METHODS setup.
METHODS accepts_valid_visit FOR TESTING.
METHODS accepts_touching_visits FOR TESTING.
METHODS rejects_empty_visit_id FOR TESTING.
METHODS rejects_empty_client FOR TESTING.
METHODS rejects_empty_carer FOR TESTING.
METHODS rejects_early_start FOR TESTING.
METHODS rejects_late_end FOR TESTING.
METHODS rejects_bad_duration FOR TESTING.
METHODS rejects_too_long FOR TESTING.
METHODS rejects_carer_overlap FOR TESTING.
METHODS rejects_client_overlap FOR TESTING.
METHODS carer_overlap_first FOR TESTING.
METHODS expect_reason
IMPORTING is_visit TYPE {{p}}care_visit_checker=>ty_visit
it_plan TYPE {{p}}care_visit_checker=>tt_visit
iv_reason TYPE {{p}}if_care_reason=>ty_reason.
ENDCLASS.
CLASS {{p}}d01_hidden IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}care_visit_checker( ).
ENDMETHOD.
METHOD accepts_valid_visit.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 9 end_hour = 11 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
TRY.
mo_cut->check_visit( is_visit = ls_visit it_plan = lt_plan ).
CATCH {{p}}cx_care_visit INTO DATA(lx).
cl_abap_unit_assert=>fail( msg = |unexpected reason { lx->mv_reason }| ).
ENDTRY.
ENDMETHOD.
METHOD accepts_touching_visits.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V2' client_id = 'K1' carer_id = 'C1' start_hour = 9 end_hour = 11 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit(
( visit_id = 'P1' client_id = 'K9' carer_id = 'C1' start_hour = 7 end_hour = 9 ) ).
TRY.
mo_cut->check_visit( is_visit = ls_visit it_plan = lt_plan ).
CATCH {{p}}cx_care_visit INTO DATA(lx).
cl_abap_unit_assert=>fail( msg = |unexpected reason { lx->mv_reason }| ).
ENDTRY.
ENDMETHOD.
METHOD rejects_empty_visit_id.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = '' client_id = '' carer_id = 'C1' start_hour = 9 end_hour = 11 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-no_visit_id ).
ENDMETHOD.
METHOD rejects_empty_client.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = '' carer_id = 'C1' start_hour = 9 end_hour = 11 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
TRY.
mo_cut->check_visit( is_visit = ls_visit it_plan = lt_plan ).
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
CATCH {{p}}cx_care_visit INTO DATA(lx).
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_care_reason=>c_reason-no_client
act = lx->mv_reason ).
cl_abap_unit_assert=>assert_equals( exp = 'V1' act = lx->mv_visit_id ).
ENDTRY.
ENDMETHOD.
METHOD rejects_empty_carer.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = '' start_hour = 9 end_hour = 11 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-no_carer ).
ENDMETHOD.
METHOD rejects_early_start.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 6 end_hour = 8 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-outside_hours ).
ENDMETHOD.
METHOD rejects_late_end.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 21 end_hour = 21 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-outside_hours ).
ENDMETHOD.
METHOD rejects_bad_duration.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 9 end_hour = 9 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-bad_duration ).
ENDMETHOD.
METHOD rejects_too_long.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 8 end_hour = 13 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit( ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-too_long ).
ENDMETHOD.
METHOD rejects_carer_overlap.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 11 end_hour = 13 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit(
( visit_id = 'P1' client_id = 'K9' carer_id = 'C1' start_hour = 10 end_hour = 12 ) ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-carer_overlap ).
ENDMETHOD.
METHOD rejects_client_overlap.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 11 end_hour = 13 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit(
( visit_id = 'P1' client_id = 'K1' carer_id = 'C9' start_hour = 10 end_hour = 12 ) ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-client_overlap ).
ENDMETHOD.
METHOD carer_overlap_first.
DATA(ls_visit) = VALUE {{p}}care_visit_checker=>ty_visit(
visit_id = 'V1' client_id = 'K1' carer_id = 'C1' start_hour = 11 end_hour = 13 ).
DATA(lt_plan) = VALUE {{p}}care_visit_checker=>tt_visit(
( visit_id = 'P1' client_id = 'K1' carer_id = 'C1' start_hour = 10 end_hour = 12 ) ).
expect_reason( is_visit = ls_visit
it_plan = lt_plan
iv_reason = {{p}}if_care_reason=>c_reason-carer_overlap ).
ENDMETHOD.
METHOD expect_reason.
TRY.
mo_cut->check_visit( is_visit = is_visit it_plan = it_plan ).
cl_abap_unit_assert=>fail( msg = 'exception expected' ).
CATCH {{p}}cx_care_visit INTO DATA(lx).
cl_abap_unit_assert=>assert_equals( exp = iv_reason act = lx->mv_reason ).
ENDTRY.
ENDMETHOD.
ENDCLASS.