- Java: JDK 24, no Maven/Gradle. IntelliJ compiles to
out/. No CLI build. - Python: Poetry (
pyproject.toml), Python ^3.9. Dev deps: black, pylint, isort. - JavaScript: Node 14, no
package.json. Run directly.
No test framework exists. Run files directly:
- Java: Open in IntelliJ, run the
Test*class withmain()at the bottom of the same file. - Python:
poetry run python <file>— scripts useif __name__ == "__main__":. - JS:
node <file>.
| Action | Command |
|---|---|
| Install Python deps | poetry install |
| Export requirements.txt | make req_txt (runs poetry export -f requirements.txt --output requirements.txt) |
| Run any Python file | poetry run python src/main/algo/sort/merge/merge_sort.py |
| Run any JS file | node src/main/algo/search/binary/binary_search.js |
- Formatter: black (88 char line width). Runs on save via VS Code.
- Import sort: isort with
profile = "black". Runs on save via VS Code (source.organizeImports). - Linter: pylint, enabled in VS Code.
- Config split between
pyproject.toml(isort) and.vscode/settings.json(black, pylint).
- No generics, no exceptions (documented as TODOs in source).
- Uses primitive
intarrays throughout. - Each data structure class includes a package-private
Test*class withmain()at the bottom of the file.
src/main/— DSA implementations (algo/ds/maths/benchmarks).src/questions/— practice problems sorted by platform (codesignal/,leetcode/).src/playground/— scratch directory, git-ignored.- Benchmarks in
src/main/benchmarks/useload.pyhelpers (load_numbers(),load_strings()).
- VS Code interpreter hardcoded to
~/.pyenv/versions/dsa-practice/bin/python(machine-specific — won't work elsewhere). - Project name in
pyproject.tomlisdsa. requirements.txtis auto-generated bymake req_txt; do not edit manually.