C++17 solution for the assignment.
Requirements and design notes are in
docs/requirements-and-design.md.
Requires CMake 3.20+, a C++17 compiler, and no external libraries.
cmake -S . -B build -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failureFrom a developer command prompt:
cmake -S . -B build -A x64 -DBUILD_TESTING=ON
cmake --build build --config Release --parallel
ctest --test-dir build -C Release --output-on-failure./build/spell_checker < input.txt > output.txtInput is read from standard input. Corrected text goes to standard output; errors go to standard error with a nonzero exit status.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
-DSPELL_CHECKER_BUILD_BENCHMARKS=ON
cmake --build build --parallel
./build/spell_checker_benchmarkDatasets are deterministic (0xFEE1DEAD). Timings cover parsing, indexing, correction,
and rendering; dataset generation is excluded. CI runs the benchmark for every compiler
and uploads each result.
ClangFormat 14 is required for formatting checks.
cmake --build build --target format-check
cmake --build build --target formatWarnings are errors. The matrix uses GCC 14, Clang 18, and Visual Studio 2022; each job runs functional tests, stress tests, and benchmarks.