Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Spell Checker

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.

Linux

cmake -S . -B build -G "Unix Makefiles" \
  -DCMAKE_BUILD_TYPE=Release \
  -DBUILD_TESTING=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failure

Visual Studio 2022

From 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

Run

./build/spell_checker < input.txt > output.txt

Input is read from standard input. Corrected text goes to standard output; errors go to standard error with a nonzero exit status.

Benchmark

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
  -DSPELL_CHECKER_BUILD_BENCHMARKS=ON
cmake --build build --parallel
./build/spell_checker_benchmark

Datasets 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.

Formatting

ClangFormat 14 is required for formatting checks.

cmake --build build --target format-check
cmake --build build --target format

CI

Warnings are errors. The matrix uses GCC 14, Clang 18, and Visual Studio 2022; each job runs functional tests, stress tests, and benchmarks.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages