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:
62
tasks_gen/eval/G0023/faulty/m0_freight_calculator.clas.abap
Normal file
62
tasks_gen/eval/G0023/faulty/m0_freight_calculator.clas.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
CLASS {{p}}freight_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_freight_calc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_rate,
|
||||
zone TYPE {{p}}if_freight_calc=>ty_zone,
|
||||
base TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
per_kg TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
minimum TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
surcharge TYPE p LENGTH 4 DECIMALS 3,
|
||||
END OF ty_rate,
|
||||
tt_rate TYPE SORTED TABLE OF ty_rate WITH UNIQUE KEY zone.
|
||||
|
||||
CONSTANTS:
|
||||
c_heavy_limit TYPE {{p}}if_freight_calc=>ty_weight VALUE '1000.000',
|
||||
c_discount TYPE p LENGTH 3 DECIMALS 2 VALUE '0.95'.
|
||||
|
||||
METHODS rates RETURNING VALUE(rt_rate) TYPE tt_rate.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}freight_calculator IMPLEMENTATION.
|
||||
METHOD {{p}}if_freight_calc~calculate.
|
||||
DATA(lt_rate) = rates( ).
|
||||
READ TABLE lt_rate INTO DATA(ls_rate) WITH TABLE KEY zone = iv_zone.
|
||||
IF sy-subrc <> 0.
|
||||
rv_cost = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_charge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_charge = ls_rate-per_kg / iv_weight.
|
||||
|
||||
DATA lv_freight TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_freight = ls_rate-base + lv_charge.
|
||||
IF lv_freight < ls_rate-minimum.
|
||||
lv_freight = ls_rate-minimum.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_surcharge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_surcharge = lv_freight * ls_rate-surcharge.
|
||||
|
||||
DATA lv_total TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_total = lv_freight + lv_surcharge.
|
||||
IF iv_weight > c_heavy_limit.
|
||||
lv_total = lv_total * c_discount.
|
||||
ENDIF.
|
||||
|
||||
rv_cost = lv_total.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates.
|
||||
rt_rate = VALUE #(
|
||||
( zone = 'DE' base = '12.50' per_kg = '0.85' minimum = '25.00' surcharge = '0.065' )
|
||||
( zone = 'FR' base = '15.00' per_kg = '1.10' minimum = '30.00' surcharge = '0.075' )
|
||||
( zone = 'NL' base = '10.00' per_kg = '0.75' minimum = '20.00' surcharge = '0.055' )
|
||||
( zone = 'US' base = '20.00' per_kg = '1.40' minimum = '45.00' surcharge = '0.085' )
|
||||
( zone = 'CN' base = '25.00' per_kg = '1.25' minimum = '50.00' surcharge = '0.095' ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
62
tasks_gen/eval/G0023/faulty/m1_freight_calculator.clas.abap
Normal file
62
tasks_gen/eval/G0023/faulty/m1_freight_calculator.clas.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
CLASS {{p}}freight_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_freight_calc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_rate,
|
||||
zone TYPE {{p}}if_freight_calc=>ty_zone,
|
||||
base TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
per_kg TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
minimum TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
surcharge TYPE p LENGTH 4 DECIMALS 3,
|
||||
END OF ty_rate,
|
||||
tt_rate TYPE SORTED TABLE OF ty_rate WITH UNIQUE KEY zone.
|
||||
|
||||
CONSTANTS:
|
||||
c_heavy_limit TYPE {{p}}if_freight_calc=>ty_weight VALUE '1000.000',
|
||||
c_discount TYPE p LENGTH 3 DECIMALS 2 VALUE '0.95'.
|
||||
|
||||
METHODS rates RETURNING VALUE(rt_rate) TYPE tt_rate.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}freight_calculator IMPLEMENTATION.
|
||||
METHOD {{p}}if_freight_calc~calculate.
|
||||
DATA(lt_rate) = rates( ).
|
||||
READ TABLE lt_rate INTO DATA(ls_rate) WITH TABLE KEY zone = iv_zone.
|
||||
IF sy-subrc <> 0.
|
||||
rv_cost = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_charge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_charge = ls_rate-per_kg * iv_weight.
|
||||
|
||||
DATA lv_freight TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_freight = ls_rate-base - lv_charge.
|
||||
IF lv_freight < ls_rate-minimum.
|
||||
lv_freight = ls_rate-minimum.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_surcharge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_surcharge = lv_freight * ls_rate-surcharge.
|
||||
|
||||
DATA lv_total TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_total = lv_freight + lv_surcharge.
|
||||
IF iv_weight > c_heavy_limit.
|
||||
lv_total = lv_total * c_discount.
|
||||
ENDIF.
|
||||
|
||||
rv_cost = lv_total.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates.
|
||||
rt_rate = VALUE #(
|
||||
( zone = 'DE' base = '12.50' per_kg = '0.85' minimum = '25.00' surcharge = '0.065' )
|
||||
( zone = 'FR' base = '15.00' per_kg = '1.10' minimum = '30.00' surcharge = '0.075' )
|
||||
( zone = 'NL' base = '10.00' per_kg = '0.75' minimum = '20.00' surcharge = '0.055' )
|
||||
( zone = 'US' base = '20.00' per_kg = '1.40' minimum = '45.00' surcharge = '0.085' )
|
||||
( zone = 'CN' base = '25.00' per_kg = '1.25' minimum = '50.00' surcharge = '0.095' ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
62
tasks_gen/eval/G0023/faulty/m2_freight_calculator.clas.abap
Normal file
62
tasks_gen/eval/G0023/faulty/m2_freight_calculator.clas.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
CLASS {{p}}freight_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_freight_calc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_rate,
|
||||
zone TYPE {{p}}if_freight_calc=>ty_zone,
|
||||
base TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
per_kg TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
minimum TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
surcharge TYPE p LENGTH 4 DECIMALS 3,
|
||||
END OF ty_rate,
|
||||
tt_rate TYPE SORTED TABLE OF ty_rate WITH UNIQUE KEY zone.
|
||||
|
||||
CONSTANTS:
|
||||
c_heavy_limit TYPE {{p}}if_freight_calc=>ty_weight VALUE '1000.000',
|
||||
c_discount TYPE p LENGTH 3 DECIMALS 2 VALUE '0.95'.
|
||||
|
||||
METHODS rates RETURNING VALUE(rt_rate) TYPE tt_rate.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}freight_calculator IMPLEMENTATION.
|
||||
METHOD {{p}}if_freight_calc~calculate.
|
||||
DATA(lt_rate) = rates( ).
|
||||
READ TABLE lt_rate INTO DATA(ls_rate) WITH TABLE KEY zone = iv_zone.
|
||||
IF sy-subrc <> 0.
|
||||
rv_cost = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_charge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_charge = ls_rate-per_kg * iv_weight.
|
||||
|
||||
DATA lv_freight TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_freight = ls_rate-base + lv_charge.
|
||||
IF lv_freight >= ls_rate-minimum.
|
||||
lv_freight = ls_rate-minimum.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_surcharge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_surcharge = lv_freight * ls_rate-surcharge.
|
||||
|
||||
DATA lv_total TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_total = lv_freight + lv_surcharge.
|
||||
IF iv_weight > c_heavy_limit.
|
||||
lv_total = lv_total * c_discount.
|
||||
ENDIF.
|
||||
|
||||
rv_cost = lv_total.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates.
|
||||
rt_rate = VALUE #(
|
||||
( zone = 'DE' base = '12.50' per_kg = '0.85' minimum = '25.00' surcharge = '0.065' )
|
||||
( zone = 'FR' base = '15.00' per_kg = '1.10' minimum = '30.00' surcharge = '0.075' )
|
||||
( zone = 'NL' base = '10.00' per_kg = '0.75' minimum = '20.00' surcharge = '0.055' )
|
||||
( zone = 'US' base = '20.00' per_kg = '1.40' minimum = '45.00' surcharge = '0.085' )
|
||||
( zone = 'CN' base = '25.00' per_kg = '1.25' minimum = '50.00' surcharge = '0.095' ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
62
tasks_gen/eval/G0023/faulty/m3_freight_calculator.clas.abap
Normal file
62
tasks_gen/eval/G0023/faulty/m3_freight_calculator.clas.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
CLASS {{p}}freight_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_freight_calc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_rate,
|
||||
zone TYPE {{p}}if_freight_calc=>ty_zone,
|
||||
base TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
per_kg TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
minimum TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
surcharge TYPE p LENGTH 4 DECIMALS 3,
|
||||
END OF ty_rate,
|
||||
tt_rate TYPE SORTED TABLE OF ty_rate WITH UNIQUE KEY zone.
|
||||
|
||||
CONSTANTS:
|
||||
c_heavy_limit TYPE {{p}}if_freight_calc=>ty_weight VALUE '1000.000',
|
||||
c_discount TYPE p LENGTH 3 DECIMALS 2 VALUE '0.95'.
|
||||
|
||||
METHODS rates RETURNING VALUE(rt_rate) TYPE tt_rate.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}freight_calculator IMPLEMENTATION.
|
||||
METHOD {{p}}if_freight_calc~calculate.
|
||||
DATA(lt_rate) = rates( ).
|
||||
READ TABLE lt_rate INTO DATA(ls_rate) WITH TABLE KEY zone = iv_zone.
|
||||
IF sy-subrc <> 0.
|
||||
rv_cost = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_charge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_charge = ls_rate-per_kg * iv_weight.
|
||||
|
||||
DATA lv_freight TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_freight = ls_rate-base + lv_charge.
|
||||
IF lv_freight < ls_rate-minimum.
|
||||
lv_freight = ls_rate-minimum.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_surcharge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_surcharge = lv_freight * ls_rate-surcharge.
|
||||
|
||||
DATA lv_total TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_total = lv_freight - lv_surcharge.
|
||||
IF iv_weight > c_heavy_limit.
|
||||
lv_total = lv_total * c_discount.
|
||||
ENDIF.
|
||||
|
||||
rv_cost = lv_total.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates.
|
||||
rt_rate = VALUE #(
|
||||
( zone = 'DE' base = '12.50' per_kg = '0.85' minimum = '25.00' surcharge = '0.065' )
|
||||
( zone = 'FR' base = '15.00' per_kg = '1.10' minimum = '30.00' surcharge = '0.075' )
|
||||
( zone = 'NL' base = '10.00' per_kg = '0.75' minimum = '20.00' surcharge = '0.055' )
|
||||
( zone = 'US' base = '20.00' per_kg = '1.40' minimum = '45.00' surcharge = '0.085' )
|
||||
( zone = 'CN' base = '25.00' per_kg = '1.25' minimum = '50.00' surcharge = '0.095' ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
62
tasks_gen/eval/G0023/faulty/m4_freight_calculator.clas.abap
Normal file
62
tasks_gen/eval/G0023/faulty/m4_freight_calculator.clas.abap
Normal file
@@ -0,0 +1,62 @@
|
||||
CLASS {{p}}freight_calculator DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_freight_calc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_rate,
|
||||
zone TYPE {{p}}if_freight_calc=>ty_zone,
|
||||
base TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
per_kg TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
minimum TYPE {{p}}if_freight_calc=>ty_amount,
|
||||
surcharge TYPE p LENGTH 4 DECIMALS 3,
|
||||
END OF ty_rate,
|
||||
tt_rate TYPE SORTED TABLE OF ty_rate WITH UNIQUE KEY zone.
|
||||
|
||||
CONSTANTS:
|
||||
c_heavy_limit TYPE {{p}}if_freight_calc=>ty_weight VALUE '1000.000',
|
||||
c_discount TYPE p LENGTH 3 DECIMALS 2 VALUE '0.95'.
|
||||
|
||||
METHODS rates RETURNING VALUE(rt_rate) TYPE tt_rate.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}freight_calculator IMPLEMENTATION.
|
||||
METHOD {{p}}if_freight_calc~calculate.
|
||||
DATA(lt_rate) = rates( ).
|
||||
READ TABLE lt_rate INTO DATA(ls_rate) WITH TABLE KEY zone = iv_zone.
|
||||
IF sy-subrc <> 0.
|
||||
rv_cost = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_charge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_charge = ls_rate-per_kg * iv_weight.
|
||||
|
||||
DATA lv_freight TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_freight = ls_rate-base + lv_charge.
|
||||
IF lv_freight < ls_rate-minimum.
|
||||
lv_freight = ls_rate-minimum.
|
||||
ENDIF.
|
||||
|
||||
DATA lv_surcharge TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_surcharge = lv_freight * ls_rate-surcharge.
|
||||
|
||||
DATA lv_total TYPE {{p}}if_freight_calc=>ty_amount.
|
||||
lv_total = lv_freight + lv_surcharge.
|
||||
IF iv_weight > c_heavy_limit.
|
||||
lv_total = lv_total / c_discount.
|
||||
ENDIF.
|
||||
|
||||
rv_cost = lv_total.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rates.
|
||||
rt_rate = VALUE #(
|
||||
( zone = 'DE' base = '12.50' per_kg = '0.85' minimum = '25.00' surcharge = '0.065' )
|
||||
( zone = 'FR' base = '15.00' per_kg = '1.10' minimum = '30.00' surcharge = '0.075' )
|
||||
( zone = 'NL' base = '10.00' per_kg = '0.75' minimum = '20.00' surcharge = '0.055' )
|
||||
( zone = 'US' base = '20.00' per_kg = '1.40' minimum = '45.00' surcharge = '0.085' )
|
||||
( zone = 'CN' base = '25.00' per_kg = '1.25' minimum = '50.00' surcharge = '0.095' ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
78
tasks_gen/eval/G0023/mutation.json
Normal file
78
tasks_gen/eval/G0023/mutation.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"task": "G0023",
|
||||
"mutants": [
|
||||
{
|
||||
"object": "{{P}}FREIGHT_CALCULATOR",
|
||||
"mutant": "line 34: * -> / (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "3/9",
|
||||
"failed_tests": [
|
||||
"ALL_ZONES_ARE_RATED",
|
||||
"DISCOUNT_ROUNDS_HALF_UP",
|
||||
"HEAVY_DISCOUNT_ON_TOTAL",
|
||||
"NO_DISCOUNT_AT_EXACTLY_1000",
|
||||
"SURCHARGE_USES_MINIMUM",
|
||||
"WEIGHT_CHARGE_ROUNDS_HALF_UP"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}FREIGHT_CALCULATOR",
|
||||
"mutant": "line 37: + -> - (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "4/9",
|
||||
"failed_tests": [
|
||||
"ALL_ZONES_ARE_RATED",
|
||||
"DISCOUNT_ROUNDS_HALF_UP",
|
||||
"HEAVY_DISCOUNT_ON_TOTAL",
|
||||
"NO_DISCOUNT_AT_EXACTLY_1000",
|
||||
"WEIGHT_CHARGE_ROUNDS_HALF_UP"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}FREIGHT_CALCULATOR",
|
||||
"mutant": "line 38: < -> >= (rel)",
|
||||
"status": "killed",
|
||||
"hidden": "1/9",
|
||||
"failed_tests": [
|
||||
"ALL_ZONES_ARE_RATED",
|
||||
"DISCOUNT_ROUNDS_HALF_UP",
|
||||
"HEAVY_DISCOUNT_ON_TOTAL",
|
||||
"MINIMUM_APPLIES_AFTER_CHARGE",
|
||||
"NO_DISCOUNT_AT_EXACTLY_1000",
|
||||
"SMALL_WEIGHT_USES_MINIMUM",
|
||||
"SURCHARGE_USES_MINIMUM",
|
||||
"WEIGHT_CHARGE_ROUNDS_HALF_UP"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}FREIGHT_CALCULATOR",
|
||||
"mutant": "line 46: + -> - (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "1/9",
|
||||
"failed_tests": [
|
||||
"ALL_ZONES_ARE_RATED",
|
||||
"DISCOUNT_ROUNDS_HALF_UP",
|
||||
"HEAVY_DISCOUNT_ON_TOTAL",
|
||||
"MINIMUM_APPLIES_AFTER_CHARGE",
|
||||
"NO_DISCOUNT_AT_EXACTLY_1000",
|
||||
"SMALL_WEIGHT_USES_MINIMUM",
|
||||
"SURCHARGE_USES_MINIMUM",
|
||||
"WEIGHT_CHARGE_ROUNDS_HALF_UP"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}FREIGHT_CALCULATOR",
|
||||
"mutant": "line 48: * -> / (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "7/9",
|
||||
"failed_tests": [
|
||||
"DISCOUNT_ROUNDS_HALF_UP",
|
||||
"HEAVY_DISCOUNT_ON_TOTAL"
|
||||
]
|
||||
}
|
||||
],
|
||||
"valid": 5,
|
||||
"killed": 5,
|
||||
"kill_rate": 1.0,
|
||||
"ok": true
|
||||
}
|
||||
Reference in New Issue
Block a user