Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
52
tasks_gen/train/G1087/spec.md
Normal file
52
tasks_gen/train/G1087/spec.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 1. Goal
|
||||
A tool hire shop rents power tools to its customers. The checkout program calls
|
||||
the class {{P}}TOOL_HIRE for each hire request before it prints the hire
|
||||
contract. The program needs the fee of the hire and one reason code.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- Interface {{P}}IF_TOOL_HIRE exists in package $TMP. It is active.
|
||||
- The interface has these types: TY_TOOL (CHAR 1), TY_DAYS (integer),
|
||||
TY_AMOUNT (packed, 13 digits, 2 decimals), TY_REASON (CHAR 12).
|
||||
- The interface has the structure TY_RESULT with the components FEE and REASON.
|
||||
- The interface has the constant structure C_REASON with the values OK,
|
||||
UNKNOWN_TOOL and TOO_SHORT.
|
||||
- The interface has one method:
|
||||
CALCULATE IMPORTING iv_tool TYPE ty_tool
|
||||
iv_days TYPE ty_days
|
||||
RETURNING VALUE(rs_result) TYPE ty_result.
|
||||
|
||||
# 4. Contract
|
||||
- Create the class {{P}}TOOL_HIRE in package $TMP.
|
||||
- The class is public, final, and has a public constructor without parameters.
|
||||
- The class implements {{P}}IF_TOOL_HIRE.
|
||||
- Do not add other public methods.
|
||||
|
||||
# 5. Business rules
|
||||
1. The tool category is one character. These categories exist: 'D' is a drill,
|
||||
'S' is a sander, 'C' is a tile cutter. Every other category is unknown. For
|
||||
an unknown category return the reason UNKNOWN_TOOL and the fee 0.00.
|
||||
2. A hire of less than 1 day is not possible. Return the reason TOO_SHORT and
|
||||
the fee 0.00.
|
||||
3. The daily rate is 12.00 for 'D', 9.00 for 'S' and 15.00 for 'C'. A hire of
|
||||
1 to 6 days costs the daily rate multiplied by the number of days.
|
||||
4. A hire of 7 days or more costs the weekly rate instead of the daily rate.
|
||||
The weekly rate is 60.00 for 'D', 45.00 for 'S' and 75.00 for 'C'.
|
||||
5. A hire of 28 days or more costs the monthly rate instead of the weekly rate.
|
||||
The monthly rate is 180.00 for 'D', 135.00 for 'S' and 225.00 for 'C'.
|
||||
6. The shop accepts hires of at most 90 days.
|
||||
7. For every accepted hire return the reason OK and the fee of the hire.
|
||||
8. The checkout program calls the class for every hire request, also for
|
||||
requests that the shop cannot accept.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
|
||||
- Coding standards: Clean ABAP. Method length below 40 statements. No global
|
||||
variables. No comment that restates the code.
|
||||
- Out of scope: do not change {{P}}IF_TOOL_HIRE.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- Write your own ABAP Unit tests for the class.
|
||||
Reference in New Issue
Block a user