- Replace separate encrypt/decrypt with shared caesar() function - Add direction constants (DIRECTION_ENCODE, DIRECTION_DECODE) and prompts - Update main.py to support interactive encode/decode loop - Keep encrypt/decrypt as wrappers for backward compatibility - Add tests for caesar() with both directions and error handling - Update tests for main.py with interactive scenario tests
10 lines
513 B
Markdown
10 lines
513 B
Markdown
# Caesar Cipher – documentation
|
||
|
||
Each letter is moved `shift` places through the alphabet:
|
||
`new_position = (ALPHABET.index(letter) + shift) % 26`.
|
||
The modulo keeps positions in range for shifts past `z`.
|
||
Decoding shifts by `-shift`; one shared `caesar(text, shift, direction)` function does both. Non-letters are left untouched and letter case is preserved.
|
||
|
||
API reference: run `doxygen Doxyfile` from the repository root and open
|
||
`docs/doxygen/html/index.html`. The step-by-step plan is in [plan.md](plan.md).
|