Commit Graph
3 Commits
Author SHA1 Message Date
Tirsvad 6d99810e30 Add console interface: calculator loop, ASCII title and tests
MIL-003 Console interface.

- Add calculator() with recursive restart: y continues with the result,
  n starts a new calculation, q quits
- Show one ASCII title at start: a calculator with the lettering to
  its right
- Re-prompt on invalid numbers, operations and answers; restart on
  division by zero
- Add __main__.py for python -m calc and the calc console script
- Add interface tests with input() fed through monkeypatch

Closes #22
Closes #23
Closes #24
Closes #25

Task: MIL-003#1
Task: MIL-003#2
Task: MIL-003#3
Task: MIL-003#4
2026-10-04 20:59:53 +08:00
Tirsvad 5e1067b4f3 Add calculator core: constants, operations and tests
MIL-002 Calculator core.

- Add constants.py with operation symbols, answers, prompts, messages
  and the ASCII title and calculator
- Add add, subtract, multiply and divide, and the OPERATIONS dictionary
  that maps each symbol to its function without calling it
- Add tests for each operation, division by zero and the dictionary

Closes #19
Closes #20
Closes #21

Task: MIL-002#1
Task: MIL-002#2
Task: MIL-002#3
2026-10-04 20:49:38 +08:00
Tirsvad 1237f41840 Add project scaffold: pyproject, Doxyfile and package layout
MIL-001 Project scaffold.

- Add pyproject.toml: Python 3.13 or newer, no runtime dependencies,

  pytest as the dev extra

- Add src/calc/ package and tests/ folder

- Add Doxyfile writing API docs to docs/doxygen/

- Ignore docs/doxygen/ in .gitignore

Closes #15

Closes #16

Closes #17

Closes #18

Task: MIL-001#1

Task: MIL-001#2

Task: MIL-001#3

Task: MIL-001#4
2026-10-04 20:38:26 +08:00