Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
49
tasks_gen/train/G1063/spec.md
Normal file
49
tasks_gen/train/G1063/spec.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 1. Goal
|
||||
Calculate the toll that a vehicle pays for one journey on a toll road. A billing
|
||||
program calls the calculation for each journey. The program needs the toll in
|
||||
cents and one reason code for each journey.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The interface {{P}}IF_TOLL_PRICER exists in package $TMP. It is active.
|
||||
- The interface contains the type TY_JOURNEY for the input, the type TY_RESULT
|
||||
for the output, the constant structure C_CLASS with the vehicle classes, the
|
||||
constant structure C_REASON with the reason codes, and one method:
|
||||
PRICE_JOURNEY IMPORTING is_journey TYPE ty_journey
|
||||
RETURNING VALUE(rs_result) TYPE ty_result.
|
||||
|
||||
# 4. Contract
|
||||
- Create the class {{P}}TOLL_PRICER in package $TMP.
|
||||
- The class is public, final and has a public constructor without parameters.
|
||||
- The class implements {{P}}IF_TOLL_PRICER.
|
||||
- Do not add other public methods.
|
||||
|
||||
# 5. Business rules
|
||||
Apply the rules in this sequence. All amounts are in cents. Use integer
|
||||
arithmetic and discard remainders.
|
||||
1. Convert the vehicle class to upper case. The valid classes are M
|
||||
(motorcycle), C (car), V (van) and L (lorry). If the class is not valid,
|
||||
return the reason VEHICLE and the amount 0.
|
||||
2. The distance must be 1 kilometre or more and 130 kilometres or less. If not,
|
||||
return the reason DISTANCE and the amount 0.
|
||||
3. The rate for each kilometre is 5 cents for M, 10 cents for C, 18 cents for V
|
||||
and 30 cents for L. The toll is the distance multiplied by the rate.
|
||||
4. If the toll is below 100 cents, set the toll to 100 cents.
|
||||
5. If the vehicle has a transponder, subtract one tenth of the toll from the
|
||||
toll. Example: a toll of 1000 cents becomes 900 cents.
|
||||
6. If the journey is at night and the vehicle class is L, add one quarter of the
|
||||
toll to the toll. Example: a toll of 3000 cents becomes 3750 cents.
|
||||
7. Return the reason OK and the toll in the component amount_cents.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 8.16 (SAP_BASIS 816).
|
||||
- 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_TOLL_PRICER.
|
||||
|
||||
# 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