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:
38
tasks_gen/eval/G0013/faulty/m0_repl_qty.func.abap
Normal file
38
tasks_gen/eval/G0013/faulty/m0_repl_qty.func.abap
Normal 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.
|
||||
38
tasks_gen/eval/G0013/faulty/m1_repl_qty.func.abap
Normal file
38
tasks_gen/eval/G0013/faulty/m1_repl_qty.func.abap
Normal 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.
|
||||
38
tasks_gen/eval/G0013/faulty/m2_repl_qty.func.abap
Normal file
38
tasks_gen/eval/G0013/faulty/m2_repl_qty.func.abap
Normal 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.
|
||||
38
tasks_gen/eval/G0013/faulty/m3_repl_qty.func.abap
Normal file
38
tasks_gen/eval/G0013/faulty/m3_repl_qty.func.abap
Normal 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.
|
||||
38
tasks_gen/eval/G0013/faulty/m4_repl_qty.func.abap
Normal file
38
tasks_gen/eval/G0013/faulty/m4_repl_qty.func.abap
Normal 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.
|
||||
75
tasks_gen/eval/G0013/mutation.json
Normal file
75
tasks_gen/eval/G0013/mutation.json
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user