Repository navigation
Conversation
…ilfence - Implements FuzzRailfence as requested in issue TheAlgorithms#480. - Refactors Encrypt and Decrypt to properly operate on runes, enabling full Unicode support. - Optimizes Encrypt to append directly to row slices, avoiding 2D sparse matrix allocation and eliminating the bug where null bytes were dropped. - Adds guards for rails <= 1 in Encrypt and Decrypt to prevent runtime panic on negative or zero rails. - Adds Unicode and edge cases to TestEncrypt and TestDecrypt.
Not up to standards ⛔
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Change
Fixes #480
This PR addresses the open issue #480 ("Add FuzzXxx tests to cipher algorithms") by adding fuzz testing to the Rail Fence cipher, alongside fixing Unicode support and edge case handling:
FuzzRailfence):EncryptandDecryptto operate on[]runerather than raw string byte indices. Multibyte characters (e.g. non-Latin scripts, emojis) are now encrypted and decrypted correctly.\x00) were filtered out and lost during encryption.rails <= 1orrails >= len(runes)to prevent runtime panics when non-positive rails are provided.Checklist
Notes: Adds FuzzRailfence, Unicode support, and edge-case safety for rail fence cipher.