54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
---
|
|
epic: 6
|
|
story: 6.8
|
|
title: "List Operations"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 6 — Advanced Math & Functions
|
|
**Goal:** Scientific, financial, and power-user math.
|
|
|
|
### Story 6.8: List Operations
|
|
|
|
As a **CalcPad user**,
|
|
I want to use list-based functions like min, max, gcd, and lcm with multiple arguments,
|
|
So that I can perform aggregate computations on explicit sets of values.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the user writes `min(5, 3, 7)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `3`
|
|
|
|
**Given** the user writes `max(5, 3, 7)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `7`
|
|
|
|
**Given** the user writes `gcd(10, 20, 5)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `5`
|
|
|
|
**Given** the user writes `lcm(210, 40, 8)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `840`
|
|
|
|
**Given** the user writes `min(5)` with a single argument
|
|
**When** the engine evaluates
|
|
**Then** the result is `5`
|
|
|
|
**Given** the user writes `gcd(0, 5)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `5` (gcd(0, n) = n)
|
|
|
|
**Given** the user writes `lcm(0, 5)`
|
|
**When** the engine evaluates
|
|
**Then** the result is `0` (lcm(0, n) = 0)
|
|
|
|
**Given** the user writes `min()` with no arguments
|
|
**When** the engine evaluates
|
|
**Then** an error is displayed indicating that at least one argument is required
|
|
|
|
**Given** the user writes `gcd(12.5, 7.5)`
|
|
**When** the engine evaluates
|
|
**Then** an error is displayed (gcd is defined for integers only) or the values are truncated/rounded with a warning
|