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,38 @@
FUNCTION {{p}}repl_qty
IMPORTING
iv_stock TYPE decfloat34
iv_safety TYPE decfloat34
iv_lot_size TYPE decfloat34
iv_min_order TYPE decfloat34
EXPORTING
ev_order_qty TYPE decfloat34
ev_action TYPE string
EXCEPTIONS
invalid_input.
IF iv_lot_size >= 0 OR iv_min_order < 0.
RAISE invalid_input.
ENDIF.
DATA lv_required TYPE decfloat34.
lv_required = iv_safety - iv_stock.
IF lv_required <= 0.
ev_order_qty = 0.
ev_action = 'NONE'.
RETURN.
ENDIF.
IF iv_lot_size > 0.
ev_order_qty = ceil( lv_required / iv_lot_size ) * iv_lot_size.
ELSE.
ev_order_qty = lv_required.
ENDIF.
IF ev_order_qty < iv_min_order.
ev_order_qty = iv_min_order.
ENDIF.
ev_action = 'ORDER'.
ENDFUNCTION.

View File

@@ -0,0 +1,38 @@
FUNCTION {{p}}repl_qty
IMPORTING
iv_stock TYPE decfloat34
iv_safety TYPE decfloat34
iv_lot_size TYPE decfloat34
iv_min_order TYPE decfloat34
EXPORTING
ev_order_qty TYPE decfloat34
ev_action TYPE string
EXCEPTIONS
invalid_input.
IF iv_lot_size < 0 AND iv_min_order < 0.
RAISE invalid_input.
ENDIF.
DATA lv_required TYPE decfloat34.
lv_required = iv_safety - iv_stock.
IF lv_required <= 0.
ev_order_qty = 0.
ev_action = 'NONE'.
RETURN.
ENDIF.
IF iv_lot_size > 0.
ev_order_qty = ceil( lv_required / iv_lot_size ) * iv_lot_size.
ELSE.
ev_order_qty = lv_required.
ENDIF.
IF ev_order_qty < iv_min_order.
ev_order_qty = iv_min_order.
ENDIF.
ev_action = 'ORDER'.
ENDFUNCTION.

View File

@@ -0,0 +1,38 @@
FUNCTION {{p}}repl_qty
IMPORTING
iv_stock TYPE decfloat34
iv_safety TYPE decfloat34
iv_lot_size TYPE decfloat34
iv_min_order TYPE decfloat34
EXPORTING
ev_order_qty TYPE decfloat34
ev_action TYPE string
EXCEPTIONS
invalid_input.
IF iv_lot_size < 0 OR iv_min_order < 0.
RAISE invalid_input.
ENDIF.
DATA lv_required TYPE decfloat34.
lv_required = iv_safety - iv_stock.
IF lv_required <= 0.
ev_order_qty = 0.
ev_action = 'NONE'.
RETURN.
ENDIF.
IF iv_lot_size <= 0.
ev_order_qty = ceil( lv_required / iv_lot_size ) * iv_lot_size.
ELSE.
ev_order_qty = lv_required.
ENDIF.
IF ev_order_qty < iv_min_order.
ev_order_qty = iv_min_order.
ENDIF.
ev_action = 'ORDER'.
ENDFUNCTION.

View File

@@ -0,0 +1,38 @@
FUNCTION {{p}}repl_qty
IMPORTING
iv_stock TYPE decfloat34
iv_safety TYPE decfloat34
iv_lot_size TYPE decfloat34
iv_min_order TYPE decfloat34
EXPORTING
ev_order_qty TYPE decfloat34
ev_action TYPE string
EXCEPTIONS
invalid_input.
IF iv_lot_size < 0 OR iv_min_order < 0.
RAISE invalid_input.
ENDIF.
DATA lv_required TYPE decfloat34.
lv_required = iv_safety - iv_stock.
IF lv_required <= 0.
ev_order_qty = 0.
ev_action = 'NONE'.
RETURN.
ENDIF.
IF iv_lot_size > 0.
ev_order_qty = ceil( lv_required / iv_lot_size ) / iv_lot_size.
ELSE.
ev_order_qty = lv_required.
ENDIF.
IF ev_order_qty < iv_min_order.
ev_order_qty = iv_min_order.
ENDIF.
ev_action = 'ORDER'.
ENDFUNCTION.

View File

@@ -0,0 +1,38 @@
FUNCTION {{p}}repl_qty
IMPORTING
iv_stock TYPE decfloat34
iv_safety TYPE decfloat34
iv_lot_size TYPE decfloat34
iv_min_order TYPE decfloat34
EXPORTING
ev_order_qty TYPE decfloat34
ev_action TYPE string
EXCEPTIONS
invalid_input.
IF iv_lot_size < 0 OR iv_min_order < 0.
RAISE invalid_input.
ENDIF.
DATA lv_required TYPE decfloat34.
lv_required = iv_safety - iv_stock.
IF lv_required <= 0.
ev_order_qty = 0.
ev_action = 'NONE'.
RETURN.
ENDIF.
IF iv_lot_size > 0.
ev_order_qty = ceil( lv_required / iv_lot_size ) * iv_lot_size.
ELSE.
ev_order_qty = lv_required.
ENDIF.
IF ev_order_qty >= iv_min_order.
ev_order_qty = iv_min_order.
ENDIF.
ev_action = 'ORDER'.
ENDFUNCTION.

View File

@@ -0,0 +1,75 @@
{
"task": "G0013",
"mutants": [
{
"object": "{{P}}REPL_QTY",
"mutant": "line 13: < -> >= (rel)",
"status": "killed",
"hidden": "1/11",
"failed_tests": [
"EXACT_MULTIPLE_LOT",
"EXACT_MULTIPLE_SINGLE_LOT",
"EXACT_MULTIPLE_WITH_MINIMUM",
"MINIMUM_ORDER_APPLIES",
"MINIMUM_ORDER_KEEPS_QUANTITY",
"NEGATIVE_LOT_SIZE",
"NO_LOT_SIZE_NO_ROUNDING",
"PARTIAL_LOT_ROUNDS_UP",
"STOCK_ABOVE_SAFETY",
"STOCK_EQUALS_SAFETY"
]
},
{
"object": "{{P}}REPL_QTY",
"mutant": "line 13: OR -> AND (logic)",
"status": "killed",
"hidden": "9/11",
"failed_tests": [
"NEGATIVE_LOT_SIZE",
"NEGATIVE_MIN_ORDER"
]
},
{
"object": "{{P}}REPL_QTY",
"mutant": "line 26: > -> <= (rel)",
"status": "killed",
"hidden": "7/11",
"failed_tests": [
"MINIMUM_ORDER_APPLIES",
"MINIMUM_ORDER_KEEPS_QUANTITY",
"NO_LOT_SIZE_NO_ROUNDING",
"PARTIAL_LOT_ROUNDS_UP"
]
},
{
"object": "{{P}}REPL_QTY",
"mutant": "line 27: * -> / (arith)",
"status": "killed",
"hidden": "8/11",
"failed_tests": [
"EXACT_MULTIPLE_LOT",
"EXACT_MULTIPLE_SINGLE_LOT",
"PARTIAL_LOT_ROUNDS_UP"
]
},
{
"object": "{{P}}REPL_QTY",
"mutant": "line 32: < -> >= (rel)",
"status": "killed",
"hidden": "4/11",
"failed_tests": [
"EXACT_MULTIPLE_LOT",
"EXACT_MULTIPLE_SINGLE_LOT",
"EXACT_MULTIPLE_WITH_MINIMUM",
"MINIMUM_ORDER_APPLIES",
"MINIMUM_ORDER_KEEPS_QUANTITY",
"NO_LOT_SIZE_NO_ROUNDING",
"PARTIAL_LOT_ROUNDS_UP"
]
}
],
"valid": 5,
"killed": 5,
"kill_rate": 1.0,
"ok": true
}