Skip to content

Conversation

@mmohamedkhaled
Copy link

Open in Gitpod know more

Describe your change:

  • Add an algorithm

Checklist:

  • I have read CONTRIBUTING.md.
  • This pull request is all my own work -- I have not plagiarized.
  • I know that pull requests will not be merged if they fail the automated tests.
  • This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
  • All new JavaScript files are placed inside an existing directory.
  • All filenames use the UpperCamelCase (PascalCase) style. There are no spaces in filenames.
  • All new algorithms have a URL in their comments that points to Wikipedia or another similar explanation.
  • All code is tested using Vitest and follows the ES Module syntax.
  • Code is formatted using Prettier.

Summary:

This PR adds a monoalphabetic Substitution Cipher to the ciphers/ directory.

  • Includes substitutionCipherEncryption and substitutionCipherDecryption functions
  • Validates key length and character set
  • Test coverage includes:
    • Encryption
    • Decryption
    • Non-alphabetic character handling
    • Invalid key rejection
  • All tests are passing using Vitest
  • Code formatted with Prettier

📚 Reference: Wikipedia – Substitution Cipher

@codecov-commenter
Copy link

codecov-commenter commented Apr 4, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 85.91%. Comparing base (1d252d7) to head (25add22).

Additional details and impacted files
@@ Coverage Diff @@ ## master #1773 +/- ## ========================================== + Coverage 85.87% 85.91% +0.04%  ========================================== Files 377 378 +1 Lines 19720 19779 +59 Branches 3005 3017 +12 ========================================== + Hits 16935 16994 +59  Misses 2785 2785 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
@mmohamedkhaled
Copy link
Author

This PR only introduces the Substitution Cipher and its test. I’ve noticed the CI flags code style/spelling issues in files like:

String/AlphaNumericPalindrome.js

Recursive/SubsequenceRecursive.js

Maths/MobiusFunction.js

These issues are pre-existing in the repository and not introduced by this PR. I have run Prettier on my changes, and there are no further modifications I can make to fix these unrelated files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants