Files
abap-llm/tasks_gen/train/G1953/reference/piano_tuning_test.clas.abap
2026-10-05 22:08:59 +02:00

111 lines
4.2 KiB
ABAP

CLASS {{p}}piano_tuning_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PUBLIC SECTION.
INTERFACES {{p}}if_piano_tuning.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}if_piano_tuning.
METHODS setup.
METHODS code_values FOR TESTING.
METHODS number_values FOR TESTING.
METHODS type_lengths FOR TESTING.
METHODS visit_structure FOR TESTING.
METHODS methods_are_callable FOR TESTING.
ENDCLASS.
CLASS {{p}}piano_tuning_test IMPLEMENTATION.
METHOD {{p}}if_piano_tuning~check_visit.
rv_code = {{p}}if_piano_tuning=>c_code-ok.
ENDMETHOD.
METHOD {{p}}if_piano_tuning~check_visits.
rv_code = {{p}}if_piano_tuning=>c_code-ok.
ENDMETHOD.
METHOD {{p}}if_piano_tuning~summarise.
rs_summary = VALUE #( accepted = lines( it_visits )
first_code = {{p}}if_piano_tuning=>c_code-ok ).
ENDMETHOD.
METHOD {{p}}if_piano_tuning~count_blocked.
ev_count = lines( it_visits ).
ev_code = {{p}}if_piano_tuning=>c_code-ok.
ENDMETHOD.
METHOD {{p}}if_piano_tuning~is_tuning_model.
rv_tuning = abap_true.
ENDMETHOD.
METHOD setup.
mo_cut = me.
ENDMETHOD.
METHOD code_values.
cl_abap_unit_assert=>assert_equals( exp = 'OK' act = {{p}}if_piano_tuning=>c_code-ok ).
cl_abap_unit_assert=>assert_equals( exp = 'NO_VISIT' act = {{p}}if_piano_tuning=>c_code-no_visit ).
cl_abap_unit_assert=>assert_equals( exp = 'MODEL' act = {{p}}if_piano_tuning=>c_code-model ).
cl_abap_unit_assert=>assert_equals( exp = 'PITCH' act = {{p}}if_piano_tuning=>c_code-pitch ).
cl_abap_unit_assert=>assert_equals( exp = 'DISTANCE' act = {{p}}if_piano_tuning=>c_code-distance ).
cl_abap_unit_assert=>assert_equals( exp = 'COUNT' act = {{p}}if_piano_tuning=>c_code-too_many ).
ENDMETHOD.
METHOD number_values.
cl_abap_unit_assert=>assert_equals( exp = 25 act = {{p}}if_piano_tuning=>c_max_pitch ).
cl_abap_unit_assert=>assert_equals( exp = 60 act = {{p}}if_piano_tuning=>c_max_distance ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = {{p}}if_piano_tuning=>c_max_pianos ).
ENDMETHOD.
METHOD type_lengths.
DATA lv_code TYPE {{p}}if_piano_tuning=>ty_code.
DATA lv_model TYPE {{p}}if_piano_tuning=>ty_model.
DATA lv_visit_id TYPE {{p}}if_piano_tuning=>ty_visit_id.
cl_abap_unit_assert=>assert_equals(
exp = 10
act = cl_abap_typedescr=>describe_by_data( lv_code )->length ).
cl_abap_unit_assert=>assert_equals(
exp = 4
act = cl_abap_typedescr=>describe_by_data( lv_model )->length ).
cl_abap_unit_assert=>assert_equals(
exp = 8
act = cl_abap_typedescr=>describe_by_data( lv_visit_id )->length ).
ENDMETHOD.
METHOD visit_structure.
DATA ls_visit TYPE {{p}}if_piano_tuning=>ty_visit.
DATA lt_visits TYPE {{p}}if_piano_tuning=>tt_visits.
ls_visit-visit_id = 'V-000010'.
ls_visit-model = 'UPRI'.
ls_visit-pitch_dev = 12.
ls_visit-distance_km = 30.
ls_visit-piano_count = 2.
INSERT ls_visit INTO TABLE lt_visits.
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_visits ) ).
ENDMETHOD.
METHOD methods_are_callable.
DATA ls_visit TYPE {{p}}if_piano_tuning=>ty_visit.
DATA lt_visits TYPE {{p}}if_piano_tuning=>tt_visits.
DATA ls_summary TYPE {{p}}if_piano_tuning=>ty_summary.
DATA lv_count TYPE i.
DATA lv_code TYPE {{p}}if_piano_tuning=>ty_code.
DATA lv_model TYPE {{p}}if_piano_tuning=>ty_model.
lv_model = 'UPRI'.
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_piano_tuning=>c_code-ok
act = mo_cut->check_visit( ls_visit ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_piano_tuning=>c_code-ok
act = mo_cut->check_visits( lt_visits ) ).
ls_summary = mo_cut->summarise( lt_visits ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_summary-accepted ).
mo_cut->count_blocked(
EXPORTING it_visits = lt_visits
IMPORTING ev_count = lv_count
ev_code = lv_code ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
cl_abap_unit_assert=>assert_equals(
exp = abap_true
act = mo_cut->is_tuning_model( lv_model ) ).
ENDMETHOD.
ENDCLASS.