48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
---
|
|
epic: 2
|
|
story: 2.5
|
|
title: "Natural Language Unit Expressions"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 2 — Unit Conversion System
|
|
**Goal:** Support 200+ units across all major categories with SI prefix support.
|
|
|
|
### Story 2.5: Natural Language Unit Expressions
|
|
|
|
As a CalcPad user,
|
|
I want to write unit conversions using natural language keywords like "in", "to", and "as" with plural and singular unit names,
|
|
So that I can express conversions the way I naturally think about them.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the expression `5 inches in cm`
|
|
**When** the engine evaluates it
|
|
**Then** it recognizes `in` as a conversion operator and `cm` as the target unit
|
|
**And** the result is `12.7 cm`
|
|
|
|
**Given** the expression `100 ft to meters`
|
|
**When** the engine evaluates it
|
|
**Then** it recognizes `to` as a conversion operator
|
|
**And** the result is `30.48 meters`
|
|
|
|
**Given** the expression `72 kg as pounds`
|
|
**When** the engine evaluates it
|
|
**Then** it recognizes `as` as a conversion operator
|
|
**And** the result is approximately `158.733 pounds`
|
|
|
|
**Given** the expression `1 foot in inches`
|
|
**When** the engine evaluates it
|
|
**Then** it recognizes both the singular `foot` and plural `inches`
|
|
**And** the result is `12 inches`
|
|
|
|
**Given** the expression `5 lbs in kilograms`
|
|
**When** the engine evaluates it
|
|
**Then** it recognizes the abbreviation `lbs` and full name `kilograms`
|
|
**And** the result is approximately `2.26796 kilograms`
|
|
|
|
**Given** the word `in` used in a context that is not a unit conversion (e.g., `5 in + 3 in`)
|
|
**When** the engine evaluates it
|
|
**Then** it correctly interprets `in` as the unit "inches" rather than a conversion operator
|
|
**And** the result is `8 in`
|