turner-townsend-backend-ass.../README.md

53 lines
1.8 KiB
Markdown
Raw Normal View History

2025-08-31 11:34:20 +01:00
# Turner & Townsend backend technical assessment
2025-08-31 11:34:20 +01:00
This repository contains my solutions to the Turner & Townsend backend technical assessment. While the brief requested solving only one problem, I started with the "spiciest" Stack task for the first hour and then tackled the other two tasks in the second hour. I did come back the next day and spend some extra time improving the README documentation.
2025-08-31 11:34:20 +01:00
## Solutions
2025-08-31 11:34:20 +01:00
### [Stack Calculator](./stack/README.md)
2025-08-31 11:34:20 +01:00
**Complexity: Medium**
2025-08-31 11:34:20 +01:00
A stack-based programming language interpreter (Fifth) that supports arithmetic operations and stack manipulation commands. Features an interactive REPL with comprehensive error handling.
2025-08-31 11:34:20 +01:00
### [Roman Numerals Converter](./roman/README.md)
2025-08-31 11:34:20 +01:00
**Complexity: Medium**
2025-08-31 11:34:20 +01:00
Converts Roman numerals to Arabic numbers using additive logic. Includes flexible input handling with case-insensitive processing and automatic filtering of invalid characters.
2025-08-31 11:34:20 +01:00
### [Collatz Conjecture Calculator](./collatz/README.md)
2025-08-31 11:34:20 +01:00
**Complexity: Low**
2025-08-31 11:34:20 +01:00
Calculates the number of steps in the Collatz sequence (3n + 1 problem) with step-by-step visualization. Demonstrates mathematical algorithm implementation with interactive feedback.
2025-08-31 11:34:20 +01:00
## Architecture
2025-08-31 11:34:20 +01:00
All three solutions follow consistent design principles:
2025-08-31 11:34:20 +01:00
- Class-based structure for encapsulation and testability
- Interactive command-line interfaces with graceful error handling
- Comprehensive test suites with good coverage
- Modern Python features and best practices
2025-08-31 11:34:20 +01:00
## Quick Start
2025-08-31 11:34:20 +01:00
**Requirements:** Python 3.10+, pytest
```bash
2025-08-31 11:34:20 +01:00
# Install dependencies
pip install -r requirements.txt
2025-08-31 11:34:20 +01:00
# Run solutions
cd stack && python stack.py
cd roman && python roman.py
cd collatz && python collatz.py
2025-08-31 11:34:20 +01:00
# Run tests
pytest # All tests
pytest stack/ # Individual solution tests
```
2025-08-31 11:34:20 +01:00
Click the links above to view detailed documentation for each solution.