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:
57
tasks_gen/train/G1038/spec.md
Normal file
57
tasks_gen/train/G1038/spec.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 1. Goal
|
||||
A market operator hires out stalls to traders at its weekly market. For each
|
||||
booking the operator charges a stall fee. The booking program calls one
|
||||
function module for each booking. The function module calculates the fee from
|
||||
the stall size, the number of market days, and whether the trader needs an
|
||||
electricity supply.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- Function group {{P}}FG_MKT exists in package $TMP.
|
||||
- Function module {{P}}MKT_SAMPLE exists in this group. It is the sample
|
||||
module. Its interface is the interface that the booking program uses.
|
||||
- The booking program calls {{P}}MKT_STALL_FEE for each booking and reads the
|
||||
exported fee.
|
||||
|
||||
# 4. Contract
|
||||
Create the function module {{P}}MKT_STALL_FEE in function group {{P}}FG_MKT.
|
||||
Use exactly the interface of {{P}}MKT_SAMPLE.
|
||||
|
||||
| Parameter | Kind | Type | Meaning |
|
||||
| --- | --- | --- | --- |
|
||||
| iv_stall_size | importing | string | Stall size: 'S', 'M' or 'L' |
|
||||
| iv_days | importing | i | Number of market days |
|
||||
| iv_power | importing | abap_bool | Electricity supply is wanted |
|
||||
| ev_fee | exporting | decfloat34 | Calculated stall fee |
|
||||
| invalid_days | exception | - | iv_days is less than 1 |
|
||||
| invalid_size | exception | - | iv_stall_size is not 'S', 'M' or 'L' |
|
||||
|
||||
# 5. Business rules
|
||||
1. If iv_days is less than 1, raise the exception INVALID_DAYS and do not
|
||||
calculate a fee. Check this rule before rule 2.
|
||||
2. The daily fee depends on iv_stall_size:
|
||||
- 'S': 12.00
|
||||
- 'M': 20.00
|
||||
- 'L': 35.00
|
||||
Any other value of iv_stall_size raises the exception INVALID_SIZE and no
|
||||
fee is calculated.
|
||||
3. If iv_power is abap_true, add 2.50 to the daily fee.
|
||||
4. The total fee is the daily fee multiplied by iv_days.
|
||||
5. If iv_days is 5 or more, the total fee is reduced by 15 %. Calculate the
|
||||
reduction from the total fee, round the reduction half up to 2 decimals,
|
||||
and subtract the rounded reduction from the total fee.
|
||||
6. If iv_days is less than 5, the fee is the total fee without a reduction.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 7.40 SP05. Use only syntax that is available in this release.
|
||||
Do not use the new ABAP SQL syntax with @ host variables or comma separated
|
||||
field lists.
|
||||
- Coding standards: Clean ABAP. Keep every method below 40 statements.
|
||||
- Out of scope: do not change the function module {{P}}MKT_SAMPLE.
|
||||
|
||||
# 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