mutation

Deterministic string mutation. Given (input, seed, n), apply n random mutations of three kinds – substitute, insert, delete a character – to the input. The seed makes it reproducible: the same triple always returns the same output. That's the invariant.

Useful as the trivial canary for the mutation-testing family: given a program p and an eval e, does e(mutate(p)) fail? A working eval should reject most mutants; a broken one accepts them.

The pure transform lives in wal-sh.tools.mutation.core (host-neutral .cljc). PRNG is xorshift32; alphabet is ASCII letters + digits + light punctuation. The browser adapter is wal-sh.tools.mutation.browser. Build: gmake tools-cljs; debug in isolation: gmake dev-tool TOOL=mutation.