这是我用来解析国际象棋符号,继续黑棋走法,并定义变体的格式。<1. Nf3 Nf6 2. e3 e6> <1... Nf6 2. e3> <main2 main 3. Nf3 Nf6 4. e3>
我用一堆测试数据测试了我的解析器。现在,我想用类似于格式的随机模糊数据来测试它。
如何生成与有效格式60%相似的模糊测试数据?如下所示:
<1. <1. B3a 1<B N C>
我试过了,但它产生了完全的胡言乱语,有点无用。
function genCode(len) {
let chars = "<>abcdefgh.NBQRKO-12345678 ".split('');
function nextChar() {
return chars[Math.floor(Math.random()*chars.length)];
};
let res = "";
for (let i = 0; i < len; i++) {
res += nextChar();
}
return res;
}发布于 2020-10-23 07:10:16
所以我试了一下,结果还行得通:
function repeat(code, n) {
let res = "";
while (--n) {
res += code;
}
return res;
}
function corrupt(code) {
let chars = "<>abcdefgh.NBQRKO-12345678 ".split('');
function nextChar() {
return chars[Math.floor(Math.random()*chars.length)];
};
let res = "";
for (let i = 0; i < code.length; i++) {
res += Math.random() < 0.8 ? code[i] : nextChar();
}
return res;
}
console.log(corrupt(repeat(`<1. Nf3 Nf6 2. Ba5 Bg4 3. e4> <4... a6> <5... Qa7> <7... a8>`, 100\
)));https://stackoverflow.com/questions/64491642
复制相似问题