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:
58
tasks_gen/train/G1043/spec.md
Normal file
58
tasks_gen/train/G1043/spec.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 1. Goal
|
||||
A pharmacy calculates the co-payment that a customer pays for a prescription.
|
||||
A checkout program calls the calculation before it prints the receipt. The
|
||||
program needs the co-payment amount and one reason code for each call.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The interface {{P}}IF_MED_COPAY exists in package $TMP. It is active.
|
||||
- The interface has the types TY_TIER (character, length 1), TY_REASON
|
||||
(character, length 10) and TY_AMOUNT (packed number, length 9, 2 decimals).
|
||||
- The interface has the constant structure C_TIER with the values STANDARD,
|
||||
CHRONIC and EXEMPT.
|
||||
- The interface has the constant structure C_REASON with the values OK, PRICE,
|
||||
QUANTITY and TIER.
|
||||
- The interface has the structure TY_RESULT with the components COPAY (TY_AMOUNT)
|
||||
and REASON (TY_REASON).
|
||||
- The interface has one method:
|
||||
CALCULATE
|
||||
IMPORTING iv_price TYPE ty_amount
|
||||
iv_quantity TYPE i
|
||||
iv_tier TYPE ty_tier
|
||||
RETURNING VALUE(rs_result) TYPE ty_result.
|
||||
|
||||
# 4. Contract
|
||||
- Create the class {{P}}MED_COPAY in package $TMP.
|
||||
- The class is public, final and has a public constructor without parameters.
|
||||
- The class implements {{P}}IF_MED_COPAY.
|
||||
- Do not add other public methods.
|
||||
|
||||
# 5. Business rules
|
||||
Apply the rules in this sequence. Return the reason of the first rule that fails.
|
||||
1. If iv_price is zero or less, return the reason PRICE and the co-payment 0.
|
||||
2. If iv_quantity is less than 1, return the reason QUANTITY and the co-payment 0.
|
||||
3. If iv_tier is not STANDARD, CHRONIC or EXEMPT, return the reason TIER and the
|
||||
co-payment 0.
|
||||
4. The total price is iv_price multiplied by iv_quantity.
|
||||
5. If iv_tier is EXEMPT, the co-payment is 0. Continue with rule 9.
|
||||
6. If iv_tier is CHRONIC, the co-payment is 10 per cent of the total price.
|
||||
7. If iv_tier is STANDARD, the co-payment is 30 per cent of the total price.
|
||||
8. Round the co-payment to 2 decimals (commercial rounding, half away from zero).
|
||||
Then apply the limits. For CHRONIC the minimum is 5.00 and the maximum is
|
||||
10.00. For STANDARD the minimum is 5.00 and the maximum is 50.00.
|
||||
9. If the co-payment is more than the total price, the co-payment is the total
|
||||
price.
|
||||
10. Return the reason OK.
|
||||
|
||||
# 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_MED_COPAY.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write your own ABAP Unit tests for the class.
|
||||
Reference in New Issue
Block a user