Files
abap-llm/tasks_gen/train/G1137/hidden/t42_hidden.clas.abap
2026-10-05 18:02:52 +02:00

103 lines
3.9 KiB
ABAP

CLASS {{p}}t42_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS call
IMPORTING
iv_style TYPE string
iv_sessions TYPE i
iv_fee TYPE decfloat34 DEFAULT 0
EXPORTING
ev_deposit TYPE abap_bool
ev_fee TYPE decfloat34
ev_subrc TYPE sysubrc.
METHODS line_minimum FOR TESTING.
METHODS line_two_sessions FOR TESTING.
METHODS line_three_sessions FOR TESTING.
METHODS line_maximum FOR TESTING.
METHODS shade_minimum FOR TESTING.
METHODS shade_two_sessions FOR TESTING.
METHODS shade_maximum FOR TESTING.
METHODS other_style_zero FOR TESTING.
METHODS invalid_sessions FOR TESTING.
METHODS deposit_long_project FOR TESTING.
ENDCLASS.
CLASS {{p}}t42_hidden IMPLEMENTATION.
METHOD call.
ev_fee = iv_fee.
CALL FUNCTION '{{P}}TATTOO_FEE'
EXPORTING
iv_style = iv_style
iv_sessions = iv_sessions
IMPORTING
ev_deposit = ev_deposit
CHANGING
cv_fee = ev_fee
EXCEPTIONS
invalid_sessions = 1
OTHERS = 2.
ev_subrc = sy-subrc.
ENDMETHOD.
METHOD line_minimum.
call( EXPORTING iv_style = `LINE` iv_sessions = 1 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '150.00' ) act = lv_fee ).
ENDMETHOD.
METHOD line_two_sessions.
call( EXPORTING iv_style = `LINE` iv_sessions = 2 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '200.00' ) act = lv_fee ).
ENDMETHOD.
METHOD line_three_sessions.
call( EXPORTING iv_style = `LINE` iv_sessions = 3 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '266.67' ) act = lv_fee ).
ENDMETHOD.
METHOD line_maximum.
call( EXPORTING iv_style = `LINE` iv_sessions = 12 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '800.00' ) act = lv_fee ).
ENDMETHOD.
METHOD shade_minimum.
call( EXPORTING iv_style = `SHADE` iv_sessions = 1 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '110.00' ) act = lv_fee ).
ENDMETHOD.
METHOD shade_two_sessions.
call( EXPORTING iv_style = `SHADE` iv_sessions = 2 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '146.66' ) act = lv_fee ).
ENDMETHOD.
METHOD shade_maximum.
call( EXPORTING iv_style = `SHADE` iv_sessions = 12 IMPORTING ev_fee = DATA(lv_fee) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '600.00' ) act = lv_fee ).
ENDMETHOD.
METHOD other_style_zero.
call( EXPORTING iv_style = `XX` iv_sessions = 3
IMPORTING ev_fee = DATA(lv_fee) ev_deposit = DATA(lv_deposit) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 0 ) act = lv_fee ).
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_deposit ).
ENDMETHOD.
METHOD invalid_sessions.
call( EXPORTING iv_style = `LINE` iv_sessions = 0 IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
ENDMETHOD.
METHOD deposit_long_project.
DATA lv_fee TYPE decfloat34.
DATA lv_deposit TYPE abap_bool.
call( EXPORTING iv_style = `LINE` iv_sessions = 6
IMPORTING ev_fee = lv_fee ev_deposit = lv_deposit ).
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_deposit ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '466.68' ) act = lv_fee ).
call( EXPORTING iv_style = `LINE` iv_sessions = 7
IMPORTING ev_fee = lv_fee ev_deposit = lv_deposit ).
cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_deposit ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '533.35' ) act = lv_fee ).
ENDMETHOD.
ENDCLASS.