Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
93
tasks_gen/eval/G0136/faulty/m0_kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/faulty/m0_kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights < c_long_stay_nights.
|
||||
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_true.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season = abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
93
tasks_gen/eval/G0136/faulty/m1_kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/faulty/m1_kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights >= c_long_stay_nights.
|
||||
lv_cents = lv_cents + long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_true.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season = abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
93
tasks_gen/eval/G0136/faulty/m2_kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/faulty/m2_kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights >= c_long_stay_nights.
|
||||
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat OR iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_true.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season = abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
93
tasks_gen/eval/G0136/faulty/m3_kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/faulty/m3_kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights >= c_long_stay_nights.
|
||||
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_false.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season = abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
93
tasks_gen/eval/G0136/faulty/m4_kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/faulty/m4_kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights >= c_long_stay_nights.
|
||||
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_true.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season <> abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
47
tasks_gen/eval/G0136/generation.json
Normal file
47
tasks_gen/eval/G0136/generation.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"id": "G0136",
|
||||
"pool": "eval",
|
||||
"object_type": "CLAS",
|
||||
"category": "E",
|
||||
"attempts": [
|
||||
{
|
||||
"stage": "bundle",
|
||||
"errors": [
|
||||
"hidden/t02_hidden.clas.abap line 26: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 27: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
|
||||
"hidden/t02_hidden.clas.abap line 35: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 36: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"75\"",
|
||||
"hidden/t02_hidden.clas.abap line 44: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 45: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"12\"",
|
||||
"hidden/t02_hidden.clas.abap line 53: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 54: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"17\"",
|
||||
"hidden/t02_hidden.clas.abap line 62: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 63: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"61\"",
|
||||
"hidden/t02_hidden.clas.abap line 71: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 72: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"40\"",
|
||||
"hidden/t02_hidden.clas.abap line 80: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 81: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
|
||||
"hidden/t02_hidden.clas.abap line 89: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 90: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
|
||||
"hidden/t02_hidden.clas.abap line 98: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 99: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
|
||||
"hidden/t02_hidden.clas.abap line 107: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
|
||||
"hidden/t02_hidden.clas.abap line 108: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\""
|
||||
],
|
||||
"by_check": {
|
||||
"abaplint": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"stage": "validate",
|
||||
"oracle": 100.0,
|
||||
"null": 0,
|
||||
"mutation": {
|
||||
"valid": 5,
|
||||
"killed": 5,
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted": true
|
||||
}
|
||||
127
tasks_gen/eval/G0136/hidden/t02_hidden.clas.abap
Normal file
127
tasks_gen/eval/G0136/hidden/t02_hidden.clas.abap
Normal file
@@ -0,0 +1,127 @@
|
||||
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_amount TYPE {{p}}kennel_pricer=>ty_amount.
|
||||
|
||||
CONSTANTS:
|
||||
c_dog_1n TYPE ty_amount VALUE '25.00',
|
||||
c_cat_3n_hi TYPE ty_amount VALUE '55.75',
|
||||
c_dog_1n_hi TYPE ty_amount VALUE '28.12',
|
||||
c_dog_7n_hi TYPE ty_amount VALUE '177.17',
|
||||
c_cat_7n_hi TYPE ty_amount VALUE '122.61',
|
||||
c_cat_7n_gr TYPE ty_amount VALUE '128.40',
|
||||
c_zero TYPE ty_amount VALUE '0.00',
|
||||
c_bird_2n TYPE ty_amount VALUE '40.00',
|
||||
c_other_1n TYPE ty_amount VALUE '20.00',
|
||||
c_rabb_10n TYPE ty_amount VALUE '72.00'.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}kennel_pricer.
|
||||
|
||||
METHODS setup.
|
||||
METHODS dog_one_night FOR TESTING.
|
||||
METHODS cat_high_season FOR TESTING.
|
||||
METHODS high_season_rate FOR TESTING.
|
||||
METHODS long_stay_dog_high FOR TESTING.
|
||||
METHODS long_stay_cat_high FOR TESTING.
|
||||
METHODS grooming_after_discount FOR TESTING.
|
||||
METHODS zero_nights FOR TESTING.
|
||||
METHODS negative_nights FOR TESTING.
|
||||
METHODS unknown_type_default FOR TESTING.
|
||||
METHODS lower_case_type FOR TESTING.
|
||||
METHODS rabbit_long_stay FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t02_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}kennel_pricer( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dog_one_night.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_dog_1n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 1
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD cat_high_season.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_cat_3n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'CAT'
|
||||
iv_nights = 3
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD high_season_rate.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_dog_1n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 1
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_dog_high.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_dog_7n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 7
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_cat_high.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_cat_7n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'CAT'
|
||||
iv_nights = 7
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD grooming_after_discount.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_cat_7n_gr
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'CAT'
|
||||
iv_nights = 7
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zero_nights.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_zero
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 0
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD negative_nights.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_zero
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = -2
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_type_default.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_bird_2n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'BIRD'
|
||||
iv_nights = 2
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lower_case_type.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_other_1n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'dog'
|
||||
iv_nights = 1
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rabbit_long_stay.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_rabb_10n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'RABB'
|
||||
iv_nights = 10
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
83
tasks_gen/eval/G0136/mutation.json
Normal file
83
tasks_gen/eval/G0136/mutation.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"task": "G0136",
|
||||
"mutants": [
|
||||
{
|
||||
"object": "{{P}}KENNEL_PRICER",
|
||||
"mutant": "line 56: >= -> < (rel)",
|
||||
"status": "killed",
|
||||
"hidden": "2/11",
|
||||
"failed_tests": [
|
||||
"CAT_HIGH_SEASON",
|
||||
"DOG_ONE_NIGHT",
|
||||
"GROOMING_AFTER_DISCOUNT",
|
||||
"HIGH_SEASON_RATE",
|
||||
"LONG_STAY_CAT_HIGH",
|
||||
"LONG_STAY_DOG_HIGH",
|
||||
"LOWER_CASE_TYPE",
|
||||
"RABBIT_LONG_STAY",
|
||||
"UNKNOWN_TYPE_DEFAULT"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}KENNEL_PRICER",
|
||||
"mutant": "line 57: - -> + (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "7/11",
|
||||
"failed_tests": [
|
||||
"GROOMING_AFTER_DISCOUNT",
|
||||
"LONG_STAY_CAT_HIGH",
|
||||
"LONG_STAY_DOG_HIGH",
|
||||
"RABBIT_LONG_STAY"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}KENNEL_PRICER",
|
||||
"mutant": "line 61: AND -> OR (logic)",
|
||||
"status": "killed",
|
||||
"hidden": "8/11",
|
||||
"failed_tests": [
|
||||
"GROOMING_AFTER_DISCOUNT",
|
||||
"HIGH_SEASON_RATE",
|
||||
"LONG_STAY_DOG_HIGH"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}KENNEL_PRICER",
|
||||
"mutant": "line 65: abap_true -> abap_false (bool)",
|
||||
"status": "killed",
|
||||
"hidden": "2/11",
|
||||
"failed_tests": [
|
||||
"CAT_HIGH_SEASON",
|
||||
"DOG_ONE_NIGHT",
|
||||
"GROOMING_AFTER_DISCOUNT",
|
||||
"HIGH_SEASON_RATE",
|
||||
"LONG_STAY_CAT_HIGH",
|
||||
"LONG_STAY_DOG_HIGH",
|
||||
"LOWER_CASE_TYPE",
|
||||
"RABBIT_LONG_STAY",
|
||||
"UNKNOWN_TYPE_DEFAULT"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}KENNEL_PRICER",
|
||||
"mutant": "line 84: = -> <> (eq)",
|
||||
"status": "killed",
|
||||
"hidden": "2/11",
|
||||
"failed_tests": [
|
||||
"CAT_HIGH_SEASON",
|
||||
"DOG_ONE_NIGHT",
|
||||
"GROOMING_AFTER_DISCOUNT",
|
||||
"HIGH_SEASON_RATE",
|
||||
"LONG_STAY_CAT_HIGH",
|
||||
"LONG_STAY_DOG_HIGH",
|
||||
"LOWER_CASE_TYPE",
|
||||
"RABBIT_LONG_STAY",
|
||||
"UNKNOWN_TYPE_DEFAULT"
|
||||
]
|
||||
}
|
||||
],
|
||||
"valid": 5,
|
||||
"killed": 5,
|
||||
"kill_rate": 1.0,
|
||||
"ok": true
|
||||
}
|
||||
93
tasks_gen/eval/G0136/reference/kennel_pricer.clas.abap
Normal file
93
tasks_gen/eval/G0136/reference/kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,93 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_pet_type,
|
||||
dog TYPE ty_pet_type VALUE 'DOG',
|
||||
cat TYPE ty_pet_type VALUE 'CAT',
|
||||
rabb TYPE ty_pet_type VALUE 'RABB',
|
||||
END OF c_pet_type,
|
||||
BEGIN OF c_rate,
|
||||
dog TYPE i VALUE 2500,
|
||||
cat TYPE i VALUE 1800,
|
||||
rabb TYPE i VALUE 800,
|
||||
other TYPE i VALUE 2000,
|
||||
END OF c_rate,
|
||||
c_surcharge_num TYPE i VALUE 1125,
|
||||
c_surcharge_den TYPE i VALUE 1000,
|
||||
c_discount_percent TYPE i VALUE 10,
|
||||
c_percent_base TYPE i VALUE 100,
|
||||
c_long_stay_nights TYPE i VALUE 7,
|
||||
c_cat_high_cut TYPE i VALUE 500,
|
||||
c_grooming_fee TYPE i VALUE 1500,
|
||||
c_cents_per_euro TYPE i VALUE 100.
|
||||
|
||||
METHODS nightly_rate
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_high_season TYPE abap_bool
|
||||
RETURNING VALUE(rv_rate) TYPE i.
|
||||
METHODS long_stay_discount
|
||||
IMPORTING iv_rate TYPE i
|
||||
iv_nights TYPE i
|
||||
RETURNING VALUE(rv_discount) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
|
||||
iv_high_season = iv_high_season ).
|
||||
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
|
||||
|
||||
IF iv_nights >= c_long_stay_nights.
|
||||
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
|
||||
iv_nights = iv_nights ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
|
||||
lv_cents = lv_cents - c_cat_high_cut.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = abap_true.
|
||||
lv_cents = lv_cents + c_grooming_fee.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_cents / c_cents_per_euro.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD nightly_rate.
|
||||
CASE iv_pet_type.
|
||||
WHEN c_pet_type-dog.
|
||||
rv_rate = c_rate-dog.
|
||||
WHEN c_pet_type-cat.
|
||||
rv_rate = c_rate-cat.
|
||||
WHEN c_pet_type-rabb.
|
||||
rv_rate = c_rate-rabb.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_rate-other.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_high_season = abap_true.
|
||||
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay_discount.
|
||||
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
|
||||
rv_discount = lv_per_night * iv_nights.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,68 @@
|
||||
CLASS ltc_kennel_pricer DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_amount TYPE {{p}}kennel_pricer=>ty_amount.
|
||||
|
||||
CONSTANTS:
|
||||
c_dog_1n TYPE ty_amount VALUE '25.00',
|
||||
c_cat_3n_hi TYPE ty_amount VALUE '55.75',
|
||||
c_dog_7n_hi TYPE ty_amount VALUE '177.17',
|
||||
c_zero TYPE ty_amount VALUE '0.00',
|
||||
c_bird_2n TYPE ty_amount VALUE '40.00'.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}kennel_pricer.
|
||||
|
||||
METHODS setup.
|
||||
METHODS dog_low_season FOR TESTING.
|
||||
METHODS cat_high_season FOR TESTING.
|
||||
METHODS long_stay FOR TESTING.
|
||||
METHODS no_nights FOR TESTING.
|
||||
METHODS unknown_type FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltc_kennel_pricer IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}kennel_pricer( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dog_low_season.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_dog_1n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 1
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD cat_high_season.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_cat_3n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'CAT'
|
||||
iv_nights = 3
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD long_stay.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_dog_7n_hi
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 7
|
||||
iv_high_season = abap_true
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_nights.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_zero
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'DOG'
|
||||
iv_nights = 0
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_type.
|
||||
cl_abap_unit_assert=>assert_equals( exp = c_bird_2n
|
||||
act = mo_cut->calculate_fee( iv_pet_type = 'BIRD'
|
||||
iv_nights = 2
|
||||
iv_high_season = abap_false
|
||||
iv_grooming = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
71
tasks_gen/eval/G0136/seed/kennel_pricer.clas.abap
Normal file
71
tasks_gen/eval/G0136/seed/kennel_pricer.clas.abap
Normal file
@@ -0,0 +1,71 @@
|
||||
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_pet_type TYPE c LENGTH 4.
|
||||
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}kennel_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
DATA: lv_rate TYPE i,
|
||||
lv_total TYPE p LENGTH 8 DECIMALS 2,
|
||||
lv_discount TYPE i.
|
||||
|
||||
IF iv_nights < 1.
|
||||
rv_fee = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = 'DOG'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 2500 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 2500.
|
||||
ENDIF.
|
||||
ELSEIF iv_pet_type = 'CAT'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 1800 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 1800.
|
||||
ENDIF.
|
||||
ELSEIF iv_pet_type = 'RABB'.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 800 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 800.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
IF iv_high_season = 'X'.
|
||||
lv_rate = 2000 * 1125 DIV 1000.
|
||||
ELSE.
|
||||
lv_rate = 2000.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
CLEAR lv_total.
|
||||
DO iv_nights TIMES.
|
||||
lv_total = lv_total + lv_rate.
|
||||
ENDDO.
|
||||
|
||||
IF iv_nights >= 7.
|
||||
lv_discount = lv_rate * 10 DIV 100.
|
||||
lv_total = lv_total - lv_discount * iv_nights.
|
||||
ENDIF.
|
||||
|
||||
IF iv_pet_type = 'CAT' AND iv_high_season = 'X'.
|
||||
lv_total = lv_total - 500.
|
||||
ENDIF.
|
||||
|
||||
IF iv_grooming = 'X'.
|
||||
lv_total = lv_total + 1500.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_total / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
42
tasks_gen/eval/G0136/spec.md
Normal file
42
tasks_gen/eval/G0136/spec.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 1. Goal
|
||||
Refactor the class {{P}}KENNEL_PRICER. The class calculates the boarding fee of a
|
||||
pet at a kennel. The class works correctly. The code is difficult to read and to
|
||||
maintain. Refactor the class. The behavior stays the same.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The class {{P}}KENNEL_PRICER exists in package $TMP. It is active.
|
||||
- A booking program calls the class before the kennel confirms a booking.
|
||||
- The booking program must get the same fee after your change.
|
||||
- The class has one public method. The method calculates the fee.
|
||||
|
||||
# 4. Contract
|
||||
- Change the class {{P}}KENNEL_PRICER in package $TMP. Keep the name of the class.
|
||||
- Keep the public interface of the class. These public components stay:
|
||||
- The type TY_PET_TYPE. It is CHAR 4.
|
||||
- The type TY_AMOUNT. It is P, length 8, 2 decimals.
|
||||
- The method CALCULATE_FEE with this signature:
|
||||
IMPORTING iv_pet_type TYPE ty_pet_type
|
||||
iv_nights TYPE i
|
||||
iv_high_season TYPE abap_bool
|
||||
iv_grooming TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
||||
- Do not add other public methods or public attributes.
|
||||
|
||||
# 5. Business rules
|
||||
The behavior of the class must not change. Read the existing implementation in
|
||||
the seed object. Every result value stays the same. This includes the results for
|
||||
edge cases and for unusual input values.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 8.16.
|
||||
- Coding standards: Clean ABAP. Method length below 40 statements. No magic
|
||||
numbers. No deep nesting. No comment that restates the code.
|
||||
- Out of scope: none.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write your own ABAP Unit tests for the class.
|
||||
49
tasks_gen/eval/G0136/task.json
Normal file
49
tasks_gen/eval/G0136/task.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"id": "G0136",
|
||||
"category": "E",
|
||||
"object_type": "CLAS",
|
||||
"difficulty": 2,
|
||||
"release_target": "v816",
|
||||
"expected_outcome": "implement",
|
||||
"budget": {
|
||||
"max_tool_calls": 60,
|
||||
"max_activations": 15
|
||||
},
|
||||
"seed": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}KENNEL_PRICER",
|
||||
"file": "seed/kennel_pricer.clas.abap",
|
||||
"description": "Legacy kennel boarding fee calculator with deep nesting, duplicated branches and magic numbers"
|
||||
}
|
||||
],
|
||||
"contract": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}KENNEL_PRICER"
|
||||
}
|
||||
],
|
||||
"out_of_scope": [],
|
||||
"hidden_tests": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}T02_HIDDEN",
|
||||
"file": "hidden/t02_hidden.clas.abap",
|
||||
"description": "T02 hidden tests: unchanged boarding fee behaviour of the kennel pricer"
|
||||
}
|
||||
],
|
||||
"reference": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}KENNEL_PRICER",
|
||||
"file": "reference/kennel_pricer.clas.abap",
|
||||
"description": "Refactored kennel boarding fee calculator",
|
||||
"testclasses_file": "reference/kennel_pricer.testclasses.abap"
|
||||
}
|
||||
],
|
||||
"craft_checks": [
|
||||
"method_length",
|
||||
"magic_numbers",
|
||||
"nesting_depth"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user