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:
110
tasks_gen/eval/G0108/hidden/t16_hidden.clas.abap
Normal file
110
tasks_gen/eval/G0108/hidden/t16_hidden.clas.abap
Normal file
@@ -0,0 +1,110 @@
|
||||
CLASS {{p}}t16_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
|
||||
CLASS-METHODS class_setup.
|
||||
CLASS-METHODS class_teardown.
|
||||
METHODS setup.
|
||||
METHODS assert_amount
|
||||
IMPORTING iv_exp TYPE decfloat34
|
||||
iv_act TYPE decfloat34.
|
||||
METHODS billable_min_rounds_up FOR TESTING.
|
||||
METHODS billable_min_exact FOR TESTING.
|
||||
METHODS rate_national FOR TESTING.
|
||||
METHODS rate_international FOR TESTING.
|
||||
METHODS rate_other FOR TESTING.
|
||||
METHODS charge_no_discount FOR TESTING.
|
||||
METHODS charge_long_discount FOR TESTING.
|
||||
METHODS charge_rounding FOR TESTING.
|
||||
METHODS charge_boundary FOR TESTING.
|
||||
METHODS row_count FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t16_hidden IMPLEMENTATION.
|
||||
METHOD class_setup.
|
||||
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_CALL_CHARGE' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
DATA lt_calls TYPE STANDARD TABLE OF {{p}}calls WITH EMPTY KEY.
|
||||
go_env->clear_doubles( ).
|
||||
lt_calls = VALUE #(
|
||||
( call_id = 'C1' customer = 'ACME' call_date = '20240110' start_time = '100000' duration_sec = 125 dest_type = 'N' )
|
||||
( call_id = 'C2' customer = 'BETA' call_date = '20240110' start_time = '220000' duration_sec = 3600 dest_type = 'I' )
|
||||
( call_id = 'C3' customer = 'GAMMA' call_date = '20240110' start_time = '073000' duration_sec = 30 dest_type = 'N' )
|
||||
( call_id = 'C4' customer = 'DELTA' call_date = '20240110' start_time = '120000' duration_sec = 120 dest_type = 'X' )
|
||||
( call_id = 'C5' customer = 'EPSILON' call_date = '20240110' start_time = '120000' duration_sec = 1800 dest_type = 'N' )
|
||||
( call_id = 'C6' customer = 'ZETA' call_date = '20240110' start_time = '120000' duration_sec = 1801 dest_type = 'N' )
|
||||
).
|
||||
go_env->insert_test_data( lt_calls ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_amount.
|
||||
DATA lv_diff TYPE decfloat34.
|
||||
lv_diff = abs( iv_exp - iv_act ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = abap_true
|
||||
act = xsdbool( lv_diff < CONV decfloat34( '0.005' ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD billable_min_rounds_up.
|
||||
SELECT SINGLE billable_min FROM {{p}}i_call_charge WHERE call_id = 'C1' INTO @DATA(lv_min1).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_min1 ).
|
||||
SELECT SINGLE billable_min FROM {{p}}i_call_charge WHERE call_id = 'C2' INTO @DATA(lv_min2).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 60 act = lv_min2 ).
|
||||
SELECT SINGLE billable_min FROM {{p}}i_call_charge WHERE call_id = 'C3' INTO @DATA(lv_min3).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_min3 ).
|
||||
SELECT SINGLE billable_min FROM {{p}}i_call_charge WHERE call_id = 'C4' INTO @DATA(lv_min4).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_min4 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD billable_min_exact.
|
||||
SELECT SINGLE billable_min FROM {{p}}i_call_charge WHERE call_id = 'C5' INTO @DATA(lv_min).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 30 act = lv_min ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rate_national.
|
||||
SELECT SINGLE rate FROM {{p}}i_call_charge WHERE call_id = 'C1' INTO @DATA(lv_rate).
|
||||
assert_amount( iv_exp = CONV decfloat34( '0.09' ) iv_act = CONV decfloat34( lv_rate ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rate_international.
|
||||
SELECT SINGLE rate FROM {{p}}i_call_charge WHERE call_id = 'C2' INTO @DATA(lv_rate).
|
||||
assert_amount( iv_exp = CONV decfloat34( '0.25' ) iv_act = CONV decfloat34( lv_rate ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rate_other.
|
||||
SELECT SINGLE rate FROM {{p}}i_call_charge WHERE call_id = 'C4' INTO @DATA(lv_rate).
|
||||
assert_amount( iv_exp = CONV decfloat34( '0.15' ) iv_act = CONV decfloat34( lv_rate ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD charge_no_discount.
|
||||
SELECT SINGLE charge FROM {{p}}i_call_charge WHERE call_id = 'C1' INTO @DATA(lv_charge).
|
||||
assert_amount( iv_exp = CONV decfloat34( '0.27' ) iv_act = CONV decfloat34( lv_charge ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD charge_long_discount.
|
||||
SELECT SINGLE charge FROM {{p}}i_call_charge WHERE call_id = 'C2' INTO @DATA(lv_charge).
|
||||
assert_amount( iv_exp = CONV decfloat34( '13.50' ) iv_act = CONV decfloat34( lv_charge ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD charge_rounding.
|
||||
SELECT SINGLE charge FROM {{p}}i_call_charge WHERE call_id = 'C6' INTO @DATA(lv_charge).
|
||||
assert_amount( iv_exp = CONV decfloat34( '2.51' ) iv_act = CONV decfloat34( lv_charge ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD charge_boundary.
|
||||
SELECT SINGLE charge FROM {{p}}i_call_charge WHERE call_id = 'C5' INTO @DATA(lv_charge).
|
||||
assert_amount( iv_exp = CONV decfloat34( '2.70' ) iv_act = CONV decfloat34( lv_charge ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD row_count.
|
||||
SELECT COUNT(*) FROM {{p}}i_call_charge INTO @DATA(lv_rows).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_rows ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user