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:
50
tasks_gen/train/G1007/spec.md
Normal file
50
tasks_gen/train/G1007/spec.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 1. Goal
|
||||
Calculate the price of a jump session at a trampoline park. A booking program
|
||||
calls the calculation before it confirms a booking. The booking program needs
|
||||
one price in euro for each booking.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The trampoline park sells jump sessions of 30, 45, 60, 75 or 90 minutes.
|
||||
- The booking program knows the number of persons in the booking, the length of
|
||||
the session in minutes, and if the customer has a member card.
|
||||
- All prices are in euro and have 2 decimals.
|
||||
|
||||
# 4. Contract
|
||||
- Create the class {{P}}JUMP_PRICER in package $TMP.
|
||||
- The class is public, final, and has a public constructor without parameters.
|
||||
- The public section has the type TY_AMOUNT (packed number, length 8, 2 decimals)
|
||||
and one method:
|
||||
CALCULATE
|
||||
IMPORTING iv_persons TYPE i
|
||||
iv_minutes TYPE i
|
||||
iv_member TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_amount.
|
||||
- iv_persons is the number of persons. iv_minutes is the session length in
|
||||
minutes. iv_member is abap_true if the customer has a member card.
|
||||
- Do not add other public methods.
|
||||
|
||||
# 5. Business rules
|
||||
Apply the rules in this sequence.
|
||||
1. If iv_persons is less than 1, or iv_minutes is less than 1, the price is 0.00.
|
||||
2. The price per person depends on the session length:
|
||||
- If the session is shorter than 60 minutes, the price per person is 8.00.
|
||||
- If the session is longer than 60 minutes, the price per person is 12.00.
|
||||
3. Multiply the price per person by the number of persons.
|
||||
4. If iv_member is abap_true, subtract 20 percent from the result of rule 3.
|
||||
5. If the number of persons is 10 or more, subtract 10 percent from the result
|
||||
of rule 4.
|
||||
6. Round the result to 2 decimals. Round half up.
|
||||
|
||||
# 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 other objects in package $TMP.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- Every business rule is checked by a test.
|
||||
- Write your own ABAP Unit tests for the class.
|
||||
Reference in New Issue
Block a user