2.0 KiB
epic, story, title, status
| epic | story | title | status |
|---|---|---|---|
| 5 | 5.4 | Section Aggregators | draft |
Epic 5 — Variables, Line References & Aggregators
Goal: Transform the notepad into a lightweight computational document.
Story 5.4: Section Aggregators
As a CalcPad user,
I want to use aggregation keywords like sum, total, average, min, max, and count to compute over a section of lines,
So that I can quickly summarize a group of related values without manually writing out each reference.
Acceptance Criteria:
Given lines 1–4 contain numeric values 10, 20, 30, 40 and line 5 is empty
When the user writes sum on line 5 (or after the group)
Then the result is 100 (sum of lines 1–4)
Given lines 1–4 contain numeric values and line 5 is a heading ## Monthly Costs
When the user writes total immediately after lines 6–9 (which contain values under that heading)
Then total sums only lines 6–9 (the section bounded by the heading above and the aggregator line)
Given a section with values 10, 20, 30
When the user writes average (or avg) at the end of the section
Then the result is 20
Given a section with values 5, 12, 3, 8
When the user writes min at the end of the section
Then the result is 3
Given a section with values 5, 12, 3, 8
When the user writes max at the end of the section
Then the result is 12
Given a section with values 5, 12, 3, 8
When the user writes count at the end of the section
Then the result is 4 (number of lines with numeric results)
Given a section contains a mix of numeric lines and comment lines When an aggregator is applied Then only lines with numeric results are included in the aggregation (comments and blank lines are skipped)
Given an empty section (heading immediately followed by another heading or end-of-document)
When the user writes sum
Then the result is 0 (or an appropriate indication that there are no values to aggregate)