- 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
513 B
513 B
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.