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:
100
tasks_gen/eval/G0107/hidden/t21_hidden.clas.abap
Normal file
100
tasks_gen/eval/G0107/hidden/t21_hidden.clas.abap
Normal file
@@ -0,0 +1,100 @@
|
||||
CLASS {{p}}t21_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS bill
|
||||
IMPORTING
|
||||
iv_consumption TYPE decfloat34
|
||||
iv_tariff TYPE string
|
||||
iv_direct_debit TYPE abap_bool DEFAULT abap_false
|
||||
EXPORTING
|
||||
ev_bill TYPE decfloat34
|
||||
ev_subrc TYPE sysubrc.
|
||||
METHODS basic_no_tier FOR TESTING.
|
||||
METHODS tier_discount FOR TESTING.
|
||||
METHODS green_tariff FOR TESTING.
|
||||
METHODS night_tariff FOR TESTING.
|
||||
METHODS direct_debit FOR TESTING.
|
||||
METHODS rounding FOR TESTING.
|
||||
METHODS tier_boundary FOR TESTING.
|
||||
METHODS zero_consumption FOR TESTING.
|
||||
METHODS negative_consumption FOR TESTING.
|
||||
METHODS unknown_tariff FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t21_hidden IMPLEMENTATION.
|
||||
METHOD bill.
|
||||
CALL FUNCTION '{{P}}ENERGY_BILL'
|
||||
EXPORTING
|
||||
iv_consumption = iv_consumption
|
||||
iv_tariff = iv_tariff
|
||||
iv_direct_debit = iv_direct_debit
|
||||
IMPORTING
|
||||
ev_bill = ev_bill
|
||||
EXCEPTIONS
|
||||
invalid_consumption = 1
|
||||
invalid_tariff = 2
|
||||
OTHERS = 3.
|
||||
ev_subrc = sy-subrc.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD basic_no_tier.
|
||||
bill( EXPORTING iv_consumption = 100 iv_tariff = `BASIC`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '44.00' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD tier_discount.
|
||||
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '133.60' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD green_tariff.
|
||||
bill( EXPORTING iv_consumption = 250 iv_tariff = `GREEN`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '107.00' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD night_tariff.
|
||||
bill( EXPORTING iv_consumption = 500 iv_tariff = `NIGHT`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '122.40' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD direct_debit.
|
||||
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC` iv_direct_debit = abap_true
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '130.93' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rounding.
|
||||
bill( EXPORTING iv_consumption = 309 iv_tariff = `BASIC`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '110.30' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD tier_boundary.
|
||||
bill( EXPORTING iv_consumption = 300 iv_tariff = `BASIC`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '108.00' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zero_consumption.
|
||||
bill( EXPORTING iv_consumption = 0 iv_tariff = `NIGHT`
|
||||
IMPORTING ev_bill = DATA(lv_bill) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.00' ) act = lv_bill ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD negative_consumption.
|
||||
bill( EXPORTING iv_consumption = -1 iv_tariff = `BASIC`
|
||||
IMPORTING ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_tariff.
|
||||
bill( EXPORTING iv_consumption = 100 iv_tariff = `ECO`
|
||||
IMPORTING ev_subrc = DATA(lv_rc) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rc ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user