Merge e8dbc935d82dba4a01730506de88415dce6940ec into 4290ea753912378913b1f3f54e0fc5720afeda5d

This commit is contained in:
zhangli091011 2026-08-09 23:59:00 -07:00 committed by GitHub
commit 4fe30a56ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 1 deletions

1
AI_MARKER Normal file
View File

@ -0,0 +1 @@
This contribution was prepared with AI assistance from OpenCode.

View File

@ -73,7 +73,7 @@ class ROT13BruteForce extends Operation {
const cribLower = crib.toLowerCase();
const lowerStart = "a".charCodeAt(0), upperStart = "A".charCodeAt(0), numStart = "0".charCodeAt(0);
const result = [];
for (let amount = 1; amount < 26; amount++) {
for (let amount = 0; amount < 26; amount++) {
const rotated = sample.slice();
for (let i = 0; i < rotated.length; i++) {
if (rotateLower && lowerStart <= rotated[i] && rotated[i] < lowerStart + 26) {

View File

@ -256,6 +256,28 @@ TestRegister.addTests([
},
],
},
{
name: "ROT13 Brute Force: includes pass-through",
input: "Abc123",
expectedMatch: /^Amount = {2}0: Abc123\nAmount = {2}1:/,
recipeConfig: [
{
op: "ROT13 Brute Force",
args: [true, true, true, 100, 0, true, ""]
},
],
},
{
name: "ROT13 Brute Force: filters a pass-through sample",
input: "__Ab1__",
expectedOutput: "Ab1",
recipeConfig: [
{
op: "ROT13 Brute Force",
args: [true, true, true, 3, 2, false, "ab1"]
},
],
},
{
name: "ROT47: nothing",
input: "",