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:
47
tasks_gen/train/G1018/spec.md
Normal file
47
tasks_gen/train/G1018/spec.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# 1. Goal
|
||||
Calculate the price of a classified advertisement for a newspaper. The sales
|
||||
desk calls one function module for each advertisement order, before it saves
|
||||
the order.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- Function group {{P}}FG_AD exists in package $TMP.
|
||||
- The sales desk calls the new function module for each advertisement order.
|
||||
|
||||
# 4. Contract
|
||||
- Create the function module {{P}}AD_PRICE in function group {{P}}FG_AD.
|
||||
- The interface of {{P}}AD_PRICE is:
|
||||
- importing iv_lines type i: the number of lines of the advertisement.
|
||||
- importing iv_insertions type i: the number of times that the advertisement
|
||||
is printed.
|
||||
- importing iv_photo type abap_bool: abap_true if the advertisement has a
|
||||
photo.
|
||||
- exporting ev_price type decfloat34: the price of the advertisement in euro.
|
||||
- exceptions invalid_lines and invalid_insertions.
|
||||
|
||||
# 5. Business rules
|
||||
1. If iv_lines is less than 1, raise the exception INVALID_LINES.
|
||||
2. If iv_insertions is less than 1, raise the exception INVALID_INSERTIONS.
|
||||
3. One line of the advertisement costs 12.45 euro.
|
||||
4. A photo costs 25.00 euro. Charge the photo once for each order.
|
||||
5. The discount applies to the sum of the line price and the photo price:
|
||||
- 1 or 2 insertions: no discount.
|
||||
- 3, 4 or 5 insertions: 10 % discount.
|
||||
- 6 or more insertions: 20 % discount.
|
||||
6. Round the price half up to 2 decimals.
|
||||
7. The minimum price is 20.00 euro. Apply the minimum price after the discount
|
||||
and after the rounding.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 7.40 SP05. Use only ABAP syntax that release 7.40 SP05
|
||||
supports. Do not use inline declarations or constructor expressions.
|
||||
- Coding standards: Clean ABAP. Keep every method below 40 statements.
|
||||
- Out of scope: database tables, reports, ALV lists, and other function
|
||||
modules.
|
||||
|
||||
# 7. Acceptance
|
||||
- The function module is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write ABAP Unit tests for the function module in a global test class.
|
||||
Reference in New Issue
Block a user