Review fixes G0019, G0108: added hidden tests; revalidated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 16:35:20 +02:00
parent 7510131a7d
commit 0e96c6708e
31 changed files with 632 additions and 608 deletions

View File

@@ -0,0 +1,32 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Call charge'
define view entity {{P}}I_CALL_CHARGE
as select from {{p}}calls
{
key call_id as call_id,
customer as customer,
cast( ceil( cast( duration_sec as abap.dec(15,2) ) / 60 ) as abap.int4 ) as billable_min,
cast(
case dest_type
when 'N' then 9
when 'I' then 25
else 15
end as abap.dec(5,2)
) / 100 as rate,
cast(
round(
cast( ceil( cast( duration_sec as abap.dec(15,2) ) / 60 ) as abap.dec(15,2) )
* ( cast(
case dest_type
when 'N' then 9
when 'I' then 25
else 16
end as abap.dec(5,2)
) / 100 )
* case when duration_sec > 1800
then cast( 90 as abap.dec(5,2) ) / 100
else cast( 100 as abap.dec(5,2) ) / 100
end
, 2 )
as abap.dec(15,2) ) as charge
}

View File

@@ -28,6 +28,18 @@
"killed": 4,
"ok": true
}
},
{
"stage": "manual_fix",
"by": "Claude review 2026-10-03",
"change": "Added hidden test charge_other (charge of the default destination type).",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 5,
"killed": 5,
"ok": true
}
}
],
"accepted": true

View File

@@ -13,6 +13,7 @@ CLASS {{p}}t16_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
METHODS rate_national FOR TESTING.
METHODS rate_international FOR TESTING.
METHODS rate_other FOR TESTING.
METHODS charge_other FOR TESTING.
METHODS charge_no_discount FOR TESTING.
METHODS charge_long_discount FOR TESTING.
METHODS charge_rounding FOR TESTING.
@@ -83,6 +84,11 @@ CLASS {{p}}t16_hidden IMPLEMENTATION.
assert_amount( iv_exp = CONV decfloat34( '0.15' ) iv_act = CONV decfloat34( lv_rate ) ).
ENDMETHOD.
METHOD charge_other.
SELECT SINGLE charge FROM {{p}}i_call_charge WHERE call_id = 'C4' INTO @DATA(lv_charge).
assert_amount( iv_exp = CONV decfloat34( '0.30' ) iv_act = CONV decfloat34( lv_charge ) ).
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 ) ).

View File

@@ -5,7 +5,7 @@
"object": "{{P}}I_CALL_CHARGE",
"mutant": "line 13: 15 -> 16 (const)",
"status": "killed",
"hidden": "9/10",
"hidden": "10/11",
"failed_tests": [
"RATE_OTHER"
]
@@ -14,7 +14,7 @@
"object": "{{P}}I_CALL_CHARGE",
"mutant": "line 22: 'I' -> 'Z' (lit)",
"status": "killed",
"hidden": "9/10",
"hidden": "10/11",
"failed_tests": [
"CHARGE_LONG_DISCOUNT"
]
@@ -23,7 +23,7 @@
"object": "{{P}}I_CALL_CHARGE",
"mutant": "line 22: 25 -> 26 (const)",
"status": "killed",
"hidden": "9/10",
"hidden": "10/11",
"failed_tests": [
"CHARGE_LONG_DISCOUNT"
]
@@ -31,25 +31,28 @@
{
"object": "{{P}}I_CALL_CHARGE",
"mutant": "line 23: 15 -> 16 (const)",
"status": "survived",
"hidden": "10/10",
"failed_tests": []
"status": "killed",
"hidden": "10/11",
"failed_tests": [
"CHARGE_OTHER"
]
},
{
"object": "{{P}}I_CALL_CHARGE",
"mutant": "line 26: > -> <= (rel)",
"status": "killed",
"hidden": "6/10",
"hidden": "6/11",
"failed_tests": [
"CHARGE_BOUNDARY",
"CHARGE_LONG_DISCOUNT",
"CHARGE_NO_DISCOUNT",
"CHARGE_OTHER",
"CHARGE_ROUNDING"
]
}
],
"valid": 5,
"killed": 4,
"kill_rate": 0.8,
"killed": 5,
"kill_rate": 1.0,
"ok": true
}

View File

@@ -1,9 +1,7 @@
{
"decision": "fix",
"note": "Default rate (else 15) has no hidden test. Add a call type that falls into the else branch.",
"decision": "accept",
"note": "Fixed: added charge_other (default destination charge). Oracle 100, null 0, mutation 5/5.",
"by": "Claude",
"date": "2026-10-03",
"failed_checks": {
"7": "bosluk"
}
"failed_checks": {}
}