Files
abap-llm/tasks_gen/train/G1935/hidden/t02_hidden.clas.abap
2026-10-05 22:08:59 +02:00

242 lines
9.6 KiB
ABAP

CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}if_mix_recipe.
METHODS setup.
METHODS constants_are_fixed FOR TESTING.
METHODS type_lengths_are_fixed FOR TESTING.
METHODS check_accepts_order FOR TESTING.
METHODS check_rejects_grade FOR TESTING.
METHODS check_rejects_volume FOR TESTING.
METHODS check_grade_before_volume FOR TESTING.
METHODS mix_without_surcharge FOR TESTING.
METHODS mix_with_surcharge FOR TESTING.
METHODS mix_at_min_volume FOR TESTING.
METHODS mix_grade_is_upper FOR TESTING.
METHODS mix_of_invalid_order FOR TESTING.
ENDCLASS.
CLASS ltc_mix DEFINITION FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_mix_recipe.
ENDCLASS.
CLASS ltc_mix IMPLEMENTATION.
ENDCLASS.
CLASS {{p}}t02_hidden IMPLEMENTATION.
METHOD setup.
mo_cut = NEW ltc_mix( ).
ENDMETHOD.
METHOD constants_are_fixed.
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_grade( 'C20' )
act = {{p}}if_mix_recipe=>c_grade-c20 ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_grade( 'C25' )
act = {{p}}if_mix_recipe=>c_grade-c25 ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_grade( 'C30' )
act = {{p}}if_mix_recipe=>c_grade-c30 ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_grade( 'C35' )
act = {{p}}if_mix_recipe=>c_grade-c35 ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_status( 'OK' )
act = {{p}}if_mix_recipe=>c_status-ok ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_status( 'GRADE' )
act = {{p}}if_mix_recipe=>c_status-grade ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_status( 'VOLUME' )
act = {{p}}if_mix_recipe=>c_status-volume ).
ENDMETHOD.
METHOD type_lengths_are_fixed.
DATA(lo_grade) = cl_abap_typedescr=>describe_by_name( '{{P}}IF_MIX_RECIPE=>TY_GRADE' ).
cl_abap_unit_assert=>assert_equals( exp = 4 act = lo_grade->length ).
DATA(lo_status) = cl_abap_typedescr=>describe_by_name( '{{P}}IF_MIX_RECIPE=>TY_STATUS' ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = lo_status->length ).
DATA(lo_qty) = cl_abap_typedescr=>describe_by_name( '{{P}}IF_MIX_RECIPE=>TY_QTY' ).
cl_abap_unit_assert=>assert_equals( exp = 8 act = lo_qty->length ).
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_qty ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lo_elem->decimals ).
ENDMETHOD.
METHOD check_accepts_order.
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-ok
act = mo_cut->check_order( iv_grade = 'C20' iv_volume = '2.50' ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-ok
act = mo_cut->check_order( iv_grade = 'c35' iv_volume = '20.00' ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-ok
act = mo_cut->check_order( iv_grade = 'C30' iv_volume = '0.50' ) ).
ENDMETHOD.
METHOD check_rejects_grade.
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-grade
act = mo_cut->check_order( iv_grade = 'C40' iv_volume = '5.00' ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-grade
act = mo_cut->check_order( iv_grade = ' ' iv_volume = '5.00' ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-grade
act = mo_cut->check_order( iv_grade = 'C2' iv_volume = '5.00' ) ).
ENDMETHOD.
METHOD check_rejects_volume.
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-volume
act = mo_cut->check_order( iv_grade = 'C20' iv_volume = '0.49' ) ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-volume
act = mo_cut->check_order( iv_grade = 'C20' iv_volume = '20.01' ) ).
ENDMETHOD.
METHOD check_grade_before_volume.
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_status-grade
act = mo_cut->check_order( iv_grade = 'C40' iv_volume = '0.10' ) ).
ENDMETHOD.
METHOD mix_without_surcharge.
DATA(ls_mix) = mo_cut->mix_for( iv_grade = 'C20' iv_volume = '2.50' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '700.00' )
act = ls_mix-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1800.00' )
act = ls_mix-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '2950.00' )
act = ls_mix-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '438.00' )
act = ls_mix-water_l ).
DATA(ls_large) = mo_cut->mix_for( iv_grade = 'C30' iv_volume = '5.00' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1800.00' )
act = ls_large-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '3400.00' )
act = ls_large-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '5700.00' )
act = ls_large-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '850.00' )
act = ls_large-water_l ).
ENDMETHOD.
METHOD mix_with_surcharge.
DATA(ls_small) = mo_cut->mix_for( iv_grade = 'C25' iv_volume = '1.30' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '458.00' )
act = ls_small-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1001.00' )
act = ls_small-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1659.00' )
act = ls_small-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '251.00' )
act = ls_small-water_l ).
DATA(ls_tiny) = mo_cut->mix_for( iv_grade = 'C35' iv_volume = '0.80' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '352.00' )
act = ls_tiny-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '581.00' )
act = ls_tiny-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '986.00' )
act = ls_tiny-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '146.00' )
act = ls_tiny-water_l ).
ENDMETHOD.
METHOD mix_at_min_volume.
DATA(ls_min) = mo_cut->mix_for( iv_grade = 'C25' iv_volume = '0.50' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '176.00' )
act = ls_min-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '385.00' )
act = ls_min-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '638.00' )
act = ls_min-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '97.00' )
act = ls_min-water_l ).
DATA(ls_limit) = mo_cut->mix_for( iv_grade = 'C20' iv_volume = '2.00' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '560.00' )
act = ls_limit-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1440.00' )
act = ls_limit-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '2360.00' )
act = ls_limit-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '350.00' )
act = ls_limit-water_l ).
ENDMETHOD.
METHOD mix_grade_is_upper.
DATA(ls_mix) = mo_cut->mix_for( iv_grade = 'c35' iv_volume = '5.00' ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}if_mix_recipe=>c_grade-c35
act = ls_mix-grade ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '2000.00' )
act = ls_mix-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '3300.00' )
act = ls_mix-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '5600.00' )
act = ls_mix-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '825.00' )
act = ls_mix-water_l ).
ENDMETHOD.
METHOD mix_of_invalid_order.
DATA(ls_bad_grade) = mo_cut->mix_for( iv_grade = 'C40' iv_volume = '5.00' ).
cl_abap_unit_assert=>assert_initial( act = ls_bad_grade-grade ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_grade-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_grade-sand_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_grade-gravel_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_grade-water_l ).
DATA(ls_bad_volume) = mo_cut->mix_for( iv_grade = 'C20' iv_volume = '0.10' ).
cl_abap_unit_assert=>assert_initial( act = ls_bad_volume-grade ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_volume-cement_kg ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
act = ls_bad_volume-water_l ).
ENDMETHOD.
ENDCLASS.