Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
47
tasks_gen/train/G1050/spec.md
Normal file
47
tasks_gen/train/G1050/spec.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# 1. Goal
|
||||
Refactor the legacy class {{P}}TAILOR_PRICER in package $TMP. The class calculates
|
||||
the price of an alteration job in a tailor shop. The shop terminal calls the class
|
||||
for each job. The behavior of the class must stay the same.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The class {{P}}TAILOR_PRICER exists in package $TMP. It is active.
|
||||
- The class is public and final. The public constructor has no parameters.
|
||||
- The shop terminal calls the public method CALCULATE_PRICE for each job.
|
||||
- The legacy implementation is correct. It is also long, deeply nested, and full of
|
||||
magic numbers. It is hard to read and hard to change.
|
||||
- The customers do not accept different prices. The same input must give the same
|
||||
result as before.
|
||||
|
||||
# 4. Contract
|
||||
- The class {{P}}TAILOR_PRICER stays in package $TMP. Do not rename it.
|
||||
- The class stays public and final. The public constructor stays without parameters.
|
||||
- The public types ty_garment, ty_service, and ty_price stay unchanged.
|
||||
- The public method stays unchanged:
|
||||
calculate_price
|
||||
IMPORTING iv_garment TYPE ty_garment
|
||||
iv_service TYPE ty_service
|
||||
iv_quantity TYPE i
|
||||
iv_express TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
- Do not add other public methods, public attributes, or public types.
|
||||
|
||||
# 5. Business rules
|
||||
The legacy implementation of {{P}}TAILOR_PRICER defines the price rules. Read the
|
||||
legacy code in the seed object. Keep every rule, the sequence of the rules, and all
|
||||
special cases. The behavior stays the same for every input combination.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: SAP_BASIS 816.
|
||||
- Coding standards: Clean ABAP. Methods below 40 statements. Maximum nesting depth
|
||||
of 3. No magic numbers, use constants. No global variables. No comment that
|
||||
restates the code.
|
||||
- Out of scope: do not change the public interface. Do not change the class name.
|
||||
Do not add public members. Do not change the price rules.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write your own ABAP Unit tests as local test classes in the class.
|
||||
Reference in New Issue
Block a user