Mutation check done on all accepted tasks; mutant fixes; dump filter in proxy

- skip sy-subrc lines and CDS type lengths; CDS literal mutants; mutate helper classes
- proxy: sap_short_dumps shows only dumps of the current run
- 26/26 tasks pass; results in docs/faz1-tasarim.md 11g

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 06:02:59 +02:00
parent 0ba25faeea
commit f907351c0d
108 changed files with 7384 additions and 8 deletions

View File

@@ -0,0 +1,20 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Book revenue in period'
define view entity {{P}}I_BOOK_REVENUE
with parameters
p_from : abap.dats,
p_to : abap.dats
as select from {{p}}book as bk
inner join {{p}}sale as sl on sl.book_id <> bk.book_id
{
key bk.book_id as book_id,
bk.title as title,
bk.category as category,
sum( sl.quantity ) as sold_quantity,
sum( cast( sl.quantity as abap.dec( 10, 0 ) ) * bk.price ) as revenue
}
where sl.sale_date between $parameters.p_from and $parameters.p_to
group by
bk.book_id,
bk.title,
bk.category

View File

@@ -0,0 +1,20 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Book revenue in period'
define view entity {{P}}I_BOOK_REVENUE
with parameters
p_from : abap.dats,
p_to : abap.dats
as select from {{p}}book as bk
inner join {{p}}sale as sl on sl.book_id = bk.book_id
{
key bk.book_id as book_id,
bk.title as title,
bk.category as category,
max( sl.quantity ) as sold_quantity,
sum( cast( sl.quantity as abap.dec( 10, 0 ) ) * bk.price ) as revenue
}
where sl.sale_date between $parameters.p_from and $parameters.p_to
group by
bk.book_id,
bk.title,
bk.category

View File

@@ -0,0 +1,20 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Book revenue in period'
define view entity {{P}}I_BOOK_REVENUE
with parameters
p_from : abap.dats,
p_to : abap.dats
as select from {{p}}book as bk
inner join {{p}}sale as sl on sl.book_id = bk.book_id
{
key bk.book_id as book_id,
bk.title as title,
bk.category as category,
sum( sl.quantity ) as sold_quantity,
max( cast( sl.quantity as abap.dec( 10, 0 ) ) * bk.price ) as revenue
}
where sl.sale_date between $parameters.p_from and $parameters.p_to
group by
bk.book_id,
bk.title,
bk.category

View File

@@ -0,0 +1,56 @@
{
"task": "G0020",
"mutants": [
{
"object": "{{P}}I_BOOK_REVENUE",
"mutant": "line 8: inner join -> left outer join (join)",
"status": "survived",
"hidden": "8/8",
"failed_tests": []
},
{
"object": "{{P}}I_BOOK_REVENUE",
"mutant": "line 8: = -> <> (eq)",
"status": "killed",
"hidden": "2/8",
"failed_tests": [
"BOOKS_IN_PERIOD",
"BOOK_OUTSIDE_PERIOD_HIDDEN",
"PERIOD_LIMITS_INCLUDED",
"REVENUE_HAS_TWO_DECIMALS",
"REVENUE_IN_PERIOD",
"SOLD_QUANTITY_IN_PERIOD"
]
},
{
"object": "{{P}}I_BOOK_REVENUE",
"mutant": "line 13: sum( -> max( (agg)",
"status": "killed",
"hidden": "7/8",
"failed_tests": [
"SOLD_QUANTITY_IN_PERIOD"
]
},
{
"object": "{{P}}I_BOOK_REVENUE",
"mutant": "line 14: sum( -> max( (agg)",
"status": "killed",
"hidden": "6/8",
"failed_tests": [
"REVENUE_HAS_TWO_DECIMALS",
"REVENUE_IN_PERIOD"
]
},
{
"object": "{{P}}I_BOOK_REVENUE",
"mutant": "line 16: and -> or (logic)",
"status": "invalid",
"hidden": "0/0",
"failed_tests": []
}
],
"valid": 4,
"killed": 3,
"kill_rate": 0.75,
"ok": true
}