1.9 KiB
epic, story, title, status
| epic | story | title | status |
|---|---|---|---|
| 6 | 6.6 | Conditionals | draft |
Epic 6 — Advanced Math & Functions
Goal: Scientific, financial, and power-user math.
Story 6.6: Conditionals
As a CalcPad user,
I want to write conditional expressions using if/then/else,
So that I can model decision logic such as tax brackets and tiered pricing directly in my calculations.
Acceptance Criteria:
Given a variable revenue = 150000
When the user writes if revenue > 100k then revenue * 0.15 else revenue * 0.10
Then the result is 22500 (the then branch is taken because 150000 > 100000)
Given a variable revenue = 80000
When the user writes if revenue > 100k then revenue * 0.15 else revenue * 0.10
Then the result is 8000 (the else branch is taken because 80000 is not > 100000)
Given the user writes if 5 > 3 then 10 else 20
When the engine evaluates
Then the result is 10
Given the user writes if 2 > 3 then 10 else 20
When the engine evaluates
Then the result is 20
Given the user writes if x > 10 then x * 2 else x where x is undefined
When the engine evaluates
Then an error is displayed indicating that x is not defined
Given the user writes a conditional comparing values with units, e.g., if distance > 100 km then 50 else 30
When the engine evaluates with distance = 150 km
Then the result is 50 (the comparison respects unit context)
Given the user writes a conditional without an else clause, e.g., if revenue > 100k then revenue * 0.15
When the engine evaluates with revenue = 80000
Then the result is 0 or null/blank (a sensible default when the condition is false and no else is provided)
Given the user writes a nested conditional: if a > 10 then if a > 20 then 3 else 2 else 1
When the engine evaluates with a = 25
Then the result is 3