Pipeline controller: plan 2 (hard +, error +50 %), backlog throttle, 2 trajectory workers, stop rules, summaries every 50; budget reserve
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
16
tasks_gen/train/G1312/generation.json
Normal file
16
tasks_gen/train/G1312/generation.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "G1312",
|
||||
"pool": "train",
|
||||
"category": "K",
|
||||
"base_task": "G1010",
|
||||
"style": "free_text",
|
||||
"tool_schema": null,
|
||||
"attempts": [
|
||||
{
|
||||
"stage": "validate",
|
||||
"oracle": 100.0,
|
||||
"null": 0
|
||||
}
|
||||
],
|
||||
"accepted": true
|
||||
}
|
||||
137
tasks_gen/train/G1312/hidden/t31_hidden.clas.abap
Normal file
137
tasks_gen/train/G1312/hidden/t31_hidden.clas.abap
Normal file
@@ -0,0 +1,137 @@
|
||||
CLASS {{p}}t31_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_price TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS c_screen_basic TYPE ty_price VALUE '89.00'.
|
||||
CONSTANTS c_high_full TYPE ty_price VALUE '101.00'.
|
||||
CONSTANTS c_mid_board TYPE ty_price VALUE '163.90'.
|
||||
CONSTANTS c_minimum TYPE ty_price VALUE '25.00'.
|
||||
CONSTANTS c_zero TYPE ty_price VALUE '0.00'.
|
||||
CONSTANTS c_port_basic TYPE ty_price VALUE '49.00'.
|
||||
CONSTANTS c_camera_express TYPE ty_price VALUE '74.00'.
|
||||
CONSTANTS c_camera_full TYPE ty_price VALUE '59.20'.
|
||||
CONSTANTS c_port_high TYPE ty_price VALUE '61.25'.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}phone_repair_pricer.
|
||||
|
||||
METHODS setup.
|
||||
METHODS screen_basic_plain FOR TESTING.
|
||||
METHODS screen_high_express_warranty FOR TESTING.
|
||||
METHODS mid_device_surcharge FOR TESTING.
|
||||
METHODS battery_minimum_charge FOR TESTING.
|
||||
METHODS battery_warranty_minimum FOR TESTING.
|
||||
METHODS unknown_repair_is_zero FOR TESTING.
|
||||
METHODS unknown_repair_ignores_extras FOR TESTING.
|
||||
METHODS unknown_device_is_basic FOR TESTING.
|
||||
METHODS express_adds_fee FOR TESTING.
|
||||
METHODS warranty_after_express FOR TESTING.
|
||||
METHODS port_high_no_extras FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t31_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}phone_repair_pricer( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD screen_basic_plain.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_screen_basic
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'SCREEN'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD screen_high_express_warranty.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_high_full
|
||||
act = mo_cut->calculate_price( iv_device = 'HIGH'
|
||||
iv_repair = 'SCREEN'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD mid_device_surcharge.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_mid_board
|
||||
act = mo_cut->calculate_price( iv_device = 'MID'
|
||||
iv_repair = 'BOARD'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD battery_minimum_charge.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_minimum
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'BATTERY'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD battery_warranty_minimum.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_minimum
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'BATTERY'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_repair_is_zero.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_zero
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'SPEAKER'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_repair_ignores_extras.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_zero
|
||||
act = mo_cut->calculate_price( iv_device = 'HIGH'
|
||||
iv_repair = 'SPEAKER'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_device_is_basic.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_port_basic
|
||||
act = mo_cut->calculate_price( iv_device = 'ULTRA'
|
||||
iv_repair = 'PORT'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD express_adds_fee.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_camera_express
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'CAMERA'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD warranty_after_express.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_camera_full
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'CAMERA'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD port_high_no_extras.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_port_high
|
||||
act = mo_cut->calculate_price( iv_device = 'HIGH'
|
||||
iv_repair = 'PORT'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
105
tasks_gen/train/G1312/reference/phone_repair_pricer.clas.abap
Normal file
105
tasks_gen/train/G1312/reference/phone_repair_pricer.clas.abap
Normal file
@@ -0,0 +1,105 @@
|
||||
CLASS {{p}}phone_repair_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_device TYPE c LENGTH 6.
|
||||
TYPES ty_repair TYPE c LENGTH 8.
|
||||
TYPES ty_price TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS c_device_basic TYPE ty_device VALUE 'BASIC'.
|
||||
CONSTANTS c_device_mid TYPE ty_device VALUE 'MID'.
|
||||
CONSTANTS c_device_high TYPE ty_device VALUE 'HIGH'.
|
||||
|
||||
CONSTANTS c_repair_screen TYPE ty_repair VALUE 'SCREEN'.
|
||||
CONSTANTS c_repair_battery TYPE ty_repair VALUE 'BATTERY'.
|
||||
CONSTANTS c_repair_board TYPE ty_repair VALUE 'BOARD'.
|
||||
CONSTANTS c_repair_camera TYPE ty_repair VALUE 'CAMERA'.
|
||||
CONSTANTS c_repair_port TYPE ty_repair VALUE 'PORT'.
|
||||
|
||||
METHODS calculate_price
|
||||
IMPORTING iv_device TYPE ty_device
|
||||
iv_repair TYPE ty_repair
|
||||
iv_express TYPE abap_bool
|
||||
iv_warranty TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS c_base_screen TYPE ty_price VALUE '89.00'.
|
||||
CONSTANTS c_base_battery TYPE ty_price VALUE '19.00'.
|
||||
CONSTANTS c_base_board TYPE ty_price VALUE '149.00'.
|
||||
CONSTANTS c_base_camera TYPE ty_price VALUE '59.00'.
|
||||
CONSTANTS c_base_port TYPE ty_price VALUE '49.00'.
|
||||
CONSTANTS c_factor_basic TYPE ty_price VALUE '1.00'.
|
||||
CONSTANTS c_factor_mid TYPE ty_price VALUE '1.10'.
|
||||
CONSTANTS c_factor_high TYPE ty_price VALUE '1.25'.
|
||||
CONSTANTS c_express_fee TYPE ty_price VALUE '15.00'.
|
||||
CONSTANTS c_warranty_rate TYPE ty_price VALUE '0.80'.
|
||||
CONSTANTS c_minimum_price TYPE ty_price VALUE '25.00'.
|
||||
|
||||
METHODS base_price
|
||||
IMPORTING iv_repair TYPE ty_repair
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
|
||||
METHODS device_factor
|
||||
IMPORTING iv_device TYPE ty_device
|
||||
RETURNING VALUE(rv_factor) TYPE ty_price.
|
||||
|
||||
METHODS price_with_extras
|
||||
IMPORTING iv_price TYPE ty_price
|
||||
iv_express TYPE abap_bool
|
||||
iv_warranty TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}phone_repair_pricer IMPLEMENTATION.
|
||||
METHOD calculate_price.
|
||||
rv_price = base_price( iv_repair ).
|
||||
IF rv_price IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
rv_price = rv_price * device_factor( iv_device ).
|
||||
rv_price = price_with_extras( iv_price = rv_price
|
||||
iv_express = iv_express
|
||||
iv_warranty = iv_warranty ).
|
||||
|
||||
IF rv_price < c_minimum_price.
|
||||
rv_price = c_minimum_price.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD base_price.
|
||||
CASE iv_repair.
|
||||
WHEN c_repair_screen.
|
||||
rv_price = c_base_screen.
|
||||
WHEN c_repair_battery.
|
||||
rv_price = c_base_battery.
|
||||
WHEN c_repair_board.
|
||||
rv_price = c_base_board.
|
||||
WHEN c_repair_camera.
|
||||
rv_price = c_base_camera.
|
||||
WHEN c_repair_port.
|
||||
rv_price = c_base_port.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD device_factor.
|
||||
CASE iv_device.
|
||||
WHEN c_device_mid.
|
||||
rv_factor = c_factor_mid.
|
||||
WHEN c_device_high.
|
||||
rv_factor = c_factor_high.
|
||||
WHEN OTHERS.
|
||||
rv_factor = c_factor_basic.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD price_with_extras.
|
||||
rv_price = iv_price.
|
||||
IF iv_express = abap_true.
|
||||
rv_price = rv_price + c_express_fee.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
rv_price = rv_price * c_warranty_rate.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,84 @@
|
||||
CLASS ltc_phone_repair_pricer DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES ty_price TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS c_screen_basic TYPE ty_price VALUE '89.00'.
|
||||
CONSTANTS c_port_high TYPE ty_price VALUE '61.25'.
|
||||
CONSTANTS c_camera_express TYPE ty_price VALUE '74.00'.
|
||||
CONSTANTS c_camera_full TYPE ty_price VALUE '59.20'.
|
||||
CONSTANTS c_minimum TYPE ty_price VALUE '25.00'.
|
||||
CONSTANTS c_zero TYPE ty_price VALUE '0.00'.
|
||||
|
||||
DATA mo_cut TYPE REF TO {{p}}phone_repair_pricer.
|
||||
|
||||
METHODS setup.
|
||||
METHODS base_price_screen FOR TESTING.
|
||||
METHODS device_factor_high FOR TESTING.
|
||||
METHODS express_fee FOR TESTING.
|
||||
METHODS warranty_rate FOR TESTING.
|
||||
METHODS minimum_price FOR TESTING.
|
||||
METHODS unknown_repair FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltc_phone_repair_pricer IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}phone_repair_pricer( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD base_price_screen.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_screen_basic
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'SCREEN'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD device_factor_high.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_port_high
|
||||
act = mo_cut->calculate_price( iv_device = 'HIGH'
|
||||
iv_repair = 'PORT'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD express_fee.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_camera_express
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'CAMERA'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD warranty_rate.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_camera_full
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'CAMERA'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD minimum_price.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_minimum
|
||||
act = mo_cut->calculate_price( iv_device = 'BASIC'
|
||||
iv_repair = 'BATTERY'
|
||||
iv_express = abap_false
|
||||
iv_warranty = abap_false ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_repair.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = c_zero
|
||||
act = mo_cut->calculate_price( iv_device = 'HIGH'
|
||||
iv_repair = 'SPEAKER'
|
||||
iv_express = abap_true
|
||||
iv_warranty = abap_true ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
90
tasks_gen/train/G1312/seed/phone_repair_pricer.clas.abap
Normal file
90
tasks_gen/train/G1312/seed/phone_repair_pricer.clas.abap
Normal file
@@ -0,0 +1,90 @@
|
||||
CLASS {{p}}phone_repair_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_device TYPE c LENGTH 6.
|
||||
TYPES ty_repair TYPE c LENGTH 8.
|
||||
TYPES ty_price TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS c_device_basic TYPE ty_device VALUE 'BASIC'.
|
||||
CONSTANTS c_device_mid TYPE ty_device VALUE 'MID'.
|
||||
CONSTANTS c_device_high TYPE ty_device VALUE 'HIGH'.
|
||||
|
||||
CONSTANTS c_repair_screen TYPE ty_repair VALUE 'SCREEN'.
|
||||
CONSTANTS c_repair_battery TYPE ty_repair VALUE 'BATTERY'.
|
||||
CONSTANTS c_repair_board TYPE ty_repair VALUE 'BOARD'.
|
||||
CONSTANTS c_repair_camera TYPE ty_repair VALUE 'CAMERA'.
|
||||
CONSTANTS c_repair_port TYPE ty_repair VALUE 'PORT'.
|
||||
|
||||
METHODS calculate_price
|
||||
IMPORTING iv_device TYPE ty_device
|
||||
iv_repair TYPE ty_repair
|
||||
iv_express TYPE abap_bool
|
||||
iv_warranty TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}phone_repair_pricer IMPLEMENTATION.
|
||||
METHOD calculate_price.
|
||||
DATA lv_price TYPE ty_price.
|
||||
DATA lv_factor TYPE ty_price.
|
||||
DATA lv_found TYPE abap_bool.
|
||||
|
||||
CLEAR lv_found.
|
||||
IF iv_repair = c_repair_screen.
|
||||
lv_price = '89.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_battery.
|
||||
lv_price = '19.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_board.
|
||||
lv_price = '149.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_camera.
|
||||
lv_price = '59.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_port.
|
||||
lv_price = '49.00'.
|
||||
lv_found = abap_true.
|
||||
ENDIF.
|
||||
|
||||
IF lv_found = abap_true.
|
||||
IF iv_device = c_device_high.
|
||||
lv_factor = '1.25'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ELSEIF iv_device = c_device_mid.
|
||||
lv_factor = '1.10'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF lv_price < 25.
|
||||
lv_price = 25.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
CLEAR lv_price.
|
||||
ENDIF.
|
||||
|
||||
rv_price = lv_price.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
13
tasks_gen/train/G1312/spec.md
Normal file
13
tasks_gen/train/G1312/spec.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Hi, please refactor the class {{P}}PHONE_REPAIR_PRICER in package $TMP. The class prices repair orders for a mobile phone repair shop. The checkout program calls the class for each order and prints the price that the class returns. The class works, but its code is legacy code. It has one long method, repeated blocks, and prices that are hidden in the code. Refactor the class in place. The behavior must stay the same.
|
||||
|
||||
There are no open questions.
|
||||
|
||||
The class {{P}}PHONE_REPAIR_PRICER exists in package $TMP and is active. Its source code is the legacy code. The checkout program calls the public method CALCULATE_PRICE. It passes the device class, the repair type, the express flag, and the warranty flag. It prints the returned price. The class is in production. Its public interface must not change. The class has no tests.
|
||||
|
||||
Refactor the class {{P}}PHONE_REPAIR_PRICER in package $TMP. Keep the name. Do not create a second class. The class stays public and final. The constructor stays public and has no parameters. The public section stays as it is. It has the type TY_DEVICE (character 6), the type TY_REPAIR (character 8), and the type TY_PRICE (packed number, length 8, 2 decimals). It has the constants C_DEVICE_BASIC, C_DEVICE_MID, and C_DEVICE_HIGH of type TY_DEVICE. It has the constants C_REPAIR_SCREEN, C_REPAIR_BATTERY, C_REPAIR_BOARD, C_REPAIR_CAMERA, and C_REPAIR_PORT of type TY_REPAIR. It has the method CALCULATE_PRICE with the importing parameters IV_DEVICE (TY_DEVICE), IV_REPAIR (TY_REPAIR), IV_EXPRESS (ABAP_BOOL), and IV_WARRANTY (ABAP_BOOL), and the returning parameter RV_PRICE (TY_PRICE). Do not add other public methods, types, constants, or attributes.
|
||||
|
||||
The behavior of the class must not change. Every combination of the four input parameters must return the same price as before. The rules are in the legacy source code of the class. Read the legacy code. Keep every rule and keep the sequence of the steps. Do not add rules and do not remove rules.
|
||||
|
||||
The release target is ABAP Platform 2025 (SAP_BASIS 816). Use Clean ABAP. Methods must be below 40 statements. Do not use global variables. Do not write comments that restate the code. Replace the prices and the factors with named constants. Remove the repeated blocks. Use names that say what the data and the methods mean. Do not change the public interface of the class.
|
||||
|
||||
The class must be active and have no syntax error. The hidden tests must pass. Write your own ABAP Unit tests for the class.
|
||||
51
tasks_gen/train/G1312/task.json
Normal file
51
tasks_gen/train/G1312/task.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"id": "G1312",
|
||||
"category": "K",
|
||||
"object_type": "CLAS",
|
||||
"difficulty": 2,
|
||||
"release_target": "v816",
|
||||
"expected_outcome": "implement",
|
||||
"budget": {
|
||||
"max_tool_calls": 60,
|
||||
"max_activations": 15
|
||||
},
|
||||
"seed": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}PHONE_REPAIR_PRICER",
|
||||
"file": "seed/phone_repair_pricer.clas.abap",
|
||||
"description": "Legacy phone repair price calculator: one long method, repeated blocks, prices hidden in the code"
|
||||
}
|
||||
],
|
||||
"contract": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}PHONE_REPAIR_PRICER"
|
||||
}
|
||||
],
|
||||
"out_of_scope": [],
|
||||
"hidden_tests": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}T31_HIDDEN",
|
||||
"file": "hidden/t31_hidden.clas.abap",
|
||||
"description": "Behavior tests for the refactored phone repair price calculator"
|
||||
}
|
||||
],
|
||||
"reference": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}PHONE_REPAIR_PRICER",
|
||||
"file": "reference/phone_repair_pricer.clas.abap",
|
||||
"description": "Refactored phone repair price calculator",
|
||||
"testclasses_file": "reference/phone_repair_pricer.testclasses.abap"
|
||||
}
|
||||
],
|
||||
"craft_checks": [
|
||||
"method_length",
|
||||
"duplicate_code",
|
||||
"magic_numbers"
|
||||
],
|
||||
"base_task": "G1010",
|
||||
"input_style": "free_text"
|
||||
}
|
||||
Reference in New Issue
Block a user